aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-03-02[Sema] Fix crash-on-invalid-code issue:Argyrios Kyrtzidis
@class I; @implementation I(cat) // crashes here @end rdar://10968158 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151931 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02[analyzer] Bound the size of the functions being inlined + provideAnna Zaks
command line options for inlining tuning. This adds the option for stack depth bound as well as function size bound. + minor doxygenification git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151930 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02PR12094: Set the alignment of memory intrinsic instructions based on theJay Foad
types of the pointer arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151927 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Change diagnostic test for my last patch.Fariborz Jahanian
// rdar://10961370 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151923 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Revert r151879, r151880, "PR12145: Avoid emitting loads of constexpr ↵Daniel Dunbar
variables in contexts where there" and "Fix buildbot: make this test less dependent on the value names in the produced IR." They broke bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151922 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Use tabs instead of spaces.Benjamin Kramer
No, really, make doesn't work with spaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151920 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02clang -v support for separate clang.git and llvm.git, patch by Andrew Trick.Jia Liu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151910 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Add the Solaris support directory to the header search when using libc++.David Chisnall
Unconditionally define __C99FEATURES__ when using C++ on Solaris. This is a (hopefully temporary) work around for libc++ exposing C99-but-not-C++98 features in C++98 mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151889 91177308-0d34-0410-b5e6-96231b3b80d8
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-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-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-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-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-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-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-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-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-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-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
2012-02-29[analyzer] Tweak the UnreachableCode checker to not warning about ↵Ted Kremenek
unreachable default blocks. Patch by Cyril Roelandt! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151709 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29A couple minor bug-fixes for template instantiation for expressions which ↵Eli Friedman
are sometimes potentially evaluated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151707 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29[driver] Emit an error when trying to use ARC on macosx earlier than 10.6Argyrios Kyrtzidis
rdar://10459258 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151706 91177308-0d34-0410-b5e6-96231b3b80d8