aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-25Simplify check per Eli's commentDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151412 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Add test for C++ DR899.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151411 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24[analyzer] Malloc: reason about the ObjC messages and C++.Anna Zaks
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151410 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Implement C++11 [over.match.copy]p1b2, which allows the use ofDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151409 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Fix a stupid mistake in r151133. Reported to me by Joerg Sonnenberger.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151407 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Remove FIXME: as Eli points out, the behavior here is now correct.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151405 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24For the purposes of building LLVM types, a forward-declaredDouglas Gregor
enumeration type with a fixed underlying type is complete. Fixes <rdar://problem/10916155>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151403 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Back out __decltype warning from r151377: we should either warn on all the GNURichard Smith
__keywords or none of them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151401 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Make helper static.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151400 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24When checking whether a reference to a variable is an ICE, look at the type ofRichard Smith
the declaration, not at the type of the DeclRefExpr, since within a lambda the DeclRefExpr can be more const than the declaration is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151399 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Minor modern rewriter bug showed up during testingFariborz Jahanian
against a large project. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151395 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24C++11 [class.ctor]p5 says thatDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151394 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Fix comment: correct predicate name, reformat comment.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151389 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Change the text of a FIXME.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151387 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24[libclang] Add a triple to the test.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151386 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24cxx_status: Consistently refer to C++11 as "C++11", not as "C++'11" nor asRichard Smith
"C++0x". Use "C++98" to refer to C++98, not "C++". Add heading for C++98 support section. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151381 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24cxx_status: extended sizeof has been essentially complete for some time. AsRichard Smith
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151380 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24test for writing modern ivar of struct type.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151378 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24__decltype is a GNU extension, not a C++11 extension.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151377 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24more objective-c modern translator ivar tests.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151376 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Two minor, related fixes for template instantiation with blocks:Douglas Gregor
- 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>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151372 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24objc modern translator. Fixes writing of block pointer ivar access.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151371 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24[analyzer] Run remove dead bindings before each call.Anna Zaks
This ensures that we report the bugs associated with symbols going out of scope in the correct function context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151369 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24[analyzer] We were silently stopping exploring the path afterAnna Zaks
visiting 'return;' statement! This most likely caused us to skip a bunch of code when analyzing with inlining. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151368 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Use -no-integrated-as only on ARM. The X86 and X86-64 integrated as have beenRafael Espindola
the default for clang for some time now and can handle compiler-rt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151367 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Revert r151357. That unreachable is reachable...Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151359 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Silence gcc warnings pointing out that CharByteWidth could be usedNick Lewycky
uninitialized. While there, restyle this function! No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151357 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Sink variable into assertMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151356 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Remove some trivial uses of hasTrivialCopyConstructor() andDouglas Gregor
hasTrivialMoveConstructor(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151354 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Kill a spurious use of hasTrivialDefaultConstructor()Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151353 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Implement a new type trait __is_trivially_constructible(T, Args...)Douglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Make PathDiagnosticBuilder sensitive to varying LocationContexts, thus ↵Ted Kremenek
fixing a bug in the inlining diagnostics where the wrong location could be used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151349 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Remove stray path in test file.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151347 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Reapply r151317, but when computing the PathDiagnostic profile and size keep ↵Ted Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151346 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Fix test for non-block-default platforms.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151343 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Revert r151317 - Rework PathDiagnostics creation.. - to appease buildbots.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151338 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24[PCH] When keeping track of top-level decls for "targeted deserialization"Argyrios Kyrtzidis
make sure we don't mistake ParmVarDecls for top-level decls. Fixes rdar://10920009. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151330 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Rework PathDiagnostic creation so that call stacks are captured by a nested ↵Ted Kremenek
PathDiagnosticCallPiece. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151317 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Add an ivar test for modern objc abi translator.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151316 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Make test works with FileCheck.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151314 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-24Reapply r151172 - Unwind path cleanup for array new list initializers - with aChad Rosier
test case that only runs on debug builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151311 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23Handle "#pragma GCC visibility" in a few more places. Switch over "#pragma ↵Eli Friedman
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.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151307 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23Modernize some code which processes CastExprs to use CastKinds. No intended ↵Eli Friedman
functional change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151298 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23[analyzer] KeyChainAPI: unique the leaks by allocation site.Anna Zaks
(Very similar to the previous change in malloc.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151297 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23objective-c++: Type of an objc string literal is NSString, not 'id'.Fariborz Jahanian
// rdar://10907410 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151296 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23Turned on support for __declspecs: noreturn, noinline, nothrow and naked in ↵Aaron Ballman
MS compatibility mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151295 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23Pull the OpaqueValueExpr's source expression into its constructor, soDouglas Gregor
that we can correctly compute value-dependence of the OVE. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151291 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23Update test for r151288Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151290 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23ARM: enable the integrated assembler by default for Darwin.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151288 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23[analyzer] Malloc: unique leak reports by allocation site.Anna Zaks
When we find two leak reports with the same allocation site, report only one of them. Provide a helper method to BugReporter to facilitate this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151287 91177308-0d34-0410-b5e6-96231b3b80d8