aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-03-29Another vtable layout fix, making us match gcc better.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99812 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Support __attribute__((packed)) (along with other attributes) at theDouglas Gregor
end of a struct/class/union in C++, from Justin Bogner! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99811 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Handle pure virtual member functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Fix a nasty bug in the virtual base computation which would lead to us ↵Anders Carlsson
initializing virtual bases in the wrong order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Be a bit more consistent in using operator->Rafael Espindola
This patch moves some methods from QualType to Type and changes the users to use -> instead of . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99805 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29More vtable work - it's not possible to use the new vtable code for ↵Anders Carlsson
everything by setting a flag inside CGVtable.cpp. My plan is to run some tests and bootstrap and once that's done flip the bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99804 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Only add thunks for the most derived class. This fixes some link errors I ↵Anders Carlsson
was seeing in files generated by the vtable tester utility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Flip the switch to always get vtables from the VTT when necessary, I've ↵Anders Carlsson
verified that clang bootstraps with this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Use the newly added function in the VTT builder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99799 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Cleanup, no functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Add the thunks needed by this vtable.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99793 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Make sure to sort the vtable thunks by their vtable index :) With this we ↵Anders Carlsson
now pass the test from http://www.codesourcery.com/public/cxx-abi/abi-examples.html#vtable-ctor successfully. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99792 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Fix another thinko, so that flags don't depend on previous bases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99791 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29When generating base ctors/dtors, we need to lookup virtual bases using the ↵Anders Carlsson
vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Fix thinko.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Use construction vtables when needed. This is currently guarded by ↵Anders Carlsson
-fdump-vtable-layouts since it doesn't work 100% yet :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99787 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29Two bug fixes, we weren't updating the thunk index when creating the vtable ↵Anders Carlsson
initializer and we weren't storing the secondary virtual pointer indices. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28Reapply r99775 with a fix for a silly bug - we were setting the vtable ↵Anders Carlsson
pointer for all bases, even those without a vtable pointer :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99777 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28Looks like I broke self-host again :(.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99776 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28More improvements to setting the vtable pointer. We now no longer set the ↵Anders Carlsson
vtable pointer for non-virtual primary bases. We also do a pre-order traversal of the class hierarchy; this is necessary in order to get the right vbase offset offsets in base ctors/dtors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99775 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28Factor vtable pointer setting code out into a separate function.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99773 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-28After performing template argument deduction for a function template,Douglas Gregor
check deduced non-type template arguments and template template arguments against the template parameters for which they were deduced, performing conversions as appropriate so that deduced template arguments get the same treatment as explicitly-specified template arguments. This is the bulk of PR6723. Also keep track of whether deduction of a non-type template argument came from an array bound (vs. anywhere else). With this information, we enforce C++ [temp.deduct.type]p17, which requires exact type matches when deduction deduces a non-type template argument from something that is not an array bound. Finally, when in a SFINAE context, translate the "zero sized arrays are an extension" extension diagnostic into a hard error (for better standard conformance), which was a minor part of PR6723. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99734 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Checker: random include cleanup.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99731 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Further improvement to point to categoryFariborz Jahanian
whose protocolls methods needs implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99730 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Give thunks the same linkage as their original methods.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99729 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Improve diagnostics on incomplete implementationFariborz Jahanian
of objc classes; including which methods need be implemented and where they come from. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99724 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Accumulate all functions and classes that the effective context isJohn McCall
nested within, and suddenly local classes start working. Wouldn't be necessary if I hadn't used local classes in Clang in the first place. Or, well, wouldn't be necessary yet. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99709 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Implement method friends in class templates and fix a few related problems.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99708 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27When given the magic class __cxxabiv1::__fundamental_type_info, produceRafael Espindola
the typeinfo for the fundamental types. Fixes PR6685. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99701 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27When mapping restrict to noalias, look for 'restrict' on the parameter variableJohn McCall
instead of the canonical parameter type (which has correctly dropped all such direct qualifiers). Fixes PR6695. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99688 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Remove unused static functionDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99666 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Put function templates instantiated from friend declarations in the correctJohn McCall
lexical context. This is required for ADL to work properly; fixes PR6716. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99665 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Compare namespaces properly when looking for redeclarations ofDouglas Gregor
namespace aliases. Fixes PR6341. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99664 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Fix NoReturnFunctionChecker to properly look at a function's typeTed Kremenek
when determining if it returns. Fixes <rdar://problem/7796563>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99663 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Add comment indicating that we intentionally don't add the noreturnTed Kremenek
attribute to a FunctionDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99662 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26When adding initializers to a constructor, be sure that we are lookingDouglas Gregor
through the bases and fields of the definition of the class in which the constructor is declared, rather than some other declaration of that class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99661 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Driver/Darwin: Support CCC_ENABLE_NEW_DARWIN_TOOLCHAIN as an environmentDaniel Dunbar
override to enable use of the DarwinClang tool chain on all platforms (not just ARM). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99660 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Properly account for redeclarations when explicitly instantiating class ↵John McCall
templates. What happens here is that we actually turn the first declaration into a definition, regardless of whether it was actually originally a definition, and furthermore we do this all after we've instantiated all the declarations. This exposes a bug in my DefinitionData patch where it was only setting the DefinitionData for previous declarations, not future declarations. Fortunately, there's an iterator for that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99657 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26When trying to determine whether one operand of a conditionalDouglas Gregor
expression can be converted to the type of another, only apply the lvalue-to-rvalue conversion to the type of the expression we're converting, *not* the array-to-pointer or function-to-pointer conversions. Fixes PR6595. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99652 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Eliminate the non-InitializedEntity PerformCopyInitialization() andDouglas Gregor
re-route its only caller to the newer PerformCopyInitialization(). We're down to one remaining caller of Sema::CheckReferenceInit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99650 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Fix 80 col violations.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Switch semantic analysis of the conditional operator from usingDouglas Gregor
CheckReferenceInit to using the new initialization sequence code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Runtime: Install the new libcc_kext.a produced by the clang_darwin compiler-rtDaniel Dunbar
configuration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99641 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26fix a case where macro expansion should be disabled, patch by Chris Lattner
Abramo Bagnara! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99626 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26fix a bug in paste avoidance which would cause us to accidentallyChris Lattner
form a >>=. Patch by Abramo Bagnara, testcase by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99624 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Implement new mangling for vectors.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99616 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Do not mark the destructor of a function parameter's type. Fixes PR6709.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99615 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Revert r99612 and see if it fixes self-host.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99614 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26Don't initialize virtual pointers for primary bases, they've already been ↵Anders Carlsson
initialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-26When deducing an integral template argument for a non-type templateDouglas Gregor
parameter, keep the integral value exactly as it was in the source code rather than trying to convert it to the type of the non-type template parameter (which may still be dependent!). The value will then be converted to the appropriate type once we check the resulting template arguments. Fixes PR6707. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99611 91177308-0d34-0410-b5e6-96231b3b80d8