aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-03-02Ensure that we instantiate static reference data members of class templatesRichard Smith
early, since their values can be used in constant expressions in C++11. For odr-use checking, the opposite change is required, since references are odr-used whether or not they satisfy the requirements for appearing in a constant expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151881 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Fix buildbot: make this test less dependent on the value names in the ↵Richard Smith
produced IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151880 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02PR12145: Avoid emitting loads of constexpr variables in contexts where thereRichard Smith
is no odr-use of the variable. Go slightly beyond what the standard requires for variables of reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151879 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02[analyzer diagnostics] Change CompactPathDiagnostic to recursively compact ↵Ted Kremenek
diagnostics in calls into macro pieces. Also fix handling of macros within calls in the HTMLDiagnostics. This also adds a test case for r151774. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01c/objc: problem originally reported as an objective-c bug.Fariborz Jahanian
But it is in the underlying c part of clang. clang crashes in IRGen when passing an incomplete type argument to variadic function (instead of diagnosing the bug). // rdar://10961370 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151862 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01add documentation for -f[no-]thread-sanitizer and -f[no-]address-sanitizer ↵Kostya Serebryany
to docs/UsersManual.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151858 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Teach the analyzer to just ignore CXXBindTemporaryExpr. There's nothing ↵Ted Kremenek
special to do with it, since destructors are represented explicitly in the CFG. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151856 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Moving tagging of '__experimental_modules_import' IdentifierInfo out ofTed Kremenek
IndentifierTable::get() and into IdentifierTable's constructor. This gets a 0.7% reducing on lexing time for Cocoa.h, and about the same for PCH generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151854 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Make CodeGenFunction::EmitBlockCopyAndAutorelease actually do what its name ↵Eli Friedman
says. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151853 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Update test for llvm assembly output change. Also add a fixme that thisEric Christopher
shouldn't be relying on assembly emission. For the record we should check the metadata output from the front end and then check in the backend that such a thing emits a pubtypes entry. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151851 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01[analyzer] Turn inlining on by default for better testing exposure.Anna Zaks
Fix a test, which was most likely an unintended recursive call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151848 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Add a flag -fthread-sanitizer.Kostya Serebryany
This flag enables ThreadSanitizer instrumentation committed to llvm as r150423. The patch includes one test for -fthread-sanitizer and one similar test for -faddress-sanitizer. This patch does not modify the linker flags (as we do it for -faddress-sanitizer) because the run-time library is not yet committed and it's structure in compiler-rt is not 100% clear. The users manual wil be changed in a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151846 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Change @import to @__experimental_modules_import. We are not ready to ↵Ted Kremenek
commit to a particular syntax for modules, and don't have time to push it forward in the near future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151841 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01[analyzer] Fix a regression introduced in malloc withAnna Zaks
attributes, introduced in r151188. + the test to catch it. Thanks to Ahmed Charles for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151840 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Reapply r151702 with a small fix for a failure to cut and pasteEric Christopher
correctly. Still rdar://10900684 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151838 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Fix the isReferenced bit on parameters in a couple of edge cases. PR12153.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151837 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Remove test/Sema/many-logical-ops.c since it fails in linux variants.Argyrios Kyrtzidis
Will bring it up once the issue is fixed properely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151830 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Move llvm/ADT/SaveAndRestore.h -> llvm/Support/SaveAndRestore.h.Argyrios Kyrtzidis
Needs llvm update. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151829 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Merge __has_attribute tests. Patch by Jonathan Sauer!Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151819 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01StmtProfiler: Add a null check for child statements.Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151812 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Implement double underscore names support in __has_attributeJean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151809 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Avoid examining the AST from the parser, and simplify somewhat.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151805 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Revert r151800, which was committed without review and has correctness issues.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151804 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Fixing a buildbot complaint about nested templates.Aaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151803 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Implements support for #pragma include_alias in ms compatibility mode. ↵Aaron Ballman
Fixes PR10705. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151800 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Added support for parsing declspecs on enumerations. Fixes PR8783Aaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151798 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Implement "optimization" for lambda-to-block conversion which inlines the ↵Eli Friedman
generated block literal for lambdas which are immediately converted to block pointer type. This simplifies the AST, avoids an unnecessary copy of the lambda and makes it much easier to avoid copying the result onto the heap. Note that this transformation has a substantial semantic effect outside of ARC: it gives the converted lambda lifetime semantics similar to a block literal. With ARC, the effect is much less obvious because the lifetime of blocks is already managed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151797 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Reject 'a = {0} = {0}' rather than parsing it as '(a = {0}) = {0}'. AlsoRichard Smith
improve the diagnostics for some attempts to use initializer lists in expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151794 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Correct an example of a feature name to actually use a feature name ratherRichard Smith
than an attribute name. Patch by Michel Morin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Fix regression from llvm-gcc where we should NOT emit a warning about ↵Ted Kremenek
__attribute__((NSObject)) on a property declaration. This is needed to have retain properties for non-object pointers. Fixes <rdar://problem/10930507>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151786 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01[analyzer] Diagnostics - do not try to cleanup the path with macros, itAnna Zaks
will be done by the general cleanup later on. A Patch by Ted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151784 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Tighten type-checking a bit to make it clearer how BuildCXXMemberCallExpr is ↵Eli Friedman
used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151783 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Move suport for redefining operator keywords from -fms-extensions to ↵Nico Weber
-fms-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151776 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-01Change if...else if...else if... to a switch.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151775 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29[analyzer] when scanning FIDs in a PathDiagnostic, correctly recurse calls ↵Ted Kremenek
and macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151774 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Allow operator keywords to be #defined in ms-ext mode.Nico Weber
Fixes PR10606. I'm not sure if this is the best way to go about it, but I locally enabled this code path without the msext conditional, and all tests pass, except for test/Preprocessor/cxx_oper_keyword.cpp which explicitly checks that operator keywords can't be redefined. I also parsed chromium/win with a clang with and without this patch. It introduced no new errors, but removes 43 existing errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151768 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Test for my last patch. // rdar://10267155.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151767 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29objective-c: provide fixit hint when atomic property does notFariborz Jahanian
have matching user defined setter/getter and a warning is issued. In this case, a fixit note is displayed. // rdar://10267155 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151766 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Fix a couple -Wuninitialized warnings from gcc. Reported by David Greene.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151754 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Serialization: Switch over to using the native SmallVector based BitstreamWriterDaniel Dunbar
ctor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151752 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29I referenced the incorrect rdar in my previous commit (r151745). Add the Chad Rosier
correct radar number to the test case for tracking purposes. rdar://10551066 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151746 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Allocate TargetLibraryInfo for the CodeGen passes. Otherwise, it's instantiatedChad Rosier
by the BAA pass, which uses the default TargetLibraryInfo constructor. Unfortunately, the default TargetLibraryInfo constructor assumes all library calls are available and thus ignores -fno-builtin. rdar://10947759 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151745 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Reverting test commitJason W Kim
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Test commit. Please ignoreJason W Kim
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151738 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29[analyzer] Malloc: A pointer might escape through CFContainers APIs,Anna Zaks
funopen, setvbuf. Teach the checker and the engine about these APIs to resolve malloc false positives. As I am adding more of these APIs, it is clear that all this should be factored out into a separate callback (for example, region escapes). Malloc, KeyChainAPI and RetainRelease checkers could all use it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151737 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Revert r151702, "Add support for handling captured variables in lambda debugDaniel Dunbar
info.", which broke some -O0 -g tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151730 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Add -C when linking on Solaris so that the error messages are understandable ↵David Chisnall
by actual humans. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151726 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Tentatively fix PR12117. The test case from the bug now passes, and all ↵Sebastian Redl
existing tests still pass, but there may still be corner cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151716 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Reapply r151638 and r151641.James Molloy
The bug that was caught by Apple's internal buildbots was valid and also showed another bug in my implementation. These are now fixed, with regression tests added to catch them both (not Darwin-specific). Original log: ==================== Revert r151638 because it causes assertion hit on PCH creation for Cocoa.h Original log: --------------------- Correctly track tags and enum members defined in the prototype of a function, and ensure they are properly scoped. This fixes code such as: enum e {x, y}; int f(enum {y, x} n) { return 0; } This finally fixes PR5464 and PR5477. --------------------- I also reverted r151641 which was enhancement on top of r151638. ==================== git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151712 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Remove a recursive visitiation in ExprEngine that is no longer neededErik Verbruggen
because the CFG is fully linearized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151711 91177308-0d34-0410-b5e6-96231b3b80d8