summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Don't record nested macro expansions in the preprocessing record,Argyrios Kyrtzidis2012-02-2514-95/+18
| | | | | | | | it can only bring pain when dealing with preprocessor abuse (see: boost). rdar://10898986 llvm-svn: 151427
* RetainCountChecker: don't adjust the retain count when analyzing a ↵Ted Kremenek2012-02-252-0/+29
| | | | | | ReturnStmt unless we are in the top-level call frame. We can do more later, but this makes the checker self-consistent (and fixes a crash). llvm-svn: 151426
* [arcmt] GC migrator: don't try to remove redundant __strong, it doesArgyrios Kyrtzidis2012-02-257-43/+16
| | | | | | | | more harm than good. Fixes rdar://10522805&10521433 llvm-svn: 151424
* Improve the diagnostic in ARC mode when a conditional with an Objective-C ↵Eli Friedman2012-02-253-0/+24
| | | | | | type and void* is used. <rdar://problem/10486347>. llvm-svn: 151416
* Trying to increase my Ohloh ranking with trivial tweaksDouglas Gregor2012-02-251-6/+2
| | | | llvm-svn: 151414
* Bugfix: bogus warning -- "invalid use of non-static data member",DeLesley Hutchins2012-02-253-1/+27
| | | | | | | when a class is forward declared, and the reference to the data member in question does not occur within a method body. llvm-svn: 151413
* Simplify check per Eli's commentDouglas Gregor2012-02-251-4/+1
| | | | llvm-svn: 151412
* Add test for C++ DR899.Douglas Gregor2012-02-241-0/+22
| | | | llvm-svn: 151411
* [analyzer] Malloc: reason about the ObjC messages and C++.Anna Zaks2012-02-243-79/+177
| | | | | | | | | | | Assume none of the ObjC messages defined in system headers free memory, except for the ones containing 'freeWhenDone' selector. Currently, just assume that the region escapes to the messages with 'freeWhenDone' (ideally, we want to treat it as 'free()'). For now, always assume that regions escape when passed to C++ methods. llvm-svn: 151410
* Implement C++11 [over.match.copy]p1b2, which allows the use ofDouglas Gregor2012-02-248-43/+97
| | | | | | | | | | | explicit conversion functions to initialize the argument to a copy/move constructor that itself is the subject of direct initialization. Since we don't have that much context in overload resolution, we end up threading more flags :(. Fixes <rdar://problem/10903741> / PR10456. llvm-svn: 151409
* Fix a stupid mistake in r151133. Reported to me by Joerg Sonnenberger.Eli Friedman2012-02-242-3/+12
| | | | llvm-svn: 151407
* Remove FIXME: as Eli points out, the behavior here is now correct.Richard Smith2012-02-241-5/+3
| | | | llvm-svn: 151405
* For the purposes of building LLVM types, a forward-declaredDouglas Gregor2012-02-242-1/+17
| | | | | | | enumeration type with a fixed underlying type is complete. Fixes <rdar://problem/10916155>. llvm-svn: 151403
* Back out __decltype warning from r151377: we should either warn on all the GNURichard Smith2012-02-243-7/+4
| | | | | | __keywords or none of them. llvm-svn: 151401
* Make helper static.Benjamin Kramer2012-02-241-1/+1
| | | | llvm-svn: 151400
* When checking whether a reference to a variable is an ICE, look at the type ofRichard Smith2012-02-242-4/+32
| | | | | | | the declaration, not at the type of the DeclRefExpr, since within a lambda the DeclRefExpr can be more const than the declaration is. llvm-svn: 151399
* Minor modern rewriter bug showed up during testingFariborz Jahanian2012-02-241-1/+1
| | | | | | against a large project. llvm-svn: 151395
* C++11 [class.ctor]p5 says thatDouglas Gregor2012-02-242-6/+10
| | | | | | | | | | | | | | | | | A defaulted default constructor for a class X is defined as deleted if [...] - X is a union and all of its variant members are of const-qualified type. A pedantic reading therefore says that union X { }; has a deleted default constructor, which is both silly and almost certainly unintended. Pretend as if this this read - X is a union with one or more variant members, and all of its variant members are of const-qualified type. llvm-svn: 151394
* Fix comment: correct predicate name, reformat comment.Dmitri Gribenko2012-02-241-5/+4
| | | | llvm-svn: 151389
* Change the text of a FIXME.Argyrios Kyrtzidis2012-02-241-1/+2
| | | | llvm-svn: 151387
* [libclang] Add a triple to the test.Argyrios Kyrtzidis2012-02-241-2/+2
| | | | llvm-svn: 151386
* cxx_status: Consistently refer to C++11 as "C++11", not as "C++'11" nor asRichard Smith2012-02-241-6/+8
| | | | | | | "C++0x". Use "C++98" to refer to C++98, not "C++". Add heading for C++98 support section. llvm-svn: 151381
* cxx_status: extended sizeof has been essentially complete for some time. AsRichard Smith2012-02-241-7/+6
| | | | | | | | | | agreed on IRC, any remaining issues are best dealt with as bugs. We have no __has_feature check for this; please shout if you'd like one. This feature seems too small to be worth its own release notes bullet (again, please shout if you disagree). llvm-svn: 151380
* test for writing modern ivar of struct type.Fariborz Jahanian2012-02-241-0/+24
| | | | llvm-svn: 151378
* __decltype is a GNU extension, not a C++11 extension.Richard Smith2012-02-246-7/+12
| | | | llvm-svn: 151377
* more objective-c modern translator ivar tests.Fariborz Jahanian2012-02-241-0/+33
| | | | llvm-svn: 151376
* Two minor, related fixes for template instantiation with blocks:Douglas Gregor2012-02-243-5/+23
| | | | | | | | | | | | - Make sure that the block expression is instantiation-dependent if the block is in a dependent context - Make sure that the C++ 'this' expression gets captured even if we don't rebuild the AST node during template instantiation. This would also have manifested as a bug for lambdas. Fixes <rdar://problem/10832617>. llvm-svn: 151372
* objc modern translator. Fixes writing of block pointer ivar access.Fariborz Jahanian2012-02-242-1/+20
| | | | llvm-svn: 151371
* [analyzer] Run remove dead bindings before each call.Anna Zaks2012-02-243-3/+17
| | | | | | | This ensures that we report the bugs associated with symbols going out of scope in the correct function context. llvm-svn: 151369
* [analyzer] We were silently stopping exploring the path afterAnna Zaks2012-02-242-3/+16
| | | | | | | | | visiting 'return;' statement! This most likely caused us to skip a bunch of code when analyzing with inlining. llvm-svn: 151368
* Use -no-integrated-as only on ARM. The X86 and X86-64 integrated as have beenRafael Espindola2012-02-241-1/+4
| | | | | | the default for clang for some time now and can handle compiler-rt. llvm-svn: 151367
* Revert r151357. That unreachable is reachable...Nick Lewycky2012-02-241-11/+8
| | | | llvm-svn: 151359
* Silence gcc warnings pointing out that CharByteWidth could be usedNick Lewycky2012-02-241-8/+11
| | | | | | uninitialized. While there, restyle this function! No functionality change. llvm-svn: 151357
* Sink variable into assertMatt Beaumont-Gay2012-02-241-2/+1
| | | | llvm-svn: 151356
* Remove some trivial uses of hasTrivialCopyConstructor() andDouglas Gregor2012-02-241-2/+2
| | | | | | hasTrivialMoveConstructor(). llvm-svn: 151354
* Kill a spurious use of hasTrivialDefaultConstructor()Douglas Gregor2012-02-241-2/+1
| | | | llvm-svn: 151353
* Implement a new type trait __is_trivially_constructible(T, Args...)Douglas Gregor2012-02-2433-6/+656
| | | | | | | | | | | | | | | | that provides the behavior of the C++11 library trait std::is_trivially_constructible<T, Args...>, which can't be implemented purely as a library. Since __is_trivially_constructible can have zero or more arguments, I needed to add Yet Another Type Trait Expression Class, this one handling arbitrary arguments. The next step will be to migrate UnaryTypeTrait and BinaryTypeTrait over to this new, more general TypeTrait class. Fixes the Clang side of <rdar://problem/10895483> / PR12038. llvm-svn: 151352
* Make PathDiagnosticBuilder sensitive to varying LocationContexts, thus ↵Ted Kremenek2012-02-242-59/+24
| | | | | | fixing a bug in the inlining diagnostics where the wrong location could be used. llvm-svn: 151349
* Remove stray path in test file.Ted Kremenek2012-02-241-1/+0
| | | | llvm-svn: 151347
* Reapply r151317, but when computing the PathDiagnostic profile and size keep ↵Ted Kremenek2012-02-248-170/+380
| | | | | | | | into account the nested structure. Also fix a problem with how inlining impacted Plist diagnostics, and adjust some ranges in the Plist output due to richer information. llvm-svn: 151346
* Fix test for non-block-default platforms.David Blaikie2012-02-241-2/+2
| | | | llvm-svn: 151343
* Revert r151317 - Rework PathDiagnostics creation.. - to appease buildbots.Chad Rosier2012-02-247-309/+161
| | | | llvm-svn: 151338
* [PCH] When keeping track of top-level decls for "targeted deserialization"Argyrios Kyrtzidis2012-02-243-0/+16
| | | | | | | | make sure we don't mistake ParmVarDecls for top-level decls. Fixes rdar://10920009. llvm-svn: 151330
* Rework PathDiagnostic creation so that call stacks are captured by a nested ↵Ted Kremenek2012-02-247-161/+309
| | | | | | PathDiagnosticCallPiece. llvm-svn: 151317
* Add an ivar test for modern objc abi translator.Fariborz Jahanian2012-02-241-0/+28
| | | | llvm-svn: 151316
* Make test works with FileCheck.Fariborz Jahanian2012-02-241-1/+2
| | | | llvm-svn: 151314
* Reapply r151172 - Unwind path cleanup for array new list initializers - with aChad Rosier2012-02-242-7/+73
| | | | | | test case that only runs on debug builds. llvm-svn: 151311
* Handle "#pragma GCC visibility" in a few more places. Switch over "#pragma ↵Eli Friedman2012-02-239-16/+115
| | | | | | | | pack" to use the same handling that gcc does. Fixes <rdar://problem/10871094> and <rdar://problem/10893316>. (Hopefully, common usage of these pragmas isn't irregular enough to break our current handling. Doug has ideas for a more crazy approach if necessary.) llvm-svn: 151307
* Modernize some code which processes CastExprs to use CastKinds. No intended ↵Eli Friedman2012-02-231-29/+21
| | | | | | functional change. llvm-svn: 151298
* [analyzer] KeyChainAPI: unique the leaks by allocation site.Anna Zaks2012-02-232-23/+71
| | | | | | (Very similar to the previous change in malloc.) llvm-svn: 151297
OpenPOWER on IntegriCloud