aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-25Better mangling for new-expressions. Also, although we can't mangle ↵Sebastian Redl
arbitrary initializer lists yet (we will need this), turn the crash into a controlled error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151455 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Temporarily revert r151288:Chad Rosier
ARM: enable the integrated assembler by default for Darwin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151454 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25CMake: install libclang.dll to $CMAKE_INSTALL_PREFIX/bin.NAKAMURA Takumi
Patch by Joe Groff. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151448 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25ArrayRef'ize various functions in the AST/Parser/Sema.Ahmed Charles
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151447 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Accept __has_feature(__feature__) as a synonym for __has_feature(feature) (andRichard Smith
likewise for __has_extension). Patch by Jonathan Sauer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151445 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Fix r151443 to only apply C++11's exception for non-static data member accessRichard Smith
in cases where we would otherwise disallow the access, and add a -Wc++98-compat diagnostic for this C++11 feature. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151444 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25PR11956: C++11's special exception for accessing non-static data members fromRichard Smith
unevaluated operands applies within member functions, too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151443 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Fix assertion (too few Diag arguments) when diagnosing a deleted operator deleteRichard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151442 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Teach CXXRecordDecl::hasIrrelevantDestructor to check the base classes andRichard Smith
data members for deleted or user-provided destructors. Now it's computed in advance, serialize it, and in passing fix all the other record DefinitionData flags whose serialization was missing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151441 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Fix a regression from r151117: ADL requires that we attempt to complete anyRichard Smith
associated classes, since it can find friend functions declared within them, but overload resolution does not otherwise require argument types to be complete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151434 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Prevent llvm.lifetime intrinsics from being emitted at -O0.Chad Rosier
rdar://10921594 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151430 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Work-in-progress for lambda conversion-to-block operator. Still need to ↵Eli Friedman
implement the retain+autorelease outside of ARC, and there's a bug that causes the generated code to crash in ARC (which I think is unrelated to my code, although I'm not completely sure). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151428 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Don't record nested macro expansions in the preprocessing record,Argyrios Kyrtzidis
it can only bring pain when dealing with preprocessor abuse (see: boost). rdar://10898986 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151427 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25RetainCountChecker: don't adjust the retain count when analyzing a ↵Ted Kremenek
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151426 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25[arcmt] GC migrator: don't try to remove redundant __strong, it doesArgyrios Kyrtzidis
more harm than good. Fixes rdar://10522805&10521433 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151424 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Improve the diagnostic in ARC mode when a conditional with an Objective-C ↵Eli Friedman
type and void* is used. <rdar://problem/10486347>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151416 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Trying to increase my Ohloh ranking with trivial tweaksDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151414 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Bugfix: bogus warning -- "invalid use of non-static data member",DeLesley Hutchins
when a class is forward declared, and the reference to the data member in question does not occur within a method body. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151413 91177308-0d34-0410-b5e6-96231b3b80d8
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