aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-14Remove ExprEngine recursive visitation of unary UO_Imag operation.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150505 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Further remove some recursive visitiation in ExprEngine that is no longer ↵Ted Kremenek
needed because the CFG is fully linearized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150504 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Check the return type of lambda expressions.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150503 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14PR11650: Implement resolution of core issue 1301. Value initialization can't beRichard Smith
used to construct an object of union type with a deleted default constructor (plus fixes for some related value-initialization corner cases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150502 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Warn about non-int main() results in GNU C mode instead of erroring.John McCall
Based on a patch by Vasiliy Korchagin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14more objective-c translator for modern abi.Fariborz Jahanian
metadata for protocol definitions used on class qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150498 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Implement support for lambda capture pack expansions, e.g.,Douglas Gregor
[&values...] { print(values...); } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150497 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Use several weighted factors to determine typo candidate viablity.Kaelyn Uhrain
Replace the simple Levenshtein edit distance for typo correction candidates--and the hacky way adding namespace qualifiers would affect the edit distance--with a synthetic "edit distance" comprised of several factors and their relative weights. This also allows the typo correction callback object to convey more information about the viability of a correction candidate than simply viable or not viable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150495 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Simplify and robustify lambda PCH testDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150493 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Implement AST (de-)serialization for lambda expressions.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150491 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14more modern objc translator. Focusing on metadata for methods.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150490 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14include clang's config.h unconditionally (v2)Dylan Noblesmith
And remove HAVE_CLANG_CONFIG_H, now that the header is generated in the autoconf build, too. Reverts r149571/restores r149504, now that config.h is generated correctly by LLVM's configure in all build configurations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150487 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Use a simpler (and more efficient) pattern to pad vectors.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150475 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Fix crash-on-invalid for 'operator int[]()' in C++11.David Blaikie
Signed off by Richard Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150464 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Fix use-after-free introduced by me being an idiot.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150461 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Remove useless if statement.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150459 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Add a coverage test for lambda expression IRGen.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150458 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Implement new DiagnosticsRenderer that packages notes retrieved by ↵Ted Kremenek
clang_getDiagnosticSetFromTU() as child diagnostics of primary diagnostics. By using the DiagnosticRenderer, these Diagnostics now match with those generated for serialized diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150456 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Refactor DiagnosticRenderer and SDiagsRenderer to have some functionalityTed Kremenek
pulled into DiagnosticNoteRenderer, and common DiagnosticRenderer that assumes that all custom diagnostic messages are notes. Also extend DiagnosticRenderer to work with StoredDiagnostics in preparation for subsequent changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150455 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Add helper methods to StoredDiagnostic.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150454 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Fix another issue introduced by the proposed wording for core issue 1358: sinceRichard Smith
the instantiation of a constexpr function temploid is now always constexpr, a defaulted constexpr function temploid is often ill-formed by the rule in [dcl.fct.def.default]p2 that an explicitly-defaulted constexpr function must have a constexpr implicit definition. To avoid making loads of completely reasonable code ill-formed, do not apply that rule to templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150453 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Implement IRGen of lambda expressions which capture arrays.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150452 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Refactor out new function EmitInitializerForField from ↵Eli Friedman
EmitMemberInitializer. The new function will be used to initialize the fields of lambda expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150451 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14[analyzer] Malloc Checker: realloc: add dependency between the symbolsAnna Zaks
in realloc map. If there is no dependency, the reallocated ptr will get garbage collected before we know that realloc failed, which would lead us to missing a memory leak warning. Also added new test cases, which we can handle now. Plus minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150446 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Simple test ensuring that we perform direct initialization when ↵Douglas Gregor
copy-capturing in lambdas git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150442 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-14Link together the call operator produced from transforming a lambdaDouglas Gregor
expression with the original call operator, so that we don't try to separately instantiate the call operator. Test and tweak a few more bits for template instantiation of lambda expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150440 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Mark the cxa_guard_{abort,acquire,release} functions nounwind.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150435 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Deal with a horrible C++11 special case. If a non-literal type has a constexprRichard Smith
constructor, and that constructor is used to initialize an object of static storage duration such that all members and bases are initialized by constant expressions, constant initialization is performed. In this case, the object can still have a non-trivial destructor, and if it does, we must emit a dynamic initializer which performs no initialization and instead simply registers that destructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150419 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Add a subgroup of -Wreturn-type, -Wreturn-type-c-linkage.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150418 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Introduce support for template instantiation of lambdaDouglas Gregor
expressions. This is mostly a simple refact, splitting the main "start a lambda expression" function into smaller chunks that are driven either from the parser (Sema::ActOnLambdaExpr) or during AST transformation (TreeTransform::TransformLambdaExpr). A few minor interesting points: - Added new entry points for TreeTransform, so that we can explicitly establish the link between the lambda closure type in the template and the lambda closure type in the instantiation. - Added a bit into LambdaExpr specifying whether it had an explicit result type or not. We should have had this anyway. This code is 'lightly' tested. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150417 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13modern objc translator. More ivar rewrite work.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150415 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13objc modern translator. ivar offset symbols.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150413 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13[analyzer] Malloc Checker: realloc: correct the way we are handing theAnna Zaks
case when size is 0. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150412 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Add a script that produces a list of all diagnostics that are defined inDmitri Gribenko
Diagnostic*.td files but not used in sources. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150410 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Remove unused diagnostics from include/clang/Basic/Diagnostic*.td files.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150409 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Don't route explicit construction via list-initialization through the ↵Sebastian Redl
functional cast code path. It sometimes does the wrong thing, produces horrible error messages, and is just unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150408 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Sink variable into assertMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150407 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13objective-c translator: more rewriting of ivar typesFariborz Jahanian
into a c-type which closely matches the objective-c type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150406 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13When generating diagnostic information due to a clang failure, allow multipleChad Rosier
-arch options if the're all the same. Patch by Jeremy Huddleston. rdar://10849701 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150403 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13[analyzer] Malloc checker: rework realloc handling:Anna Zaks
1) Support the case when realloc fails to reduce False Positives. (We essentially need to restore the state of the pointer being reallocated.) 2) Realloc behaves differently under special conditions (from pointer is null, size is 0). When detecting these cases, we should consider under-constrained states (size might or might not be 0). The old version handled this in a very hacky way. The code did not differentiate between definite and possible (no consideration for under-constrained states). Further, after processing each special case, the realloc processing function did not return but chained to the next special case processing. So you could end up in an execution in which you first see the states in which size is 0 and realloc ~ free(), followed by the states corresponding to size is not 0 followed by the evaluation of the regular realloc behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150402 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Split the storage of lambda information between the LambdaExpr and theDouglas Gregor
CXXRecordDecl in a way that actually makes some sense: - LambdaExpr contains all of the information for initializing the lambda object, including the capture initializers and associated array index variables. - CXXRecordDecl's LambdaDefinitionData contains the captures, which are needed to understand the captured variable references in the body of the lambda. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150401 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Keep track of the set of array index variables we use when weDouglas Gregor
synthesize a by-copy captured array in a lambda. This information will be needed by IR generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150396 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Remove empty directories left behind by git-svn.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150395 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Don't allocate unused storage for captures/capture initializers in lambda ↵Douglas Gregor
expressions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150394 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Move the storage of lambda captures and capture initializers fromDouglas Gregor
LambdaExpr over to the CXXRecordDecl. This allows us to eliminate the back-link from the closure type to the LambdaExpr, which will simplify and lazify AST deserialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150393 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Add back in the code to create forward decls using temporary mdnodes.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150390 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Testcase for previous commit.Eric Christopher
PR11970. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150389 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13Temporarily walk back a few of my recent debug info limiting changesEric Christopher
while reworking how we handle wanting to emit only parts of structures. Fixes PR11970. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150388 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13StaticAnalyzer/Core: fix MSVC buildDylan Noblesmith
Fix build breakage from r150378: MSVC only allows taking the address of a member function using the &ClassName::Function syntax.# It was giving git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150387 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-13drop more llvm:: prefixes on SmallString<>Dylan Noblesmith
More cleanup after r149799. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150380 91177308-0d34-0410-b5e6-96231b3b80d8