aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-27Add missing code for compound literals of complex type. ↵Eli Friedman
<rdar://problem/10938628> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151549 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Revert testing code I committed by mistake in r151464.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151548 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Just drop the bitfield from ExtProtoInfo, this struct isn't even heap ↵Benjamin Kramer
allocated so it doesn't hurt. MSVC < 10 still has the signed enum bitfield bug, making the top bit unusable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151545 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Speculatively attempt to work around a hypothetical but unreproduced MSVC issueRichard Smith
in r151494. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151544 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Test case for r151429/r151430, which ensures llvm.lifetime intrinsics are notChad Rosier
being emitted at -O0, but are emitted when optimizations are enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151533 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Serialize InitListExpr's initializesStdInitializerList bit, so it's not left ↵Benjamin Kramer
uninitialized. Found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151527 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27ObjcInterfaceTypes are also complete types for the type cache.Eric Christopher
Fixes rdar://10934887 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151519 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Make this test a bit more robust for debug info changes.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151518 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Ensure that we delete default constructors in the right cases. Don't delete theRichard Smith
default constructor of a union if it has a const member with no user-provided default constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151516 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-27Fix decltype crash-on-invalid, if we don't find a matching ')' for an ill-formedRichard Smith
decltype expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151515 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Tests for r151508.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151509 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Half of PR12088: parse braced-init-lists on the RHS of assignment operators.Richard Smith
If the assignment operator is a scalar type, we continue to incorrectly reject the initializer, but semantic analysis (and codegen) is correct for overloaded operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151508 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26[clang.py] Test Cursor.__ne__Gregory Szorc
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151504 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Reorder members to save padding.Benjamin Kramer
There's more potential here, but these Exprs aren't used that often so I don't feel like doing heroic bit packing right now. -8 bytes on every class changed (x86_64). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151501 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Move CharacterLiteral, FloatingLiteral and UnaryExprOrTypeTraitExpr flags ↵Benjamin Kramer
over into Stmt. Apply the inheritance-padding trick to FloatingLiteral. Shrinks CharacterLiteral from 32 to 24 bytes and the other two from 40 to 32 bytes (x86_64). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Make clever use of padding to shrink IntegerLiterals.Benjamin Kramer
Inheritance allows us to use padding across classes. 40 -> 32 bytes on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151499 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Bit pack StringLiteral.Benjamin Kramer
48 -> 40 bytes on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151498 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Reduce padding in MemberExpr.Benjamin Kramer
56 -> 48 bytes on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151497 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26CompoundLiteralExpr: Pair a bool with a pointer.Benjamin Kramer
48 -> 40 bytes on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151496 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Shuffle members of DesignatedInitExpr to avoid padding.Benjamin Kramer
40 -> 32 bytes on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151495 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Bit pack ExtProtoInfo.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151494 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Move FullSourceLoc::dump into the .cpp file, the used attribute made us emit ↵Benjamin Kramer
this into every TU that includes SourceLocation.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151493 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Okay, makes sense to change all the occurences to match clang.EXE.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151491 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Allow any file extension for the clang binary in the linux-header-search test.Benjamin Kramer
Turns out this can be .exe or .EXE, depending on the build system. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151490 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Don't assert when trying to diagnose why a class with a constructor template isRichard Smith
non-trivial. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151486 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Add the critical crtbegin.o files necessary for any of the tests inChandler Carruth
r151482 and r151484 to work. Sorry about the fallout... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151485 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26A follow-up to r151482 which added support for powerpc and powerpc64Chandler Carruth
Debian multiarch libraries, this should in theory add support for those platform's header search rules. I don't have a system to check this with, so review appreciated. I've added the corresponding tests referring to the debian multiarch tree. We are starting to have a relatively completely tested Linux platform for header search and library search, with several interesting peculiarities. We should point people at the debian_multiarch_tree when suggesting new tests. Folks with Debian systems that can check this for correctness, it would be much appreciated. The missing chunks I know of are testing bi-arch peudo-cross-compiling toolchains betwen 32-bit and 64-bit variants of platforms, and the MIPS and ARM Debian toolchains. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151484 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Ensure that we delete destructors in the right cases. Specifically:Richard Smith
- variant members with nontrivial destructors make the containing class's destructor deleted - check for a virtual destructor after checking for overridden methods in the base class(es) - check for an inaccessible operator delete for a class with a virtual destructor. Do not try to call an anonymous union field's destructor from the destructor of the containing class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151483 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Add support for PPC and PPC64 multiarch toolchains on Debain.Chandler Carruth
Patch from Michel Dänzer, sent our way via Jeremy Huddleston who added 64-bit support. I just added one other place where powerpc64-linux-gnu was missing (we only had powerpc64-unknown-linux-gnu). I've also added a tree to test out the debian multiarch stuff. I don't use debian regularly, so I'm not certain this is entirely accurate. If anyone wants to check it against a debian system and fix any inaccuracies, fire away. This way at least folks can see how this is *supposed* to be tested. It'd be particularly good to get the Debian MIPS toolchains tested in this way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151482 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Make sure we don't try to produce a definition of an implicitly-deleted functionRichard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151478 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Update release notes and language extensions pages to note that support forRichard Smith
generalized initializers is available. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151477 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-26Special members which are defaulted or deleted on their first declaration areRichard Smith
trivial if the implicit declaration would be. Don't forget to set the Trivial flag on the special member as well as on the class. It doesn't seem ideal that we have two separate mechanisms for storing this information, but this patch does not attempt to address that. This leaves us in an interesting position where the has_trivial_X trait for a class says 'yes' for a deleted but trivial X, but is_trivially_Xable says 'no'. This seems to be what the standard requires. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151465 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Revert r151460 as it is not enough to address the issue.Argyrios Kyrtzidis
Original log: When evaluating integer expressions handle logical operators outside VisitBinaryOperator() to reduce stack pressure for source with huge number of logical operators. Fixes rdar://10913206. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151464 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Richard Smith pointed out that there already is a proposal for init list ↵Sebastian Redl
mangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151462 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25When evaluating integer expressions handle logical operators outsideArgyrios Kyrtzidis
VisitBinaryOperator() to reduce stack pressure for source with huge number of logical operators. Fixes rdar://10913206. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151460 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Initializer lists are now supported.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151458 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25CodeGen support for global variables of type std::initializer_list<X>.Sebastian Redl
This emits a backing array with internal linkage and fills it with data, then has the initializer_list point at the array. Dynamic initialization and global destructors are correctly supported. What doesn't work is nested initializer_lists. I have no idea how to get them to work, either. However, these should be very rare, and so I'll just call it a known bug and declare generalized initializers DONE! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151457 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Fix crashers on unexpected std::initializer_list layouts. Found by inspection.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151456 91177308-0d34-0410-b5e6-96231b3b80d8
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