aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2012-09-21ARM: Use a dedicated intrinsic for vector bitwise select.Jim Grosbach
The expression based expansion too often results in IR level optimizations splitting the intermediate values into separate basic blocks, preventing the formation of the VBSL instruction as the code author intended. In particular, LICM would often hoist part of the computation out of a loop. rdar://11011471 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164342 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Implement faux-body-synthesis of well-known functions in the static analyzer ↵Ted Kremenek
when their implementations are unavailable. Start by simulating dispatch_sync(). This change is largely a bunch of plumbing around something very simple. We use AnalysisDeclContext to conjure up a fake function body (using the current ASTContext) when one does not exist. This is controlled under the analyzer-config option "faux-bodies", which is off by default. The plumbing in this patch is largely to pass the necessary machinery around. CallEvent needs the AnalysisDeclContextManager to get the function definition, as one may get conjured up lazily. BugReporter and PathDiagnosticLocation needed to be relaxed to handle invalid locations, as the conjured body has no real source locations. We do some primitive recovery in diagnostic generation to generate some reasonable locations (for arrows and events), but it can be improved. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164339 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Constify method.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164338 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Ensure that the Decl* wrapped by an AnalysisDeclContext cannot be changed afterTed Kremenek
construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164337 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Remove unused fields.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164336 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20If the range in a for range statement doesn't have a viable begin/end function,Richard Smith
but can be dereferenced to form an expression which does have viable begin/end functions, then typo-correct the range, even if something else goes wrong with the statement (such as inaccessible begin/end or the wrong type of loop variable). In order to ensure we recover correctly and produce any followup diagnostics in this case, redo semantic analysis on the for-range statement outside of the diagnostic trap, after issuing the typo-correction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164323 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Improvements to my patch in r164143 perFariborz Jahanian
Richard's comments. // rdar://12202422 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164316 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Include types when a definition's type differs from a prior declaration.David Blaikie
This is some really old code (took me a while to find the test cases) & the diagnostic text is slightly incorrect (it should really only apply to re/declarations/, redefinitions are an error regardless of whether the types match). Not sure if anyone cares about it, though. For now this just makes the diagnostic more clear in less obvious cases where the type of a declaration might not be explicitly written (eg: because it uses decltype) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164313 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Add some matchers for basic AST nodes.Daniel Jasper
Patch by Gábor Horváth. Review: http://llvm-reviews.chandlerc.com/D45 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164304 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Be more consistent about ending suggestions with a '?'Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164301 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Provide better error messages for incorrect matchers.Daniel Jasper
By changing the conversion operator into a conversion constructor, we can enabled based on the template parameters leading to better error messages. E.g.: stmt(decl()) will now create an error message including: note: candidate function not viable: no known conversion from 'clang::ast_matchers::internal::BindableMatcher<clang::Decl>' to 'const clang::ast_matchers::internal::Matcher<clang::Stmt>' for 1st argument git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164298 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Handle lambdas where the lambda-declarator is an explicit "(void)". PR13854.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164274 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Per C++11 [class.friend]p3, the 'friend' keyword must appear first in aRichard Smith
non-function friend declaration. Patch by Josh Magee! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164273 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20PR13881: Add -Wzero-length-array for zero length array extension, and move ↵Richard Smith
it into -Wgnu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164272 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Add some typedefs for clarity.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164223 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Remove Context argument from TemplateDeductionInfo constructor. It was no ↵Craig Topper
longer needed after the unused Context member was removed in r164104. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164196 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Add the TypeSourceInfo for the lambda call operator to the lambda'sEli Friedman
definition info; it needs to be there because the mangler needs to access it before we're finished defining the lambda class. PR12808. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164186 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18c: warn when an integer value comparison with anFariborz Jahanian
integral expression have the obvious result. Patch reviewed by John McCall off line. // rdar://12202422 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164143 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Add missing matcher for C-style cast expressions.Daniel Jasper
Patch by Gábor Horváth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164123 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Make all VariadicDynCast-Expr-matchers StatementMatchersDaniel Jasper
Having Expr-subclass-matchers being VariadicDynCast-Expr-matchers does not provide additional type safety and just makes using them harder. In the clang AST, expressions are always statements and an expression matcher can be used anywhere, a statement matcher is expected. Any given matcher definition still has at least one noun. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164121 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Remove an unused private field exposed by the recent LLVM_DELETED_FUNCTION ↵Craig Topper
changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164104 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Remove an unused private field exposed by the recent LLVM_DELETED_FUNCTION ↵Craig Topper
changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164103 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Mark unimplemented copy constructors and copy assignment operators with ↵Craig Topper
LLVM_DELETED_FUNCTION. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164102 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18If a comma operator is followed by a token which unambiguously indicates theRichard Smith
start of a statement or the end of a compound-statement, diagnose the comma as a typo for a semicolon. Patch by Ahmed Bougacha! Additional test cases and minor refactoring by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164085 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-18Per discussion on cfe-dev, remove -Wunique-enums entirely. ThereTed Kremenek
is no compelling argument that this is a generally useful warning, and imposes a strong stylistic argument on code beyond what it was intended to find warnings in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164083 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17objective-C: improve on warnings about misplacement of methodFariborz Jahanian
argument names. // rdar://12263549 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164077 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17objective-C: issue warning when there is no whitespaceFariborz Jahanian
between objc method parameter name and colon. // rdar://12263549 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164047 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17[analyzer] Teach the analyzer about implicit initialization of staticsAnna Zaks
in ObjCMethods. Extend FunctionTextRegion to represent ObjC methods as well as functions. Note, it is not clear what type ObjCMethod region should return. Since the type of the FunctionText region is not currently used, defer solving this issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164046 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17Open up a few higher-level functions for tools.Axel Naumann
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164028 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15Comment parsing: support \namespace like other commands that contain just aDmitri Gribenko
declaration for the entity being documented. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163986 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15Make PTHManager properly noncopyable.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163982 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15Address a long-standing FIXME: remove an unused copy constructor and makeDmitri Gribenko
UnqualifiedId() properly noncopyable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163981 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15const _Atomic(T) is not an atomic type, so do not allow it as the type 'A' inRichard Smith
C11 7.17's atomic operations. GNU's __atomic_* builtins do allow const-qualified atomics, though (!!) so don't restrict those. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163964 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15-Warc-retain-cycles: warn at variable initialization as well as assignment.Jordan Rose
Specifically, this should warn: __block block_t a = ^{ a(); }; Furthermore, this case which previously warned now does not, since the value of 'b' is captured before the assignment occurs: block_t b; // not __block b = ^{ b(); }; (This will of course warn under -Wuninitialized, as before.) <rdar://problem/11015883> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163962 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-14objective-C arc: remove -Warc-abi in its entirety.Fariborz Jahanian
// rdar://10554025 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163917 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-14Comment parsing: support the "\invariant" command.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163905 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Don't perform template argument deduction against invalid templates;Douglas Gregor
it's likely to lead to a crash later on. Fixes PR12933 / <rdar://problem/11525335>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163838 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Comment parsing: handle \deprecated command. It is a block command, but itDmitri Gribenko
should be fine to use it without further explanations in the attached paragraph, so the warning about empty paragraph was turned off for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163836 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Promote the warning about extra qualification on a declaration from aDouglas Gregor
warning to an error. C++ bans it, and both GCC and EDG diagnose it as an error. Microsoft allows it, so we still warn in Microsoft mode. Fixes <rdar://problem/11135644>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163831 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13ASTMatchersMacros.h: Appease msvc.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163798 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Create initial support for matching and binding NestedNameSpecifier(Loc)s.Daniel Jasper
Review: http://llvm-reviews.chandlerc.com/D39 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163794 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg isDmitri Gribenko
not what most people want -- it starts a new paragraph). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Add missing accessor.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163792 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Conditionally parse documentation comments in system headers byTed Kremenek
passing -fretain-comments-from-system-headers. By default, the compiler no longer parses such documentation comments, as they can result in a noticeable compile time/PCH slowdown. Fixes <rdar://problem/11860820>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163778 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Format strings: offer a fixit for Darwin's %D/%U/%O to ISO %d/%u/%o.Jordan Rose
<rdar://problem/12061922> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163772 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Format strings: %D, %U, and %O are valid on Darwin (same as %d, %u, %o).Jordan Rose
These will warn under -Wformat-non-iso, and will still be rejected outright on other platforms. <rdar://problem/12061922> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163771 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13[analyzer] Don't reimplement an existing function.Anna Zaks
Thanks Jordan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163762 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Refactor logic in ExprEngine for detecting 'noreturn' methodsTed Kremenek
in NSException to a helper object in libAnalysis that can also be used by Sema. Not sure if the predicate name 'isImplicitNoReturn' is the best one, but we can massage that later. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163759 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Add two new functions to Qualifiers.Richard Trieu
static Qualifiers removeCommonQualifiers(Qualifiers &L, Qualifiers &R) Removes the common qualifiers from L and R and returns them in a new Qualifier. This will be used in template diffing. void removeQualifiers(Qualifiers Q) Removes the qualifiers in Q from the current qualifier. This replaces the current underlying implementation of operator- and operator -= which only performed bit masking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163752 91177308-0d34-0410-b5e6-96231b3b80d8