c8645e38bfe5ab46e424b7aaca53c064105c4265 |
15-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Handle an edge case involving the conditional operator and throw expressions. PR10582. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142047 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expressions.cpp
|
8eb5b29ec11f5f6922132a68f8e88a9b0f69a489 |
15-Oct-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Missed tests for half FP support git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142017 91177308-0d34-0410-b5e6-96231b3b80d8
p16-mangle.cpp
p16-overload.cpp
|
2ed7cb649aa709b875c519f4a980a1e2b5712370 |
14-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR11124: Don't overwrite memory outside of a base class when performing zero-initialization before running its constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141933 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
762bb9d0ad20320b9f97a841dce57ba5e8e48b07 |
14-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Update all tests other than Driver/std.cpp to use -std=c++11 rather than -std=c++0x. Patch by Ahmed Charles! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141900 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
rray-construction.cpp
rray-operator-delete-call.cpp
ast-conversion.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onstructor-init.cpp
onstructor-template.cpp
onversion-function.cpp
onvert-to-fptr.cpp
opy-assign-synthesis-1.cpp
xx0x-defaulted-templates.cpp
xx0x-delegating-ctors.cpp
xx0x-initializer-scalars.cpp
ebug-info-char16.cpp
ebug-info-cxx0x.cpp
ebug-info-nullptr.cpp
erived-to-base-conv.cpp
ynamic-cast-always-null.cpp
h.cpp
or-range-temporaries.cpp
or-range.cpp
lobal-array-destruction.cpp
angle-alias-template.cpp
angle-exprs.cpp
angle-ref-qualifiers.cpp
angle-unnameable-conversions.cpp
angle-variadic-templates.cpp
angle.cpp
ember-init-anon-union.cpp
ember-init-ctor.cpp
ullptr.cpp
r9965.cpp
tr-to-member-function.cpp
einterpret-cast.cpp
value-references.cpp
coped-enums.cpp
tatic-assert.cpp
nion-dtor.cpp
ararg-conversion-ctor.cpp
ariadic-templates.cpp
|
13e1bca90dc227e1e9c30900841f8bf976c0c83e |
11-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
When performing a user-defined conversion via a constructor, be sure to check whether the constructor is accessible. Fixes <rdar://problem/10202900>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141588 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-convert.cpp
|
6595935602f57b4f2115785bb39dabc83e4232dc |
07-Oct-2011 |
John McCall <rjmccall@apple.com> |
Record layout requires not just a definition, but a complete definition. Assert this. Change IR generation to not try to aggressively emit the IR translation of a record during its own definition. Fixes PR10912. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141350 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
|
8ed3adec26af254dd6df6b34546737045f353670 |
27-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Move test, so it actually tests what it is supposed to (given that we don't have an AST verifier). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140620 91177308-0d34-0410-b5e6-96231b3b80d8
value-references.cpp
|
9984d12729206c9c8d8009ed7eaab5be18c7ce89 |
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move vtable dumper call to VTableBuilder ctor git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140508 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
bf1c5aeadc5d4bb7fca5b0ee12208a94971f8492 |
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGen git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140503 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
isibility.cpp
|
cea8d966f826554f0679595e9371e314e8dbc1cf |
24-Sep-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Treat list-initialization of scalars as a first-class citizen in C++11. Allow empty initializer lists for scalars, which mean value-initialization. Constant evaluation for single-element and empty initializer lists for scalars. Codegen for empty initializer lists for scalars. Test case comes in next commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140459 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-initializer-scalars.cpp
|
b681fb180dd1d1e8659006f1987711dcc92a6241 |
22-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Explicitly-defaulted copy/move constructors are not "implicit", but they still need the logic to cope with array member initialization. Fixes PR10720. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140302 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
ca82a82082edc982a1fb5fcfef2dd2c8cf9bc824 |
21-Sep-2011 |
John McCall <rjmccall@apple.com> |
Enforce access control for conversion operators used in contextual conversions (rather than just call-arguments). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140244 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
285cfd8953d4ca4da613a47a0d691f7234068f8c |
19-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Throw the switch to convert clang to the new exception handling model! This model uses the 'landingpad' instruction, which is pinned to the top of the landing pad. (A landing pad is defined as the destination of the unwind branch of an invoke instruction.) All of the information needed to generate the correct exception handling metadata during code generation is encoded into the landingpad instruction. The new 'resume' instruction takes the place of the llvm.eh.resume intrinsic call. It's lowered in much the same way as the intrinsic is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140049 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
estructors.cpp
ynamic-cast.cpp
h.cpp
rvo.cpp
artial-destruction.cpp
hreadsafe-statics-exceptions.cpp
ypeid.cpp
|
5584d91c938384b57563edbca5c2d4f1c66ff02a |
19-Sep-2011 |
John McCall <rjmccall@apple.com> |
In apple-kext mode, use external linkage for explicit template instantiations instead of internal linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140030 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-linkage.C
|
416f63e42d4c34a38833a3aa8fa1ebb3c847722b |
18-Sep-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR10304: Do not call destructors for data members from union destructors. Prior to C++11, this has no effect since any such destructors must be trivial, and in C++11 such destructors must not be called. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139997 91177308-0d34-0410-b5e6-96231b3b80d8
nion-dtor.cpp
|
16ee8191ca6953e173c983e3175a8d7504b5baae |
18-Sep-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix PR10531. Attach an initializer to anonymous unions, since the default constructor might not be trivial (if there is an in-class initializer for some member) and might be deleted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139991 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
ember-init-anon-union.cpp
|
f60dca355d3e754b7a51726c7455d1e7583a65ba |
15-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info for c++0x nullptr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139752 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-char16.cpp
ebug-info-nullptr.cpp
|
eb43f4a8f133c2bc510ae136a556e92b68a6ff44 |
14-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Re-commit r139643. Make clang use Acquire loads and Release stores where necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139650 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
a179b531f4728b91291bfbf639ddf71ed7db810a |
14-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r139643 while I look into it; it's breaking selfhost. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139648 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
93013b235680b184be3cda150bcd6456944415f4 |
13-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make clang use Acquire loads and Release stores where necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139643 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
74a292f2bb0129abba4a5de71d6eebf65ce37803 |
12-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Update test to fix windows buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139513 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-char16.cpp
|
e8ee3f2cda32818f30004226f7d8d27bada9b509 |
12-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Fix debug info encodings for char16_t and char32_t. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139502 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-char16.cpp
|
68f76b112cb50b6dd6cf6935680bc8f242f43441 |
10-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info for wchar_t. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139443 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-wchar.cpp
|
1ddc9c4674b7c737ec65241a531df8c64e40b0a9 |
06-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When extracting the callee declaration from a call expression, be sure to look through SubstNonTypeTemplateParmExprs. Then, update the IR generation of CallExprs to actually use CallExpr::getCalleeDecl() rather than attempting to mimick its behavior (badly). Fixes <rdar://problem/10063539>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139185 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
|
576cf17055c92e7d1ae8fb9fd9f79433a16a4394 |
06-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Rearrange code so that we pass the right pointer to delete[] when an exception is thrown constructing the array elements in an array new expression. Fixes PR10870. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139158 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
f747ce6235e9257230846f52b5fc79e65c210444 |
05-Sep-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR10506: Extend test for temporary cleanups in range-based for loop to cover the dependent case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139109 91177308-0d34-0410-b5e6-96231b3b80d8
or-range-temporaries.cpp
|
7803ec829d1cc657e21bb0d1afb8596a81bfd542 |
01-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Don't try to emit unsupported templated friend declarations. They're unsupported and may very well be dependent-types, triggering an assertion in debug info codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138970 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
49e34be6ae0c25b9843610cdd2fd6fea9cd8b870 |
30-Aug-2011 |
John McCall <rjmccall@apple.com> |
The size of struct UnwindException varies by platform with no apparent general rule. Just special-case it as appropriate. PR10789. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138792 91177308-0d34-0410-b5e6-96231b3b80d8
izeof-unwind-exception.cpp
|
2148011bffc011f8e5f5b6dc1e312fa4afbc10a9 |
30-Aug-2011 |
John McCall <rjmccall@apple.com> |
Be sure to emit lvalue-to-rvalue casts for loads from x-values. Doing this happens to disrupt the pattern that ARC was looking for for move optimizations, so we need to fix that simultaneously. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138789 91177308-0d34-0410-b5e6-96231b3b80d8
value-references.cpp
|
5f8d604246976a93a73549b07bbc8ee0b2061b50 |
27-Aug-2011 |
John McCall <rjmccall@apple.com> |
The lvalue-to-rvalue on structs in C++ is actually part of default argument promotion and needs to happen unconditionally. This is particularly semantically important in C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138691 91177308-0d34-0410-b5e6-96231b3b80d8
arargs.cpp
|
4418439220a8f8e0b1deffdccce2354854c702f5 |
26-Aug-2011 |
John McCall <rjmccall@apple.com> |
Since the 'is aliased' bit is critical for correctness in C++, it really shouldn't be optional. Fix the remaining place where a temporary was being passed as potentially-aliased memory. Fixes PR10756. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138627 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-expr-lvalue.cpp
|
90b2bdf3b96892ea44e5bf6869a92a08d09a6545 |
26-Aug-2011 |
John McCall <rjmccall@apple.com> |
An initialization does not alias. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138624 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
1366862c3f5d390140b5978380d9ac7317d60fc6 |
26-Aug-2011 |
John McCall <rjmccall@apple.com> |
The allocated exception slot does not alias anything; should fix self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138615 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
410ffb2bc5f072d58a73c14560345bcf77dec1cc |
26-Aug-2011 |
John McCall <rjmccall@apple.com> |
Track whether an AggValueSlot is potentially aliased, and do not emit call results into potentially aliased slots. This allows us to properly mark indirect return slots as noalias, at the cost of requiring an extra memcpy when assigning an aggregate call result into a l-value. It also brings us into compliance with the x86-64 ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138599 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
86_32-arguments.cpp
|
c44e94143e7c73542d370f9de3f4cf3b84518e61 |
20-Aug-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove this test. It requires C++ standard library headers, which we'd like to avoid within the Clang test suite, it doesn't verify the output at all so it only servers as a test that Clang doesn't crash, and finally all it does is declare a function that returns a vector and call it. Probably the biggest thing being tested here is Clang's parsing of the vector template, and we have lots of good template parsing tests. We don't need another in codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138197 91177308-0d34-0410-b5e6-96231b3b80d8
003-11-25-ReturningOpaqueByValue.cpp
|
3526e47a4a1c668374fb5ce79d62a8d39bb43d73 |
20-Aug-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test/CodeGenCXX/2003-11-25-ReturningOpaqueByValue.cpp: Mark XFAIL: win32. FIXME: Avoid using system headers. clang cannot handle MS <vector> yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138190 91177308-0d34-0410-b5e6-96231b3b80d8
003-11-25-ReturningOpaqueByValue.cpp
|
f9a642f47e51ac66b91097f1f123e8ab0a06eb97 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Remove this file, it's not much of a test and string headers cause problems on windows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138166 91177308-0d34-0410-b5e6-96231b3b80d8
004-09-27-CompilerCrash.cpp
|
aeac10e7b074d87522ccc5fad919417092971c57 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate, FileCheckize and update: 2003-11-02-WeakLinkage.cpp 2003-11-18-PtrMemConstantInitializer.cpp 2003-11-25-ReturningOpaqueByValue.cpp 2003-11-27-MultipleInheritanceThunk.cpp 2003-11-29-DuplicatedCleanupTest.cpp 2003-12-08-ArrayOfPtrToMemberFunc.cpp 2004-01-11-DynamicInitializedConstant.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138162 91177308-0d34-0410-b5e6-96231b3b80d8
003-11-02-WeakLinkage.cpp
003-11-18-PtrMemConstantInitializer.cpp
003-11-25-ReturningOpaqueByValue.cpp
003-11-27-MultipleInheritanceThunk.cpp
003-11-29-DuplicatedCleanupTest.cpp
003-12-08-ArrayOfPtrToMemberFunc.cpp
004-01-11-DynamicInitializedConstant.cpp
|
2368b6af4a5f0c07c7b77f8900a956dce75bbf84 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate, FileCheckize and update: 2004-03-08-ReinterpretCastCopy.cpp 2004-03-09-UnmangledBuiltinMethods.cpp 2004-03-15-CleanupsAndGotos.cpp 2004-06-08-LateTemplateInstantiation.cpp 2004-09-27-CompilerCrash.cpp 2004-09-27-DidntEmitTemplate.cpp 2004-11-27-ExceptionCleanupAssertion.cpp 2004-11-27-FriendDefaultArgCrash.cpp 2005-01-03-StaticInitializers.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138157 91177308-0d34-0410-b5e6-96231b3b80d8
004-03-08-ReinterpretCastCopy.cpp
004-03-09-UnmangledBuiltinMethods.cpp
004-03-15-CleanupsAndGotos.cpp
004-06-08-LateTemplateInstantiation.cpp
004-09-27-CompilerCrash.cpp
004-09-27-DidntEmitTemplate.cpp
004-11-27-ExceptionCleanupAssertion.cpp
004-11-27-FriendDefaultArgCrash.cpp
005-01-03-StaticInitializers.cpp
|
51abac1f2cbc10cf1bf38727e05ea9716b4c79a3 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Modify the check line to be happier on windows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138152 91177308-0d34-0410-b5e6-96231b3b80d8
006-11-20-GlobalSymbols.cpp
|
56a89eace2c91a9ef2fe8fb6cf43c630859a2a1e |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Remove dead file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138150 91177308-0d34-0410-b5e6-96231b3b80d8
006-11-20-GlobalSymbols.ll
|
16d482ebe8abb5a8eaf5d3407e90c96e6afa397b |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate, FileCheckize and update: 2005-02-11-AnonymousUnion.cpp 2005-02-13-BadDynamicInit.cpp 2005-02-14-BitFieldOffset.cpp 2005-02-19-BitfieldStructCrash.cpp 2005-02-19-UnnamedVirtualThunkArgument.cpp 2005-02-20-BrokenReferenceTest.cpp 2006-03-01-GimplifyCrash.cpp 2006-03-06-C++RecurseCrash.cpp 2006-09-12-OpaqueStructCrash.cpp 2006-10-30-ClassBitfield.cpp 2006-11-20-GlobalSymbols.cpp 2006-11-20-GlobalSymbols.ll 2006-11-30-ConstantExprCrash.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138148 91177308-0d34-0410-b5e6-96231b3b80d8
005-02-11-AnonymousUnion.cpp
005-02-13-BadDynamicInit.cpp
005-02-14-BitFieldOffset.cpp
005-02-19-BitfieldStructCrash.cpp
005-02-19-UnnamedVirtualThunkArgument.cpp
005-02-20-BrokenReferenceTest.cpp
006-03-01-GimplifyCrash.cpp
006-03-06-C++RecurseCrash.cpp
006-09-12-OpaqueStructCrash.cpp
006-10-30-ClassBitfield.cpp
006-11-20-GlobalSymbols.cpp
006-11-20-GlobalSymbols.ll
006-11-30-ConstantExprCrash.cpp
|
2ba4fde1915029f97c44e562e354320a5c10ac65 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Try removing xfail and xtarget to see if this brings back a couple of bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138139 91177308-0d34-0410-b5e6-96231b3b80d8
009-03-17-dbg.cpp
|
3b20b9ee0da7f840369088874e3f806d71309d77 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2007-01-02-UnboundedArray.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138138 91177308-0d34-0410-b5e6-96231b3b80d8
007-01-02-UnboundedArray.cpp
|
335552e3fff9f41067cccfd72557f801d398949a |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate: 2007-01-06-PtrMethodInit.cpp 2007-04-05-PackedBitFields-1.cpp 2007-04-05-PackedBitFieldsOverlap-2.cpp 2007-04-05-PackedBitFieldsOverlap.cpp 2007-04-05-PackedBitFieldsSmall.cpp 2007-04-05-StructPackedFieldUnpacked.cpp 2007-04-10-PackedUnion.cpp 2007-04-14-FNoBuiltin.cpp 2007-05-03-VectorInit.cpp 2007-07-29-RestrictPtrArg.cpp 2007-07-29-RestrictRefArg.cpp 2007-09-10-RecursiveTypeResolution.cpp from llvm/test/FrontendC++ and FileCheckize where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138134 91177308-0d34-0410-b5e6-96231b3b80d8
007-01-06-PtrMethodInit.cpp
007-04-05-PackedBitFields-1.cpp
007-04-05-PackedBitFieldsOverlap-2.cpp
007-04-05-PackedBitFieldsOverlap.cpp
007-04-05-PackedBitFieldsSmall.cpp
007-04-05-StructPackedFieldUnpacked.cpp
007-04-10-PackedUnion.cpp
007-04-14-FNoBuiltin.cpp
007-05-03-VectorInit.cpp
007-07-29-RestrictPtrArg.cpp
007-07-29-RestrictRefArg.cpp
007-09-10-RecursiveTypeResolution.cpp
|
e6452785f095db92887ad403299bfa616ce198e2 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Remove 2008-10-29-WrongOffset.cpp since it requires a header file on all platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138118 91177308-0d34-0410-b5e6-96231b3b80d8
008-10-29-WrongOffset.cpp
|
97b02c5b69faf19b052f2f54062c00d3ee508e85 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2007-10-01-StructResize.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138117 91177308-0d34-0410-b5e6-96231b3b80d8
007-10-01-StructResize.cpp
|
44f609cb821ca41505d748ec26006ff88a07d14b |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2008-01-12-VecInit.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138114 91177308-0d34-0410-b5e6-96231b3b80d8
008-01-12-VecInit.cpp
|
3d8838033abf3e101fc6043da4b0907bec54a4ad |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2008-05-07-CrazyOffsetOf.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138113 91177308-0d34-0410-b5e6-96231b3b80d8
008-05-07-CrazyOffsetOf.cpp
|
7b9bb7239efc46914980c94c2f63eacb70332d88 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2008-10-29-WrongOffset.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138112 91177308-0d34-0410-b5e6-96231b3b80d8
008-10-29-WrongOffset.cpp
|
723665f4aef3f205efd52c4ea5ae3e96f21debc3 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-03-17-dbg.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138111 91177308-0d34-0410-b5e6-96231b3b80d8
009-03-17-dbg.cpp
|
f54a225e288153687966d878aa3ad3a670f50a3b |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-04-23-bool2.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138110 91177308-0d34-0410-b5e6-96231b3b80d8
009-04-23-bool2.cpp
|
e90e9c3856599ad700119f0fcf21ada8513b6484 |
20-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Remove this test. It's failing and it's not that good of a test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138106 91177308-0d34-0410-b5e6-96231b3b80d8
009-07-16-PrivateCopyConstructor.cpp
|
28e7d2ac03c33182dd748747f0038c30edfd0cb4 |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-06-16-DebugInfoCrash.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138099 91177308-0d34-0410-b5e6-96231b3b80d8
009-06-16-DebugInfoCrash.cpp
|
c0791f182496b8417e56b9766673e1e761d23eb1 |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-07-16-PrivateCopyConstructor.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138098 91177308-0d34-0410-b5e6-96231b3b80d8
009-07-16-PrivateCopyConstructor.cpp
|
59de6831d7150eef2420532b067b1dda02ae0d62 |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-08-05-ZeroInitWidth.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138097 91177308-0d34-0410-b5e6-96231b3b80d8
009-08-05-ZeroInitWidth.cpp
|
3592f64d12e1984cc5beba5c8ee73f96171094b8 |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-07-16-Using.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138096 91177308-0d34-0410-b5e6-96231b3b80d8
009-07-16-Using.cpp
|
07881a2bc0a3b6dfa3e902c36edd21f405d806bf |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-08-11-VectorRetTy.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138095 91177308-0d34-0410-b5e6-96231b3b80d8
009-08-11-VectorRetTy.cpp
|
ea6de30238b26f4a318db92ce69b3776b707e363 |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-09-09-packed-layout.cpp test from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138090 91177308-0d34-0410-b5e6-96231b3b80d8
009-09-09-packed-layout.cpp
|
2c56377faf55ecd9afa7319297536d8a884f0d8b |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-10-27-crash.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138089 91177308-0d34-0410-b5e6-96231b3b80d8
009-10-27-crash.cpp
|
8a8d6d829b84e2321e5f68392401e0cdf1942fee |
19-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate 2009-12-23-MissingSext.cpp from test/FrontendC++ and modify for sext -> and difference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138088 91177308-0d34-0410-b5e6-96231b3b80d8
009-12-23-MissingSext.cpp
|
1999c7c8fa8393e0986b12328b2366a18d6038ff |
19-Aug-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Do not depend on the standard library on the system. Replace the #include with the relevant section of libcxx. As an aside, I am not at all confident that this test is still testing that it's supposed to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138075 91177308-0d34-0410-b5e6-96231b3b80d8
eak-external.cpp
|
80f5b16efb658dabbcf971f42ed8b789aaaa6baa |
18-Aug-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Always mark friend function declarations in class templates as implicitly instantiable, even if we don't see a body on the friend function declaration. The body may simply have not yet been attached. This fixes PR10666. There may be an alternate, preferred implementation strategy, see my FIXME. Review would definitely be appreciated Doug. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137934 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
|
5d6a4ad65726c1825134800cfb7cb5e81b4dc0f3 |
18-Aug-2011 |
John McCall <rjmccall@apple.com> |
Somehow I fouled up this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137882 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
|
d963c37eb912342c8325048749e449861cf0a6e3 |
17-Aug-2011 |
John McCall <rjmccall@apple.com> |
Gather cleanups correctly in block return statements. Thanks to Ted for finding this with magic tools. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137877 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
|
4cbac2ace8db75b093e0b37b97aa4a751615020f |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate test from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137773 91177308-0d34-0410-b5e6-96231b3b80d8
010-05-10-Var-DbgInfo.cpp
|
1c8346cebe574d07f94322de2e87739907f09c56 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate from llvm/test/FrontendC++ and FileCheckize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137772 91177308-0d34-0410-b5e6-96231b3b80d8
010-05-11-alwaysinlineinstantiation.cpp
|
02394ff54d976b66e8301ed9b3bff8d8e6f50170 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137771 91177308-0d34-0410-b5e6-96231b3b80d8
010-05-12-PtrToMember-Dbg.cpp
|
6ddb0402ee416f477684c983512800a16db66a8e |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate test from llvm/test/FrontendC++ and FileCheckize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137770 91177308-0d34-0410-b5e6-96231b3b80d8
010-06-21-LocalVarDbg.cpp
|
ffe57aafe6b3b034547831134f7899848a88353e |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate test from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137769 91177308-0d34-0410-b5e6-96231b3b80d8
010-06-22-BitfieldInit.cpp
|
2b94c6954dc4040736c378dda869b685452ce1e0 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137768 91177308-0d34-0410-b5e6-96231b3b80d8
010-06-22-ZeroBitfield.cpp
|
b7f124c7452fb81fe869dc9eb0b4f58a81c067ca |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137767 91177308-0d34-0410-b5e6-96231b3b80d8
010-07-23-DeclLoc.cpp
|
61329d6c371365ad07fc8b5fb72fbaea453d05bf |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate test from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137766 91177308-0d34-0410-b5e6-96231b3b80d8
64-ptr.cpp
|
b5715827f530579809f31d88be7ea9e5f337c2c3 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137765 91177308-0d34-0410-b5e6-96231b3b80d8
ember-alignment.cpp
|
b06cf89e0d7f5184dbc9e6a40b82ac4eafc12c61 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate varargs.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137764 91177308-0d34-0410-b5e6-96231b3b80d8
arargs.cpp
|
41f001f0fcb665dd83fe19776fb1fb9997a1a242 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate weak-external.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137763 91177308-0d34-0410-b5e6-96231b3b80d8
eak-external.cpp
|
32e48a363f33fcb1a728bb0d0424349c26cdc576 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate x86-64-abi-sret-vs-2word-struct-param.cpp from llvm/test/FrontendC++ and FileCheckize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137762 91177308-0d34-0410-b5e6-96231b3b80d8
86-64-abi-sret-vs-2word-struct-param.cpp
|
230768d5faef20e38083801e8a5c72c693958bad |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Migrate thunk-linkonce-odr.cpp from llvm/test/FrontendC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137761 91177308-0d34-0410-b5e6-96231b3b80d8
hunk-linkonce-odr.cpp
|
d946bda308fa62804ec2007b2c2426e9c90e94c4 |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
FileCheckize this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137671 91177308-0d34-0410-b5e6-96231b3b80d8
009-05-04-PureConstNounwind.cpp
|
041087caec03e8855770695d3eabc0feb031f6ed |
16-Aug-2011 |
Eric Christopher <echristo@apple.com> |
'pure' and 'const' functions should also be marked nounwind. Migrate test over from llvm/test/FrontendC++ and update others to account for the change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137669 91177308-0d34-0410-b5e6-96231b3b80d8
009-05-04-PureConstNounwind.cpp
|
ec24b0ed9ccf8b34986eadeb98dd0b4a0a50f6f2 |
14-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix r137086 to actually work properly in general. PR10650. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137574 91177308-0d34-0410-b5e6-96231b3b80d8
eference-cast.cpp
|
a40b7f2c4a968a0f35f088cd009d671389b09ac2 |
13-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Update clang tests for r137527. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137535 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
olatile-1.cpp
|
777d6e56ad9b1fed9866daf3ee6486d85c5b7d32 |
11-Aug-2011 |
John McCall <rjmccall@apple.com> |
Simplify EH control flow by observing that EH scopes form a simple hierarchy of delegation, and that EH selector values are meaningful function-wide (good thing, too, or inlining wouldn't work). 2,3d 1a hierarchy of delegation and that EH selector values have the same meaning everywhere in the function instead of being meaningful only in the context of a specific selector. This removes the need for routing edges through EH cleanups, since a cleanup simply always branches to its enclosing scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137293 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
h.cpp
xceptions.cpp
oto.cpp
artial-destruction.cpp
|
4dc41c9b766140b507980a13acccf2f05ed19cd3 |
10-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Rewrite default initialization of anonymous structs/unions within a constructor. Previously, we did some bogus recursion into the fields of anonymous structs (recursively), which ended up building invalid ASTs that would cause CodeGen to crash due to invalid GEPs. Now, we instead build the default initializations based on the indirect field declarations at the top level, which properly generates the sequence of GEPs needed to initialize the proper member. Fixes PR10512 and <rdar://problem/9924046>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137212 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
3f86ce1dc64a46d9cd3675787b8af32c9158abe6 |
09-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Hand materialization of temporary expressions when emitting a scalar expression. Fxies PR10592. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137086 91177308-0d34-0410-b5e6-96231b3b80d8
eference-cast.cpp
|
6b167f4fc40477847687c004b73166f53eeda8da |
09-Aug-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Don't emit memcpy for copying fields of arrays of volatile elements. Use the the path that generates a loop. This fixes bogus error that clang puts out. // rdar://9894548 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137080 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-volatile-synthesis.cpp
|
82cd2e5c15aa909ec9613c4228ab69e07f1c6f7a |
06-Aug-2011 |
John McCall <rjmccall@apple.com> |
Be sure to destroy the normal entry block of a cleanup that we aren't actually going to make a normal cleanup for. Sometimes we optimistically create branches to such blocks for fixups, and then we resolve the fixup to somewhere within the cleanup's scope, and then the cleanup is actually not reachable for some reason. The process of resolving the fixup leaves us with switches whose default edge leads to the cleanup; we can replace that with unreachable, then (in many cases) turn the switch into an unconditional branch. Fixes PR10467. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137011 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
h.cpp
|
aebab72698ce5283395e61597a266fb04e62e390 |
02-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10566: Make sure codegen for deleting an pointer to an incomplete type actually works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136703 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
8c83031d91e36480e013eae5e31b62a3af5bd95e |
27-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix typo in test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136251 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
91873b72bf01b7170f80154f3118300ff2eacd34 |
27-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make CodeGen for array delete involving incomplete class work without crashing. Should fix regression on g++.dg/init/delete1.C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136241 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
3e23d68e2e642db107b78aac2bb27585ed0ef337 |
27-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Disable the optimization that skips emission of complete, non-virtual destructors of abstract classes. It's undefined behavior to actually call the destructor (e.g., via delete), but the presence of code that calls this destructor doesn't make the program ill-formed. Fixes <rdar://problem/9819242>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136180 91177308-0d34-0410-b5e6-96231b3b80d8
bstract-class-ctors-dtors.cpp
|
01c5d1ddc8bd589b629b8c0185c279d090bba115 |
22-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR10384: C++ allows external arrays of incomplete type as well. Many thanks to Eli for reducing this great testcase. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135752 91177308-0d34-0410-b5e6-96231b3b80d8
ncomplete-types.cpp
|
018ec4172ee2a021dc38bb274c8b21ff610e2b44 |
22-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
rename test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135751 91177308-0d34-0410-b5e6-96231b3b80d8
ncomplete-types.cpp
nit-incomplete-type.cpp
|
410b12e55395216a02a848a791a38b0f153eba87 |
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR10395 - array decay can produce an interesting type when decaying an array of incomplete type (which has type [0 x i8]*) to a normal pointer (which has incompletetype*). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135565 91177308-0d34-0410-b5e6-96231b3b80d8
nit-incomplete-type.cpp
|
b8981df0ed2886dfa221f2fad6d86872c39d3549 |
13-Jul-2011 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Reapply r134946 with fixes. Tested on Benjamin testcase and other test-suite failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135091 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
84ff0fccb180098b70504c03c3072a19e6d573af |
13-Jul-2011 |
John McCall <rjmccall@apple.com> |
Enforce access control for the destructor in a new[] expression and mark it as used. Otherwise, we can fail to instantiate or validate the destructor, which can lead to crashes in IR gen like PR10351. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135073 91177308-0d34-0410-b5e6-96231b3b80d8
artial-destruction.cpp
|
fbf780a9d1dbb191fc40c8af967c590e08724b74 |
13-Jul-2011 |
John McCall <rjmccall@apple.com> |
Okay, that rule about zero-length arrays applies to destroying them, too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135038 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
dd376cae98ce4d0ab92c90d3e9c01ee19e919f44 |
13-Jul-2011 |
John McCall <rjmccall@apple.com> |
Arrays are permitted to be zero-length in some situations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135036 91177308-0d34-0410-b5e6-96231b3b80d8
onstructors.cpp
|
c3c0766277cd64bf117450a1519c9cf762d994d4 |
13-Jul-2011 |
John McCall <rjmccall@apple.com> |
Convert the standard default-construction loops to use phis and partial destruction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135033 91177308-0d34-0410-b5e6-96231b3b80d8
ew-overflow.cpp
ew.cpp
artial-destruction.cpp
alue-init.cpp
|
e7003b72e691c4d83ba5516c58bccc2f2a4b3fe0 |
13-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate an incomplete/incorrect attempt to provide support for C++0x unrestricted unions, which ended up attempting to initialize objects in a union (which CodeGen isn't prepared for). Fixes PR9683. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135027 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
7cfd76cb5cec2aa7aaa4176339c806de6ec85a79 |
13-Jul-2011 |
John McCall <rjmccall@apple.com> |
Switch delete[] IR-generation over to the destroy framework, which implicitly makes it EH-safe as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135025 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
a8b20f70d562cdc2679f82d409832b79fc415277 |
13-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
When compiling ::delete for a class with a virtual destructor, call the complete destructor and then invoke the global delete operator. Previously, we would invoke the deleting destructor, which calls the wrong delete operator. Fixes PR10341. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135021 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
f1588660c109610e6a79c786b83b7c9bbd6ed31e |
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Improve name mangling for instantiation-dependent types that are not dependent. This covers an odd class of types such as int (&)[sizeof(sizeof(T() + T()))]; which involve template parameters but, because of some trick typically involving a form of expression that is never type-dependent, resolve down to a non-dependent type. Such types need to be mangled essentially as they were written in the source code (involving template parameters), rather than via their canonical type. In general, instantiation-dependent types should be mangled as they were written in the source. However, since we can't do that now without non-trivial refactoring of the AST (see the new FIXME), I've gone for this partial solution: only use the as-written-in-the-source mangling for these strange types that are instantiation-dependent but not dependent. This provides better compatibility with previous incarnations of Clang and with GCC. In the future, we'd like to get this right. Fixes <rdar://problem/9663282>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134984 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
91832368ef1c1158c4351bdccaa141dac818f04e |
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement name mangling for sizeof...(function parameter pack). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134974 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
3a2b657088de9413714a51bff153a59565adb3ef |
12-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a problem Eli ran into where we now reject incomplete arrays of uncompleted struct types. We now do what llvm-gcc does and compile them into [i8 x 0]. If the type is later completed, we make sure that it is appropriately cast. We compile the terrible example to something like this now: %struct.A = type { i32, i32, i32 } @g = external global [0 x i8] define void @_Z1fv() nounwind { entry: call void @_Z3fooP1A(%struct.A* bitcast ([0 x i8]* @g to %struct.A*)) ret void } declare void @_Z3fooP1A(%struct.A*) define %struct.A* @_Z2f2v() nounwind { entry: ret %struct.A* getelementptr inbounds ([0 x %struct.A]* bitcast ([0 x i8]* @g to [0 x %struct.A]*), i32 0, i64 1) } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134972 91177308-0d34-0410-b5e6-96231b3b80d8
nit-incomplete-type.cpp
|
cd87d1e4d1b0097877b0f9c2065900717d2aacba |
12-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
fix an unintended behavior change in the type system rewrite, which caused us to compile stuff like this: typedef struct { int x, y, z; } foo_t; foo_t g; into: %"struct.<anonymous>" = type { i32, i32, i32 } we now get: %struct.foo_t = type { i32, i32, i32 } This doesn't change the behavior of the compiler, but makes the IR much easier to read. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134969 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
1961791626ab0ebbd8bf901a37476d527def4edb |
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Mangle dependent template names of unknown arity git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134967 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
edee94b615059ad178b06a489312eca6e049609a |
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement the Itanium C++ ABI's mangling rule for non-instantiation-dependent sizeof and alignof expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134963 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
5e78cd43a033b3dedf741fca4fa1652f9cb3e41c |
12-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Allow us to compute linkage et al for instantiation-dependent types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134932 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
2b30dcfb769e4015f8d41c5c9a4e723ff3d522a0 |
11-Jul-2011 |
John McCall <rjmccall@apple.com> |
Emit partial destruction of structs with initializer lists. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134913 91177308-0d34-0410-b5e6-96231b3b80d8
artial-destruction.cpp
|
2673c68aa58e277ebc755b71d81aca618cdedbf9 |
11-Jul-2011 |
John McCall <rjmccall@apple.com> |
Fix a lot of problems with the partial destruction of arrays: - an off-by-one error in emission of irregular array limits for InitListExprs - use an EH partial-destruction cleanup within the normal array-destruction cleanup - get the branch destinations right for the empty check Also some refactoring which unfortunately obscures these changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134890 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
artial-destruction.cpp
|
04af8aa157c55198bba9231dd6d811cf7ecda9a5 |
10-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
relax this test a bit to hopefully work with VC++ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134870 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
3ade97504790bbc5a148baa5b3f7e577aed9c1c6 |
10-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
implement a nice new optimization: CodeGenTypes::UpdateCompletedType is called whenever a tag type is completed. We previously used that as the sign to layout the codegen representation for the tag type, which worked but meant that we laid out *every* completed type, whether it was used or not. Now we just lay out the type if we've already seen it somehow else. This means that we lay out types we've used but haven't seen a body for, but we don't lay out tons of stuff that noone cares about. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134866 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-anonymous-types.cpp
|
57eb23f34ed2586069273c66f1a9994fe2b42967 |
10-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
keep track of whether being in a RS_StructPointer state caused us to skip layout out a function accurately. If so, flush the type cache for both the function and struct case to ensure that any pointers to the functions get recomputed. This is overconservative, but with this patch clang can build itself again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134863 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
f0a8679b6e6635117533b89894646f1450cea25b |
10-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Fix the clang bootstrap and Jay's testcase from llvm-dev by being completely conservative when converting a functiontype to IR when in a "pointer within a struct" context. This has the unfortunate sideeffect of compiling all function pointers inside of structs into "{}*" which, though correct, is ugly. This has the positive side effect of being correct, and it is pretty straight-forward to improve on this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134861 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
063481a3ed951a0be68a5ba9225176c3eb8fa320 |
09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
fix this on 32-bit hosts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134840 91177308-0d34-0410-b5e6-96231b3b80d8
irt-call-offsets.cpp
|
9cbe4f0ba01ec304e1e3d071c071f7bca33631c0 |
09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
clang side to match the LLVM IR type system rewrite patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134831 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
lass-layout.cpp
onstructors.cpp
opy-constructor-elim-2.cpp
opy-initialization.cpp
elete.cpp
estructors.cpp
h.cpp
or-range.cpp
lobal-init.cpp
angle-subst-std.cpp
angle-template.cpp
ember-function-pointers.cpp
ew-overflow.cpp
ointers-to-data-members.cpp
eferences.cpp
tatic-init-3.cpp
emplate-anonymous-types.cpp
irt-call-offsets.cpp
irtual-bases.cpp
irtual-functions-incomplete-types.cpp
olatile-1.cpp
table-pointer-initialization.cpp
86_32-arguments.cpp
|
bdc4d80956c83a486e58d3df6bb524a1f66ff574 |
09-Jul-2011 |
John McCall <rjmccall@apple.com> |
A number of array-related IR-gen cleanups. - Emit default-initialization of arrays that were partially initialized with initializer lists with a loop, rather than emitting the default initializer N times; - support destroying VLAs of non-trivial type, although this is not yet exposed to users; and - support the partial destruction of arrays initialized with initializer lists when an initializer throws an exception. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134784 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
emporaries.cpp
alue-init.cpp
|
19f74acdf8842ceece578b7307884f5ba22d7f59 |
06-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use attributes from the definition (if available) when instantiating functions. Fixes PR10272. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134491 91177308-0d34-0410-b5e6-96231b3b80d8
oinline-template.cpp
|
c8fc90a854b4ccba21c85884676a80334159dd94 |
06-Jul-2011 |
John McCall <rjmccall@apple.com> |
When tree-transforming an expression sequence, always flag expanded variadic argument pack expansions as having changed, rather than doing it for each changed expansion, which leaves out zero-argument packs with catastrophic consequences. Fixes PR10260. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134483 91177308-0d34-0410-b5e6-96231b3b80d8
ariadic-templates.cpp
|
e67d1512f299e7f32182553f9941d61dae4f433e |
01-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Emit guard variables for any weak global that has a run-time initializer. Previously, we only used guard variables for weak static data members. Fixes <rdar://problem/9692249>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134266 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
df9a41f3c1d1ca5aec6e2c17e38c29cff72b8726 |
01-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix testcase git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134262 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
bcc3e660a1fdc19722157ef3e2f133418856ca3d |
01-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Don't zero-initialize default-initialized local variables that have trivial default constructors. This generated-code regression was caused by r131796, which had simplified the handling of default initialization in Sema. Fixes <rdar://problem/9694300>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134260 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
35ee32e800145a535f2676898f8f06f7ae6e9b43 |
01-Jul-2011 |
John McCall <rjmccall@apple.com> |
Just mangle substituted template parameter types as unresolved types. This is kindof questionable but seems to do more-or-less the right thing. This is not a particularly friendly part of the ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134227 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
561f81243f665cf2001caadc45df505f826b72d6 |
01-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of instantiation dependence into Clang's AST. A type/expression/template argument/etc. is instantiation-dependent if it somehow involves a template parameter, even if it doesn't meet the requirements for the more common kinds of dependence (dependent type, type-dependent expression, value-dependent expression). When we see an instantiation-dependent type, we know we always need to perform substitution into that instantiation-dependent type. This keeps us from short-circuiting evaluation in places where we shouldn't, and lets us properly implement C++0x [temp.type]p2. In theory, this would also allow us to properly mangle instantiation-dependent-but-not-dependent decltype types per the Itanium C++ ABI, but we aren't quite there because we still mangle based on the canonical type in cases like, e.g., template<unsigned> struct A { }; template<typename T> void f(A<sizeof(sizeof(decltype(T() + T())))>) { } template void f<int>(A<sizeof(sizeof(int))>); and therefore get the wrong answer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134225 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
68a51a7f9c01ccbe7232d41beeb4deb26f40b013 |
01-Jul-2011 |
John McCall <rjmccall@apple.com> |
Change the mangling of enclosing template template parameters that serve as the base template name of an unresolved-name to be mangled as a substitution. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134213 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
ded137fcab19f0aace08a28b5c91574e6b23debc |
29-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
We don't pass classes with a copy-constructor or destructor byval, so the address takes up an integer register (if one is available). Make sure the x86-64 ABI implementation takes that into account properly. The fixed implementation is compatible with the implementation both gcc and llvm-gcc use. rdar://9686430 . (This is the issue that was reported in the thread "[LLVMdev] Segfault calling LLVM libs from a clang-compiled executable".) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134059 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
d3d49bb27c7ffd9accc0a6c00e887111c0348845 |
28-Jun-2011 |
John McCall <rjmccall@apple.com> |
Be more thorough about mangling unresolved types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134011 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
6ce51ee94bd300c5f30930d96436fd53e4ea89a7 |
28-Jun-2011 |
John McCall <rjmccall@apple.com> |
Don't factor in visibility for templates and template arguments for explicit specializations with their own explicit visibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133958 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
d0e8b782787638bcc9c57022e47c28d3529f02d4 |
27-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
When instantiating a C++ "new" expression, don't fake source locations for the '(' and ')' around the initializer unless we actually have an initializer. Fixes PR10197, an issue where we were value-initializing rather than default-initializing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133913 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
913dab2525cc705e5238023a446f5371fa411883 |
25-Jun-2011 |
John McCall <rjmccall@apple.com> |
Mark the multiply which occurs as part of performing pointer arithmetic on a VLA as 'nsw', per discussion with djg, and implement pointer arithmetic (other than array accesses) and pointer subtraction for VLA types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133855 91177308-0d34-0410-b5e6-96231b3b80d8
la.cpp
|
88c1dfccf8c5d487408e3365c752ed24c867c7ce |
25-Jun-2011 |
John McCall <rjmccall@apple.com> |
Two more test cases which have been long uncommitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133842 91177308-0d34-0410-b5e6-96231b3b80d8
ew-overflow.cpp
|
bc8d40d85f3fa1e34569834916f18fecaa635152 |
24-Jun-2011 |
John McCall <rjmccall@apple.com> |
Change the IR-generation of VLAs so that we capture bounds, not sizes; so that we use well-typed allocas; and so that we properly recurse through the full set of variably-modified types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133827 91177308-0d34-0410-b5e6-96231b3b80d8
la.cpp
|
26a6ec7be5ad57aa380f62aa2c39cd073e22d9dc |
22-Jun-2011 |
John McCall <rjmccall@apple.com> |
Fix the mangling of dependent-scope decl ref expressions so that they use the unresolved-name production correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133554 91177308-0d34-0410-b5e6-96231b3b80d8
angle-template.cpp
angle.cpp
|
03e80030515c800d1ab44125b9052dfffd1bd04c |
21-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new AST node describing reference binding to temporaries. MaterializeTemporaryExpr captures a reference binding to a temporary value, making explicit that the temporary value (a prvalue) needs to be materialized into memory so that its address can be used. The intended AST invariant here is that a reference will always bind to a glvalue, and MaterializeTemporaryExpr will be used to convert prvalues into glvalues for that binding to happen. For example, given const int& r = 1.0; The initializer of "r" will be a MaterializeTemporaryExpr whose subexpression is an implicit conversion from the double literal "1.0" to an integer value. IR generation benefits most from this new node, since it was previously guessing (badly) when to materialize temporaries for the purposes of reference binding. There are likely more refactoring and cleanups we could perform there, but the introduction of MaterializeTemporaryExpr fixes PR9565, a case where IR generation would effectively bind a const reference directly to a bitfield in a struct. Addresses <rdar://problem/9552231>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133521 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
c5cbb909e8a27deb8f1a2b6b7bf56a96051af81a |
20-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Update to match mainline ConstantStruct::get API change. Also, use ConvertType on InitListExprs as they are being converted. This is needed for a forthcoming patch, and improves the IR generated anyway (see additional type names in testcases). This patch also converts a bunch of std::vector's in CGObjCMac to use C arrays. There are a ton more that should be converted as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133413 91177308-0d34-0410-b5e6-96231b3b80d8
onst-init.cpp
|
0502a224984a26087ea4d64e8e5d2dd4dca432f6 |
17-Jun-2011 |
John McCall <rjmccall@apple.com> |
Perform an acquire memory barrier on the fast path of a thread-safe static initializer check, as required by the Itanium ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133250 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
751ec9be961888f14342fb63b39bf8727f0dee49 |
17-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement proper support for generating code for compound literals in C++, which means: - binding the temporary as needed in Sema, so that we generate the appropriate call to the destructor, and - emitting the compound literal into the appropriate location for the aggregate, rather than trying to emit it as a temporary and memcpy() it. Fixes PR10138 / <rdar://problem/9615901>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133235 91177308-0d34-0410-b5e6-96231b3b80d8
ompound-literals.cpp
|
b77115d7b988f55f961e24129a62f20dfd066a94 |
17-Jun-2011 |
John McCall <rjmccall@apple.com> |
When synthesizing implicit copy/move constructors and copy/move assignment operators, don't make an initializer or sub-operation for zero-width bitfields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133221 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-copy-constructor.cpp
|
065bb5e034e2a5b6041c3a1a2df9a0ad5bf85722 |
15-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a couple more tests with ARM ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133073 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-assignment.cpp
isibility-inlines-hidden.cpp
|
12e9f8edcfdafcc78bd30f607c10fef8b3fa9fa6 |
14-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Whack a bunch of tests in CodeGenCXX to work on ARM (using ARM ABI). Batch 2 of 3. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133011 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-elim-2.cpp
efault-constructor-default-argument.cpp
angle-template.cpp
ember-init-assignment.cpp
ember-init-ctor.cpp
rvo.cpp
r9965.cpp
tmtexpr.cpp
irtual-base-destructor-call.cpp
irtual-pseudo-destructor-call.cpp
|
41f1fd40a962c2abea0324f05dffaad4e770d84d |
14-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Whack a bunch of tests in CodeGenCXX to work on ARM (using ARM ABI). Batch 1 of 3 or so. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132945 91177308-0d34-0410-b5e6-96231b3b80d8
ttr-used.cpp
lock-byref-cxx-objc.cpp
opy-constructor-elim-2.cpp
opy-constructor-synthesis-2.cpp
xx0x-defaulted-templates.cpp
xx0x-delegating-ctors.cpp
efault-constructor-template-member.cpp
lide-call-reference.cpp
|
7a614d8380297fcd2bc23986241905d97222948c |
11-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++11 in-class initialization of non-static data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132878 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-ctor.cpp
|
cb5d2d0647fdab2e36c85b417e03bf18916ce10c |
10-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10120: Make CodeGenModule::getVTableLinkage use NamedDecl::getLinkage to determine whether the vtable should be externally visible, instead of a rough approximation of it which messes up with templates. While I'm here, zap the other user of isInAnonymousNamespace outside of Decl.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132861 91177308-0d34-0410-b5e6-96231b3b80d8
nternal-linkage.cpp
|
63f62df485de57c6b0db167d96bb0f92562adb7b |
05-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Add name mangling for expr .* expr. Fixes PR9983 / <rdar://problem/9486332>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132659 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
|
5a2675d23796e8b75089acc8199b60ab61c2a19f |
04-Jun-2011 |
Galina Kistanova <gkistanova@gmail.com> |
These tests require particular registered targets. Declared as such. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132623 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-pubtypes.cpp
lobal-array-destruction.cpp
|
0ccb31c389a09216a5b60cf05bd01516ddbe8d4f |
04-Jun-2011 |
Galina Kistanova <gkistanova@gmail.com> |
These tests require particular registered targets. Declared as such. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132600 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
rray-construction.cpp
rray-operator-delete-call.cpp
all-arg-zero-temp.cpp
ast-conversion.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onstructor-template.cpp
onvert-to-fptr.cpp
opy-assign-synthesis-1.cpp
ecl-ref-init.cpp
efault-constructor-for-members.cpp
erived-to-base-conv.cpp
tr-to-member-function.cpp
|
1c29652fbcd097aa6c21511c9f4f886bb3f3a8af |
31-May-2011 |
Devang Patel <dpatel@apple.com> |
List c++ class type as public type in dwarf debug info output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132357 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-pubtypes.cpp
|
0683a1418b28b289eca4cb602ac69780f9e0a609 |
31-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Expand the coverage of the warning for constants on the RHS of logical operands: return f() || -1; where the user meant to write '|'. This bootstraps without any additional warnings. Patch by Richard Trieu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132327 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init-2.cpp
|
93c332a8ba2c193c435b293966d343dab15f555b |
28-May-2011 |
John McCall <rjmccall@apple.com> |
Convert Clang over to resuming from landing pads with llvm.eh.resume. It's quite likely that this will explode, but I need to know how. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132269 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
estructors.cpp
h.cpp
xceptions.cpp
oto.cpp
rvo.cpp
hreadsafe-statics-exceptions.cpp
|
addd80d1c80d1e9f249988452103c93a564945f0 |
27-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Back out r132209; it's breaking nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132219 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
estructors.cpp
h.cpp
rvo.cpp
hreadsafe-statics-exceptions.cpp
|
0903421e36c174a82597f83bd296f3cd5b5f169b |
27-May-2011 |
John McCall <rjmccall@apple.com> |
Implement a new, much improved version of the cleanup hack. We just need to be careful to emit landing pads that are always prepared to handle a cleanup path. This is correct mostly because of the fix to the LLVM inliner, r132200. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132209 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
estructors.cpp
h.cpp
rvo.cpp
hreadsafe-statics-exceptions.cpp
|
e4d645cbe073042d8abc1a4eb600af4ff7a8dffb |
27-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Enhance Clang to start instantiating static data member definitions within class templates when they are necessary to complete the type of the member. The canonical example is code like: template <typename T> struct S { static const int arr[]; static const int x; static int f(); }; template <typename T> const int S<T>::arr[] = { 1, 2, 3 }; template <typename T> const int S<T>::x = sizeof(arr) / sizeof(arr[0]); template <typename T> int S<T>::f() { return x; } int x = S<int>::f(); We need to instantiate S<T>::arr's definition to pick up its initializer and complete the array type. This involves new code to specially handle completing the type of an expression where the type alone is insufficient. It also requires *updating* the expression with the newly completed type. Fortunately, all the other infrastructure is already in Clang to do the instantiation, do the completion, and prune out the unused bits of code that result from this instantiation. This addresses the initial bug in PR10001, and will be a step to fleshing out other cases where we need to work harder to complete an expression's type. Who knew we still had missing C++03 "features"? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132172 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
|
2545ce1c76236c2277b90dbd4f7d01ef13fe0823 |
24-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Delete the extraneous return statement that was causing my earlier issues and also add a test. We should now handle defaulted members of templates properly. No comment as to whether or not this also holds for templated functions, but defaulting those is kind of insane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131938 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-defaulted-templates.cpp
|
eb88ae5f9acdd17ec76fb83e151a77e25e4e8f31 |
23-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Correctly propagate defaultedness across template instantiation. This fixes PR9965, but we're not out of the water yet, as we do not successfully handle out-of-line definitions, due to my utter misunderstanding of how we manage templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131920 91177308-0d34-0410-b5e6-96231b3b80d8
r9965.cpp
|
de92d739ba0ef42a5a7dcfd6e170329549d0716b |
23-May-2011 |
Chris Lattner <sabre@nondot.org> |
make the x86-32 backend specify a byval alignment, even when the code generator will do it. With this patch, clang compiles the example in PR9794 to not have an alloca temporary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131881 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
930a9abb7eb171d706c9e17a27bbcd267f0d9b3d |
21-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix our handling of the warning when one tries to pass a non-POD/non-trivial object throuugh a C-style varargs. The warning itself was default-mapped to error, but can be downgraded, but we were treating it in Sema like a hard error, silently dropping the call. Instead, treat this problem like a warning, and do what the warning says we do: abort at runtime. To do so, we fake up a __builtin_trap() expression that gets evaluated as part of the argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131805 91177308-0d34-0410-b5e6-96231b3b80d8
ararg-non-pod.cpp
|
575a1c9dc8dc5b4977194993e289f9eda7295c39 |
20-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce Type::isSignedIntegerOrEnumerationType() and Type::isUnsignedIntegerOrEnumerationType(), which are like Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also consider the underlying type of a C++0x scoped enumeration type. Audited all callers to the existing functions, switching those that need to also handle scoped enumeration types (e.g., those that deal with constant values) over to the new functions. Fixes PR9923 / <rdar://problem/9447851>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131735 91177308-0d34-0410-b5e6-96231b3b80d8
coped-enums.cpp
|
0ee33912f8ec3453856c8a32ed2c2e8007bed614 |
19-May-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reapply r121528, fixing PR9941 by delaying the exception specification check for destructors until the class is complete and destructors have been adjusted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131632 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-delegating-ctors.cpp
h.cpp
|
1d78032167c2f2d470e4270aadcb07ff71e6c7e1 |
18-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Revert r121528 as it breaks a simple testcase, which leads to, among other things, libcxx not building. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131573 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-delegating-ctors.cpp
h.cpp
|
0320a1d7b3305d1aef36ee68b77bebe170e1d30a |
18-May-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement implicit exception specifications of destructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131528 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-delegating-ctors.cpp
h.cpp
|
492bafc66bdd22128327aab11804db476688b44e |
17-May-2011 |
John McCall <rjmccall@apple.com> |
Revert r131434, my commit disabling the complete-object constructor optimization for abstract classes; there was a misunderstanding, and it turns out that there are no kexts which rely on this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131489 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-symbols.cpp
|
7aa488a7fc5c3a8cd1a2b93476150e9737760713 |
17-May-2011 |
Ted Kremenek <kremenek@apple.com> |
Fix crash on C++ code when compiling with -finstrument-functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131435 91177308-0d34-0410-b5e6-96231b3b80d8
nstrument-functions.cpp
|
3217395e88e661e2a1c2b7eecb59629f67945b41 |
17-May-2011 |
John McCall <rjmccall@apple.com> |
Emit complete-object constructors for abstract classes in kext mode for reasons that honestly really, really need to be looked into. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131434 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-symbols.cpp
|
e3d6cf2149beb1c215ea6e87023c27b4f37712ad |
16-May-2011 |
Anders Carlsson <andersca@mac.com> |
Fix another regression from the "skip vtable pointer initialization" optimization. Make sure to require a vtable when trying to get the address of a VTT, otherwise we would never end up emitting the VTT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131400 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
kip-vtable-pointer-initialization.cpp
irtual-base-destructor-call.cpp
|
b1c98a35fbd49d6404a72db4aca2ceda352380c7 |
16-May-2011 |
John McCall <rjmccall@apple.com> |
Don't actually emit calls to the reserved global placement new and delete operators; their semantics are guaranteed by the language. If someone wants to argue that freestanding compiles shouldn't recognize this, I might be convinceable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131395 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
adf5dc340db3ea99de5fe3f6c42cfee1807d445e |
15-May-2011 |
Anders Carlsson <andersca@mac.com> |
Re-enable the fix for PR9181 now that all the edge cases are handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131385 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
kip-vtable-pointer-initialization.cpp
|
7d16627081caede9691a6f46b796da4073ac14ad |
15-May-2011 |
John McCall <rjmccall@apple.com> |
The array-size operand to a new-expression is not necessarily a size_t. It can be larger, it can be smaller, it can be signed, whatever. Handle all the crazy cases with grace and spirit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131378 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
1493e2369cb426da9d916949f45e62a6e6ac5ab4 |
15-May-2011 |
Anders Carlsson <andersca@mac.com> |
Disable the optimization until the bug noticed by Sean Hunt has been fixed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131372 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
kip-vtable-pointer-initialization.cpp
|
ffb945ffb5d29b80fd93649c3572b6d87abce3fc |
15-May-2011 |
Anders Carlsson <andersca@mac.com> |
When emitting the destructor for a class with a vtable, if we can determine that the destructor body is trivial and that all member variables also have either trivial destructors or trivial destructor bodies, we don't need to initialize the vtable pointers since no virtual member functions will be called on the destructor. Fixes PR9181. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131368 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
kip-vtable-pointer-initialization.cpp
|
2bb110125e0e5adb7c1c65d12adfa34151ca1c47 |
13-May-2011 |
Douglas Gregor <dgregor@apple.com> |
When determining whether we can make a declaration into a global constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131276 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-llvm-constant.cpp
|
8e0397a39eaf9db83cbd9a3a459893fd12a3a05e |
08-May-2011 |
Anders Carlsson <andersca@mac.com> |
Don't emit complete constructors for abstract classes. Also, don't emit complete destructors for abstract classes unless the destructor is virtual and thus needs to be in the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131068 91177308-0d34-0410-b5e6-96231b3b80d8
bstract-class-ctors-dtors.cpp
|
da55074866ca2fe7f718c5d3334648d6e340fb15 |
08-May-2011 |
Douglas Gregor <dgregor@apple.com> |
In C++, allow us to emit a global as 'constant' even if it has class type, so long as it is known to have a constant initializer and the class type is a POD class. Fixes <rdar://problem/9306265>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131060 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-llvm-constant.cpp
|
7dcdf5ba9324a9577461eae302e88fdd52e310c5 |
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add an implementation of thunks for varargs methods. The implementation is a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternative implementations are outlined in FIXME's in this patch. rdar://problem/8077308 . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130993 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
3e4c6c4c79a03f5cb0c4671d7c282d623c6dc35e |
05-May-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++0x alias templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130953 91177308-0d34-0410-b5e6-96231b3b80d8
angle-alias-template.cpp
angle-unnameable-conversions.cpp
|
4f4e413f282609d4a488b44fc8669c28636a7aba |
04-May-2011 |
John McCall <rjmccall@apple.com> |
Type prefixes of unresolved-names should only be mangled as unresolved-types if they match that production, i.e. if they're template type parameters or decltypes (or, as an obvious case not yet described in the ABI document, if they're template template parameters applied to template arguments). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130824 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
3afa9753fa1243bb652bc5387ecf71044c24fd90 |
04-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Fix the delegating constructors test to not rely on basic block names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130813 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-delegating-ctors.cpp
|
b76af9c969558b4484be87933e89e76e7ee87e21 |
04-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Ensure that destructors are properly inovked when an exception leaves the body of a delegating constructor call. This means that the delegating constructor implementation should be complete and correct, though there are some rough edges (diagnostic quality with the cycle detection and using a deleted destructor). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130803 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-delegating-ctors.cpp
|
e95a8662a63b823043a582ce5d862542afe8b21e |
02-May-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test/CodeGenCXX/vtable-debug-info.cpp: It does not crash on mingw. FIXME: It would crash with -integrated-as. Implement -g on MCCOFF. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130682 91177308-0d34-0410-b5e6-96231b3b80d8
table-debug-info.cpp
|
45dce81969fe8915e53b13b81ab75a02ffe641e0 |
02-May-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test/CodeGenCXX/debug-info-namespace.cpp: Add explicit -fverbose-asm to cc1 to let cygming pass. This test seeks a verbose comment in output. By default, "-integrated-as" sets verbose-asm. Cygming is not ready for -integrated-as yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130681 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-namespace.cpp
|
fb44de956f27875def889482b5393475060392af |
02-May-2011 |
John McCall <rjmccall@apple.com> |
Store a parameter index and function prototype depth in every parameter node and use this to correctly mangle parameter references in function template signatures. A follow-up patch will improve the storage usage of these fields; here I've just done the lazy thing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130669 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
|
059ce0d92eb5a7da900ae735dc0a2ea3d64f4b0b |
01-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Fully implement delegating constructors! As far as I know, this implementation is complete but might be missing a few optimizations. Exceptions and virtual bases are handled correctly. Because I'm an optimist, the web page has appropriately been updated. If I'm wrong, feel free to downgrade its support categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130642 91177308-0d34-0410-b5e6-96231b3b80d8
xx0x-delegating-ctors.cpp
|
657baf19ca8a48a926bd3bc148b6ad1b17e53199 |
29-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Cut down unnecessary zero'ing when value-initializing arrays of C++ objects. -C++ objects with user-declared constructor don't need zero'ing. -We can zero-initialize arrays of C++ objects in "bulk" now, in which case don't zero-initialize each object again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130453 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
3b4d490b09347e0b68ec0511ddfae79dfaba77a6 |
28-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When value-initializing the elements of an array not not included in the initializer make sure that a non-trivial C++ constructor gets called. Fixes rdar://9347552 & http://llvm.org/PR9801 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130421 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
5a7e6f781afc53f3c04c146d74aa7eff15f1338e |
28-Apr-2011 |
John McCall <rjmccall@apple.com> |
Implement the mangling for non-ADL call expressions that we just worked out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130376 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
|
642a75f883e644bcfbb82e7af0313776ad1ce33c |
28-Apr-2011 |
John McCall <rjmccall@apple.com> |
When block-capturing a variable with a non-trivial destructor, make sure to mark the destructor. This normally isn't required, because the destructor should have been marked as part of the declaration of the local, but it's necessary when the variable is a parameter because it's the call sites that are responsible for those destructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130372 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
|
20c0da7787c9a7d2529e42a4a91d777778595d74 |
28-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
t/clang/type-traits Patch authored by John Wiegley. These type traits are used for parsing code that employs certain features of the Embarcadero C++ compiler. Several of these constructs are also desired by libc++, according to its project pages (such as __is_standard_layout). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130342 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
173d51286bcaff4b6b76eebf6542d3b1311142e2 |
27-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
When compiling with -fno-threadsafe-statics, guard variables for globals with internal linkage don't have to be i64, i8 works just fine! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130286 91177308-0d34-0410-b5e6-96231b3b80d8
hreadsafe-statics.cpp
|
c0a455942453a37dd7db83eb354f40a49872ab06 |
24-Apr-2011 |
John McCall <rjmccall@apple.com> |
GCC seems to create address-of expression manglings when passing *any* function as a template argument where a pointer to function is wanted. Just extend the existing hack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130084 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
a0ce15c13a69c430d8980a1fcf03f420855c18ca |
24-Apr-2011 |
John McCall <rjmccall@apple.com> |
Update the mangler for some of the "new" unresolved-name manglings. I've sent off an email requesting clarification on a few things that I wasn't sure how to handle. This also necessitated making prefixes and unresolved-prefixes get mangled separately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130083 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
1b6005285e234bc30698917b2d3abb2f1f98bc77 |
24-Apr-2011 |
John McCall <rjmccall@apple.com> |
The ABI settled on mangling float literals with lowercase hex dumps. APInt::toString doesn't do those, but it's easy to postprocess that output, and that's probably better than adding another knob to that method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130081 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
120bf32525829be4622fc85b67e38b2ff0276744 |
23-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Tie debug information for method declaration with debug information for method definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130037 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-method-spec.cpp
|
3a01693f9e05207a3ba6dfca49b457649979e3e2 |
18-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Put a typeid test in its own namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129681 91177308-0d34-0410-b5e6-96231b3b80d8
ypeid.cpp
|
f54d81f516ee01467ab0ed54b5031e552c857ff7 |
17-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Use the right type name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129674 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
|
eb9d81dff99d4996f41c93ce71b08aaf753cbae8 |
17-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
When laying out bases in, always try the "base subobject" LLVM type. If it turns out that a field or base needs to be laid out in the tail padding of the base, CGRecordLayoutBuilder::ResizeLastBaseFieldIfNecessary will convert it to an array of i8. I've audited the new test results to make sure that they are still valid. I've also verified that we pass a self-host with this change. This (finally) fixes PR5589! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129673 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
lobal-init.cpp
ointers-to-data-members.cpp
ragma-pack.cpp
86_64-arguments.cpp
|
1741d7b3c88eda8891d30f5c920d55dfd54c62f0 |
17-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Cleanup tests, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129672 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-virtual-base-class-calls-final.cpp
ynamic-cast-always-null.cpp
alue-init.cpp
|
8b8b84dd9196a0a3cf6b34f5d259605e5ec0e143 |
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Apply NAKAMURA Takumi's workaround to fix thses tests on -Asserts build. The labels there are numbered, not named, and numbered labels are formatted differently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129562 91177308-0d34-0410-b5e6-96231b3b80d8
or-range-temporaries.cpp
or-range.cpp
|
fc8f0e14ad142ed811e90fbd9a30e419e301c717 |
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix a bunch of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-byval.cpp
table-linkage.cpp
|
ad762fcdc16b9e4705b12b09d92b8c026212b906 |
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add support for C++0x's range-based for loops, as specified by the C++11 draft standard (N3291). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129541 91177308-0d34-0410-b5e6-96231b3b80d8
or-range-temporaries.cpp
or-range.cpp
|
99ace16bc6962f1fc3dc45bbbdf2eb74e555a8ad |
12-Apr-2011 |
John McCall <rjmccall@apple.com> |
Template static data members can have weak_odr linkage, not just weak linkage. Also, fix a problem where global weak variables with non-trivial initializers were getting guard variables, or at least were checking for them and then crashing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129342 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
lobal-init.cpp
pecialized-static-data-mem-init.cpp
tatic-data-member.cpp
tatic-init-3.cpp
emplate-inner-struct-visibility-hidden.cpp
|
1d1a679090afe8468c6c95f8ab9c3192683ac69f |
12-Apr-2011 |
John McCall <rjmccall@apple.com> |
Whoops. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129341 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
26fbc72b33bdbd20b0145bf117c64d373f8051e3 |
12-Apr-2011 |
John McCall <rjmccall@apple.com> |
Ignore indirect field declarations. Fixes PR9570. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129337 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
4955e57cd5de1e47be4e2f3e6c733beac166bbd8 |
12-Apr-2011 |
John McCall <rjmccall@apple.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129336 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
755d8497e39071aa24acc173ff07083e3256b8f8 |
12-Apr-2011 |
John McCall <rjmccall@apple.com> |
After some discussion with Doug, we decided that it made a lot more sense for __unknown_anytype resolution to destructively modify the AST. So that's what it does now, which significantly simplifies some of the implementation. Normal member calls work pretty cleanly now, and I added support for propagating unknown-ness through &. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129331 91177308-0d34-0410-b5e6-96231b3b80d8
nknown-anytype.cpp
|
4bdbc0cb1e29ac870b7e7985cf4a1b5c34176e8c |
11-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
If there's an invoke destination, we should use invoke instead of call when calling the __cxa_bad_typeid function. Fixes PR7400. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129273 91177308-0d34-0410-b5e6-96231b3b80d8
ypeid.cpp
|
379b5155b4566f63679e1da6b0ceb5fdfa2aec6d |
11-Apr-2011 |
John McCall <rjmccall@apple.com> |
More __unknown_anytype work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129269 91177308-0d34-0410-b5e6-96231b3b80d8
nknown-anytype.cpp
|
3ddcdd5d6c88902d24baa9e6bb240a3da88e68d4 |
11-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
When we know that a dynamic_cast always returns null, we can make CodeGenFunction::EmitDynamicCast always return null or throw a bad_cast exception. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129264 91177308-0d34-0410-b5e6-96231b3b80d8
ynamic-cast-always-null.cpp
|
3d1eee2f234ce798996c2d524b1e6f82f9f51b66 |
11-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Remove the CodeGenCXX/dyncast.cpp test; it isn't really super useful to match on huge chunks of LLVM output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129258 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
cd0b32e73a66a20a8dab7a7f0ce963dc669f7c0a |
10-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Strip off parens and no-op casts when deciding if an expr can be devirtualized. Fixes the second half of PR9660. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129253 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls.cpp
|
b8bced0b75fa4188c91753d5a1de6d164af45450 |
10-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Change CollectPrimaryBases to collect the bases in the right order. Fixes one half of PR9660. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129252 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
a5fc472b353b88be3b4981da946fb01f5a5cc0c6 |
10-Apr-2011 |
John McCall <rjmccall@apple.com> |
Fix a bunch of major problems with __unknown_anytype and properly test for them. The only major missing feature is references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129234 91177308-0d34-0410-b5e6-96231b3b80d8
nknown-anytype.cpp
|
5536daa627b508299007b735a588bf4e88825bb3 |
09-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure we or together the overflow flags of the multiply and add, so the check is triggered appropriately. Reported on cfe-dev. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129231 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
97edcb639347a4770e59af66d20abcd2b37bb4e5 |
06-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Add a test case for r128957. It fixed a bug! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128966 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-this.cpp
|
5ecb1dfb303c58138fdabeea00e73bee075b21ee |
06-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info for function template parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128948 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-fn-template.cpp
|
ba690a4112be4f0abde48ce51d41e92c79f96f3e |
05-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Incomplete type does not have any size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128855 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-template.cpp
|
ae503df62bde42440a9c4495d26d6142c4af7bcb |
01-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Do not try calculate the size of forward-declared template type array. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128725 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-template.cpp
|
f0c11f7e6848f023ced6a5b51399ba787c7d4d0b |
31-Mar-2011 |
John McCall <rjmccall@apple.com> |
After much contemplation, I've decided that we probably shouldn't "unique" __block object copy/dispose helpers for C++ objects with those for different variables with completely different semantics simply because they happen to both be no more aligned than a pointer. Found by inspection. Also, internalize most of the helper generation logic within CGBlocks.cpp, and refactor it to fit my peculiar aesthetic sense. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128618 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
|
bda0d6bda0f1a08a9fdf3ee4cf550b6b10d454ec |
27-Mar-2011 |
John McCall <rjmccall@apple.com> |
We were emitting construction v-tables with internal linkage all the time. Emit them instead with the linkage of the VTT. I'm actually really ambivalent about this; it's what GCC does, but outside of improving code size (if the linkage is coalescing), I'm not sure it's at all relevant. Construction vtables are naturally referenced only by the VTT, which is itself only referenced by complete-object constructors and destructors; giving the construction vtables possibly-external linkage is important if you have an optimization that drills through the VTT to a reference to a particular construction vtable which it cannot just emit itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128374 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
78951941f31d3c63c4178a1275e1a2db2e20da11 |
22-Mar-2011 |
John McCall <rjmccall@apple.com> |
Fix a test case and teach ClearLinkageCache() to clear the linkage of a function template decl's pattern, which was suddenly exposed by my last patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128073 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
74990f45b0bc57fca81f908efb13d2b6c6350f03 |
22-Mar-2011 |
John McCall <rjmccall@apple.com> |
File-scope static functions need to be mangled with 'L' so that they don't collide with file-scope extern functions from the same translation unit. This is basically a matter of applying the same logic to FunctionDecls as we were previously applying to VarDecls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128072 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
90e23204dbc4005736069ba821c5c8b403777500 |
22-Mar-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Output to tempfile git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128043 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-guard-variable.cpp
|
a9d129329b36660417af8f43fd5dfc75d9a5f0a1 |
18-Mar-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test/CodeGenCXX/apple-kext-guard-variable.cpp: May I appease non-darwin hosts? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127869 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-guard-variable.cpp
|
32096695c76033a6b0b1747c439f7378a11e8312 |
18-Mar-2011 |
John McCall <rjmccall@apple.com> |
The Darwin kernel does not provide useful guard variable support. Issue this as an IR-gen error; it's not really worthwhile doing this "right", i.e. in Sema, because IR gen knows a lot of tricks beyond what the constant evaluator knows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127854 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-guard-variable.cpp
|
545aa7a0f57d2bb2fc0eef83daa499300273d983 |
16-Mar-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR9494: Get rid of bitcast which was both unnecessary and written incorrectly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127768 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
8bba1f4ab1f06864fec627befdf7cf8e1ad017be |
15-Mar-2011 |
John McCall <rjmccall@apple.com> |
Reorganize the emission of (unfoldable) constant casts a bit, and make sure that upcasts of member pointer types are covered as constants. Fixed rdar://problem/9130221 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127702 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
c2f3e7f42c8bf9e8d4393a6e8c4762dafc4f28dd |
07-Mar-2011 |
John McCall <rjmccall@apple.com> |
The conditional needs to be pushed before the branch. Make the test less trivial to check this. Adjust for style. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127151 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
a7f633f522af786e80dc08dbd63e222c9414095b |
07-Mar-2011 |
John McCall <rjmccall@apple.com> |
An operator new with an empty exception specifier returns null on a bad allocation and therefore requires a null-check. We were doing that, but we weren't treating the new-initializer as being conditionally executed, which means it was possible to get ill-formed IR as in PR9298. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127147 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
ebc327977645f03e12aaeba82f7f53299e47ad3a |
06-Mar-2011 |
Anders Carlsson <andersca@mac.com> |
Correctly unwrap 'auto' types. Fixes PR9414. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127121 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-cxx0x.cpp
|
884b9dd182378c9d3ae4385ccf9030b989b3d028 |
05-Mar-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test: Mark 3 tests as XFAIL:cygwin,mingw. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127077 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-namespace.cpp
|
6f48d12aaa8c71400ebf6e9d498b13492e64bf9d |
05-Mar-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test: Mark two tests as XFAIL:mingw. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127076 91177308-0d34-0410-b5e6-96231b3b80d8
table-debug-info.cpp
|
1a0918ade0a3490c7aff243f9cd519156dfcb0bd |
04-Mar-2011 |
John McCall <rjmccall@apple.com> |
Don't consider visibility from template parameter lists if we're computing for a nested decl with explicit visibility. This is all part of the general philosophy of explicit visibility attributes, where any information that was obviously available at the attribute site should probably be ignored. Fixes PR9371. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126992 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
abea951c34876a5374d0e3678c7989b225c5c895 |
28-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Add -fcxx-exceptions to all tests that use C++ exceptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126599 91177308-0d34-0410-b5e6-96231b3b80d8
R5863-unreachable-block.cpp
nonymous-namespaces.cpp
estructors.cpp
ynamic-cast.cpp
h.cpp
xceptions-no-rtti.cpp
xceptions.cpp
oto.cpp
rvo.cpp
hreadsafe-statics-exceptions.cpp
hrow-expression-dtor.cpp
hrow-expressions.cpp
ry-catch.cpp
|
bc7fbf0d37b286b37d96b033dfaaabf9c729bca8 |
26-Feb-2011 |
John McCall <rjmccall@apple.com> |
Pretty up the emission of field l-values and use volatile and TBAA when loading references as part of that. Use 'char' TBAA when accessing (immediate!) fields of a may_alias struct; fixes PR9307. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126540 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
27f8d703e65095ca9c8c5d08a5a835b5510a730d |
25-Feb-2011 |
John McCall <rjmccall@apple.com> |
Tame an assert; the scope depth of a jump destination does not necessarily enclose the innermost normal cleanup depth, because the top of the jump scope stack might be an EH cleanup or EH scope. Fixes PR9303. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126472 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
3ee36af5bbb8c2cd203a140c3785215539cd56b4 |
22-Feb-2011 |
Devang Patel <dpatel@apple.com> |
A constructor call should force class's debug info even if -flimit-debug-info is enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126246 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-limit.cpp
|
967ecd3bed2b7f6ea04a1592dced6fc5d44d0b5d |
21-Feb-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Mangling of undeduced 'auto' types, as specified by Itanium C++ ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126140 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
|
7cc25fe47290dc302157e15b04a1f95395f43ab5 |
21-Feb-2011 |
John McCall <rjmccall@apple.com> |
Bind references to opaque r-values correctly. Add a few test cases for ?: on record types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126113 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-gnu-ext.cpp
|
aa46fe44a8b8f41d92a4ee006d6e370222c8bc87 |
21-Feb-2011 |
John McCall <rjmccall@apple.com> |
Rename test/CodeGenCXX/gnu-conditional-scalar-ext.cpp to conditional-gnu-ext.cpp for consistency with other tests (and to remove "scalar" from the name). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126104 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-gnu-ext.cpp
nu-conditional-scalar-ext.cpp
|
944ed3b8dba3a129937a4e627d235ad99d225da9 |
19-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
In addition to in-class member functions marked with the "used" attribute, we also care about those with the "constructor" attribute. Fixes PR6521. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126055 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-attr.cpp
|
e41721e7dfabcc15cb50be9075a4153f1ad648ea |
19-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Pass -fexceptions to all tests that use try/catch/throw. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126037 91177308-0d34-0410-b5e6-96231b3b80d8
R5863-unreachable-block.cpp
nonymous-namespaces.cpp
rvo.cpp
hrow-expressions.cpp
|
15e310a3b970b64a84cb30f0005bc396b4d978cb |
19-Feb-2011 |
John McCall <rjmccall@apple.com> |
Warn about code that uses variables and functions with internal linkage without defining them. This should be an error, but I'm paranoid about "uses" that end up not actually requiring a definition. I'll revisit later. Also, teach IR generation to not set internal linkage on variable declarations, just for safety's sake. Doing so produces an invalid module if the variable is not ultimately defined. Also, fix several places in the test suite where we were using internal functions without definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126016 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-convert.cpp
nternal-linkage.cpp
ey-function-vtable.cpp
hunks.cpp
|
56ca35d396d8692c384c785f9aeebcf22563fe1e |
17-Feb-2011 |
John McCall <rjmccall@apple.com> |
Change the representation of GNU ?: expressions to use a different expression class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs. Change OVEs to not be a "temporary object" in the sense that copy elision is permitted. This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right. I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125744 91177308-0d34-0410-b5e6-96231b3b80d8
nu-conditional-scalar-ext.cpp
|
a03733b28b7c0a6dde83561a8a391c1067f404a5 |
17-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Ensure that the NRVO flag has some block to insert into. Fixes PR9178! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125694 91177308-0d34-0410-b5e6-96231b3b80d8
rvo-noreturn.cc
|
e996ffd240f20a1048179d7727a6ee3227261921 |
16-Feb-2011 |
John McCall <rjmccall@apple.com> |
Save a copy expression for non-trivial copy constructions of catch variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125661 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
d6c9a0f06ce7e164024d8e4dbf2423a5c5035084 |
15-Feb-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
In -fapple-kext mode, global object construction code ends up in the text segment. // rdar://8825235. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125585 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-no-staticinit-section.C
|
f552c20b3dd21855054010e29882e563fdcccff6 |
15-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Emit in-class member function definitions that are marked "used". Fixes <rdar://problem/8684363>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125579 91177308-0d34-0410-b5e6-96231b3b80d8
ttr-used.cpp
|
9b7da1c46d6d2849f9cb51328d7fcddf2c417672 |
15-Feb-2011 |
John McCall <rjmccall@apple.com> |
Perform zero-initialization of virtual base classes when emitting a zero constant for a complete class. rdar://problem/8424975 To make this happen, track the field indexes for virtual bases in the complete object. I'm curious whether we might be better off making CGRecordLayoutBuilder *much* more reliant on ASTRecordLayout; we're currently duplicating an awful lot of the ABI layout logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125555 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
0d70d71ccbc4f7f59cadb759f61b7172a149676c |
13-Feb-2011 |
John McCall <rjmccall@apple.com> |
Look through array types when deciding whether a field requires non-trivial destruction in the destructor-aliases logic. Fixes PR 9197. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125447 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
a29bf41b8f49578207ce36f6b21ff9bb7ee77bab |
09-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
When IRgen refers to a function declaration that is not a definition, and we later find the definition, make sure that we add the definition (not the declaration) to the list of deferred definitions to emit. Fixes PR8864. Thanks to Nick Lewycky for testing this patch out git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125157 91177308-0d34-0410-b5e6-96231b3b80d8
riend-redecl.cpp
|
461c9c1bc39ed8cbe8311f396f7ee3839e9fda53 |
08-Feb-2011 |
John McCall <rjmccall@apple.com> |
Extend the const capture optimization to C++ record types with no mutable fields and with trivial destructors and copy constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125073 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
|
bb699b07426be017056c2c549ac3ffb488cab6e3 |
07-Feb-2011 |
John McCall <rjmccall@apple.com> |
When copy-capturing values for a nested capture, use a BlockDeclRefExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125021 91177308-0d34-0410-b5e6-96231b3b80d8
locks.cpp
|
976d91177a83101434c1985ea3b14f682f0f38c4 |
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Add another test that we can fully devirtualize now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124988 91177308-0d34-0410-b5e6-96231b3b80d8
table-available-externally.cpp
|
22df7b17f1b086f4347256406703d259753a0cbf |
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Fix self-host; if a thunk already exists and has available_externally linkage, we should change its linkage instead of asserting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124986 91177308-0d34-0410-b5e6-96231b3b80d8
hunks-available-externally.cpp
|
14e82fd91c6d5041aa840574143521d244f185cd |
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
When building with optimizations, emit thunks with available_externally linkage so devirtualized function calls can also be de-thunked. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124984 91177308-0d34-0410-b5e6-96231b3b80d8
hunks-available-externally.cpp
|
bbfd5babab059af14eed20b63b2aabedaa6a6ac7 |
05-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Pass a 'ForVTable' flag to GetAddrOfThunk and pass it along to GetOrCreateLLVMFunction so that we won't assert when building a thunk for an implicit virtual member function that is not marked used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124967 91177308-0d34-0410-b5e6-96231b3b80d8
table-available-externally.cpp
|
1faa89f9c619e4b2411fab4af7e22ee7a2bd9009 |
05-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Re-land r124768, with a fix for PR9130. We now emit everything except unused implicit virtual member functions when building the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124935 91177308-0d34-0410-b5e6-96231b3b80d8
table-available-externally.cpp
|
142f9e99018a85105cee570133c111a52f2053ec |
04-Feb-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
-fapple-kext cannot have 'weak' visibility in this abi. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124834 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-linkage.C
|
59d89c3b1f042e8d02872ab9700d162b13887eeb |
03-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add test from PR9130. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124781 91177308-0d34-0410-b5e6-96231b3b80d8
r9130.cpp
|
01de7a44cea9f77cbcda65faad8edc8b48a3b617 |
03-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 124768. This reopens PR99114, but that one at least can be avoided with an #include. PR9130 cannot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124780 91177308-0d34-0410-b5e6-96231b3b80d8
table-available-externally.cpp
|
aedd9d5ad3cc776fd61457050bcd54cac4c5ea66 |
03-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Don't try to mark virtual members referenced for classes where the key function is not defined in the current translation unit. Doing so lead to compile errors such as PR9114. Instead, when CodeGen is building the vtable, don't try to emit a definition for functions that aren't marked used in the current translation unit. Fixes PR9114. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124768 91177308-0d34-0410-b5e6-96231b3b80d8
table-available-externally.cpp
|
5abec14a235bff4026c030672701a9853350e8cf |
03-Feb-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
-fapple-kext, elimination of all direct calls to virtual dtors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124757 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-indirect-virtual-dtor-call.cpp
|
0ce34c6ba0aa79708a62179c0fdf96891b62b5dc |
02-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info for template value parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124756 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-template.cpp
|
fa275dfad7c4eb053ffef423a863afbe15534476 |
02-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info for template type parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124753 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-template.cpp
|
8d2968cc527fc775e1e1e72a25b581820a51225d |
02-Feb-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Turn test for // rdar://8945175 into a sema test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124748 91177308-0d34-0410-b5e6-96231b3b80d8
on-empty-class-size-zero.cpp
|
adf082e829eb71871b6043009888df3b79055dba |
02-Feb-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
For gcc compatibility, size of a class which is zero but has non-empty data fields, such as array of zero length, remains zero. // rdar://8945175 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124741 91177308-0d34-0410-b5e6-96231b3b80d8
on-empty-class-size-zero.cpp
|
7143325db76d6c3dabce82500f8cc7c93a941970 |
01-Feb-2011 |
John McCall <rjmccall@apple.com> |
Do the right thing for zero-initializing VLAs that don't have a zero bit-pattern. It's not clear that this is actually useful given current language restrictions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124685 91177308-0d34-0410-b5e6-96231b3b80d8
99-variable-length-array.cpp
|
38ca4f762aa6e6add4f6bdf6adcddfe1afe37a25 |
01-Feb-2011 |
John McCall <rjmccall@apple.com> |
Make that test case actually test something, and add another test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124654 91177308-0d34-0410-b5e6-96231b3b80d8
angle-unnamed.cpp
|
cde5a400dbc9655eddf0f383585d3cf67c11c539 |
01-Feb-2011 |
John McCall <rjmccall@apple.com> |
The code trying to assign a typedef to an anonymous tag declaration was extremely rambunctious, both on parsing and on template instantiation. Calm it down, fixing an internal consistency assert on anonymous enum instantiation manglings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124653 91177308-0d34-0410-b5e6-96231b3b80d8
angle-unnamed.cpp
|
071d3af0de273b1079d79f7f979264f28d567373 |
01-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 124633. The linker has been told how to merge available_externally. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124651 91177308-0d34-0410-b5e6-96231b3b80d8
isibility-hidden-extern-templates.cpp
|
517ebc6e13c41dc9115bc0eece93f6fc1155743e |
01-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Set visibility for available_externally globals. This is important for two reasons: * llvm-link would complains about mismatched visibility * If we produce a relocation with an available_externally, it is good to know that it is hidden. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124633 91177308-0d34-0410-b5e6-96231b3b80d8
isibility-hidden-extern-templates.cpp
|
0413db4a26b0a1577b75c2979b0eb21f3490d17a |
31-Jan-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Amazing that there are still issues with the fields of anonymous struct/unions.. Allow taking the address of such a field for a pointer-to-member constant. Fixes rdar://8818236. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124575 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
d4d3ce6ed8d4981a18d013f8694c762c47b44c77 |
31-Jan-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix test that didn't actually test what it wanted to test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124574 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
6d7f8473cd6e967b3676948894ce72472102f9cb |
30-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
When building with optimizations, emit vtables where the key is not in the current translation unit as available_externally. This helps devirtualize the second example in PR3100, comment 18: struct S { S() {}; virtual void xyzzy(); }; inline void foo(S *s) { s->xyzzy(); } void bar() { S s; foo(&s); } This involved four major changes: 1. In DefineUsedVTables, always mark virtual member functions as referenced for non-template classes and class template specializations. 2. In CodeGenVTables::ShouldEmitVTableInThisTU return true if optimizations are enabled, even if the key function is not implemented in this translation unit. We don't ever do this for code compiled with -fapple-kext, because we don't ever want to devirtualize virtual member function calls in that case. 3. Give the correct linkage for vtables where the key function is not defined. 4. Update the linkage for RTTI structures when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124565 91177308-0d34-0410-b5e6-96231b3b80d8
table-available-externally.cpp
|
806f9a3d08c08acd79fe92a335ae24cbc271e626 |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Fix test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124555 91177308-0d34-0410-b5e6-96231b3b80d8
tti-visibility.cpp
|
907c828b080332854826a87451e838930f4be788 |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
When emitting RTTI for a non-class type, compute the visibility of the RTTI data based on the explicit visibility of the type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124553 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
tti-visibility.cpp
|
6329e20058cb7a4ecbbafed3aa61437b9683eb08 |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Update tests. I'm still not sure if having the typenames be visible with -hidden-weak-vtables, but I think it makes sense. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124549 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
tti-visibility.cpp
|
3361cff6021195dc29aa9082ff8a0e5628de5f31 |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Add a test for RTTI visibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124543 91177308-0d34-0410-b5e6-96231b3b80d8
tti-visibility.cpp
|
691222d5c9de39e785f604c41c872279831a507e |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Give VTTs the right visibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124540 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
1cbce125b91cad81c8be3f8bbae8df917211176c |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Make emitting a VTT a two-step process, much like emitting a VTable. You first get the address of the VTT, and then pass it to EmitVTTDefinition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124539 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
268ab8c6b92dc40c678d8458a335698fa34915c9 |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
When trying to get the most derived class, don't assume that we can ignore all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124528 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls-final.cpp
|
1679f5a84ae1e578b0de347c89eaf31e0465f33c |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
When calling a virtual member function on a base class and the most derived class is marked 'final', we can devirtualize the call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124524 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls-final.cpp
|
336a7dc56871ccfeceecc296c9624f66f7ac01ec |
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
When doing a derived-to-base class through a virtual class, we don't have to get the vbase offset from the vtable if the derived class is marked final. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124523 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-virtual-base-class-calls-final.cpp
|
a50e33eb0ff7b73d44aebce88de3732583a7e960 |
29-Jan-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
More work to support -fapple-kext regarding indirect vf calls and addition of extra entry at bottom of vtbls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124507 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-indirect-call-2.C
|
3ad32c8d93eb65d1d4943d7df567fc9b4f55d137 |
28-Jan-2011 |
John McCall <rjmccall@apple.com> |
Convert the exception-freeing cleanup over to the conditional cleanups code, fixing a crash which probably nobody was ever going to see. In doing so, fix a horrendous number of problems with the conditional-cleanups code. Also, make conditional cleanups re-use the cleanup's activation variable, which avoids some unfortunate repetitiveness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124481 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
70a21de5b4c6ca4883ed58093e71e7884d5218fb |
28-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Allow elision of invocations of move constructors from temporary objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124455 91177308-0d34-0410-b5e6-96231b3b80d8
value-references.cpp
|
b3d5e2f181269656c1b2dbc09eab1f449d5074aa |
28-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only non-class prvalues actually require the realization of a temporary. For everything else, we already have an lvalue (or class prvalue) in the subexpression. Note: we're missing some move elision in this case. I'll tackle that next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124453 91177308-0d34-0410-b5e6-96231b3b80d8
value-references.cpp
|
6ec278d1a354517e20f13a877481453ee7940c78 |
27-Jan-2011 |
John McCall <rjmccall@apple.com> |
Do a proper recursive lookup when deciding whether a class's usual deallocation function has a two-argument form. Store the result of this check in new[] and delete[] nodes. Fixes rdar://problem/8913519 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124373 91177308-0d34-0410-b5e6-96231b3b80d8
elete-two-arg.cpp
|
b47f74818094fabd8f150fb4d6d0fa8a6c52cde1 |
26-Jan-2011 |
John McCall <rjmccall@apple.com> |
When mangling a qualified array type, push the qualifiers down to the element type. Fixes rdar://problem/8913416. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124315 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
4bbcbda302cba8b1b0d88c20d735d09b483bd005 |
26-Jan-2011 |
John McCall <rjmccall@apple.com> |
Fix some obvious bugs in the conditional-cleanup code and then make the dtor cleanup use it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124309 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
emporaries.cpp
|
0a9a6d68979619a621fedc5089674487f720f765 |
26-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Rvalue references for *this: add name mangling for ref-qualifiers, using rules that I just made up this morning. This encoding has now been proposed to the Itanium C++ ABI group for inclusion, but of course it's still possible that the mangling will change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124296 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ref-qualifiers.cpp
|
150b462afc7a713edd19bcbbbb22381fe060d4f5 |
26-Jan-2011 |
John McCall <rjmccall@apple.com> |
Better framework for conditional cleanups; untested as yet. I'm separately committing this because it incidentally changes some block orderings and minor IR issues, like using a phi instead of an unnecessary alloca. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124277 91177308-0d34-0410-b5e6-96231b3b80d8
olatile-1.cpp
|
0691a5c83246604a89654e0dfc25870e742035b4 |
25-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move unnamed_addr after the function arguments on Sabre's request. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124210 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
onstructor-init.cpp
onstructors.cpp
opy-constructor-elim-2.cpp
opy-constructor-synthesis-2.cpp
opy-constructor-synthesis.cpp
efault-arg-temps.cpp
efault-arguments.cpp
efault-constructor-template-member.cpp
elete.cpp
estructors.cpp
h.cpp
mplicit-copy-constructor.cpp
angle-subst-std.cpp
angle-template.cpp
ember-functions.cpp
ember-init-assignment.cpp
ember-templates.cpp
ointers-to-data-members.cpp
emplate-anonymous-types.cpp
emplate-instantiation.cpp
emplate-linkage.cpp
alue-init.cpp
irt-dtor-gen.cpp
irtual-base-destructor-call.cpp
irtual-bases.cpp
irtual-destructor-calls.cpp
table-pointer-initialization.cpp
|
88b22a432549e315662f96abe148923c921970cb |
25-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
When performing a glvalue-to-xvalue static_cast that involves a derived-to-base conversion, set the cast kind and base path appropriately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124189 91177308-0d34-0410-b5e6-96231b3b80d8
value-references.cpp
|
f502d93b0ea970bfbd897e657f8d940a20984de2 |
24-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the exception of explicit template instantiations, which have to be weak_odr. This fixes PR6996. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124089 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions-no-rtti.cpp
ey-function-vtable.cpp
angle-subst-std.cpp
tti-linkage.cpp
irt-template-vtable.cpp
isibility.cpp
table-key-function.cpp
table-linkage.cpp
tt-layout.cpp
|
f89e0424b8903438179f4a2f16dddd5e5bdc814e |
23-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Get rid of the [[final]] C++0x attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124083 91177308-0d34-0410-b5e6-96231b3b80d8
ttr-final-devirtualize-virtual-function-calls.cpp
evirtualize-virtual-function-calls-final.cpp
|
f5d8f466c3eebaffc51468812bdcbe7f0fe4891a |
21-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Promote the static getNRVOCandidate() function, which computed the NRVO candidate for a return statement, to Sema::getCopyElisionCandidate(), and teach it enough to also determine the NRVO candidate for a throw expression. We still don't use the latter information, however. Along the way, implement core issue 1148, which eliminates copy elision from catch parameters and clarifies that copy elision cannot occur from function parameters (which we already implemented). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123982 91177308-0d34-0410-b5e6-96231b3b80d8
rvo.cpp
|
7ac0ff2a8791280102a557761dbb931deb21a1dc |
21-Jan-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Move cheking of kext into canDevirtualizeMemberFunctionCalls(). Improve on test case. Per Doug's comment. wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123954 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-indirect-call.C
|
2726267f094a0c1f5ac5b501ec5a9898c58876bf |
20-Jan-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
apple kext abi requires all vf calls, including qualified vf calls, be made indirect. This patch is towards that goal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123922 91177308-0d34-0410-b5e6-96231b3b80d8
pple-kext-indirect-call.C
|
c532b502858032f377056dc8cba2fe43cba8702b |
18-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add unnamed_addr in CreateRuntimeVariable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123773 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
8e26222104a3fbdbed5322dc60800e32620a2a90 |
18-Jan-2011 |
Daniel Dunbar <daniel@zuster.org> |
Fix newlines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123742 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-direct-call.cpp
|
7a051b2bd32c7c9072d245055d0fa0893c259109 |
18-Jan-2011 |
Daniel Dunbar <daniel@zuster.org> |
tests: Force a triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123741 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-direct-call.cpp
|
dbee3411a22b0dbb03267f5445f7b796104991bb |
18-Jan-2011 |
Francois Pichet <pichet2000@gmail.com> |
Add support for explicit constructor calls in Microsoft mode. For example: class A{ public: A& operator=(const A& that) { if (this != &that) { this->A::~A(); this->A::A(that); // <=== explicit constructor call. } return *this; } }; More work will be needed to support an explicit call to a template constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123735 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-direct-call.cpp
|
cd3ac4bd96cb19af5117eded84bfe8320c5d787e |
15-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Also set unnamed_addr on declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123531 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
table-linkage.cpp
|
02fff572fdba94b31d8da0c538cb758380384b3b |
14-Jan-2011 |
Owen Anderson <resistor@mac.com> |
Fixed by r123477. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123478 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-ctor.cpp
|
161e40c150e1629fe2861bcfc82ea0dffc00b72f |
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
temporarily xfail, this was broken by r123418 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123430 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-ctor.cpp
|
dce73976163207916d5e6eb9529090ea7f70219e |
13-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix a test case git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123382 91177308-0d34-0410-b5e6-96231b3b80d8
ariadic-templates.cpp
|
255c269f35928a8194fb591656c67ec4ebd846eb |
13-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
When your comments and your code are out-of-sync, the test case is wrong. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123379 91177308-0d34-0410-b5e6-96231b3b80d8
angle-variadic-templates.cpp
|
4fc4866945de9b0f1f77a17557060f0ff959b0b1 |
13-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Add tests for name mangling of variadic templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123378 91177308-0d34-0410-b5e6-96231b3b80d8
angle-variadic-templates.cpp
|
62b1607e440b26f3683c92be887e8fd94af9c904 |
13-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Only add unnamed_addr to definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123354 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
table-linkage.cpp
|
9370c8f4af43a98a6f16e65f5d88d58db846e374 |
12-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Add IR generation support for SizeOfPackExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123332 91177308-0d34-0410-b5e6-96231b3b80d8
ariadic-templates.cpp
|
57244f69e2e780bb5584a37a12e31be83b1eaadb |
12-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Set unnamed_addr in every type info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123293 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions-no-rtti.cpp
tti-fundamental.cpp
tti-linkage.cpp
irt-dtor-key.cpp
table-linkage.cpp
|
82a0f4e93c055fb12f5ad7c3d146d50eb201308f |
11-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Set unnamed_addr in VTTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123280 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
isibility.cpp
tt-layout.cpp
|
b1c65ff108de47a89585ad37874bd6cb232664cd |
11-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Set unnamed_addr for type infos that we are confortable marking as hidden. I think it is safe to mark all type infos with unnamed_addr, but I am not sure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123275 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
table-linkage.cpp
|
9f959db60e8913abafe7d5f5f5a83dc6a5c8d87e |
11-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add unnamed_addr to vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123272 91177308-0d34-0410-b5e6-96231b3b80d8
ey-function-vtable.cpp
angle-subst-std.cpp
emplate-instantiation.cpp
irt-template-vtable.cpp
isibility.cpp
table-key-function.cpp
table-linkage.cpp
|
c5f657fe308f22243f674fc1dfbe24915944d8bf |
11-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add unnamed_addr to constructors and destructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123197 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
onstructor-init.cpp
onstructors.cpp
opy-constructor-elim-2.cpp
opy-constructor-synthesis-2.cpp
opy-constructor-synthesis.cpp
efault-arg-temps.cpp
efault-arguments.cpp
efault-constructor-template-member.cpp
elete.cpp
estructors.cpp
h.cpp
mplicit-copy-constructor.cpp
angle-subst-std.cpp
angle-template.cpp
ember-functions.cpp
ember-init-assignment.cpp
ember-templates.cpp
ointers-to-data-members.cpp
emplate-anonymous-types.cpp
emplate-instantiation.cpp
emplate-linkage.cpp
alue-init.cpp
irt-dtor-gen.cpp
irtual-base-destructor-call.cpp
irtual-bases.cpp
irtual-destructor-calls.cpp
table-pointer-initialization.cpp
|
1257bc6ee76b931e3f8e51a88298b95379963d24 |
10-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add unnamed_addr when creating artificial string globals. For example, in static const char foo[] = "foo"; static const char *bar = "bar"; the global created to hold "bar" will have it, but foo will not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123192 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
666b3e9858d1c4a72e2c228588fbabf1a5a629ff |
06-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Add target triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122980 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-large-constant.cpp
|
150d2df7b659105cfbab39cc85af225391952815 |
06-Jan-2011 |
Devang Patel <dpatel@apple.com> |
test case for r122971. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122972 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-large-constant.cpp
|
a490c47a1e6ba224aceba3ddf1a4e92093d733b8 |
04-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Tweak test for portability git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122850 91177308-0d34-0410-b5e6-96231b3b80d8
angle-variadic-templates.cpp
|
46268675d3f8900b1b2c1392601aa50918bfef88 |
04-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Simplistic test case for mangling of variadic templates. There is more to be done in this area git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122845 91177308-0d34-0410-b5e6-96231b3b80d8
angle-variadic-templates.cpp
|
272324bc881450a71873d2f4e72f17837d8998df |
30-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix PR8796. The problem was that we were asserting the we never added an empty class to the same offset twice. This is not true for unions, where two members, empty or not, can have the some offset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122633 91177308-0d34-0410-b5e6-96231b3b80d8
mpty-classes.cpp
|
b68e39930d06ed81a2b431dc09e4cb97e5c0d57a |
21-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
In C++, if the user redeclares a builtin function with a type that is inconsistent with the type that the builtin *should* have, forget about the builtin altogether: we don't want subsequence analyses, CodeGen, etc., to think that we have a proper builtin function. C is protected from errors here because it allows one to use a library builtin without having a declaration, and detects inconsistent (re-)declarations of builtins during declaration merging. C++ was unprotected, and therefore would crash. Fixes PR8839. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122351 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
|
124b3def9ed99dc844225aeb6b17f789307500ee |
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
add missing newlines at end of file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122309 91177308-0d34-0410-b5e6-96231b3b80d8
rray-value-initialize.cpp
ullptr.cpp
alue-init.cpp
|
d8039129f3da19819696209e4005cc73907f5c3b |
20-Dec-2010 |
Francois Pichet <pichet2000@gmail.com> |
XFAIL vtable-debug-info.cpp on WIN32 and fix curly brace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122230 91177308-0d34-0410-b5e6-96231b3b80d8
table-debug-info.cpp
|
743d9ad3a4fb06f3ca1e32abdd648618fe1627b5 |
20-Dec-2010 |
Francois Pichet <pichet2000@gmail.com> |
Disable this test on Windows; it crashes and popup an dialog on each lit test run. I have no idea how to fix it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122227 91177308-0d34-0410-b5e6-96231b3b80d8
table-debug-info.cpp
|
2b364a43f50efd3d82177c29a79e66895ab335ad |
18-Dec-2010 |
John McCall <rjmccall@apple.com> |
Fix test. I added one last test and then forget to re-check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122137 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
7f1b98760d419a09b2261c1ef901f6bc1ff33e19 |
18-Dec-2010 |
John McCall <rjmccall@apple.com> |
Apply attributes to explicit specializations. Specializations which don't provide their own explicit visibility attributes should get them from the template. Fixes rdar://problem/8778497. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122136 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
9c39acfda88268bcc7fb5521b55ce41942dcb3b0 |
17-Dec-2010 |
John McCall <rjmccall@apple.com> |
Give hidden visibility to RTTI for derived types. This is kindof a hacky way to do this, but it fixes rdar://problem/8778973 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122033 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
bfdcdc8e26097c9dbb4c40d78296f6ccc3e6684c |
15-Dec-2010 |
John McCall <rjmccall@apple.com> |
Set the "implicitly inline" bit on a method as soon as we see a definition within the class. Teach IR gen to look for function definitions in record lexical contexts when deciding whether to emit a function whose address was taken. Fixes PR8789. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121833 91177308-0d34-0410-b5e6-96231b3b80d8
nline-functions.cpp
|
90f1450c109fbbd333001165bbd986061f7c4513 |
10-Dec-2010 |
John McCall <rjmccall@apple.com> |
Treat visibility on an enclosing namespace as a non-explicit source of visibility. Fixes PR8713. I've disabled a test which was testing that you can #pragma pop visibility to get out of a namespace's visibility attribute. We should probably just diagnose that as an error unless it's instrumental to someone's system headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121459 91177308-0d34-0410-b5e6-96231b3b80d8
ragma-visibility.cpp
isibility-inlines-hidden.cpp
|
db2b42fb4d43be5af14ba33d49bbd163f01646ec |
10-Dec-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix another obscure corner layout case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121436 91177308-0d34-0410-b5e6-96231b3b80d8
ragma-pack.cpp
|
4d936ecf803f44d74d7ad92599efe2ac4213a442 |
09-Dec-2010 |
Devang Patel <dpatel@apple.com> |
Update test. This test intends to catch invalid use of ".byte 256" in output. Now, the assert in MC will be triggered in such cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121403 91177308-0d34-0410-b5e6-96231b3b80d8
table-debug-info.cpp
|
8f1509446fc51db0473ea1241910c06353a153b8 |
09-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
When an "inline" declaration was followed by a definition not marked "inline", we weren't giving the definition weak linkage because the "inline" bit wasn't propagated. This was a longstanding FIXME that, somehow, hadn't triggered a bug in the wild. Fix this problem by tracking whether any declaration was marked "inline", and clean up the semantics of GNU's "extern inline" semantics calculation based on this change. Fixes <rdar://problem/8740363>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121373 91177308-0d34-0410-b5e6-96231b3b80d8
nline-functions.cpp
|
40e17752086c2c497951d64f5ac6ab5039466113 |
09-Dec-2010 |
Francois Pichet <pichet2000@gmail.com> |
Fix PR8760: IndirectFieldDecl Type was not updated during template instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121363 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
048b905644a3a43e3daa41213a23563bec1782b2 |
09-Dec-2010 |
Devang Patel <dpatel@apple.com> |
Test case for r121323. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121324 91177308-0d34-0410-b5e6-96231b3b80d8
table-debug-info.cpp
|
f5fe2925b87cf382f2f13983c81679e38067122b |
07-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix PR8720 by printing an error message with a substring that the gcc testsuite searches for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121137 91177308-0d34-0410-b5e6-96231b3b80d8
ttr.cpp
|
cd940a1e13e588a43973cd7ae33b5c33a3062739 |
06-Dec-2010 |
John McCall <rjmccall@apple.com> |
__block variables require us to evaluate the RHS of an assignment before the LHS, or else the pointer might be invalid. This is kindof dumb, but go ahead and make sure we're doing that for l-value scalar assignment, which fixes a miscompile of obj-c++.dg/block-seq.mm. Leave a FIXME for how to solve this problem for agg __blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120992 91177308-0d34-0410-b5e6-96231b3b80d8
olatile-1.cpp
|
2a41637a995affa1563f4d82a8b026e326a2faa0 |
05-Dec-2010 |
John McCall <rjmccall@apple.com> |
Fix a bug in the emission of __real/__imag l-values on scalar operands. Fix a bug in the emission of complex compound assignment l-values. Introduce a method to emit an expression whose value isn't relevant. Make that method evaluate its operand as an l-value if it is one. Fixes our volatile compliance in C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120931 91177308-0d34-0410-b5e6-96231b3b80d8
olatile-1.cpp
olatile.cpp
|
560bf12e97773ba19e55382c32f8b64cd8315315 |
05-Dec-2010 |
Anders Carlsson <andersca@mac.com> |
Put each test in class-layout.cpp into a separate namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120925 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
|
d1d56df188e25c633f9bc65d229897b42442b0f7 |
02-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8726 by teaching the aggregate init optimization code to handle structs with references in them correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120722 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
2575585b79d3380ae5175437da160e5b56385fa8 |
02-Dec-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Test for // rdar://8594790 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120717 91177308-0d34-0410-b5e6-96231b3b80d8
lock-byref-cxx-objc.cpp
|
0ae287a498b8cec2086fe6b7e753cbb3df63e74a |
01-Dec-2010 |
John McCall <rjmccall@apple.com> |
Restore the lvalue-to-rvalue conversion patch with a minimal fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120555 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-base.cpp
|
f8b3015060096a946d91578d0f3b65d3097a4ebb |
28-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Look through parentheses when deciding whether an expr is a temporary object. Fixes PR8683. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120247 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-elim-2.cpp
|
74fb0edb44b7ed52af9b8053032ccaab29b5c0cc |
17-Nov-2010 |
John McCall <rjmccall@apple.com> |
Reset the lifetime-managed flag between emission of the agg conditional branches. Fixes PR8623. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119408 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
83ce9d4a552987d34cbd500e983db8d770232379 |
17-Nov-2010 |
John McCall <rjmccall@apple.com> |
Support compound complex operations as l-values in C++. Add a test case based on CodeGen/volatile-1.c which tests the current C++ semantics, and note the many, many places we fall short of them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119402 91177308-0d34-0410-b5e6-96231b3b80d8
olatile-1.cpp
|
560ba1472cb6dc574ad726bbe01c8311f6fa9187 |
16-Nov-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a test for Neon vector mangling git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119304 91177308-0d34-0410-b5e6-96231b3b80d8
angle-neon-vectors.cpp
|
af5fd25a808f3059f988cced0d30fa3b19d027fd |
14-Nov-2010 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test/CodeGenCXX/dyncast.cpp: Remove XFAIL:win32 with tweaking llvm/utils/FileCheck in r119023, due to DOSish crlf issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119024 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
34999876e215b22febc240b1a6dc054215d12f9c |
13-Nov-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Block API patch to do copy ctor of copied-in cxx objects in copy helper function and dtor of copied cxx objects in dispose helper functions. __block variables TBD next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119011 91177308-0d34-0410-b5e6-96231b3b80d8
xx-block-objects.cpp
|
ee743f903858e337434ac0335f147f4de4ecae05 |
09-Nov-2010 |
Charles Davis <cdavis@mines.edu> |
Use the right calling convention when mangling names in the Microsoft C++ mangler. Now member functions and pointers thereof have their calling convention mangled as __thiscall if they have the default CC (even though, they technically still have the __cdecl CC). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118598 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
4e3b17c9ce4a198eaeac4355b12e4b523185ecb5 |
09-Nov-2010 |
John McCall <rjmccall@apple.com> |
When re-using a vtable slot for the nearest overridden method, just because there's no return adjustment from the overridden to the overrider doesn't mean there isn't a return adjustment from the overrider to the final overrider. This matters if we're emitting a virtual this-adjustment thunk because the overrider virtually inherits from the class providing the nearest overridden method. Do the appropriate return adjustment in this case. Fixes PR7611. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118466 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
fd4524b4452d5dcda9c7cb9b1b665fd0f4b6267e |
08-Nov-2010 |
NAKAMURA Takumi <geek4civic@gmail.com> |
test/CodeGenCXX/rtti-linkage.cpp: Get rid of sort(1) to remove XFAIL: win32. On the certain system, bogus SORT.EXE is picked up. Its sort-order is incompatible to POSIX. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118391 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
3030eb82593097502469a8b3fc26112c79c75605 |
06-Nov-2010 |
John McCall <rjmccall@apple.com> |
Simplify the logic for emitting guard variables for template static data members by delaying the emission of the initializer until after linkage and visibility have been set on the global. Also, don't emit a guard unless the variable actually ends up with vague linkage, and don't use thread-safe statics in any case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118336 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-data-member.cpp
|
c9d557301cc910d0562876e6a7b4595e3d2fb846 |
04-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Pass a -I flag when compiling nullptr.cpp so the typeinfo header can be found. This should fix the errors seen on the bot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118246 91177308-0d34-0410-b5e6-96231b3b80d8
ullptr.cpp
|
2bd6250f8e14750033362664ee298c2cc0e64853 |
04-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
std::nullptr_t is a fundamental type for RTTI purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118238 91177308-0d34-0410-b5e6-96231b3b80d8
ullptr.cpp
tti-fundamental.cpp
|
e292368afa63337f5ff64c967857a898d6f868da |
04-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Mangle std::nullptr_t as specified by the Itanium C++ ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118236 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
bb5e431bf187a9f3cabb72045694fbaea414a702 |
04-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't instantiate members not belonging in the semantic context of the template. e.g. for: template <int i> class A { class B *g; }; 'class B' has the template as lexical context but semantically it is introduced in namespace scope. Fixes rdar://8611125 & http://llvm.org/PR8505 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118235 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
|
b8e39236f05b2f71fb2632673948499fd54e2a34 |
02-Nov-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes an assertion violation when bind to temporary expression is a dependent expression. // rdar: // 8620524 and PR7851 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118066 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-dependent-bind-temporary.cpp
|
112c967bd5c862a0f5d7913aa06700c048807db8 |
02-Nov-2010 |
John McCall <rjmccall@apple.com> |
Ensure that static local variables in function templates inherit the visibility of their function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118065 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
7281d1fbea62a4549b045bb7dc434904f2b609d8 |
02-Nov-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a crash mangling decayed val argument-typed function. // rdar: //8620510 and PR7666 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118019 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
bf8cafadb9d4e0d7a90fe78fc175efb80ae34d42 |
02-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Properly handle temporaries that are created in a AsmStmt. Previously the temporaries would get destroyed before the asm call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118001 91177308-0d34-0410-b5e6-96231b3b80d8
sm.cpp
|
3698748400478880d2a146ef9eaa111cd0e60522 |
02-Nov-2010 |
John McCall <rjmccall@apple.com> |
Ignore attributes on classes when calculating visibility for members with their own explicit visibility attributes. Basically we only want to apply a single visibility attribute from any particular ancestry. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117998 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
66cbcf3f150d075fead7c5935b6e9c61a32cf3d4 |
01-Nov-2010 |
John McCall <rjmccall@apple.com> |
Only apply -fvisibility-inlines-hidden to definitions. Apparently isInlined() just gives meaningless results for non-definitions. Fixes rdar://problem/8614470 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117887 91177308-0d34-0410-b5e6-96231b3b80d8
isibility-inlines-hidden.cpp
|
5c5a764fcd256df6f6cfbce5cdd2a2dfb2c45e95 |
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Teach the constant expr evaluator about derived-to-base casts when no virtual bases are involved. Fixes PR5974. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117868 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
96e93660124c8028a4c3bcc038ab0cdd18cd7ab2 |
31-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Don't try to evaluate the LHS or RHS of a member pointer binary operation. Fixes PR8507. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117850 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
af14603ca61757cf4361b583b45639a04c57e651 |
30-Oct-2010 |
John McCall <rjmccall@apple.com> |
Better solution: calculate the visibility of functions and variables independently of whether they're definitions, then teach IR generation to ignore non-explicit visibility when emitting declarations. Use this to make sure that RTTI, vtables, and VTTs get the right visibility. More of rdar://problem/8613093 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117781 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
ee30102a9ef32cdbf0afe0e4c07a53d265a18f98 |
30-Oct-2010 |
John McCall <rjmccall@apple.com> |
GCC faithfully calculates visibility for variables independently of whether it's a declaration or not, then ignores that information for declarations unless it was explicitly given. It's not totally clear how that should be mapped into a sane system, but make an effort. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117780 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
110e8e56af30363072c140285961592b0107f789 |
30-Oct-2010 |
John McCall <rjmccall@apple.com> |
Restore r117644, this time properly ignoring -fvisibility and type visibility for namespace-scope variable declarations. Apply visibility in IR gen to variables that are merely declared and never defined. We were previously emitting these with default visibility unless they were declared with private_extern. Ignore global visibility settings when computing visibility for a declaration's context, and key several conditions on whether a visibility attribute exists anywhere in the hierarchy as opposed to whether it exists at the current level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117729 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
1af67f33f32444d7b344c67e03a196cd5e8c03ea |
29-Oct-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Update tests to not search of as. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117711 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-namespace.cpp
|
034f55c1eb93aee61cef5a015eb1d5ba06d3b3d4 |
29-Oct-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r117644, "Apply visibility in IR gen to variables that are merely declared", it breaks things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117653 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
14e1bc9201681a52e06b0544ee800b422f6f3efe |
29-Oct-2010 |
John McCall <rjmccall@apple.com> |
Don't assert on attempts to throw 'bool'. I wonder if in the history of C++ anyone has ever intentionally done this outside of a compiler test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117645 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expressions.cpp
|
87a4ed905e2febe64021dcdfcdc7f00b27e92f32 |
29-Oct-2010 |
John McCall <rjmccall@apple.com> |
Apply visibility in IR gen to variables that are merely declared and never defined. We were previously emitting these with default visibility unless they were declared with private_extern. Ignore global visibility settings when computing visibility for a declaration's context, and key several conditions on whether a visibility attribute exists anywhere in the hierarchy as opposed to whether it exists at the current level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117644 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
0df9587ab011c12968fcbe3518666b2117afe350 |
29-Oct-2010 |
John McCall <rjmccall@apple.com> |
When computing the visibility of a class member, calculate the visibility of its context without considering global settings like -fvisibility=hidden. Fixes PR8492. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117628 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
479edbc8d0777e1bcf30ec3c90ebfb81bd5f4f28 |
28-Oct-2010 |
John McCall <rjmccall@apple.com> |
Don't apply -fvisibility-inlines-hidden to extern templates. Part 2 of rdar://problem/8595231 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117567 91177308-0d34-0410-b5e6-96231b3b80d8
isibility-inlines-hidden.cpp
|
67fa6d5ea630c800c3c96e129129aba93d1487c2 |
28-Oct-2010 |
John McCall <rjmccall@apple.com> |
Abandon the type-visibility optimization for functions. GCC doesn't do it, and it's too much trouble to push for. Fixes PR8478. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117532 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
76be2a2cabc225c9bfbe5a6673f5e7302bea4aca |
28-Oct-2010 |
Stuart Hastings <stuart@apple.com> |
Test passes on Darwin; try to XFAIL on freebsd, linux, xp/msvc9. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117515 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-namespace.cpp
|
4bc48877db95b2afd6207fdb54ce271169c994f9 |
28-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Fix context info for enums. Radar 8595129 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117507 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-namespace.cpp
|
500b782d51541a5f20f3113305bc3842fba8b77a |
27-Oct-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
patch to do array-to-pointer conversion in a statement-expression. // rdar: //8600553 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117479 91177308-0d34-0410-b5e6-96231b3b80d8
tmtexpr.cpp
|
d66f42856539bf1c764c13fba41758228fc4cb9b |
27-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
Also devirtualize calls to a member functions where the containing class has been marked final. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117445 91177308-0d34-0410-b5e6-96231b3b80d8
ttr-final-devirtualize-virtual-function-calls.cpp
|
bd2bfae2a6e5dc264e1f13183ad2ac11095766bb |
27-Oct-2010 |
Anders Carlsson <andersca@mac.com> |
If a virtual member function has the 'final' attribute, we can devirtualize calls to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117444 91177308-0d34-0410-b5e6-96231b3b80d8
ttr-final-devirtualize-virtual-function-calls.cpp
|
92d835a86ac334768d0b75936201e4fea3941c1f |
27-Oct-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to provide guard when initializing instances of static data member of a class template. Fixes //rdar :// 8562966 and pr8409. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117410 91177308-0d34-0410-b5e6-96231b3b80d8
pecialized-static-data-mem-init.cpp
|
ac65c6208d48b0f9b4661c30c28997a280ac5ba6 |
26-Oct-2010 |
John McCall <rjmccall@apple.com> |
A couple of tweaks to the visibility rules: - tags with C linkage should ignore visibility=hidden - functions and variables with explicit visibility attributes should ignore the linkage of their types Either of these should be sufficient to fix PR8457. Also, FileCheck-ize a test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117351 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
e946fc833d8592aa2890bfd9839f1ad839b3d284 |
26-Oct-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch for mis-compile of statement expressions with non-trivial copy constructors. // rdar: //8540501. A test will be added to llvm nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117324 91177308-0d34-0410-b5e6-96231b3b80d8
tmtexpr.cpp
|
bd6b04c1ac9f1ff5c65b96e14ca0b5bb5a43a148 |
23-Oct-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Test emoved. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117160 91177308-0d34-0410-b5e6-96231b3b80d8
tmtexpr-copy-init.cpp
|
8a97005f97a2a93fc2cd942c040668c5d4df7537 |
23-Oct-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
After discussion with Doug and John, I am reverting the patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117159 91177308-0d34-0410-b5e6-96231b3b80d8
tmtexpr-copy-init.cpp
|
1fb0caaa7bef765b85972274e3b434af2572c141 |
22-Oct-2010 |
John McCall <rjmccall@apple.com> |
Substantially revise how clang computes the visibility of a declaration to more closely parallel the computation of linkage. This gets us to a state much closer to what gcc emits, modulo bugs, which will undoubtedly arise in abundance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117147 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointer-type-convert.cpp
ointers-to-data-members.cpp
isibility.cpp
|
07ed93f378a8868c9a7c04ca7ae685b85c55e5ea |
22-Oct-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch fixes miscompile with non-trivial copy constructors and statement expressions, //rdar: //8540501 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117146 91177308-0d34-0410-b5e6-96231b3b80d8
tmtexpr-copy-init.cpp
|
82b7d7bc723051d8db4e21883e9072fe3ad99305 |
18-Oct-2010 |
John McCall <rjmccall@apple.com> |
Fix some bugs in local class mangling brought up in PR8355. Patch by Richard Smith! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116752 91177308-0d34-0410-b5e6-96231b3b80d8
angle-abi-examples.cpp
angle-local-class-vtables.cpp
angle-local-classes-nested.cpp
|
6102ca1d490836096678d7d934f0b2b78f9293ec |
16-Oct-2010 |
John McCall <rjmccall@apple.com> |
White-listing templated-scope friend decls is a good idea, but doing it by marking the decl invalid isn't. Make some steps towards supporting these and then hastily shut them down at the last second by marking them as unsupported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116661 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
|
716e45460e5b7e8c90a9b9813500a260a6185dea |
16-Oct-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Not really sure how this worked, but it seems like a clear typo. =] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116650 91177308-0d34-0410-b5e6-96231b3b80d8
oto.cpp
|
3bd5b6c3c2ad1d5a6f88cf21f627e8d4f03c4df4 |
13-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Embrace C++ ABI 5.2.6 and consider that template instantiations don't have key functions (same as GCC). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116391 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
|
d2c47bde3bc0c0debd8a9728781d3375efe22bc5 |
11-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make sure the VTables for template instantiations are emitted even if the key function doesn't have a body. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116186 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
6d576051b9ca56fe962077fb194ed2917539989a |
11-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't let typeinfo name symbols be 'internal hidden', it can lead to linker conflicts with similarly named classes in anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116185 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
90fb58e9f5482d2be61c4acfedf4fa69585c8ac1 |
09-Oct-2010 |
John McCall <rjmccall@apple.com> |
Secure this test against slightly different number formatters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116141 91177308-0d34-0410-b5e6-96231b3b80d8
onst-init.cpp
|
189d6ef40eff11b83b2cda941d5ed89a5cef09b2 |
09-Oct-2010 |
John McCall <rjmccall@apple.com> |
Permit constant evaluation of const floating-point variables with constant initializers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116138 91177308-0d34-0410-b5e6-96231b3b80d8
onst-init.cpp
|
63d5fb3a142c39ff4236235cb284401b88685692 |
06-Oct-2010 |
John McCall <rjmccall@apple.com> |
When instantiating a new-expression, force a rebuild if there were default arguments in either the placement or constructor arguments. This is important if the default arguments refer to a declaration or create a temporary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115700 91177308-0d34-0410-b5e6-96231b3b80d8
oto.cpp
|
23c51b5b10e832451ae10dcce994ffe320aeebbb |
05-Oct-2010 |
John McCall <rjmccall@apple.com> |
...without leaving a temporary file behind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115671 91177308-0d34-0410-b5e6-96231b3b80d8
oto.cpp
|
1eeaacdbd5530fa9498afe559507f538b7564fea |
05-Oct-2010 |
John McCall <rjmccall@apple.com> |
Er, this test should actually run IR generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115670 91177308-0d34-0410-b5e6-96231b3b80d8
oto.cpp
|
e71d60d2c948bef21443c3370a9922a2f58bcc3a |
05-Oct-2010 |
John McCall <rjmccall@apple.com> |
Teach PopCleanupBlock to correctly handle the possibility of branching through a EH-only cleanup as part of a fallthrough branch-through. That this happens for this test case is actually a separate bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115668 91177308-0d34-0410-b5e6-96231b3b80d8
oto.cpp
|
d78a01906d2a1edb572a99c11f0901beddbcd8c0 |
02-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Mark explict methods as explict in debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115379 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-ctor2.cpp
|
10a7a6a7ec20179b51544f093aee816a1a41793e |
29-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Emit method access specifier. Radar 8490416. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115090 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-method.cpp
|
549ee4bd609a5862070fe432fce99b3ab686c847 |
29-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Test case for r115067. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115068 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-member.cpp
|
c956b6e8ff909858cec5832f024d2af9c58f190b |
27-Sep-2010 |
Nico Weber <nicolasweber@gmx.de> |
Correctly set "explicit template instantiation" kind on inner structs of templates whose explicit instantiation is first declared and then defined. Fixes http://llvm.org/pr8207 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114874 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-inner-struct-visibility-hidden.cpp
|
7d8eb519ce9b0e5434f185c04404bc817032e716 |
23-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use -emit-llvm-only in the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114636 91177308-0d34-0410-b5e6-96231b3b80d8
arn-padded-packed.cpp
|
78a916ec5ff5b66adec3c499e1b9af7b87668309 |
22-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement -Wpadded and -Wpacked. -Wpadded warns when undesired padding is introduced in a struct. (rdar://7469556) -Wpacked warns if a struct is given the packed attribute, but the packed attribute has no effect on the layout or the size of the struct. Such structs may be mis-aligned for little benefit. The warnings are emitted at the point where layout is calculated, that is at RecordLayoutBuilder. To avoid calculating the layouts of all structs regardless of whether they are needed or not, I let the layouts be lazily constructed when needed. This has the disadvantage that the above warnings will be emitted only when they are used for IR gen, and not e.g with -fsyntax-only: $ cat t.c struct S { char c; int i; }; void f(struct S* s) {} $ clang -fsyntax-only -Wpadded t.c $ clang -c -Wpadded t.c -o t.o t.c:3:7: warning: padding struct 'struct S' with 3 bytes to align 'i' [-Wpadded] int i; ^ 1 warning generated. This is a good tradeoff between providing the warnings and not calculating layouts for all structs in case the user has enabled a couple of rarely used warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114544 91177308-0d34-0410-b5e6-96231b3b80d8
arn-padded-packed.cpp
|
398e6b90f5e161d520a95cbf34c732a55fd3e476 |
22-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
update a bunch of tests that are using the x86 backend instead of grepping IR :( git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114535 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
rray-construction.cpp
rray-operator-delete-call.cpp
all-arg-zero-temp.cpp
ast-conversion.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onvert-to-fptr.cpp
ecl-ref-init.cpp
efault-constructor-for-members.cpp
erived-to-base-conv.cpp
tr-to-member-function.cpp
|
0b78710636671eeb2c5c4dedffa4ad1d58fa4bb8 |
21-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
IRgen for gnu extension's conditional lvalue expression with missing LHS. radar 8453812. Executable test is checked into llvm test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114457 91177308-0d34-0410-b5e6-96231b3b80d8
nu-conditional-scalar-ext.cpp
|
aa3b57ee9e36a805371e2a543383225cdd2a5d83 |
21-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Implements in IRgen gnu extensions missing LHS for complex conditionals. Radar 8453812. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114376 91177308-0d34-0410-b5e6-96231b3b80d8
nu-conditional-scalar-ext.cpp
|
1fb019bf42f5757c027edb56e5bb70233787a39c |
18-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Problem with gnu conditional extension with missing LHS and when conditional expression is an array. Since it will be decayed, saved expression must be saved with decayed expression. This is necessary to preserve semantics of this extension (and prevent an IRGen crash which expects an array to always be decayed). I am sure there will be other cases in c++ (aggregate conditionals for example) when saving of the expression must happen after some transformation on conditional expression has happened. Doug, please review. Fixes // rdar://8446940 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114296 91177308-0d34-0410-b5e6-96231b3b80d8
nu-conditional-scalar-ext.cpp
|
fc1e6c79bbfe0e9a58bb792996d51f42e36e3d6a |
18-Sep-2010 |
John McCall <rjmccall@apple.com> |
Fix a bug with binding l-values to elided temporaries, and leave a couple helpful asserts behind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114250 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
a83c6be907b2a6b9ccc979c79b3a24a7e48b2c54 |
17-Sep-2010 |
John McCall <rjmccall@apple.com> |
Fix test for no-asserts builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114185 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
af9b96828f9126d993c3e155b8453be62013b735 |
17-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to add IRgen support for Gnu's conditional operator extension when missing LHS. This patch covers scalar conditionals only. Others are wip. (pr7726, radar 8353567). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114182 91177308-0d34-0410-b5e6-96231b3b80d8
nu-conditional-scalar-ext.cpp
|
7e1dff7a68a4d00e71debafa7f5c259473091746 |
17-Sep-2010 |
John McCall <rjmccall@apple.com> |
Currently we're initializing the vtable pointers of a class only after the bases are completely initialized. This won't work --- base initializer expressions can rely on the vtables having been set up. Check for uses of 'this' in the initializers and force a vtable initialization if found. This might not be good enough; we might need to extend this to handle the possibility of arbitrary code finding an external reference to this (not yet completely-constructed!) object and accessing through it, in which case we'll probably find ourselves doing a lot more unnecessary stores. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114153 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
3019c444c672938c57f5573840071ecd73425ee7 |
17-Sep-2010 |
John McCall <rjmccall@apple.com> |
When emitting a new-expression inside a conditional expression, the cleanup might not be dominated by the allocation code. In this case, we have to store aside all the delete arguments in case we need them later. There's room for optimization here in cases where we end up not actually needing the cleanup in different branches (or being able to pop it after the initialization code). Also make sure we only call this operator delete along the path where we actually allocated something. Fixes rdar://problem/8439196. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114145 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
19e60ad937af50843a653fa19c8be6a83a64f24f |
16-Sep-2010 |
John McCall <rjmccall@apple.com> |
Right, there are *two* cases of pr-value class-type expressions that don't derive from temporaries of the same type. Black-list member expressions as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114071 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
465e8c1f05ee77647a3cf2deb9d8e534b2c14caf |
15-Sep-2010 |
John McCall <rjmccall@apple.com> |
Test hardening. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113963 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
558d2abc7f9fd6801cc7677200992313ae90b5d8 |
15-Sep-2010 |
John McCall <rjmccall@apple.com> |
one piece of code is responsible for the lifetime of every aggregate slot. The easiest way to do that was to bundle up the information we care about for aggregate slots into a new structure which demands that its creators at least consider the question. I could probably be convinced that the ObjC 'needs GC' bit should be rolled into this structure. Implement generalized copy elision. The main obstacle here is that IR-generation must be much more careful about making sure that exactly git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113962 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
7d8647f194ae4f2499e5bcd40dcfea34cd21ebc6 |
14-Sep-2010 |
John McCall <rjmccall@apple.com> |
Implement the EH cleanup to call 'operator delete' if a new-expression throws (but not if destructors associated with the full-expression throw). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113836 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions.cpp
|
4076dacf1497fb95cb298b9d964fbdbdaf9bde6c |
13-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When applying 'delete' on a pointer-to-array type match GCC and EDG behavior and treat it as 'delete[]'. Also offer a fix-it hint adding '[]'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113778 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
5cd91b513455fd7753e8815b54f0a49bbca6602d |
08-Sep-2010 |
John McCall <rjmccall@apple.com> |
Implement ARM static local initialization guards, which are more compact than Itanium guards and use a slightly different compiled-in API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113330 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
tatic-init.cpp
hreadsafe-statics-exceptions.cpp
|
0c42bb653dc40b1caae010618831e320af824b18 |
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
'const std::type_info*' instead of 'std::type_info const*' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113092 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
a96a6906601cb5f40ba54cd750c9f87e04568f7d |
03-Sep-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Clean up some whitespace and comments from this test that were remnants of a previous iteration of the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113013 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-anonymous-types.cpp
|
17fb855280be411389361f1c79753e0013c4187c |
03-Sep-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Allow anonymous and local types. The support was already in place for these, but this makes them work even as an extension in C++98. This resolves PR8077. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113011 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-anonymous-types.cpp
|
fc4002872864e3c29c896000519ae989b6fdb7dd |
03-Sep-2010 |
John McCall <rjmccall@apple.com> |
Re-commit r112916 with an additional fix for the self-host failures. I've audited the remaining getFunctionInfo call sites. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112936 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
2b8d60dfdfbbf19f6e2dcfb5c438f8eda8a7ecb4 |
03-Sep-2010 |
John McCall <rjmccall@apple.com> |
Revert r112916, it's breaking selfhost pretty badly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112925 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
3e7cf38810ec39be938b635ddd41e3cefde86883 |
03-Sep-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Another i1 vs. i8 type mismatch issue. This time", it breaks some projects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112922 91177308-0d34-0410-b5e6-96231b3b80d8
eference-in-blocks.cpp
|
52968abd2aaf36f17d9858581563bf80475fb178 |
03-Sep-2010 |
John McCall <rjmccall@apple.com> |
It's not safe to use the generic CXXMethodDecl overload of CGT::getFunctionInfo to set up a destructor call, because ABIs can tweak these conventions. Fixes rdar://problem/8386802. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112916 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
cc09c022bebcabd5f222d410bb6695af0ea93257 |
03-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix a few more ConvertTypes that should be ConvertTypeForMems, fixing two regressions in Boost.Config. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112908 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
6b61fcd47fe94a88899a95b9e73b600257735286 |
03-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
stop looking for #uses comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112898 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
tt-layout.cpp
|
73556e0d961e2d58eae232e647c9def8da1caecf |
02-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Another i1 vs. i8 type mismatch issue. This time a 'bool' byref variable in memory. Fixes radar 8382559. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112835 91177308-0d34-0410-b5e6-96231b3b80d8
eference-in-blocks.cpp
|
f9cce31a1c71e2949cd5f47616a5624f5fedd84d |
02-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix more i1/i8 pointer madness. Here, an overactive assertion complains when the element type of a C++ "delete" expression is different from what we would expect from the pointer type. When deleting a bool*, we end up with an i1 on one side (where we compute the LLVM type from the Clang bool type) and i8 on the other (where we grab the LLVM type from the LLVM pointer type). I've weakened the assertion appropriately, and the Boost Parallel Graph Library now passes its regression tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112821 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
b61e2a328c5c2552b0bb3a8d3c4bc9389f34a321 |
02-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix a crash involving pointer-to-data-members of boolean type. We were constructing an LLVM PointerType directly from the "bool"'s LLVM type (i1), which resulted in unfortunate pointer type i1*. The fix is to build the LLVM PointerType from the corresponding Clang PointerType, so that we get i8* in the case of a bool. John, please review. I also left a FIXME there because we seem to be dropping "volatile", which would be rather unfortunate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112819 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
ae1809689b8773c1ae5abeecb0de2f032a86c118 |
02-Sep-2010 |
John McCall <rjmccall@apple.com> |
Stupid emacs keystroke. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112815 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
1e7fe751466ea82665fd21e9162fd7cc9c5f412d |
02-Sep-2010 |
John McCall <rjmccall@apple.com> |
Abstract IR generation of array cookies into the C++ ABI class and implement ARM array cookies. Also fix a few unfortunate bugs: - throwing dtors in deletes prevented the allocation from being deleted - adding the cookie to the new[] size was not being considered for overflow (and, more seriously, was screwing up the earlier checks) - deleting an array via a pointer to array of class type was not causing any destructors to be run and was passing the unadjusted pointer to the deallocator - lots of address-space problems, in case anyone wants to support free store in a variant address space :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112814 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
elete.cpp
ew.cpp
perator-new.cpp
|
66e7b68b0016aeebe349e21ace93ff0178665d69 |
01-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix rdar://8360877 a really nasty miscompilation in Boost.Xpressive caused by my ABI work. Passing: struct outer { int x; struct epsilon_matcher {} e; int f; }; as {i32,i32} isn't safe, because the offset of the second element needs to be at 8 when it is interpreted as a memory value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112686 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
56bedefe92ae8f604d14bea75cc3040ab32337c2 |
01-Sep-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Some support for unicode string constants in wide strings. radar 8360841. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112672 91177308-0d34-0410-b5e6-96231b3b80d8
ncode-string.cpp
|
4c40d98ab7acf5f27fa89b17bd8fc0ef7683df37 |
31-Aug-2010 |
John McCall <rjmccall@apple.com> |
Teach IR generation to return 'this' from constructors and destructors under the ARM ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112588 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
2ed8f000869103b1adc05d6bc4c635604b6e66a7 |
27-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Debug info for friends! Patch originally by Alexander Herz. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112275 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-friend.cpp
|
468e8fbda71a02eba31b4d8282fc1d509b552fbe |
27-Aug-2010 |
Devang Patel <dpatel@apple.com> |
test case for r112238. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112239 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-byval.cpp
|
e7ab92e1d62f9c243bbd1f42f72a7b3c2666d33e |
26-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix miscompilation. The cookie was not used when new'ing arrays with multiple dimensions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112188 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
d2932986a16244b7f9a3f9a7a6b0daf543c91540 |
26-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix miscompilation. The custom new[]/delete[] methods were not getting called for arrays with more than 1 dimension. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112107 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
58e390ef491c8fb11ae17445054ee09527b492d3 |
25-Aug-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Support explicit instantiation of function templates and members of class templates when only the declaration is in scope. This requires deferring the instantiation to be lazy, and ensuring the definition is required for that translation unit. We re-use the existing pending instantiation queue, previously only used to track implicit instantiations which were required to be lazy. Fixes PR7979. A subsequent change will rename *PendingImplicitInstantiations to *PendingInstatiations for clarity given its broader role. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112037 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
|
a8f28da6265950eea768f7e4ade15e4ebaddd56f |
25-Aug-2010 |
John McCall <rjmccall@apple.com> |
Expression statements undergo lvalue-to-rvalue conversion in C, but not in C++, so don't emit aggregate loads of volatile references in null context in C++. Happens to have been caught by an assertion. We do not get the scalar case right. Volatiles are really broken. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112019 91177308-0d34-0410-b5e6-96231b3b80d8
olatile.cpp
|
e5848d680c8abc5c76f37b7149b349603db94ce0 |
23-Aug-2010 |
Devang Patel <dpatel@apple.com> |
test case for PR7920. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111821 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
b6c504b9101251bcb364dd9becbb887c97db27d3 |
23-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
fix rdar://8340348, a miscompile of boost that was exposed by r109848. That revision started classifying truly empty structs like "Y" and "X" as being NoClass/NoClass and turning them into 'ignore'. The call code turns around and allocates space for the ignored argument with GetUndefRValue. The bug is that GetUndefRValue would return the address as undef, instead of returning an object with a defined address but undefined contents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111794 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
0bab0cdab751248ca389a5592bcb70eac5d39260 |
23-Aug-2010 |
John McCall <rjmccall@apple.com> |
Abstract out everything having to do with member pointers into the ABI class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
ointers-to-data-members.cpp
|
b8f7de94c3a8fb4556d06a1447880e69bc3a113c |
22-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Do not elide copy construction when we're performing base-class initialization git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111783 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-elim-2.cpp
|
db68e28c05a67735211e688009890cf834c22e75 |
22-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate a stale assertion. Fixes Clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111782 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
8c3e554d00d456d5093c21ce8a0c205461279aab |
22-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Preserve the zero-initialization and construction-kind settings when instantiating CXXConstructExpr expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111780 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
759e41baf6a95c3a265970b6bf1c97c233fd28b0 |
22-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When performing value-initialization for a class with a non-trivial, implicitly-defined default constructor, zero-initialize the memory before calling the default constructor. Previously, we would only zero-initialize in the case of a trivial default constructor. Also, simplify the hideous logic that determines when we have a trivial default constructor and, therefore, don't need to emit any call at all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111779 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
e14add4a275318e7a9cafd3a01f79fb15a5a08bc |
22-Aug-2010 |
John McCall <rjmccall@apple.com> |
Clean up a very silly use of first-class aggregates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111777 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
d608cdb7c044365cf4e8764ade1e11e99c176078 |
22-Aug-2010 |
John McCall <rjmccall@apple.com> |
Experiment with using first-class aggregates to represent member function pointers. I find the resulting code to be substantially cleaner, and it makes it very easy to use the same APIs for data member pointers (which I have conscientiously avoided here), and it avoids a plethora of potential inefficiencies due to excessive memory copying, but we'll have to see if it actually works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111776 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
86_32-arguments.cpp
|
875ab10245d3bf37252dd822aa1616bb0a391095 |
22-Aug-2010 |
John McCall <rjmccall@apple.com> |
Abstract out member-pointer creation. I'm really unhappy about the current duplication between the constant and non-constant paths in all of this. Implement ARM ABI semantics for member pointer constants and conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111772 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
f52697a589c1fdd0ff101c472b904d4546e1d373 |
21-Aug-2010 |
Daniel Dunbar <daniel@zuster.org> |
Improve test coverage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111712 91177308-0d34-0410-b5e6-96231b3b80d8
xpr.cpp
|
452b7f22d75d1838df72653dcaacbf92b6c34e71 |
20-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix a major regression with value-initialization of class types with trivial default constructors. We're weren't zero-initializing them, which manifested as <rdar://problem/8320532> (a regression in the GCC test suite) and is likely to have caused significant other breakage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111650 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
6dbce19fdae4cfae4eb5f826284978e723a04e61 |
20-Aug-2010 |
John McCall <rjmccall@apple.com> |
Mangle explicit template arguments in dependent or overloaded names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111591 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
5e1e89b8af283af34943a477dc6378f1a641df26 |
18-Aug-2010 |
John McCall <rjmccall@apple.com> |
Contextual arity is a feature of mangling expressions; kill off mangleCallExpression. Also, operator names with unknown arity should be mangled as binary operators; this is actually covered by an oddly- positioned sentence in the ABI document. Fixes PR7891. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111395 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
7b86862ff555a9d848ac7abf6042d192b6d5a04d |
18-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Make sure to add MallocAttr to explicitly-declared operator new/new[] when -fassume-sane-operator-new. Patch by Tom Jablin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111363 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
d7241c77d388f798c5db29848396109ea1aa83d2 |
18-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR7889 by generalizing some over specialized code. There is no reason that this should be limited to simple lvalues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111331 91177308-0d34-0410-b5e6-96231b3b80d8
xpr.cpp
|
5c12c7bde7e39758fb127ac7089ac88097408e8e |
18-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR7892, a crash on valid in c++ codegen of __PRETTY_FUNCTION__ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111330 91177308-0d34-0410-b5e6-96231b3b80d8
xpr.cpp
|
6f615bc52bd5513019c32b378834a3c1b8425bf8 |
17-Aug-2010 |
John McCall <rjmccall@apple.com> |
Whoops. Don't fall through into the overload case when mangling a dependent call expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111300 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
881b36ccbf8eaee709e7763369062a52f5961df1 |
16-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix initialization for members of anonymous struct in a union. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111159 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
3cdfc4d1862b7195159c376a4542b440037dac6a |
13-Aug-2010 |
John McCall <rjmccall@apple.com> |
Properly give unique-external linkage to members of member templates instantiated with unique-external parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111012 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-namespaces.cpp
|
279b5eb6910d64a293e9c0e2887a05c65d8737d7 |
13-Aug-2010 |
John McCall <rjmccall@apple.com> |
Just disable the hidden-visibility optimization for now by hiding it behind a -cc1 option. The Darwin linker complains about mixed visibility when linking gcc-built objects with clang-built objects, and the optimization isn't really that valuable. Platforms with less ornery linkers can feel free to enable this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110979 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions-no-rtti.cpp
ey-function-vtable.cpp
tti-linkage.cpp
hunks.cpp
irt-template-vtable.cpp
table-key-function.cpp
table-linkage.cpp
|
7516451f6f3ed870af7cd8490ee34d9af5cc2a3a |
12-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Revert r110936; this fails on clang-i686-darwin10 too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110942 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-ctor.cpp
|
f128b858871748d6342bc394af28ea4955b826be |
12-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Make this test darwin only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110936 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-ctor.cpp
|
d5f4487fc66689c5bed6055e669d71d2e3e11b5c |
12-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable this failing test, until it can be properly investigated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110917 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-ctor.cpp
|
6d311229f0b894f6a8acda2d78f06a4198b487b7 |
12-Aug-2010 |
John McCall <rjmccall@apple.com> |
Test for rdar://problem/8073696. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110907 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
dabc3e90cc385214a53064d8c44edbece9891ddf |
12-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Emit debug info for static const class member. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110885 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-class.cpp
|
d67ef0eed463b43980f04a444155f423114be34b |
11-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Emit a stop point for delegate constructor call. This gives user a chance to step into constructor body. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110853 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-ctor.cpp
|
6a9bb30819628f312a3d99f67221f7e796a38e83 |
10-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Test case for llvm r110712. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110713 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-enum.cpp
|
224124c7b85596157201a67a7ba12d2b0f5c153c |
10-Aug-2010 |
John McCall <rjmccall@apple.com> |
When initializing a static local, pop the guard-abort EH cleanup after the variable is fully initialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110704 91177308-0d34-0410-b5e6-96231b3b80d8
hreadsafe-statics-exceptions.cpp
|
9021718882441dd391a1960084580d3cd19c423a |
07-Aug-2010 |
John McCall <rjmccall@apple.com> |
Inline a special case of EmitAggregateCopy into EmitNullInitialization to avoid the awesome-but-wrong-in-this-case assertion in the canon EAC. Fixes PR7834. Also fix a subtle address-space bug in the memset path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110511 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
7121c8f551d9c91c0cf0e5e1f7f9aafa97241b17 |
06-Aug-2010 |
John McCall <rjmccall@apple.com> |
Don't crash when mangling empty anonymous unions. We never actually *need* these, but it's convenient to mangle them when deferring them (in the 99.99% case where it's not an anonymous union, of course). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110381 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
7a536907da776bdc47a704e7cafd641e8150e653 |
05-Aug-2010 |
John McCall <rjmccall@apple.com> |
It turns out that linkers (at least, the Darwin linker) don't necessarily do the right thing with mixed-visibility symbols, so disable the visibility optimization where that's possible, i.e. with template classes (since it's possible that an arbitrary template might be subject to an explicit instantiation elsewhere). 447.dealII actually does this. I've put the code under an option that's currently not hooked up to anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110374 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
tti-linkage.cpp
irt-template-vtable.cpp
table-linkage.cpp
|
62e22ee7a17bbba427367ec2f9c8c4f60d778ac5 |
05-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Tests for #pragma GCC visibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110316 91177308-0d34-0410-b5e6-96231b3b80d8
ragma-visibility.cpp
|
65005536dee9216b14e2361153a14ddd8a7cd50a |
05-Aug-2010 |
John McCall <rjmccall@apple.com> |
Extend the visibility-hidden optimization to linkonce_odr thunks for functions with in-line definitions, since such thunks will be emitted at any use of the function. Completes the feature work for rdar://problem/7523229. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110285 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
cbfe50224b19119e759802bd0c1463269dffd09e |
04-Aug-2010 |
John McCall <rjmccall@apple.com> |
Emit standard-library RTTI with external linkage, not weak_odr. Apply hidden visibility to most RTTI; libstdc++ does not rely on exact pointer equality for the type info (just the type info names). Apply the same optimization to RTTI that we do to vtables. Fixes PR5962. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110192 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions-no-rtti.cpp
tti-fundamental.cpp
tti-linkage.cpp
table-linkage.cpp
|
0c7d32bde03ae90367cb0666cf8614d425290aa3 |
04-Aug-2010 |
John McCall <rjmccall@apple.com> |
Extend the hidden-visibility vtables optimization to template classes that haven't been explicitly instantiated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110189 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
irt-template-vtable.cpp
table-linkage.cpp
|
39dad53772c42eb36ebec1c81c56ba99d038fb94 |
04-Aug-2010 |
John McCall <rjmccall@apple.com> |
Do a very simple pass over every function we emit to infer whether we can mark it nounwind based on whether it contains any non-nounwind calls. <rdar://problem/8087431> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110163 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
3d640e606165daf2eaf18d52c0697f68daec106a |
03-Aug-2010 |
John McCall <rjmccall@apple.com> |
Emit weak vtables of non-template classes with hidden visibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110107 91177308-0d34-0410-b5e6-96231b3b80d8
ey-function-vtable.cpp
irt-template-vtable.cpp
table-key-function.cpp
table-linkage.cpp
|
85aca0f6a9da02bda705690fd56d0aa713604f08 |
30-Jul-2010 |
John McCall <rjmccall@apple.com> |
Emit global destructors even if the destroyed object has no initializers or has an initializer requiring temporary object disposal. Fixes rdar:://problem/8246444. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109849 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
117e3f4cd4d6ea41c3202da8729f94168c5c8239 |
30-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR5179 and correctly fix PR5831 to not miscompile. The X86-64 ABI code didn't handle the case when a struct would get classified and turn up as "NoClass INTEGER" for example. This is perfectly possible when the first slot is all padding (e.g. due to empty base classes). In this situation, the first 8-byte doesn't take a register at all, only the second 8-byte does. This fixes this by enhancing the x86-64 abi stuff to allow and handle this case, reverts the broken fix for PR5831, and enhances the target independent stuff to be able to handle an argument value in registers being accessed at an offset from the memory value. This is the last x86-64 calling convention related miscompile that I'm aware of. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109848 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
ember-functions.cpp
86_64-arguments.cpp
|
a7206c5367c2e5879fe6d9a07ed50aa003a56976 |
29-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR7742 / rdar://8250764, a miscompilation of struct return where the struct has a base but no fields. This was because the x86-64 abi logic was checking the wrong predicate in one place. This was introduced in r91874, which was a fix for PR5831, which lacked a CHECK line, so I verified and added it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109759 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
800588fd230d2c37ddce8fbf4a3881352715d700 |
29-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
Kill off the 'coerce' ABI passing form. Now 'direct' and 'extend' always have a "coerce to" type which often matches the default lowering of Clang type to LLVM IR type, but the coerce case can be handled by making them not be the same. This simplifies things and fixes issues where X86-64 abi lowering would return coerce after making preferred types exactly match up. This caused us to compile: typedef float v4f32 __attribute__((__vector_size__(16))); v4f32 foo(v4f32 X) { return X+X; } into this code at -O0: define <4 x float> @foo(<4 x float> %X.coerce) nounwind { entry: %retval = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] %coerce = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] %X.addr = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] store <4 x float> %X.coerce, <4 x float>* %coerce %X = load <4 x float>* %coerce ; <<4 x float>> [#uses=1] store <4 x float> %X, <4 x float>* %X.addr %tmp = load <4 x float>* %X.addr ; <<4 x float>> [#uses=1] %tmp1 = load <4 x float>* %X.addr ; <<4 x float>> [#uses=1] %add = fadd <4 x float> %tmp, %tmp1 ; <<4 x float>> [#uses=1] store <4 x float> %add, <4 x float>* %retval %0 = load <4 x float>* %retval ; <<4 x float>> [#uses=1] ret <4 x float> %0 } Now we get: define <4 x float> @foo(<4 x float> %X) nounwind { entry: %X.addr = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] store <4 x float> %X, <4 x float>* %X.addr %tmp = load <4 x float>* %X.addr ; <<4 x float>> [#uses=1] %tmp1 = load <4 x float>* %X.addr ; <<4 x float>> [#uses=1] %add = fadd <4 x float> %tmp, %tmp1 ; <<4 x float>> [#uses=1] ret <4 x float> %add } This implements rdar://8248065 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109733 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
e8a126ba9a8a2f53098d388d04ec555b758f0c67 |
29-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
PR7736: Make sure to mark &Class::Member correctly as being type-dependent inside a template class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109697 91177308-0d34-0410-b5e6-96231b3b80d8
ependent-type-member-pointer.cpp
|
413e67778d593215d2f2161a4e712c8568f1ddd0 |
28-Jul-2010 |
John McCall <rjmccall@apple.com> |
When creating a jump destination, its scope should be the scope of the enclosing normal cleanup, not the top of the EH stack. I'm *really* surprised this hasn't been causing more problems. Fixes rdar://problem/8231514. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109569 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
7cd4b060f1e59f6d29126383ceee614e4772f859 |
27-Jul-2010 |
John McCall <rjmccall@apple.com> |
Test for the presence of EH branch-throughs instead of normal branch-throughs. I knew this code duplication would bite me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109463 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
3dc7e7b9c59b9a2ed4f530b32e710a3738611df7 |
24-Jul-2010 |
John McCall <rjmccall@apple.com> |
Mangle enum constant expressions. Fixes rdar://problem/8204122 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109315 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
b7690b425845b636849f25074d64d30aad646473 |
24-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
turn down the logical bitwise confusion warning to not warn when the RHS of the ||/&& is ever 0 or 1. This handles a variety of creative idioms for "true" used in C programs and fixes many false positives at the expense of a few false negatives. This fixes rdar://8230351. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109314 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init-2.cpp
|
ff8e11579fc904aa4032d90d2be6ce1ac5fc9fe1 |
23-Jul-2010 |
John McCall <rjmccall@apple.com> |
Revise cleanup IR generation to fix a major bug with cleanups (PR7686) as well as some significant asymptotic inefficiencies with threading multiple jumps through deep cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109274 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
h.cpp
|
50da2cadcc6da86abff6772de65280ace2cabc94 |
21-Jul-2010 |
John McCall <rjmccall@apple.com> |
Implement proper base/member destructor EH chaining. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108989 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
182ab5112650d3228291c4dadd64a9f77f5aeb51 |
21-Jul-2010 |
John McCall <rjmccall@apple.com> |
Convert the EH cleanups for base and member destructors in a constructor into lazy cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108978 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
59174c0633fb5cde41735cfbff5744bdf837e8d9 |
21-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement zero-initialization for array new when there is an initializer of (). Make sure to use a simple memset() when we can, or fall back to generating a loop when a simple memset will not suffice. Fixes <rdar://problem/8212208>, a regression due to my work in r107857. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108977 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
204b075fcc47c3f2aa7276dfba9b42eb25840b53 |
21-Jul-2010 |
John McCall <rjmccall@apple.com> |
Fix the IR generation for catching pointers by references. Fixes <rdar://problem/8212123>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108944 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
806941eab5e1d62d7676e5cdc0e1d9e397ea78b4 |
20-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
in 'new int[4]', constant fold the 4*4=16 instead of doing an overflow check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108943 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
c11787fc247ec49f7c651be4b2c1be096cf4970a |
20-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
don't demand names to be on IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108937 91177308-0d34-0410-b5e6-96231b3b80d8
perator-new.cpp
|
962312bf0c7b45e73acfb9af4acd172f75bfc916 |
20-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
temporarily disable this to fix the build bot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108936 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
83252dcfe61aaebcb6bc117e71dc12968729513f |
20-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
Follow the implementation approach suggested by PR6687, which generates more efficient and more obviously conformant code. We now test for overflow of the multiply then force the result to -1 if so. On X86, this generates nice code like this: __Z4testl: ## @_Z4testl ## BB#0: ## %entry subl $12, %esp movl $4, %eax mull 16(%esp) testl %edx, %edx movl $-1, %ecx cmovel %eax, %ecx movl %ecx, (%esp) call __Znam addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108927 91177308-0d34-0410-b5e6-96231b3b80d8
perator-new.cpp
|
700a1cb1d207e660fcd9c234cccfc78553f06802 |
20-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Print template argument names for template class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108916 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info-template.cpp
|
6c552c1d5f47fbba00e6268d96a26ad026f2da2a |
20-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://5739832 - operator new should check for overflow in multiply, causing clang to compile this code into something that correctly throws a length error, fixing a potential integer overflow security attack: void *test(long N) { return new int[N]; } int main() { test(1L << 62); } We do this even when exceptions are disabled, because it is better for the code to abort than for the attack to succeed. This is heavily based on a patch that Fariborz wrote. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108915 91177308-0d34-0410-b5e6-96231b3b80d8
perator-new.cpp
|
2b02f7a051b092ebbae436026565fee52683972f |
19-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Adjust test for float printing differences. Windows uses three digits for the exponent, everyone else two. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108693 91177308-0d34-0410-b5e6-96231b3b80d8
eference-cast.cpp
|
c00cb6409307846a9bbcd86d307a1a91aab659d0 |
18-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix mangling for static member variables of classes inside an extern "C" linkage specification. Not sure if this is the ideal fix, but I'm reasonably sure it's correct vs. gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108656 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
f0ca0ee66e5b1f3fc4d98e0d8795fa92559ce491 |
18-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix crash initializing a bit-field with a non-constant in a place where we try to evaluate the initializer as a constant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108632 91177308-0d34-0410-b5e6-96231b3b80d8
onconst-init.cpp
|
bf40cb518312dde1c07e44fcae59bc4eec65589c |
16-Jul-2010 |
John McCall <rjmccall@apple.com> |
When deferring the emission of declarations with initializers in C++, remember the order they appeared in the translation unit. If they get emitted, put them in their proper order. Fixes rdar://problem/7458115 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108477 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
7c7a79303b62f51c1ff02f9ce41d81211a69d3b4 |
15-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate the scalar-cast-to-const-reference improvements, this time with the proper spelling of "non-class prvalue". Silly me, I think class rvalues were xvalues rather than prvalues! Hah hah hah. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108443 91177308-0d34-0410-b5e6-96231b3b80d8
eference-cast.cpp
|
928d69f2927c32e2f57a882a96c2bef1de79aa4b |
15-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r108431 and r108433 (the cast-to-const-reference fixes), which broke nightlytest. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108439 91177308-0d34-0410-b5e6-96231b3b80d8
eference-cast.cpp
|
db30c0f5cfcda4483bf4d2a02d6a94289984a4a9 |
15-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Revert 108220 and subsequent patch. This is not required (I am not 100% sure why) but method.exp from gdb testsuite flagged regression due to this patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108434 91177308-0d34-0410-b5e6-96231b3b80d8
ember-qual-debug-info.cpp
|
5467209f23097d5b0fc628c18aaa85e73d386598 |
15-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Teach CodeGenFunction::EmitCastLValue() to handle casts to an lvalue that involve binding a reference to a pure rvalue temporary (e.g., not a class temporary), by creating a new temporary and copying the result there. Fixes PR6024. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108431 91177308-0d34-0410-b5e6-96231b3b80d8
eference-cast.cpp
|
77d439a4d69ffe30a7607c07b3ec5113824fd53e |
14-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Add lvalue-bitcast support for complex numbers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108363 91177308-0d34-0410-b5e6-96231b3b80d8
value-bitcasts.cpp
|
b6f532e2b03dbbfd97a37a7bb845fe23f8136889 |
14-Jul-2010 |
John McCall <rjmccall@apple.com> |
Fix the mangling of template template arguments, which do not always follow <name>; instead they follow <type>, which has <name> as a subset. Fixes PR7446. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108326 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
bc25f19da3cff74cb0ad4f228e9beca99ed56582 |
14-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Add missing testcases for lvalue bitcasts git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108296 91177308-0d34-0410-b5e6-96231b3b80d8
value-bitcasts.cpp
|
8e3f86193995c47ee0d229e4336c3382410f09f5 |
14-Jul-2010 |
John McCall <rjmccall@apple.com> |
Allow for the possibility that __cxa_end_catch might throw for a catch-all block or a catch of a record type by value or reference. Also convert this to a lazy cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108287 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
09faeabf39a6fab2e2beb6bf03da970c17d2049a |
13-Jul-2010 |
John McCall <rjmccall@apple.com> |
Switch the __cxa_free_exception cleanup to be lazy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108276 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
da65ea86482bc116906edfb9ba1d7124f76cc867 |
13-Jul-2010 |
John McCall <rjmccall@apple.com> |
Teach IR generation how to lazily emit cleanups. This has a lot of advantages, mostly in avoiding unnecessary work at compile time but also in producing more sensible block orderings. Move the destructor cleanups for local variables over to use lazy cleanups. Eventually all cleanups will do this; for now we have some awkward code duplication. Tell IR generation just to never produce landing pads in -fno-exceptions. This is a much more comprehensive solution to a problem which previously was half-solved by checks in most cleanup-generation spots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108270 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
rvo.cpp
|
e7ffbe233ed04f921a008ed893672ee759d1a0ad |
13-Jul-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
More block instantiation stuff. Set variable/param DeclContext to block context when first instantiating them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108266 91177308-0d34-0410-b5e6-96231b3b80d8
nstantiate-blocks.cpp
|
90a8f27f144233b53cac0c88a1595f7f05105b7e |
13-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
Add a warning to catch a bug recently caught by code review, like this: t2.c:2:12: warning: use of logical && with constant operand; switch to bitwise & or remove constant [-Wlogical-bitwise-confusion] return x && 4; ^ ~ wording improvement suggestions are welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108260 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init-2.cpp
|
2ecebc2232d73efa80dd65bb176053f98899d069 |
13-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Add volatile qualifiers for "this". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108245 91177308-0d34-0410-b5e6-96231b3b80d8
ember-qual-debug-info.cpp
|
44eac33ae12df384f3f002102f919f603bee330f |
13-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate the optimization suppressing available_externally functions at -O0. The only change from the previous patch is that we don't try to generate virtual method thunks for an available_externally function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108230 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
isibility-hidden-extern-templates.cpp
|
27cc6331e33efac4020058d2fda36c9060ec5afa |
12-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Speculatively revert r108156; it appears to be breaking self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108194 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
isibility-hidden-extern-templates.cpp
|
7ce1f2714ac0f33210bab14650bce2078ebf343e |
12-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Do not generate LLVM IR for available_externally function bodies at -O0, since we won't be using the definitions for anything anyway. For lib/System/Path.o when built in Debug+Asserts mode, this leads to a 4% improvement in compile time (and suppresses 440 function bodies). <rdar://problem/7987644> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108156 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
isibility-hidden-extern-templates.cpp
|
833f42e32754515bc108b9b1ccccc6e373915a6c |
10-Jul-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
BlockDeclRefExpr of a dependent type must be a dependent expression when its is built. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108026 91177308-0d34-0410-b5e6-96231b3b80d8
nstantiate-blocks.cpp
|
5750b81beb0d508278011c410b01acabc9c7ca05 |
09-Jul-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Instantiation of byref variable in block literal expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108019 91177308-0d34-0410-b5e6-96231b3b80d8
nstantiate-blocks.cpp
|
a729da2c29e7df26319acf2675d51e377287a139 |
09-Jul-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Instantiation of block literal expressions. wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108000 91177308-0d34-0410-b5e6-96231b3b80d8
nstantiate-blocks.cpp
|
9c0c1f333ab8f5a3da055b99ee94778689face17 |
08-Jul-2010 |
John McCall <rjmccall@apple.com> |
Mark calls to 'throw()' functions as nounwind, and mark the functions nounwind as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107858 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
ed8abf18329df67b0abcbb3a10458bd8c1d2a595 |
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate the fix for PR7556. A silly use of isTrivial() was suppressing copies of objects with trivial copy constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107857 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
emporaries.cpp
|
84745677f64863e025a6733cb29d0b94bc3a6ae2 |
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r107828 and r107827, the fix for PR7556, which seems to be breaking bootstrap on Linux. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107837 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
emporaries.cpp
|
63ef464c3fad1e8b9f9360baa6c81f974b712e90 |
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Do not use CXXZeroValueInitExpr for class types. Instead, use CXXConstructExpr/CXXTemporaryObjectExpr/CXXNewExpr as appropriate. Fixes PR7556, and provides a slide codegen improvement when copy-initializing a POD class type from a value-initialized temporary. Previously, we weren't eliding the copy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107827 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
emporaries.cpp
|
59a7000a79118e4c140885ccbb2ac6a686a73092 |
07-Jul-2010 |
John McCall <rjmccall@apple.com> |
Teach function-try-blocks on constructors and destructors to implicitly rethrow. Fixes rdar://problem/7696603 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107757 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
66d80a9c99ef781f0fd56dfcd060e30d4d673c93 |
06-Jul-2010 |
John McCall <rjmccall@apple.com> |
When destroying a cleanup, kill any references to instructions in the entry block before deleting it. Fixes PR7575. This really just a short-term fix before implementing lazy cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107676 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
044cc54a7d83c90857187c4cd4a0fd33664a7f7f |
06-Jul-2010 |
John McCall <rjmccall@apple.com> |
When creating functions to run global initializers and destructors, mark them as nounwind in -fno-exceptions. Fixes rdar://problem/8090834. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107639 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
252cd6a762096e41c324259aaf7de83f2ff10792 |
06-Jul-2010 |
John McCall <rjmccall@apple.com> |
Stop testing for specific basic block numbers in this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107632 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
f1549f66a8216a78112286e3978cea2c29d6334c |
06-Jul-2010 |
John McCall <rjmccall@apple.com> |
Validated by nightly-test runs on x86 and x86-64 darwin, including after self-host. Hopefully these results hold up on different platforms. I tried to keep the GNU ObjC runtime happy, but it's hard for me to test. Reimplement how clang generates IR for exceptions. Instead of creating new invoke destinations which sequentially chain to the previous destination, push a more semantic representation of *why* we need the cleanup/catch/filter behavior, then collect that information into a single landing pad upon request. Also reorganizes how normal cleanups (i.e. cleanups triggered by non-exceptional control flow) are generated, since it's actually fairly closely tied in with the former. Remove the need to track which cleanup scope a block is associated with. Document a lot of previously poorly-understood (by me, at least) behavior. The new framework implements the Horrible Hack (tm), which requires every landing pad to have a catch-all so that inlining will work. Clang no longer requires the Horrible Hack just to make exceptions flow correctly within a function, however. The HH is an unfortunate requirement of LLVM's EH IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107631 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
estructors.cpp
h.cpp
rvo.cpp
hreadsafe-statics-exceptions.cpp
|
4d254836f4a6a03fb3c77d0636c3cb5475540eb0 |
03-Jul-2010 |
Charles Davis <cdavis@mines.edu> |
Mangle Objective-C pointers and block pointers in the Microsoft C++ Mangler. ObjC pointers were easy enough (as far as the ABI is concerned, they're just pointers to structs), but I had to invent a new mangling for block pointers. This is particularly worrying with the Microsoft ABI, because it is a vendor-specific ABI; extending it could come back to bite us later when MS extends it on their own (and you know they will). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107572 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
08778269cfbf803fb216870060c60eb2adb25ef6 |
03-Jul-2010 |
Charles Davis <cdavis@mines.edu> |
Fix mangling of array dimensions in the Microsoft C++ Mangler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107568 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
cd712cb5711b597bf3a2a67a4027e2238c8b9828 |
03-Jul-2010 |
Charles Davis <cdavis@mines.edu> |
Mangle member pointer types in the Microsoft C++ Mangler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107567 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
1139da148e44193a71585f418be96ef9c5f6defa |
03-Jul-2010 |
Charles Davis <cdavis@mines.edu> |
Fix mangling of function pointers in the Microsoft C++ Mangler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107564 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
4f0a3376a5e5c9028b0c736ac935895aabdb5fcd |
03-Jul-2010 |
Charles Davis <cdavis@mines.edu> |
Fix mangling of array parameters for functions in the Microsoft C++ Mangler. Only actual functions get mangled correctly; I don't know how to fix it for function pointers yet. Thanks to John McCall for the hint. Also, mangle anonymous tag types. I don't have a suitable testcase yet; I have a feeling that that's going to need support for static locals, and I haven't figured out exactly how MSVC's scheme for mangling those works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107561 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
d92ec474faeb6133e0d41f0de4526b22778476f2 |
01-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate fix for PR7526, which was failing because, now that we aren't dropping all exception specifications on destructors, the exception specifications on implicitly-declared destructors were detected as being wrong (which they were). Introduce logic to provide a proper exception-specification for implicitly-declared destructors. This also fixes PR6972. Note that the other implicitly-declared special member functions also need to get exception-specifications. I'll deal with that in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107385 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
4b662a5684d41ea4ff6b52711929e00fefb00db1 |
01-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r107374, which broke bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107378 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
2fef752aebece6786e5f3d54984272ef85564af8 |
01-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
When building the type of a destructor, make sure to keep the exception specification. Fixes PR7526. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107374 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
bcaedaed309ce453a992fdeef4a4c908cc7d9dfb |
30-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Reapply: r107173, "fix PR7519: after thrashing around and remembering how all this stuff" r107216, "fix PR7523, which was caused by the ABI code calling ConvertType instead" This includes a fix to make ConvertTypeForMem handle the "recursive" case, and call it as such when lowering function types which have an indirect result. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107310 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
0b8fe8c68eb503b9955f13c0c27b18b1f8321158 |
30-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Mangle arrays in the Microsoft C++ Mangler. It's not quite finished (it doesn't mangle array parameters right), but I think that should be fixed in Sema (Doug, John, what do you think?). Also, stub out the remaining mangleType() routines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107264 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
a9e05156438dc3f0ef1067ffce80037d9333e022 |
30-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r107216, "fix PR7523, which was caused by the ABI code calling ConvertType instead", it is part of a boostrap breaking sequence. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107231 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
f1d5d8a7f217119063232f72f74cdba4bebbd714 |
30-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR7523, which was caused by the ABI code calling ConvertType instead of ConvertTypeRecursive when it needed to in a few cases, causing pointer types to get resolved at the wrong time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107216 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
d7f7d0895dc43db20c43112a24684f11eed305de |
30-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen: Assignment to Objective-C properties shouldn't reload the value (which would trigger an extra method call). - While in the area, I also changed Clang to not emit an unnecessary load from 'x' in cases like 'y = (x = 1)'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107210 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-assignment.cpp
|
9fde9c424f734e1ef45177999e3a04faad127414 |
29-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
tests: Use %clangxx when using driver for C++, in case C++ support is disabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107153 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-convert.cpp
xx-apple-kext.cpp
|
9c254f0415bef9a0bafe5b5026ddb54b727597b1 |
29-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Change X86_64ABIInfo to have ASTContext and TargetData ivars to avoid passing ASTContext down through all the methods it has. When classifying an argument, or argument piece, as INTEGER, check to see if we have a pointer at exactly the same offset in the preferred type. If so, use that pointer type instead of i64. This allows us to compile A function taking a stringref into something like this: define i8* @foo(i64 %D.coerce0, i8* %D.coerce1) nounwind ssp { entry: %D = alloca %struct.DeclGroup, align 8 ; <%struct.DeclGroup*> [#uses=4] %0 = getelementptr %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1] store i64 %D.coerce0, i64* %0 %1 = getelementptr %struct.DeclGroup* %D, i32 0, i32 1 ; <i8**> [#uses=1] store i8* %D.coerce1, i8** %1 %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1] %tmp1 = load i64* %tmp ; <i64> [#uses=1] %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i8**> [#uses=1] %tmp3 = load i8** %tmp2 ; <i8*> [#uses=1] %add.ptr = getelementptr inbounds i8* %tmp3, i64 %tmp1 ; <i8*> [#uses=1] ret i8* %add.ptr } instead of this: define i8* @foo(i64 %D.coerce0, i64 %D.coerce1) nounwind ssp { entry: %D = alloca %struct.DeclGroup, align 8 ; <%struct.DeclGroup*> [#uses=3] %0 = insertvalue %0 undef, i64 %D.coerce0, 0 ; <%0> [#uses=1] %1 = insertvalue %0 %0, i64 %D.coerce1, 1 ; <%0> [#uses=1] %2 = bitcast %struct.DeclGroup* %D to %0* ; <%0*> [#uses=1] store %0 %1, %0* %2, align 1 %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1] %tmp1 = load i64* %tmp ; <i64> [#uses=1] %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i8**> [#uses=1] %tmp3 = load i8** %tmp2 ; <i8*> [#uses=1] %add.ptr = getelementptr inbounds i8* %tmp3, i64 %tmp1 ; <i8*> [#uses=1] ret i8* %add.ptr } This implements rdar://7375902 - [codegen quality] clang x86-64 ABI lowering code punishing StringRef git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107123 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
225e286110bcc8b7b1ff8b35f0d51a10a158b18c |
29-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
add IR names to coerced arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107105 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
ce70016434ff82a29a60ef82894d934b8a23f23d |
29-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Change CGCall to handle the "coerce" case where the coerce-to type is a FCA to pass each of the elements as individual scalars. This produces code fast isel is less likely to reject and is easier on the optimizers. For example, before we would compile: struct DeclGroup { long NumDecls; char * Y; }; char * foo(DeclGroup D) { return D.NumDecls+D.Y; } to: %struct.DeclGroup = type { i64, i64 } define i64 @_Z3foo9DeclGroup(%struct.DeclGroup) nounwind { entry: %D = alloca %struct.DeclGroup, align 8 ; <%struct.DeclGroup*> [#uses=3] store %struct.DeclGroup %0, %struct.DeclGroup* %D, align 1 %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1] %tmp1 = load i64* %tmp ; <i64> [#uses=1] %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i64*> [#uses=1] %tmp3 = load i64* %tmp2 ; <i64> [#uses=1] %add = add nsw i64 %tmp1, %tmp3 ; <i64> [#uses=1] ret i64 %add } Now we get: %0 = type { i64, i64 } %struct.DeclGroup = type { i64, i8* } define i8* @_Z3foo9DeclGroup(i64, i64) nounwind { entry: %D = alloca %struct.DeclGroup, align 8 ; <%struct.DeclGroup*> [#uses=3] %2 = insertvalue %0 undef, i64 %0, 0 ; <%0> [#uses=1] %3 = insertvalue %0 %2, i64 %1, 1 ; <%0> [#uses=1] %4 = bitcast %struct.DeclGroup* %D to %0* ; <%0*> [#uses=1] store %0 %3, %0* %4, align 1 %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1] %tmp1 = load i64* %tmp ; <i64> [#uses=1] %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i8**> [#uses=1] %tmp3 = load i8** %tmp2 ; <i8*> [#uses=1] %add.ptr = getelementptr inbounds i8* %tmp3, i64 %tmp1 ; <i8*> [#uses=1] ret i8* %add.ptr } Elimination of the FCA inside the function is still-to-come. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107099 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
8ff296496de0970c8d6d72320a1427a926d7ef14 |
28-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
pass/return structs of char and short as i8/i16 to avoid aweful through-memory coersion, just like we do for i32 now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107078 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
ember-functions.cpp
|
faf23b72f171ef997d48c453a5a4783c5759f8fe |
28-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
X86-64: pass/return structs of float/int as float/i32 instead of double/i64 to make the code generated for ABI cleaner. Passing in the low part of a double is the same as passing in a float. For example, we now compile: struct DeclGroup { float NumDecls; }; float foo(DeclGroup D); void bar(DeclGroup *D) { foo(*D); } into: %struct.DeclGroup = type { float } define void @_Z3barP9DeclGroup(%struct.DeclGroup* %D) nounwind { entry: %D.addr = alloca %struct.DeclGroup*, align 8 ; <%struct.DeclGroup**> [#uses=2] %agg.tmp = alloca %struct.DeclGroup, align 4 ; <%struct.DeclGroup*> [#uses=2] store %struct.DeclGroup* %D, %struct.DeclGroup** %D.addr %tmp = load %struct.DeclGroup** %D.addr ; <%struct.DeclGroup*> [#uses=1] %tmp1 = bitcast %struct.DeclGroup* %agg.tmp to i8* ; <i8*> [#uses=1] %tmp2 = bitcast %struct.DeclGroup* %tmp to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp1, i8* %tmp2, i64 4, i32 4, i1 false) %coerce.dive = getelementptr %struct.DeclGroup* %agg.tmp, i32 0, i32 0 ; <float*> [#uses=1] %0 = load float* %coerce.dive, align 1 ; <float> [#uses=1] %call = call float @_Z3foo9DeclGroup(float %0) ; <float> [#uses=0] ret void } instead of: %struct.DeclGroup = type { float } define void @_Z3barP9DeclGroup(%struct.DeclGroup* %D) nounwind { entry: %D.addr = alloca %struct.DeclGroup*, align 8 ; <%struct.DeclGroup**> [#uses=2] %agg.tmp = alloca %struct.DeclGroup, align 4 ; <%struct.DeclGroup*> [#uses=2] %tmp3 = alloca double ; <double*> [#uses=2] store %struct.DeclGroup* %D, %struct.DeclGroup** %D.addr %tmp = load %struct.DeclGroup** %D.addr ; <%struct.DeclGroup*> [#uses=1] %tmp1 = bitcast %struct.DeclGroup* %agg.tmp to i8* ; <i8*> [#uses=1] %tmp2 = bitcast %struct.DeclGroup* %tmp to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp1, i8* %tmp2, i64 4, i32 4, i1 false) %coerce.dive = getelementptr %struct.DeclGroup* %agg.tmp, i32 0, i32 0 ; <float*> [#uses=1] %0 = bitcast double* %tmp3 to float* ; <float*> [#uses=1] %1 = load float* %coerce.dive ; <float> [#uses=1] store float %1, float* %0, align 1 %2 = load double* %tmp3 ; <double> [#uses=1] %call = call float @_Z3foo9DeclGroup(double %2) ; <float> [#uses=0] ret void } which is this machine code (at -O0): __Z3barP9DeclGroup: subq $24, %rsp movq %rdi, 16(%rsp) movq 16(%rsp), %rdi leaq 8(%rsp), %rax movl (%rdi), %ecx movl %ecx, (%rax) movss 8(%rsp), %xmm0 callq __Z3foo9DeclGroup addq $24, %rsp ret vs this: __Z3barP9DeclGroup: subq $24, %rsp movq %rdi, 16(%rsp) movq 16(%rsp), %rdi leaq 8(%rsp), %rax movl (%rdi), %ecx movl %ecx, (%rax) movss 8(%rsp), %xmm0 movss %xmm0, (%rsp) movsd (%rsp), %xmm0 callq __Z3foo9DeclGroup addq $24, %rsp ret At -O3, it is the difference between this now: __Z3barP9DeclGroup: movss (%rdi), %xmm0 jmp __Z3foo9DeclGroup # TAILCALL vs this before: __Z3barP9DeclGroup: movl (%rdi), %eax movd %rax, %xmm0 jmp __Z3foo9DeclGroup # TAILCALL git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107048 91177308-0d34-0410-b5e6-96231b3b80d8
lloca-align.cpp
irtual-functions-incomplete-types.cpp
|
b401e07df06e88dc144a5ebb8e01ac70d84baf5c |
28-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
tests: Rewrite test to check intent instead of implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107024 91177308-0d34-0410-b5e6-96231b3b80d8
ynArrayInit.cpp
|
045a6d84a0fa672eb5d914be1bb8f3baa226beb3 |
27-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly destroy reference temporaries with global storage. Remove ErrorUnsupported call when binding a global reference to a non-lvalue. Fixes PR7326. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106983 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
35b21b884e5c3447a52a74d7ffaba966b07ac81f |
27-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Change IR generation for return (in the simple case) to avoid doing silly load/store nonsense in the epilog. For example, for: int foo(int X) { int A[100]; return A[X]; } we used to generate: %arrayidx = getelementptr inbounds [100 x i32]* %A, i32 0, i64 %idxprom ; <i32*> [#uses=1] %tmp1 = load i32* %arrayidx ; <i32> [#uses=1] store i32 %tmp1, i32* %retval %0 = load i32* %retval ; <i32> [#uses=1] ret i32 %0 } which codegen'd to this code: _foo: ## @foo ## BB#0: ## %entry subq $408, %rsp ## imm = 0x198 movl %edi, 400(%rsp) movl 400(%rsp), %edi movslq %edi, %rax movl (%rsp,%rax,4), %edi movl %edi, 404(%rsp) movl 404(%rsp), %eax addq $408, %rsp ## imm = 0x198 ret Now we generate: %arrayidx = getelementptr inbounds [100 x i32]* %A, i32 0, i64 %idxprom ; <i32*> [#uses=1] %tmp1 = load i32* %arrayidx ; <i32> [#uses=1] ret i32 %tmp1 } and: _foo: ## @foo ## BB#0: ## %entry subq $408, %rsp ## imm = 0x198 movl %edi, 404(%rsp) movl 404(%rsp), %edi movslq %edi, %rax movl (%rsp,%rax,4), %eax addq $408, %rsp ## imm = 0x198 ret This actually does matter, cutting out 2000 lines of IR from CGStmt.ll for example. Another interesting effect is that altivec.h functions which are dead now get dce'd by the inliner. Hence all the changes to builtins-ppc-altivec.c to ensure the calls aren't dead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106970 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
e70ffd631179c15d358838464425e3464cf05a98 |
26-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://7432000 - signed negate should codegen as NSW. While I'm in there, adjust pointer to member adjustments as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106955 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
3a0d41d29192ff42870310e33800939f4e34bb55 |
26-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Mangle pointer and (lvalue) reference types in the Microsoft C++ Mangler. Also, fix mangling of throw specs. Turns out MSVC totally ignores throw specs when mangling names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106937 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
e347e776e7c1cae73ac0c40d63023a1f2bae2114 |
26-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Try making BuildBot happy again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106898 91177308-0d34-0410-b5e6-96231b3b80d8
ynArrayInit.cpp
|
7ef2565811ad58067b602157ef2abbe626e7b1f0 |
25-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Test case for pr7490. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106887 91177308-0d34-0410-b5e6-96231b3b80d8
ynArrayInit.cpp
|
564360be450b319aeafc26698be9811837bfb826 |
24-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to correctly mangle block helper functions when block literal is declared inside a ctor/dtor. Fixes radr 8096995. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106700 91177308-0d34-0410-b5e6-96231b3b80d8
lock-in-ctor-dtor.cpp
|
af896897f7485176f43d40c4adced7efb0fb2b06 |
21-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Instantiations subject to an explicit template instantiation declaration have default visibility even under -fvisibility=hidden. Fixes <rdar://problem/8109763>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106440 91177308-0d34-0410-b5e6-96231b3b80d8
isibility-hidden-extern-templates.cpp
|
2bf6d7b1f7406ca4dfe841d4f6ef4b91dce195e4 |
21-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a corner case bug whereby declaring and defining an extern variable in a particular sequence causes its definition to not be generated in the object file. (fixes radar 8071804). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106424 91177308-0d34-0410-b5e6-96231b3b80d8
nternal-linkage.cpp
|
61c6c91930de9c0659027f019062b4a5636c1c2a |
19-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR7415: refactor CodeGenModule::MayDeferGeneration and make it less conservative for static variables in templated classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106385 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-static-var-defer.cpp
|
810112e28dc839715d17b0a786f23aaa19600ac0 |
19-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR7097, a bad interaction between -fno-use-cxa-atexit and -mconstructor-aliases by using a WeakVH instead of a raw pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106384 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-dtor-no-atexit.cpp
|
c62458f6aead5e4c0d0f4534d52142e7864ba02b |
18-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Mangle tag types (unions, structs, classes, enums) in the Microsoft C++ Mangler. Also, test that static members with default visibility in a struct have the right mangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106276 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
949bd4b611f4be575d63da36c94c3662dfa4d459 |
17-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Do not treat @selector as lvalue (unlike g++). Patch by Nico Weber (pr7390). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106242 91177308-0d34-0410-b5e6-96231b3b80d8
el-address.mm
|
21e2a7e8d38120e358bead9e1f14ed526d37bc90 |
17-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Mangle operator names in the Microsoft C++ Mangler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106211 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
1ed1a594e9befc91ebf00d81b41a2fdfab862657 |
16-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change the test for which ABI/CC to use on ARM to be base on the environment (the last argument of the triple). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106131 91177308-0d34-0410-b5e6-96231b3b80d8
rm-cc.cpp
|
75d0f82e50565cc4cf71140ecf2141a40a3a5af9 |
16-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix tests that I missed from my previous commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106118 91177308-0d34-0410-b5e6-96231b3b80d8
rm-cc.cpp
rm.cpp
|
65161d17cbf8980e24643c65b74a5127dcb7ac22 |
16-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Start mangling function types in the Microsoft C++ Mangler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106081 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
2a71107b9a0aa647c18e7655c53d9940ab390963 |
16-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Moved objective-c++ code gen. tests to their own directory and added a new test case (related to radar 8070772). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106067 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-copy-assign-operator.mm
mplicit-copy-constructor.mm
|
55bcace250e1ff366e4482714b344b8cbc8be5f3 |
16-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch adds support for copying of those objective-c++ class objects which have GC'able objc object pointers and need to use ObjC's objc_memmove_collectable API (radar 8070772). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106061 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-copy-assign-operator.mm
mplicit-copy-constructor.mm
|
7cf84d66965a7706004d8590b5af5fe54b85f525 |
15-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement -fvisibility-inlines-hidden. <rdar://problem/7819834> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106003 91177308-0d34-0410-b5e6-96231b3b80d8
isibility-inlines-hidden.cpp
|
c66bcfd32b941d8008284ecae9d16d7d47c96b0b |
15-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Make sure to set the visible on a vtable; VTTs and typeinfo already handle visibility properly. Fixes <rdar://problem/8091955>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105977 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
56079f7dde1d9c9e16207feffa3f1f888a78ab69 |
15-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Add name mangling for address spaces. We use the vendor-extension mangling for types, where the <source-name> is ASxxx (xxx is the address-space number). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105975 91177308-0d34-0410-b5e6-96231b3b80d8
angle-address-space.cpp
|
b021f8bd445959e2a5c958624a464ff621253ae4 |
14-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Microsoft C++ Mangler: - Mangle qualifiers. - Start mangling variables' types into the name. A variable declared with a builtin type should now mangle properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105931 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
570d2763bc9ee6c26b12c0b6316dd87261520bfe |
12-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Microsoft C++ Mangler: - Don't mangle static variables at global scope. - Add support for mangling builtin types. This will be used later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105881 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
971154db24429b103280d15423b8c200cfb2380c |
11-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
When mangling for the Microsoft C++ ABI, mangle variables in the global namespace, too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105809 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
e60cea829b3bc45fcfedbfdb08cffb61f5bde79f |
11-Jun-2010 |
Charles Davis <cdavis@mines.edu> |
Start implementing the Microsoft-style name mangler. Mangle simple names (but not their types; that's later). NOTE: Right now, variables in the global namespace don't get mangled, even though they're supposed to be. This is because the default mangler implements the shouldMangleDeclName() method that tells clang not to mangle them. This will be fixed in a later patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105805 91177308-0d34-0410-b5e6-96231b3b80d8
angle-ms.cpp
|
9df792c199473ac1bd012b8018373680ac00c309 |
09-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Fix test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105668 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
56833bc2af5d8e91859380caf31c15a64a6502a9 |
09-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Try to fix buildbot tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105660 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init-darwin.cpp
|
605fa8fe517b573fc9add520dbf4a014bc52e2fe |
09-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Add test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105651 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init-darwin.cpp
|
ac7362dedab6002a0811f47ccfcaf81a9c728d35 |
08-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Block Code Gen. API. Call destructor on descriptior entry previously constructed via copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105641 91177308-0d34-0410-b5e6-96231b3b80d8
opy-in-cplus-object.cpp
|
d7c7338dd7bf1a35179ec3521f7438c0fbd98e9c |
08-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a typo which prevented proper code gen. for copy-in of c++ class objects into blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105622 91177308-0d34-0410-b5e6-96231b3b80d8
opy-in-cplus-object.cpp
|
6f7e2f4019860cad19883db44f4d0bfa36d2f552 |
08-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly mangle static variables of anonymous struct/union type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105606 91177308-0d34-0410-b5e6-96231b3b80d8
angle-unnamed.cpp
|
99b8b92f5148126bb32ee75ebd44bd526f39c411 |
08-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add test for previous commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105594 91177308-0d34-0410-b5e6-96231b3b80d8
rm-cc.cpp
|
6deecb0d46bcfd048e651d2db7c4fb0d6407da96 |
05-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Correctly align large arrays in x86-64. This fixes PR5599. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105500 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
59da45a1fc10a3af4f3b3152f45504b4c5ca7385 |
04-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Build AST for copy-construction of copied-in class object in blocks and carry it to IRGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105487 91177308-0d34-0410-b5e6-96231b3b80d8
opy-in-cplus-object.cpp
|
df8b8ea3492a314488ffee72704665b22bc73989 |
04-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
For C++ copied in objects, use copy constructors in setting up block's descriptor. This is on going work to support c++ specific issues in setting up blocks various APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105469 91177308-0d34-0410-b5e6-96231b3b80d8
opy-in-cplus-object.cpp
|
5f83c60d5d5e3a87f5281db8125755c65a72b070 |
04-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Check the output of this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105434 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-assignment.cpp
|
c26a9ae80e9cec5cb985090ef051f9221fd0fe04 |
04-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Think through my commit this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105433 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expression-dtor.cpp
|
47a700bf78cbf750f96ea0aab1114f82abcbdc94 |
04-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure this test doesn't break when we disallow throwing an exception in -fno-exceptions mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105432 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expression-dtor.cpp
|
5ed9b93c596c3926b6680b47de28c8ff6a8ff4b7 |
03-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure to check the accessibility of and mark the destructor for the operand of a throw expression. Fixes PR7281. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105408 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expression-dtor.cpp
|
0b29227012aacb1ae42277b0a63d28acb1b35270 |
03-Jun-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Don't intentionally try to ignore the value of a scalar expression when we actually care about it. Fixes PR7291. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105404 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-assignment.cpp
|
e9a05b7fd6ece68310707d10bc747a702a9af4a8 |
03-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Don't try to explicitly zero out bit-fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105391 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
7965172058761ae34e6f8b2c5b801fee8840f964 |
02-Jun-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Block C++ code gen. Adds support for block reference argument types. Executable test will be added to LLVM test suite. (radar 8041962). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105347 91177308-0d34-0410-b5e6-96231b3b80d8
eference-in-block-args.cpp
|
e21323588b32caf674213c9897dd12e2f0ea3cc5 |
02-Jun-2010 |
John McCall <rjmccall@apple.com> |
Don't try to emit the vtable for a class just because we're emitting a virtual function from it. Fixes PR7241. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105345 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
irtual-base-destructor-call.cpp
|
c820f90ff1a2c6e3e8b859355541c32f31d3cb8e |
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Don't substitute 'St' for 'std' when the namespace is nested inside another namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105330 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
abd6b09e3daa4d82b7e8ee6966d7f745fd121835 |
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
When building RTTI descriptors for pointer types, we need to get the unqualified array type and the qualifiers from it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105326 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
|
d1c1d7bd14dce533e8755164ff59988f2ea5da94 |
02-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
typeid() produces type information for the cv-unqualified version of the type. Thanks to Anders for the bug report! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105314 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
dfc0d1ff1af5b199945a1ff98a6f7db0fdfb1615 |
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly mangle unsigned integer literals where the high bit is set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105312 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
93296683a70eed2fae0b694748ed4cc51c53aef4 |
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly mangle variadic functions that don't have any other parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105311 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
9d85b7203b4cb638e45e64e8378338aa256699cd |
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
When mangling member function pointers, fake adding a substitution corresponding to the function type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105310 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
c00129a08c829bb34f22dc13727043c994c85644 |
30-May-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR7040: Don't try to compute the LLVM type for a function where it isn't possible to compute. This patch is mostly refactoring; the key change is the addition of the code starting with the comment, "Check whether the function has a computable LLVM signature." The solution here is essentially the same as the way the vtable code handles such functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105151 91177308-0d34-0410-b5e6-96231b3b80d8
ncomplete-member-function-pointer.cpp
|
0a87b377d9a8af87ebc99585be96aac2d36ccfcb |
27-May-2010 |
Anders Carlsson <andersca@mac.com> |
When null-initializing bases with data member pointers, don't assert on virtual bases. Just initialize them to null. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104868 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
e03d99247412702660c9c8b8b9b98a1def8a2195 |
27-May-2010 |
John McCall <rjmccall@apple.com> |
Give this test a triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104798 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
c76702cc80c1ef8a94d82b62ddcb4ed4f67d5b8c |
27-May-2010 |
John McCall <rjmccall@apple.com> |
When deciding whether a deferred declaration has already been emitted, aliases count as definitions regardless of whether their target has been emitted yet. Fixes PR 7142. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104796 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
2736071ea3a46f90e65c93418961611d96c10ab9 |
27-May-2010 |
John McCall <rjmccall@apple.com> |
Correctly pass aggregates by reference when emitting thunks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104778 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
4c464b9702af8ec5e76d5eb184e76df1d40c23ec |
26-May-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to fix a irgen crash accessing an initialized local static variable in a local function. Fixes pr7101. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104743 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-local-in-local-class.cpp
|
1b12a3bb4d4c0db74fc97be724beefec7366b460 |
26-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Be sure to use the standard substitutions when mangling the names of vtables, VTTs, and construction vtables. Fixes PR7201. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104675 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
8b2423361648c39a7d8a3c5e8129e12006deac32 |
25-May-2010 |
John McCall <rjmccall@apple.com> |
If a function definition has any sort of weak linkage, its static local variables should have that linkage. Otherwise, its static local variables should have internal linkage. To avoid computing this excessively, set a function's linkage before we emit code for it. Previously we were assigning weak linkage to the static variables of static inline functions in C++, with predictably terrible results. This fixes that and also gives better linkage than 'weak' when merging is required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104581 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
b9aefa775158b68c453e4ac0e4e2ada561900d26 |
25-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen/C++: When mark vtables used, make sure to still append to the VTableUse array if we promote a vtable from being just used to having its definition required. This ensures that we properly inform the consumer about whether the vtable is required or not, previously we could fail to do so when the vtable was in the VTableUses array before the decl which marked it as required. - I think this can be cleaned up, since this means we may notify the consumer about the vtable twice, but I didn't see an easy fix for this without more substantial refactoring. - Doug, please review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104577 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
89cf2e3d9d356a8b960a5ab12ccc677fe2dce7f8 |
23-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a comment for r104472. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104473 91177308-0d34-0410-b5e6-96231b3b80d8
R5863-unreachable-block.cpp
|
92b9bd96ce25630f73717965fcaf4b5a761e49e5 |
23-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
PR5863: Don't erase unreachable BBs which have an associated cleanup size. This works around a crash where malloc reused the memory of an erased BB for a new BB leaving old cleanup information pointing at the new block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104472 91177308-0d34-0410-b5e6-96231b3b80d8
R5863-unreachable-block.cpp
|
a40a9f31218c743e366322e34b59f0d4d4414198 |
22-May-2010 |
Anders Carlsson <andersca@mac.com> |
Really fix PR7139. There was one boost test that we still failed, and my first fix broke self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104447 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
1884eb0b5c55edda4893ddec45e7dbad79758782 |
22-May-2010 |
Anders Carlsson <andersca@mac.com> |
Re-land the fix for PR7139. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104446 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
0fddb97901dbe36a8253dee29961cba8e0a87cf6 |
22-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement support for variable length arrays in C++. VLAs are limited in several important ways: - VLAs of non-POD types are not permitted. - VLAs cannot be used in conjunction with C++ templates. These restrictions are intended to keep VLAs out of the parts of the C++ type system where they cause the most trouble. Fixes PR5678 and <rdar://problem/8013618>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104443 91177308-0d34-0410-b5e6-96231b3b80d8
99-variable-length-array.cpp
|
2d6b0e94db30c0e2754d270753c6f75478e451bf |
22-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve our handling of reference binding for subobjects of temporaries. There are actually several interrelated fixes here: - When converting an object to a base class, it's only an lvalue cast when the original object was an lvalue and we aren't casting pointer-to-derived to pointer-to-base. Previously, we were misclassifying derived-to-base casts of class rvalues as lvalues, causing various oddities (including problems with reference binding not extending the lifetimes of some temporaries). - Teach the code for emitting a reference binding how to look through no-op casts and parentheses directly, since Expr::IgnoreParenNoOpCasts is just plain wrong for this. Also, make sure that we properly look through multiple levels of indirection from the temporary object, but destroy the actual temporary object; this fixes the reference-binding issue mentioned above. - Teach Objective-C message sends to bind the result as a temporary when needed. This is actually John's change, but it triggered the reference-binding problem above, so it's included here. Now John can actually test his return-slot improvements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104434 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
892fa6c5e152dd22e4ba460d5c8cd5c79d657e87 |
22-May-2010 |
Anders Carlsson <andersca@mac.com> |
Unbreak self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104390 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
db9b12e32c988e4a6ac49404fd2513d0b05bba32 |
21-May-2010 |
Anders Carlsson <andersca@mac.com> |
Rename CodeGenFunction::EmitMemSetToZero to EmitNullInitialization. Handle setting null data member pointers correctly. Fixes PR7139. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104387 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
663218b576d8d79dea546c5726d7c90c216b1358 |
21-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When generating the call arguments in a thunk to call the thunkee, do not make copies non-POD arguments or arguments passed by reference: just copy the pointers directly. This eliminates another source of the dreaded memcpy-of-non-PODs. Fixes PR7188. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104327 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
a9976d3b192690db20f59dc44099ac4ca939bdb7 |
21-May-2010 |
John McCall <rjmccall@apple.com> |
When emitting an lvalue for an anonymous struct or union member during class initialization, drill down through an arbitrary number of anonymous records. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104310 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
f1860e5c381a2710fcebe6d55d799c6b25c21041 |
21-May-2010 |
John McCall <rjmccall@apple.com> |
Be sure to apply initializers to members of anonymous structs and unions recursively, e.g. so that members of anonymous unions inside anonymous structs still get initialized. Also generate default constructor calls for anonymous struct members when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104292 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
60dcb8432cff2455488b9226b9cc65b80356146e |
20-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Rework our handling of binding a reference to a temporary subobject. Previously, we could only properly bind to a base class subobject while extending the lifetime of the complete object (of a derived type); for non-static data member subobjects, we could memcpy (!) the result and bind to that, which is rather broken. Now, we pull apart the expression that we're binding to, to figure out which subobject we're accessing, then construct the temporary object (adding a destruction if needed) and, finally, dig out the subobject we actually meant to access. This fixes yet another instance where we were memcpy'ing rather than doing the right thing. However, note the FIXME in references.cpp: there's more work to be done for binding to subobjects, since the AST is incorrectly modeling some member accesses in base classes as lvalues when they are really rvalues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104219 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
cb359df81b83dd4f938d05cb9cf5c34bd20068bd |
20-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When creating a this-adjustment thunk where the return value is of C++ class type (that uses a return slot), pass the return slot to the callee directly rather than allocating new storage and trying to copy the object. This appears to have been the cause of the remaining two Boost.Interprocess failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104215 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
a83fb4bf8119b980ccf7de0795dff250a799ea58 |
18-May-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly initialize bases with member pointers. This should fix PR6441 but that test case is a bit weird and I'd like to investigate further before closing that bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104025 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
5ea68614bfe0e78b5d66339b781529038f86501f |
17-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
C++/Darwin/i386 ABI: Fix some problems with empty record handling. - Check bases as part of isEmptyRecord(). - C++ record fields are never empty in the Itanium ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103944 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
3d91bbcdab155181556969cad6ec97014405aced |
17-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Ensure that destructors are called for NRVO'd objects when the function does not return. Thanks to Eli for pointing out this corner case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103941 91177308-0d34-0410-b5e6-96231b3b80d8
rvo.cpp
|
761c94e3bffef0fcb8b4bbf202fd5ee73db134f3 |
16-May-2010 |
Chandler Carruth <chandlerc@gmail.com> |
When constant folding reference variables with an initializer to the initializer, don't fold paramters. Their initializers are just default arguments which can be overridden. This fixes some spectacular regressions due to more things making it into the constant folding. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103904 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
86a3a03667bdb0dcab7e6a2877dfd234b07a6d43 |
16-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When initializing thread-safe statics, put the call to __cxa_guard_abort along the exceptional edge into (in effect) a nested "try" that rethrows after aborting. Fixes PR7144 and the remaining Boost.ProgramOptions failures, along with the regressions that r103880 caused. The crucial difference between this and r103880 is that we now follow LLVM's little dance with the llvm.eh.exception and llvm.eh.selector calls, then use _Unwind_Resume_or_Rethrow to rethrow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103892 91177308-0d34-0410-b5e6-96231b3b80d8
hreadsafe-statics-exceptions.cpp
|
1eb2e59338c4b9c0429fc39ca98662adc9e7a3f2 |
16-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r103880 (thread-safe static initialization w/ exceptions), because it's causing strange linker errors. Unfixes PR7144. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103890 91177308-0d34-0410-b5e6-96231b3b80d8
hreadsafe-statics-exceptions.cpp
|
bfcc823a5c53dabab8cfc842bfea70e2b69cdee0 |
15-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When initializing thread-safe statics, put the call to __cxa_guard_abort along the exceptional edge into (in effect) a nested "try" that rethrows after aborting. Fixes PR7144 and the remaining Boost.ProgramOptions failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103880 91177308-0d34-0410-b5e6-96231b3b80d8
hreadsafe-statics-exceptions.cpp
|
72bf425fab902f5fd6114b630b8dc3dc0e1de1a8 |
15-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Attempt to satisfy Release-Asserts build git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103879 91177308-0d34-0410-b5e6-96231b3b80d8
rvo.cpp
|
b5b30b96e0accaf3c78a19c3febba5136dae8386 |
15-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When applying the named return value optimization, we still need to destroy the variable along the exceptional edge; it's only during normal execution that we avoid destroying this variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103872 91177308-0d34-0410-b5e6-96231b3b80d8
rvo.cpp
|
d86c477fb5d3fc34864afecbbb5443da9355e8fb |
15-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement a simple form of the C++ named return value optimization for return statements. We perform NRVO only when all of the return statements in the function return the same variable. Fixes some link failures in Boost.Interprocess (which is relying on NRVO), and probably improves performance for some C++ applications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103867 91177308-0d34-0410-b5e6-96231b3b80d8
rvo.cpp
|
67d438d39a1cc37c372a2684dc354f58d0169bb1 |
15-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
C++/ABI/x86_64: Member pointers should be classified as INTEGER. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103843 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
7711523d948bbe635f690f5795ef7ea9a3289eb2 |
15-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
C++/ABI/i386: Member function pointers should be passed by value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103842 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
e37706dc65230201458364331ae0292ee8377143 |
14-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Tweak test so that it does not require <typeinfo> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103819 91177308-0d34-0410-b5e6-96231b3b80d8
ynamic-cast.cpp
|
69cfeb1036ad22c911b7243dca0eecee72e452d3 |
14-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Emit an lvalue dynamic_cast even if the result is not used. Another part (or possibly all) of PR7132. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103810 91177308-0d34-0410-b5e6-96231b3b80d8
ynamic-cast.cpp
|
485ee32d93d9f955ef1fb7239a0871c8a68a1867 |
14-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When a failed dynamic_cast<T&> (which is an lvalue) results in a throw, it should use invoke when needed. The fixes the Boost.Statechrt failures that motivated PR7132, but there are a few side issues to tackle as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103803 91177308-0d34-0410-b5e6-96231b3b80d8
ynamic-cast.cpp
yncast.cpp
|
3cb18bcefe39756f3b079fa1a62b4c9cbf6a592f |
14-May-2010 |
Anders Carlsson <andersca@mac.com> |
Make sure that value-initialized pointers to data members are initialized correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103771 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
ca4aa379fcae53c50760cdf3632d8d801b795046 |
14-May-2010 |
Douglas Gregor <dgregor@apple.com> |
A vtable is used if the key function is defined... even if that key function's definition is an out-of-class definition marked "inline". Fixes an assertion in WebKit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103763 91177308-0d34-0410-b5e6-96231b3b80d8
ey-function-vtable.cpp
|
ecb2df2408639e554def61080ce3afdb41e2f705 |
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
XFAIL a test on Win32. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103762 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
a1842d32a1964712e42078e9b389dce9258c6a8c |
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
C++/Darwin/x86: Teach IRgen it can pass reference types in registers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103761 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
1297fd72b1a3d7985c5c5e3e3a09b8acb2696358 |
13-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Disable the available_externally optimization for inline virtual methods for which the key function is guaranteed to be in another translation unit. Unfortunately, this guarantee isn't the case when dealing with shared libraries that fail to export these virtual method definitions. I'm reopening PR6747 so we can consider this again at a later point in time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103741 91177308-0d34-0410-b5e6-96231b3b80d8
R6747.cpp
|
6fb745bdf1ff1e32caf07e42093a7920726892c1 |
13-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Rework when and how vtables are emitted, by tracking where vtables are "used" (e.g., we will refer to the vtable in the generated code) and when they are defined (i.e., because we've seen the key function definition). Previously, we were effectively tracking "potential definitions" rather than uses, so we were a bit too eager about emitting vtables for classes without key functions. The new scheme: - For every use of a vtable, Sema calls MarkVTableUsed() to indicate the use. For example, this occurs when calling a virtual member function of the class, defining a constructor of that class type, dynamic_cast'ing from that type to a derived class, casting to/through a virtual base class, etc. - For every definition of a vtable, Sema calls MarkVTableUsed() to indicate the definition. This happens at the end of the translation unit for classes whose key function has been defined (so we can delay computation of the key function; see PR6564), and will also occur with explicit template instantiation definitions. - For every vtable defined/used, we mark all of the virtual member functions of that vtable as defined/used, unless we know that the key function is in another translation unit. This instantiates virtual member functions when needed. - At the end of the translation unit, Sema tells CodeGen (via the ASTConsumer) which vtables must be defined (CodeGen will define them) and which may be used (for which CodeGen will define the vtables lazily). From a language perspective, both the old and the new schemes are permissible: we're allowed to instantiate virtual member functions whenever we want per the standard. However, all other C++ compilers were more lazy than we were, and our eagerness was both a performance issue (we instantiated too much) and a portability problem (we broke Boost test cases, which now pass). Notes: (1) There's a ton of churn in the tests, because the order in which vtables get emitted to IR has changed. I've tried to isolate some of the larger tests from these issues. (2) Some diagnostics related to implicitly-instantiated/implicitly-defined virtual member functions have moved to the point of first use/definition. It's better this way. (3) I could use a review of the places where we MarkVTableUsed, to see if I missed any place where the language effectively requires a vtable. Fixes PR7114 and PR6564. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103718 91177308-0d34-0410-b5e6-96231b3b80d8
xx-apple-kext.cpp
tti-linkage.cpp
hunks.cpp
irtual-base-destructor-call.cpp
irtual-functions-incomplete-types.cpp
table-layout.cpp
table-linkage.cpp
|
9430d5a61598c47d827e1cd05f7cf3f110eeec9e |
11-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen/i386/C++: Fix isSingleElementStruct computation for C++ record decls. - Fixes PR7098. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103514 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
eaa18e449bb09c1e580aa35f9606ff2ca682f4cb |
09-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When instantiating statements that involve conditions (if, while, do, for, and switch), be careful to construct the full expressions as soon as we perform template instantation, so we don't either forget to call temporary destructors or destroy temporaries at the wrong time. This is the template-instantiation analogue to r103187, during which I hadn't realized that the issue would affect the handling of these constructs differently inside and outside of templates. Fixes a regression in Boost.Function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103357 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
40e629920b1eb0585e28b4418b95fc5aacbeeb26 |
08-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix test for Release-Asserts build git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103337 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
b0769101ac05792ccc539bc7359b1927b3fd4aca |
07-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Do not give implicitly-defined virtual members functions available_externally linkage, since they may not have been given a strong definition in another translation unit. Without this patch, the following test case fails to link with a GCC-compiled libstdc++: #include <sstream> int main() { std::basic_stringbuf<char> bs; } Fixes the last problem with the Boost.IO library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103208 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-linkage.cpp
|
f4aac11a5e49752b7f603e6ff2c6bbc1e044eb24 |
07-May-2010 |
Douglas Gregor <dgregor@apple.com> |
The global variable for the VTT might not have external linkage; allow us to find local variables, too. Fixes the last remaining Boost.Rational failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103203 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-namespaces.cpp
|
586596fd7f7a336a2847b300c80614dcf39ab6d5 |
06-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Rework our handling of temporary objects within the conditions of if/switch/while/do/for statements. Previously, we would end up either: (1) Forgetting to destroy temporaries created in the condition (!), (2) Destroying the temporaries created in the condition *before* converting the condition to a boolean value (or, in the case of a switch statement, to an integral or enumeral value), or (3) In a for statement, destroying the condition's temporaries at the end of the increment expression (!). We now destroy temporaries in conditions at the right times. This required some tweaking of the Parse/Sema interaction, since the parser was building full expressions too early in many places. Fixes PR7067. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103187 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
985f73960ac76842da4b10c30ca87a282ff9aa31 |
06-May-2010 |
Chris Lattner <sabre@nondot.org> |
simplify EmitAggMemberInitializer a bit and make it work in 32-bit mode, fixing PR7063. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103171 91177308-0d34-0410-b5e6-96231b3b80d8
rray-value-initialize.cpp
|
7e21ffb97e1da7ee5470865859c5b4bfbe0b91a3 |
06-May-2010 |
Chris Lattner <sabre@nondot.org> |
Pass the globaldecl into GetOrCreateLLVMFunction so that llvm function attributes like byval get applied to the function definition. This fixes PR7058 and makes i386 llvm/clang bootstrap pass all the same tests as x86-64 bootstrap for me (the llvmc tests still fail in both). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103131 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
c446d1816f46a4b6d2337102dfc001f55fc18211 |
05-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When we emit a non-constant initializer for a global variable of reference type, make sure that the initializer we build is the of the appropriate type for the *reference*, not for the thing that it refers to. Fixes PR7050. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103115 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init-3.cpp
|
cc6a44b8bdecd9fc70211146e8ba3853b1fac784 |
05-May-2010 |
Douglas Gregor <dgregor@apple.com> |
For thread-safe static initialization of local statics with destructors, place the __cxa_atexit call after the __cxa_guard_release call, mimicking GCC/LLVM-GCC behavior. Noticed while debugging something related. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103088 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
fb8cc253420e93cee33d29df5a2bdae6aaf16e39 |
05-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Reimplement code generation for copying fields in the implicitly-generated copy constructor. Previously, Sema would perform some checking and instantiation to determine which copy constructors, etc., would be called, then CodeGen would attempt to figure out which copy constructor to call... but would get it wrong, or poke at an uninstantiated default argument, or fail in other ways. The new scheme is similar to what we now do for the implicit copy-assignment operator, where Sema performs all of the semantic analysis and builds specific ASTs that look similar to the ASTs we'd get from explicitly writing the copy constructor, so that CodeGen need only do a direct translation. However, it's not quite that simple because one cannot explicit write elementwise copy-construction of an array. So, I've extended CXXBaseOrMemberInitializer to contain a list of indexing variables used to copy-construct the elements. For example, if we have: struct A { A(const A&); }; struct B { A array[2][3]; }; then we generate an implicit copy assignment operator for B that looks something like this: B::B(const B &other) : array[i0][i1](other.array[i0][i1]) { } CodeGen will loop over the invented variables i0 and i1 to visit all elements in the array, so that each element in the destination array will be copy-constructed from the corresponding element in the source array. Of course, if we're dealing with arrays of scalars or class types with trivial copy-assignment operators, we just generate a memcpy rather than a loop. Fixes PR6928, PR5989, and PR6887. Boost.Regex now compiles and passes all of its regression tests. Conspicuously missing from this patch is handling for the exceptional case, where we need to destruct those objects that we have constructed. I'll address that case separately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103079 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-copy-constructor.cpp
|
68e3013ade8a219625b636bb8c1dcec2ba6fb685 |
05-May-2010 |
Anders Carlsson <andersca@mac.com> |
Use a more appropriate LLVM type for the vtable pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103078 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
|
d33ded52b06f7be00b95c1ce546924b4468adf9a |
04-May-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a code gen crash when block is a reference type, etc. (radar 7495203). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103022 91177308-0d34-0410-b5e6-96231b3b80d8
eference-in-blocks.cpp
|
3d6c1782c4fc2ed3e6a924c15042edb1f56fee36 |
04-May-2010 |
John McCall <rjmccall@apple.com> |
When inheriting a default argument expression, inherit the full expression, not just the inner expression. This is important if the expression has any temporaries. Fixes PR 7028. Basically a symptom of really tragic method names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102998 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
|
3c347f25b507740c3e41de70819f8fbbee4cde89 |
04-May-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a Code Gen. Crash when calling destructor on a __block variabe. Blocks and their construction/destruction is wip though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102985 91177308-0d34-0410-b5e6-96231b3b80d8
lock-destruct.cpp
|
e65ce966b6865b686b0a9ba4fc72dfadf3e83701 |
03-May-2010 |
John McCall <rjmccall@apple.com> |
Just bail out immediately when emitting an unreachable function-local static variable. Surprisingly, this does seem to be the right way to solve this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102961 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
e174bd05ca9991e705f51afcfab27933b537dc63 |
03-May-2010 |
Douglas Gregor <dgregor@apple.com> |
If we're generating code to create a pointer-to-member function aggregate and the result of the aggregate is unused, bail out early. Fixes PR7027. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102942 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
32897fd3bd84e96d4bfa28aca0c7a907776fb855 |
03-May-2010 |
Anders Carlsson <andersca@mac.com> |
When computing the address of a virtual member function pointer, use the pointer width instead of hardcoding for 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102921 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
7362258bb8c84cc3107993a7249cb3602ceb0bb7 |
03-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Try to unbreak clang-i686-darawin10 builder git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102920 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-copy-assign-operator.cpp
|
6cfb1ca37bffdc4e3afdf96360b8c723a43bfbf4 |
03-May-2010 |
Anders Carlsson <andersca@mac.com> |
Get rid of virt.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102918 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
fe60f84c4f201c9ca8126066779da8ee004a70fc |
03-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When a class contains a non-empty anonymous union or struct, mark is as non-empty. Fixes PR7021. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102913 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
e99bdb6969ec16d2829ccdf62b04a8c8eda8b215 |
03-May-2010 |
Anders Carlsson <andersca@mac.com> |
Don't build an aggregate constructor loop when the constructor is trivial. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102912 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
33d73fa9dbeddae48cf44a100937b02eae9843c4 |
03-May-2010 |
Anders Carlsson <andersca@mac.com> |
Add test case that I forgot to check in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102905 91177308-0d34-0410-b5e6-96231b3b80d8
mpty-classes.cpp
|
0d7c583a4b4d0f57c6b69c66fd73babec4ef3799 |
03-May-2010 |
Anders Carlsson <andersca@mac.com> |
Don't copy or initialize empty classes. Fixes PR7012. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102891 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
06a9f3680d22529a2fcf20c52d71cf221d99d910 |
01-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Complete reimplementation of the synthesis for implicitly-defined copy assignment operators. Previously, Sema provided type-checking and template instantiation for copy assignment operators, then CodeGen would synthesize the actual body of the copy constructor. Unfortunately, the two were not in sync, and CodeGen might pick a copy-assignment operator that is different from what Sema chose, leading to strange failures, e.g., link-time failures when CodeGen called a copy-assignment operator that was not instantiation, run-time failures when copy-assignment operators were overloaded for const/non-const references and the wrong one was picked, and run-time failures when by-value copy-assignment operators did not have their arguments properly copy-initialized. This implementation synthesizes the implicitly-defined copy assignment operator bodies in Sema, so that the resulting ASTs encode exactly what CodeGen needs to do; there is no longer any special code in CodeGen to synthesize copy-assignment operators. The synthesis of the body is relatively simple, and we generate one of three different kinds of copy statements for each base or member: - For a class subobject, call the appropriate copy-assignment operator, after overload resolution has determined what that is. - For an array of scalar types or an array of class types that have trivial copy assignment operators, construct a call to __builtin_memcpy. - For an array of class types with non-trivial copy assignment operators, synthesize a (possibly nested!) for loop whose inner statement calls the copy constructor. - For a scalar type, use built-in assignment. This patch fixes at least a few tests cases in Boost.Spirit that were failing because CodeGen picked the wrong copy-assignment operator (leading to link-time failures), and I suspect a number of undiagnosed problems will also go away with this change. Some of the diagnostics we had previously have gotten worse with this change, since we're going through generic code for our type-checking. I will improve this in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102853 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-copy-assign-operator.cpp
|
62cf344e403f99dcb58f3f7ab9fcb365ef886f77 |
01-May-2010 |
Chris Lattner <sabre@nondot.org> |
with recent optimizer changes, these all get devirtualized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102825 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointer-calls.cpp
ember-initializers.cpp
|
c743571e24c864b5930ef1290d71b03ccfde80a1 |
30-Apr-2010 |
John McCall <rjmccall@apple.com> |
Account for the VTT argument when making an implicit copy constructor for a class with virtual bases. Just a patch until Sema starts (correctly) doing most of this analysis. Fixes PR 6622. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102692 91177308-0d34-0410-b5e6-96231b3b80d8
onstructors.cpp
|
9dffe6f51c676c1e423c382c62d1648746e36cd4 |
30-Apr-2010 |
John McCall <rjmccall@apple.com> |
Fix -fno-rtti -fexceptions by forcing the emission of (non-"builtin") RTTI when used by the exceptions routines. Fixes PR 6974. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102684 91177308-0d34-0410-b5e6-96231b3b80d8
xceptions-no-rtti.cpp
|
ad4e02f1711e5e90f4e653397b626e0d1929002c |
29-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
When determining a standard conversion sequence involves resolving the address of an overloaded function (or function template), perform that resolution prior to determining the implicit conversion sequence. This resolution is not part of the implicit conversion sequence itself. Previously, we would always consider this resolution to be a function pointer decay, which was a lie: there might be an explicit & in the expression, in which case decay should not occur. This caused the CodeGen assertion in PR6973 (where we created a pointer to a pointer to a function when we should have had a pointer to a function), but it's likely that there are corner cases of overload resolution where this would have failed. Cleaned up the code involved in determining the type that will produced afer resolving the overloaded function reference, and added an assertion to make sure the result is correct. Fixes PR6973. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102650 91177308-0d34-0410-b5e6-96231b3b80d8
ddress-of-fntemplate.cpp
|
1e9268e29798155b9edb5b20ac7490d8539ef6aa |
28-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve name mangling for dependent template names (e.g., typename T::template apply<U>), handling a few cases where we previously failed and performing substitutions on such dependent names. Fixes a crash in Boost.PropertyTree. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102490 91177308-0d34-0410-b5e6-96231b3b80d8
angle-template.cpp
|
1c63b9c15d48cb8c833a4b2d6fd6c496c0766e88 |
27-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
When explicitly building a temporary object (CXXTemporaryObjectExpr), keep track of whether we need to zero-initialize storage prior to calling its constructor. Previously, we were only tracking this when implicitly constructing the object (a CXXConstructExpr). Fixes Boost's value-initialization tests, which means that the Boost.Config library now passes all of its tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102461 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
c9a85f9b4cc8ed95ed7feeff554a74bf52bdc1f7 |
26-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
emit dtors with the right calling convention in -fno-use-cxa-atexit mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102377 91177308-0d34-0410-b5e6-96231b3b80d8
rm.cpp
|
fa3c9825dce1ea9d6fd2da4b0c19917c59fbc6c7 |
26-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove alignment specifier on this. CAn't this test be removed yet? :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102369 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
9994eeda99b08f52bb0312aaddae00f9ae6c7deb |
25-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Tweak test for destruction of copied temporary objects git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102291 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
b86cf0c11712fa89f14197f3f0ed862e7b2add84 |
25-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
When copying a temporary object to initialize an entity for which the temporary needs to be bound, bind the copy object. Otherwise, we won't end up calling the destructor for the copy. Fixes Boost.Optional. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102290 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
6a03e345bb3c971750920e34a0d7d1ea7c9eceb7 |
23-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Handle compound assignment expressions (i += j) as lvalues, which is permitted in C++ but not in C. Fixes PR6900. Clang can now handle all of Boost.Lambda's regression tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102170 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-operator.cpp
|
20f0cc7a0f0c4a941fa0c57b9516c2d455b64a64 |
23-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Mangle dependent template names such as the nested-name-specifier in T::apply <U>::type Fixes PR6899, although I want to dig a little deeper into the FIXME for dependent template names that refer to operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102167 91177308-0d34-0410-b5e6-96231b3b80d8
angle-template.cpp
|
08688ac8aaf02b565619181903319d32b546bcf5 |
23-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
I hate default statements. Fixes PR6874. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102160 91177308-0d34-0410-b5e6-96231b3b80d8
amespace-aliases.cpp
|
7e2f128354f631d44b3f6dbcd4cee1cc04bdf7b1 |
22-Apr-2010 |
John McCall <rjmccall@apple.com> |
Neuter this testcase a little. The way LLVM writes labels for anonymous blocks makes it impossible to check labels. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102048 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
ac418162692a951ca3796d6830496a85a2d12493 |
22-Apr-2010 |
John McCall <rjmccall@apple.com> |
Call PerformCopyInitialization to properly initialize the exception temporary in a throw expression. Use EmitAnyExprToMem to emit the throw expression, which magically elides the final copy-constructor call (which raises a new strict-compliance bug, but baby steps). Give __cxa_throw a destructor pointer if the exception type has a non-trivial destructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102039 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
71f4ff62bcff31c67808adb08691103b469ce9be |
22-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Encode field accessibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102033 91177308-0d34-0410-b5e6-96231b3b80d8
ield-access-debug-info.cpp
|
876681e706287d23ce45ea5bf715514da9e9212d |
21-Apr-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a code gen. bug by removing an assert. It is ok to have c++-ness inside extern "C" block. Fixes pr6644. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101948 91177308-0d34-0410-b5e6-96231b3b80d8
-linkage.cpp
|
3e79c30807c516e8d32e4ed08408b30605df5997 |
20-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Back out r101911 and see if it makes the bots happy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101921 91177308-0d34-0410-b5e6-96231b3b80d8
table-pointer-initialization.cpp
|
36fd6beef1ffaf93217d8ce96d900d4ed817e463 |
20-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug which triggered the assertion I added yesterday. Basically, when we initialize the vtable pointer for a virtual base, and there was another path from the most derived class to another base with the same class type, we would use the wrong base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101911 91177308-0d34-0410-b5e6-96231b3b80d8
table-pointer-initialization.cpp
|
fb97cf24158aa7f1fd74374052f99733ef331bb9 |
20-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
don't slap noalias attribute on stret result arguments. This mirror's Dan's patch for llvm-gcc in r97989, and fixes the miscompilation in PR6525. There is some contention over whether this is the right thing to do, but it is the conservative answer and demonstrably fixes a miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101877 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
9c82afc7d1f57b427053e6679d87539b0dc63b1a |
20-Apr-2010 |
John McCall <rjmccall@apple.com> |
Restore r101841 without modification. Also mark 'operator delete' as used for actual delete expressions, not just new expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101861 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
b8cab18e8562994b87f8d7c06f8c122beb712677 |
19-Apr-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
If a method is virtual and the class key function is in another file, emit the method as available_externally. Fixes PR6747 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101757 91177308-0d34-0410-b5e6-96231b3b80d8
R6747.cpp
|
65ad5a42cca954e070428dcc499b62393aa7a6d3 |
18-Apr-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Local static variables must be available module-wise as they are accessible in static methods in a class local to the same function. Fixes PR6769. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101756 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-local-in-local-class.cpp
|
6ba38151f7e31d7f9194c8bbb91229cb5ffbb6f4 |
18-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Simplify wide bit-field layout in CGRecordLayoutBuilder, and also fix a bug where assigning to a bit-field member would overwrite other parts of the struct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101681 91177308-0d34-0410-b5e6-96231b3b80d8
itfield-layout.cpp
|
d62328e6a0fa933e3a5daaf68e4964031e6c5c5e |
17-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Unnamed bit-fields in a union should be laid out with a type that doesn't affect alignment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101673 91177308-0d34-0410-b5e6-96231b3b80d8
itfield-layout.cpp
|
de9f153b2348f590151504888c22cb937134cd27 |
17-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
If a wide bit-field is inside a union its offset should always be 0. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101668 91177308-0d34-0410-b5e6-96231b3b80d8
itfield-layout.cpp
|
fbf05613db16a521ce124391388891c488c47a0c |
17-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we would sometimes incorrectly mark an vtable function as unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101643 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
2ba6c81baa464281cda42ee1bf0df91cba7c031f |
15-Apr-2010 |
Ted Kremenek <kremenek@apple.com> |
Specify temporary file for -emit-llvm output in test case so that we don't deposit the file in the original source directory. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101402 91177308-0d34-0410-b5e6-96231b3b80d8
eference-in-blocks.cpp
|
97913576dbe624971bf18726899983d211d742c0 |
15-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Split adding the primary virtual base offsets out into a separate pass. This fixes a bug where we would lay out virtual bases in the wrong order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101373 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
aa1d76163e4b0b1cc54e222be67379f8c02e8ffa |
14-Apr-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Add encoding of reference types like gcc does for objc methods and blocks. Fixes PR6468. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101196 91177308-0d34-0410-b5e6-96231b3b80d8
eference-in-blocks.cpp
|
cd9199eb3dd1a665ea642f3918020a53e5ecb673 |
13-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Fix debug info for cleanup block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101100 91177308-0d34-0410-b5e6-96231b3b80d8
estructor-debug-info.cpp
|
69c05d504619f9ab2c860017eee4fd483b886698 |
12-Apr-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101015 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
73e6fa00ff7aa3be32b1cfc8790761a4db716bb0 |
12-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another bug where we wouldn't generate secondary vtables for construction vtables in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100998 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
af6ddf20711ccc6824545a5ac901d4fe3e462c3d |
11-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we were adding too many vcall offsets in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100985 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
573021fc10d0668a9d59888bdfc259e3a304b405 |
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another vbase layout bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100952 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
f622b450d722b2954572e6ba04e1cdf18a21a41f |
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we would add the same function twice in a vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100949 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
bdda6c1788dfdb890e1eccd13b949b1cc875eeaa |
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Simplify the virtual base layout code and fix a bug where we wouldn't store the offset for a virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100940 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
de81063acdc999fbe1225f466ead12f7e9107acf |
09-Apr-2010 |
John McCall <rjmccall@apple.com> |
Provide manglings for bool and character literal expressions. These are just integer-literal expressions with special case implementations in the AST. Fixes rdar://problem/7825453. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100905 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
7002f4c03c2d0544f4e8bea8d3a5636519081e35 |
09-Apr-2010 |
John McCall <rjmccall@apple.com> |
Turn access control on by default in -cc1. Remove -faccess-control from -cc1; add -fno-access-control. Make the driver pass -fno-access-control by default. Update a bunch of tests to be correct under access control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100880 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-operator.cpp
onstructor-init-reference.cpp
onstructors.cpp
efault-destructor-nested.cpp
nstantiate-init-list.cpp
angle.cpp
ew-operator-phi.cpp
perator-new.cpp
emplate-anonymous-union-member-initializer.cpp
emplate-instantiation.cpp
irt-template-vtable.cpp
|
1e201b4a9d4880c3f90ab77e8a308140f003c7da |
08-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate excessive PCH deserialization caused by the search for __cxxabiv1::__fundamental_type_info in every translation unit. Previously, we would perform name lookup for __cxxabiv1::__fundamental_type_info at the end of IRGen for a each translation unit, to determine whether it was present. If so, we we produce type information for all of the fundamental types. However, this name lookup causes PCH deserialization of a significant part of the translation unit, which has a woeful impact on performance. With this change, we now look at each record type after we've generated its vtable to see if it is __cxxabiv1::__fundamental_type_info. If so, we generate type info for all of the fundamental types. This works because __cxxabiv1::__fundamental_type_info should always have a key function (typically the virtual destructor), that will be defined once in the support library. The fundamental type information will end up there. Fixes <rdar://problem/7840011>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100772 91177308-0d34-0410-b5e6-96231b3b80d8
tti-fundamental.cpp
|
3ecd785aff34381f3704d9cb28fe3ef85af759de |
04-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100305 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
ew.cpp
alue-init.cpp
|
35d646133ba70e5d44bc2d112ffd5e2ca262dbee |
03-Apr-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't produce a vtable for a class if we have an explicit template instantiation declaration and no key function. We will produce the vtable at the explicit template instantiation. Fixes PR6748 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100266 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
b5b3b304a7f0afb99f9ce349524f4e60375d268b |
02-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
We seem to get an inconsistent alignment value in the generated assembly for the global "d7". We were previously testing for alignment 3, which seems to happen for some builders and not for others. I've eliminated the alignment check and added a FIXME to unbreak the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100205 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
c90f56d9f144b2dce88d1c141ddf0e0940e62e63 |
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Revert r100193 since it causes failures in objc in clang git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100200 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
ew.cpp
alue-init.cpp
|
2f59979a7cc7929f53c9984423b0abeb83113442 |
02-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Rework our handling of copy construction of temporaries, which was a poor (and wrong) approximation of the actual rules governing when to build a copy and when it can be elided. The correct implementation is actually simpler than the approximation. When we only enumerate constructors as part of initialization (e.g., for direct initialization or when we're copying from a class type or one of its derived classes), we don't create a copy. When we enumerate all conversion functions, we do create a copy. Before, we created some extra copies and missed some others. The new test copy-initialization.cpp shows a case where we missed creating a (required, non-elidable) copy as part of a user-defined conversion, which resulted in a miscompile. This commit also fixes PR6757, where the missing copy made us reject well-formed code in the ternary operator. This commit also cleans up our handling of copy elision in the case where we create an extra copy of a temporary object, which became necessary now that we produce the right copies. The code that seeks to find the temporary object being copied has moved into Expr::getTemporaryObject(); it used to have two different not-quite-the-same implementations, one in Sema and one in CodeGen. Note that we still do not attempt to perform the named return value optimization, so we miss copy elisions for return values and throw expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100196 91177308-0d34-0410-b5e6-96231b3b80d8
opy-initialization.cpp
erived-to-base-conv.cpp
irt.cpp
|
8facca6cafa8d471768fe14074b1301e24e08fec |
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100193 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
ew.cpp
alue-init.cpp
|
031b37140d0864c741618960b5220245a2a086ae |
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Drastically simplify the computation of linkage for typeinfo by using the existing (and already well-tested) linkage computation for types, with minor tweaks for dynamic classes and (pointers to) incomplete types. Fixes PR6597. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99968 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
23cba801e11b03929c44f8cf54578305963a3476 |
31-Mar-2010 |
John McCall <rjmccall@apple.com> |
Introduce a new kind of derived-to-base cast which bypasses the need for null checks, and make sure we elide null checks when accessing base class members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99963 91177308-0d34-0410-b5e6-96231b3b80d8
ember-expressions.cpp
|
b5896c37922e09529e61db4b3dd946cf2ecb211e |
31-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Mon Ping's 99930 due to broken llvm-gcc buildbots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99949 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
ew.cpp
alue-init.cpp
|
3b5caa20652c43d00229bac972b78bee44a0ee9f |
30-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99930 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
ew.cpp
alue-init.cpp
|
e0f38678f01291e68fc70ea6056260b54d529307 |
30-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't produce a vtable if we are just instantiating a method and the class has no key function. Fix PR6738. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99900 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-instantiation.cpp
|
8887bdcd4056ac25cb37dcb2abb9514e668eb81a |
30-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Use the new function in EmitClassAggrMemberwiseCopy, fixing the same assert as seen in PR6628 but for arrays this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99867 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
46bbf8d352fcd615420c5759a112ccd6e61516ad |
30-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Handle default arguments when calling copy constructors for bases or members when synthesizing a copy constructor. Fixes PR6628. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99864 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
d09020d87a69803b02c68eb6bf0b38e6ca660eda |
30-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Change a test to FileCheck bitcode instead of assembler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99863 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
c9b64bafaf3129568f013e0c2875e1fcb9f51e6b |
30-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Flip the switch and use the new vtable layout code for everything. I've verified that this passes a self-host but I'll let the bots self host as well before removing the now dead code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99861 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
1c3639351f8c252ddcc13d234cabf8780b1c235f |
29-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
When collecting virtual bases it's very important to use the canonical type of the base class. Otherwise, we might add the same virtual base class twice if the virtual base is an instantiated template. Fixes PR6251. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99829 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-bases.cpp
|
adb507df13aeb2334eddef64e6bbdf41a44dc5b1 |
29-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Another vtable layout fix, making us match gcc better. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99812 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
ada087c4518a18f844ecc051b07039064016a4ba |
27-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Give thunks the same linkage as their original methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99729 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
d0c89a471bd21a8c837662b852f39a72b8b3e391 |
27-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Test for the previous commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99702 91177308-0d34-0410-b5e6-96231b3b80d8
tti-fundamental.cpp
|
d6068482648a366ac9fc297a84780e922ab63a7a |
26-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
When adding initializers to a constructor, be sure that we are looking 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
onstructor-init.cpp
|
014a358058fab46a84718b1424e40ad5a8068827 |
25-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Don't add address points for virtual primary bases that aren't primary bases in the complete class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99555 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
table-layout.cpp
|
1e41336415ceea828ac14c30f2e4d9bd445e77bd |
25-Mar-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Check for some code gen. for PR6641 test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99526 91177308-0d34-0410-b5e6-96231b3b80d8
ulti-dim-operator-new.cpp
|
f748845b19813d81189283f76778cfc870f6cfd7 |
25-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Check for ret, so that we know we hit the end of the function git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99448 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
33fd1fc1814a5573c972840d49317989e20deace |
25-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
When returning from a function that has a reference return type, use EmitReferenceBindingToExpr() rather than assuming we have an lvalue. This is just the lowest hanging fruit for PR6024, which still requires a bit of work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99447 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
f3eaf45bf3ebef039c99c1e9efb05b477b2a07aa |
24-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Discussing with dgregor we decided that we should not force the emission of implicit methods on explicit template instantiation definitions. As a consequence, we should emit them at every use, even if we see a explicit template instantiation declaration. This is already the current behaviour, but it is good to test for that :-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99443 91177308-0d34-0410-b5e6-96231b3b80d8
R6677.cpp
emplate-instantiation.cpp
|
ceb43b662bf09b44a08714e8f9d222780ca979d7 |
24-Mar-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen for multi-dimensional dynamic allocations. Fixes PR6641. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99404 91177308-0d34-0410-b5e6-96231b3b80d8
ulti-dim-operator-new.cpp
|
ccd83d748c82c5255100f38e3f07537b949853b3 |
24-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More vtable improvements. We now compute and keep track of all vtable related information which avoids computing the same vtable layout over and over. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99403 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis-2.cpp
table-pointer-initialization.cpp
|
5c6c1d9eca7ce932eff011cd3e592f606e60b4be |
24-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
More vtable work; preparations for moving over to the new vtable layout code (finally). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99381 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis-2.cpp
table-pointer-initialization.cpp
|
d63fed48fa958ca7d9a432dab1010c272c19f215 |
24-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Flip the switch and use the new vtable layout code for thunks by default. Add a thunks.cpp test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99367 91177308-0d34-0410-b5e6-96231b3b80d8
hunks.cpp
|
6c22c8eb73f7552651d1eb47c92840761b73a143 |
24-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Remove parts of virt.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99363 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
f075b229643aa07389a6055352ade7446241c3ca |
23-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
revert 99311. Looks like it broke darwin bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99317 91177308-0d34-0410-b5e6-96231b3b80d8
R6677.cpp
|
5fb12c6c8f64d4b69f65faefb7d0800d7e4bca66 |
23-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Avoid producing implicit methods when we have a explicit template instantiation declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99311 91177308-0d34-0410-b5e6-96231b3b80d8
R6677.cpp
|
b0f65ca9853d1148211a38736141c8ccf2aa4a1d |
23-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
A fixed version of r99174 which also includes a test that we emit vtables when we see an specialization definition ever if we then see a extern template declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99226 91177308-0d34-0410-b5e6-96231b3b80d8
R6677.cpp
|
8682bdae7e3db4e5d7dd957754923bbdf75fc166 |
21-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix PR6648 by not creating a temporary with the type of a CXXExprWithTemporaries. Not emitting the expression as an aggregate might be the right thing to do, but is orthogonal. Emitting it as an scalar expression will still try to create a temporary for the incomplete type of the CXXExprWithTemporaries and fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99134 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
0a80ba74ffa3d3df55abfbc4474d7470c7c923e3 |
20-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Driver: Fix a number of -fapple-kext issues: - Disable RTTI. - Disable use of __cxa_atexit. - Disable unwind tables. - Enable freestanding mode. Also, honor -fhosted correctly. <rdar://problem/7515383> C++ support: -fapple-kext not honored git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99041 91177308-0d34-0410-b5e6-96231b3b80d8
xx-apple-kext.cpp
|
efb0fa9e11f75af51744a6159530ef7cc8efa24a |
20-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
C++: Add support for -fno-use-cxa-atexit. - So much typing, so little gain... Also, rename the __cxx_global_initialization function just to match llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99039 91177308-0d34-0410-b5e6-96231b3b80d8
eferred-global-init.cpp
lobal-dtor-no-atexit.cpp
lobal-init.cpp
|
f746aa6a8f538be914173a4aef2d9a2fd9f99d17 |
20-Mar-2010 |
John McCall <rjmccall@apple.com> |
Change CodeGenModule to rely on the Module's symbol table instead of shadowing it in the GlobalDeclMap. Eliminates the string-uniquing requirement for mangled names, which should help C++ codegen times a little. Forces us to do string lookups instead of pointer lookups, which might hurt codegen times a little across the board. We'll see how it plays out. Removing the string-uniquing requirement implicitly fixes any bugs like PR6635 which arose from the fact that we had multiple uniquing tables for different kinds of identifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99012 91177308-0d34-0410-b5e6-96231b3b80d8
ttr.cpp
|
9135a84d8e2c835d8b39c92eb15e8e9034b80bad |
18-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
When dumping vtables, also dump the thunks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98799 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
9b35b25db3641dfa8876d24b41cfa5b4d51477cb |
17-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Correctly mangle dependent TypenameType. Fixes PR6625. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98707 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
8f51a4f2d00b0abda3cde7f3828fb2e2b9beafb5 |
13-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Give explicit template instantiations weak ODR linkage. Former iterations of this patch gave explicit template instantiation link-once ODR linkage, which permitted the back end to eliminate unused symbols. Weak ODR linkage still requires the symbols to be generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98441 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
angle-exprs.cpp
angle-template.cpp
angle.cpp
ember-templates.cpp
emplate-linkage.cpp
emporaries.cpp
|
34fd284e0a6ea88b98d6e1183548264bab5b3702 |
13-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Re-revert the explicit template instantiation linkage patch. I am beginning to look incompetent git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98425 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
angle-exprs.cpp
angle-template.cpp
angle.cpp
ember-templates.cpp
emplate-linkage.cpp
emporaries.cpp
|
8721360da5cf3d5dfdc2fc2bf8d53a5f79307995 |
13-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate patch to turn explicit template instantiations into weak symbols git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98424 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
angle-exprs.cpp
angle-template.cpp
angle.cpp
ember-templates.cpp
emplate-linkage.cpp
emporaries.cpp
|
4ea9006629acb6bf9b2984554517c968a10a6b77 |
12-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert the linkage change for explicit template instantiations; something is amiss git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98332 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
angle-exprs.cpp
angle-template.cpp
angle.cpp
ember-templates.cpp
emplate-linkage.cpp
emporaries.cpp
|
e5e0c9deb1b4cfa081152cda548d31368facbc57 |
12-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Give explicit template instantiations weak linkage (but don't defer them). Fixes PR6578. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98328 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
angle-exprs.cpp
angle-template.cpp
angle.cpp
ember-templates.cpp
emplate-linkage.cpp
emporaries.cpp
|
d295d78645503711d67ce54be2faddf7abdbc4e9 |
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Use -emit-llvm-only, to avoid leaving a temp around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98267 91177308-0d34-0410-b5e6-96231b3b80d8
R6474.cpp
|
d9800728cc3e7f478eec4d4b19af5b808ac51942 |
11-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Correctly mangle address of member in template arguments. Fixes PR6460 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98254 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
127e46727ed39703a7baa3218d2681082d931c92 |
11-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Add a test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98246 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
2bc1d3a3b71564dc2909420abdd58aaf35191de2 |
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Fix calculation of whether a member function needs a thunk in construction vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98191 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
a96a2e961a3bce0ad2fc44a115ac949a481d42db |
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
We were mistakenly marking morally virtual bases as being uninteresting. Fix this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98180 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
f2c98ce9819cb7688a86e308f82ee896694a10e5 |
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Ignore non-interesting bases when emitting construction vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98177 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
266e05ca8a77fa26fa136b5e45b58cba42e1d818 |
10-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move test and also test codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98154 91177308-0d34-0410-b5e6-96231b3b80d8
R6474.cpp
|
e35b768ac4c8c5756e5ecf950153cea03faf4505 |
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Add newline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98140 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
6039661c20eb6345c9d7dc1abd644183ebc91063 |
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Don't accidentally mark some functions in construction vtables as unused. Also land the test for a previous checkin, now that it's correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98139 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
db4022cf95d80afd28b5fd1273f5be62c891a230 |
10-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Improve vcall offset handling in construction vtables. With this we layout the construction vtables from the ABI examples correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98127 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
bbf58bb1b8dd8c5e0f07547a6c20ffd55385fcf6 |
10-Mar-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Delay codegen of vtables when handling implicit instantiations. This fixes PR6474. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98123 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-destructor-call.cpp
|
7573f8b2f90ef65a253f7355fc466c93f0bc9832 |
09-Mar-2010 |
Devang Patel <dpatel@apple.com> |
More then one anonymous aggregates on one line creates chaos when MDNode uniquness is combined with RAUW operation. Right solution is to avoid using RAUW. This fixes PR 6554. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98083 91177308-0d34-0410-b5e6-96231b3b80d8
010-03-09-AnonAggregate.cpp
|
516a6bc399f1f4595423e80c9d4bc687f870acd1 |
08-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
In C++98/03, an uninitialized variable that has POD class type will be uninitialized. This seems not to be the case in C++0x, where we still call the (trivial) default constructor for a POD class (!). Previously, we had implemented only the C++0x rules; now we implement both. Fixes PR6536. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97928 91177308-0d34-0410-b5e6-96231b3b80d8
nternal-linkage.cpp
|
4ce46c2db2b17ef52b34dbeeec01e448025c8edc |
08-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Perform overload resolution when static_cast'ing from a pointer-to-member-to-derived to a pointer-to-member-to-base. Fixes PR6072. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97923 91177308-0d34-0410-b5e6-96231b3b80d8
ullptr.cpp
|
d6a9324e9b0f77917a6f56781aba80f0d39ded55 |
07-Mar-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR6294: we should only delay recording nested dynamic classes if they are lexically nested. Othewise, we never end up recording semantically nested classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97900 91177308-0d34-0410-b5e6-96231b3b80d8
efault-destructor-nested.cpp
|
96df6cfd1220d629fca2ae4fec2aecfdf35ad847 |
07-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Don't turn off mangling in implicitly extern "C" system headers. GCC doesn't do this on any of the major platforms, and we don't really support any of the platforms that do (nor will we actually handle those headers well). Fixes PR6217; see PR6530 for details on what we would need to do to support these platforms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97899 91177308-0d34-0410-b5e6-96231b3b80d8
angle-system-header.cpp
|
4819ac44c0e5222ebfe8e199c51f653f52177336 |
04-Mar-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Refactor local class name mangling and make it ABI conforming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97702 91177308-0d34-0410-b5e6-96231b3b80d8
angle-local-class-names.cpp
|
570585307ef1e33490883b26b807cd2a5f88e99d |
03-Mar-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Implements mangling of local class names to fix a code gen crash. This is WIP as not all ABI cases are covered (there is a FIXME to this effect). Fixes radar 7696748. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97658 91177308-0d34-0410-b5e6-96231b3b80d8
angle-local-class-names.cpp
|
ce57dd5f9ff5bd6cebe3c94ae48eaf166ea50a23 |
03-Mar-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug with base offset merging that Devang noticed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97641 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
9a70846c5ffd5ff5cce60de49cd7b312146bf502 |
03-Mar-2010 |
John McCall <rjmccall@apple.com> |
Don't emit derived-to-base destructor aliases if we don't have a definition for the base destructor, because aliases to declarations aren't legal. Fixes PR 6471. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97637 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
ad5e73887052193afda72db8efcb812bd083a4a8 |
02-Mar-2010 |
John McCall <rjmccall@apple.com> |
Split out types that are non-canonical unless dependent as their own category. Use this in a few places to eliminate unnecessary TST cases and do some future-proofing. Provide terrible manglings for typeof. Mangle decltype with some hope of accuracy. Our manglings for some of the cases covered in the testcase are different from gcc's, which I've raised as an issue with the ABI list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97523 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
e1e342f4a96f132d8d7e802284417bd520f9f4f8 |
01-Mar-2010 |
John McCall <rjmccall@apple.com> |
The latest draft uses 'dt' to mangle member expressions, and now so do we. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97479 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
4b2ccfc302d7eebe9380211e6e2d4f7b4a6d0eba |
28-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve name mangling for dependently-scoped declaration references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97422 91177308-0d34-0410-b5e6-96231b3b80d8
angle-template.cpp
|
5ed1bc351f36ca1086d7836baee546c39ce90dd7 |
28-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Add name mangling for DeclRefExprs that refer to external names git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97418 91177308-0d34-0410-b5e6-96231b3b80d8
angle-template.cpp
|
dad0f9918a1860cc1a9926d46cd0fb5d2abf174d |
28-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Handle unused functions in construction vtables correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97406 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
0378bf0840335c6d56b2f1b51079522054f7da4f |
28-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
When laying out vtables for virtual bases in construction vtables, we need to check if the vtable is a primary base in the layout class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97402 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
293126becf78ef56bfaa446385af8a368eb8d1c2 |
28-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add another construction vtable test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97401 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
530c40c516427112f76a88958bf7c17769b5ca12 |
28-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
More improvements to construction vtables; we know handle vbase offsets correctly (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97361 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
0041a649338112e388df64c39d45849ce48dfe3f |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add a simple construction vtable test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97344 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
6a8c5b2bc266902a3d1138122ef25cbe10e1687b |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Use the real base offset when calculating vbase offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97338 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
e54d1c12d7a53bea988e2b880b66faf04410c1be |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Figured out why the test was failing, this will hopefully fix it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97336 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
8bc68f7a29f94446852f4d709115a7f4e6765f7a |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Don't add this adjustments for pure virtual member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97334 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
64b6e80e86f780c8796c0b0ab1ae5f9587052c70 |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
XFAIL this for now. I have no idea why this test is failing on some machines. Looks like some sort of whitespace issue in FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97332 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
3504475548ce6aab989553c2a38391a34fc7fddc |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add another test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97329 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
2ef9d6bbd3ae2cf53318bb8fabc4fa6cc0743aff |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Finish up the changes to this adjustments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97328 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
c784ba21ba14f4cf65fc6fa2e3548c4775819921 |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another vtable layout bug; we weren't looking hard enough for overriden functions when determining if an overrider will ever be used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97306 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
5560969d73e3e72747972d0f0f37ca4e3b042186 |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Handle vcall offset sharing between destructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97304 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
08c26752efa51fb5dc47bd3382ea21814bd0c5b8 |
27-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we were generating an unnecessary vtable for a virtual base that's already a primary virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97303 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
bf554f63bffa7db32b5f343f6fd075501b97d401 |
25-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fux a bug where we were trying to add overriders for non-virtual bases of virtual bases more than once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97173 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
5edcc3752563ae0ed5b26f8c89a472ac84af9cf7 |
24-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Generate correct vcall offsets when we have a primary virtual base that is not a primary base in the complete class hierarchy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97039 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
b1162f178feb312b452e1b2095e0ed3413ba47fe |
23-Feb-2010 |
Eli Friedman <eli.friedman@gmail.com> |
PR6400: Handle an extreme edge case in mangling correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96961 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
af280c03a515b39b4b2c8e221068b3ed6a692cab |
23-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
More fixes. Don't try to emit a virtual base vtable if the virtual base in question is a primary virtual base of some other base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96881 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
92f54325673f2708d911ae3d8a95d77e21b06e37 |
23-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Always emit vcall offset for the primary base, not only if it's virtual. Remove a debug printf, and add the test case that now passes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96880 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
c0bf462cf35fe050bddbd8bff967298e4a67e79d |
23-Feb-2010 |
John McCall <rjmccall@apple.com> |
Perform two more constructor/destructor code-size optimizations: 1) emit base destructors as aliases to their unique base class destructors under some careful conditions. This is enabled for the same targets that can support complete-to-base aliases, i.e. not darwin. 2) Emit non-variadic complete constructors for classes with no virtual bases as calls to the base constructor. This is enabled on all targets and in theory can trigger in situations that the alias optimization can't (mostly involving virtual bases, mostly not yet supported). These are bundled together because I didn't think it worthwhile to split them, not because they really need to be. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96842 91177308-0d34-0410-b5e6-96231b3b80d8
onstructors.cpp
efault-arguments.cpp
estructors.cpp
irtual-destructor-calls.cpp
table-pointer-initialization.cpp
|
9fc6a7774643a810c8501dae2323e863fefb623e |
19-Feb-2010 |
John McCall <rjmccall@apple.com> |
More refactoring around constructor/destructor code generation. Fix some bugs with function-try-blocks and simplify normal try-block code generation. This implementation excludes a deleting destructor's call to operator delete() from the function-try-block, which I believe is correct but which I can't find straightforward support for at a moment's glance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96670 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
f2349fc7e2b3e920a19adaf3519b278ac38d228b |
19-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add another test from the ABI spec. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96659 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
d46f98573ba104eda102dd3224b2dca69f1c6336 |
19-Feb-2010 |
John McCall <rjmccall@apple.com> |
Re-introduce the ctor/dtor alias optimization, this time hidden behind a command-line option which defaults off. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96649 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-bases.cpp
irtual-destructor-calls.cpp
table-pointer-initialization.cpp
|
8e51a1f5da6ef4a1a168d14116c6eed3a578a263 |
18-Feb-2010 |
John McCall <rjmccall@apple.com> |
Revert the ctor/dtor alias optimization for now; the buildbots can detect some failure here that I can't. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96612 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arguments.cpp
angle-subst-std.cpp
angle.cpp
ember-templates.cpp
irtual-bases.cpp
irtual-destructor-calls.cpp
table-pointer-initialization.cpp
|
3b47733ceac33306bd54ce9d6c7d8eeeae52c7ca |
18-Feb-2010 |
John McCall <rjmccall@apple.com> |
Make deleting and complete dtor variants defer to other dtor variants by calling them as subroutines. This triggers whenever the alias optimization doesn't, i.e. when the dtor has linkonce linkage or there are virtual bases or it's the deleting dtor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96605 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-destructor-call.cpp
irtual-destructor-calls.cpp
|
8b6765fb563a5b03d128d8f53b9b3986128a3405 |
18-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another bug and add another class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96590 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
54d9a78b2ca41b89f5dc8ec6688086db59667495 |
18-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add another class from cxx-vtable-ex.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96588 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
eb577d0df44df4df974e9b3a538575d92358a3b3 |
18-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
More work on vcall offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96587 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
be71e3b28a1440fe08c45ecbe25899d99235c309 |
18-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add tests from the Itanium C++ ABI spec. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96586 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-abi-examples.cpp
|
92ac9ffecd236a6be0d6ab30cef56100e56b171c |
17-Feb-2010 |
John McCall <rjmccall@apple.com> |
Emit complete constructors and destructors as aliases to base constructors and destructors when the two entities are semantically identical, i.e. when the class has no virtual base classes. We only do this for linkage types for which aliases are supported, i.e. internal and external, i.e. not linkonce. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96451 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arguments.cpp
angle-subst-std.cpp
angle.cpp
ember-templates.cpp
irtual-bases.cpp
irtual-destructor-calls.cpp
table-pointer-initialization.cpp
|
647a1ec397fa13af176d07d9f5d071560a94c7a9 |
16-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen: Switch 'retval' to use CreateIRTemp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96376 91177308-0d34-0410-b5e6-96231b3b80d8
lloca-align.cpp
|
150065722a5f010adb0f801d26d8a129a5243669 |
16-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen: Switch EmitCompoundLiteralLValue to use CreateMemTemp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96373 91177308-0d34-0410-b5e6-96231b3b80d8
lloca-align.cpp
|
61814f6a24c173a552ac147160979114289897cf |
16-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add an extreme vbase offsets test. I'm kinda amazed that this works myself ;) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96356 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout-extreme.cpp
|
69dc04e94872616cebbdd8215d1f5036a8add3f7 |
16-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Handle layout of vtables for virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96355 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
c7b631682f66b5d6144968cf75d3af895b611fc6 |
16-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we would not emit secondary vtables for bases of a primary base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96351 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
852213e54a1b2c2246776b4bb4e9527d70c98807 |
16-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Emit vbase offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96329 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
b828afa89a3d50c4370199a7c6c04facfd843b47 |
14-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Don't compute final overriders or build vtables for bases that don't need a vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96171 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
e67dc3072522570207a16724ea459f81a58e4621 |
14-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Improve support for non-virtual 'this' pointer adjustments. With this, it should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96137 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
49bac9a2ea08961b6de77c9a08ed77fbbb7f5a1a |
14-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add basic support for simple non-virtual 'this' pointer adjustments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96136 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
76f1aa7658c34532785e6f44c99af65f3e4bd194 |
13-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Start laying out secondary vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96123 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
1d05be51b09ae1ce65b1ecd6220bade12908586d |
13-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Don't make return adjustments for pure virtual member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96120 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
60db0ee2c1d91ea86b04b5e448810ba418058180 |
13-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Handle virtual bases in return adjustment types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96119 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
7dbf47adb8b8ca84484fae0861ffb2f1eaf44011 |
13-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
More work on covariant return types. We now handle non-virtual adjustments fine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96114 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
c1eec891eb008cf3bc89d69d90af82678513f79b |
12-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a refacto that broke the clang-on-clang build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95994 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-function-calls.cpp
|
28cbc8b512db420748601dba276144d729a0d7a2 |
12-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Keep track of the address points for all primary bases, and add the ability to dump multiple address points for a single offset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95970 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
96058953c72355efb266abe8e333db4f5715dbd2 |
12-Feb-2010 |
John McCall <rjmccall@apple.com> |
Fix a bug causing an assertion when a covariant return type differed from an overriden type only by reduced qualification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95968 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
57071e29bdb65d21f72e221f2a16f24f6bea72f3 |
12-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
More work on vtable layout. We can now layout vtables with primary bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95965 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
982414266cbfbb3f2784c6b42f008532336ea64c |
12-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
When dumping vtables, dump whether a virtual member function is pure or not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95963 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
bac727110b58f2e9dc28581d6870843e71ae9b8f |
11-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add virtual operator= example. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95888 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
848fa64143fbe5ae62a601ad61277f741e54dfab |
11-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
More vtable layout dumper improvements. Handle destructors, dump the complete function type of the member functions (using PredefinedExpr::ComputeName. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95887 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
822307bbb12bc1025910d6387b79723087d27d9f |
11-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Keep track of, and dump, vtable address points. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95874 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
824d7ea07a4e9208925daa6ae9289fb2b39bce9f |
11-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Check in the beginnings of my new vtable layout builder idea. Right now, it's off by default but can be tested by passing -fdump-vtable-layouts to clang -cc1. This option will cause all vtables that will normally be emitted as part of codegen to also be dumped using the new layout code. I've also added a very simple new vtable layout test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95865 91177308-0d34-0410-b5e6-96231b3b80d8
table-layout.cpp
|
e5712b1341ecae8901ca26f1bdfac2a281958209 |
09-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Update tests in -Asserts mode. These tests really need to be rewritten... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95658 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
irt.cpp
|
195337d2e5d4625ae9dc1328c7cdbc7115b0261b |
09-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen: Add CreateMemTemp, for creating an temporary memory object for a particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing. - This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome! PR6240. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95648 91177308-0d34-0410-b5e6-96231b3b80d8
lloca-align.cpp
|
88786862424cb2d478516d911709dc19c962af9c |
08-Feb-2010 |
John McCall <rjmccall@apple.com> |
Emit global references with constant initializers as constants. Fixes PR5585. The standard actually says that such references should have internal linkage, but gcc doesn't do that, so we probably can't get away with it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95577 91177308-0d34-0410-b5e6-96231b3b80d8
onst-init.cpp
|
1851a12605bc6f1ea70d11974a315340ebaab6eb |
07-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Make sure to set vtable pointers in the destructors as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95525 91177308-0d34-0410-b5e6-96231b3b80d8
table-pointer-initialization.cpp
|
585fa68ca00421af6c8289866a7bde27a8e8c0ce |
07-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Use the right type when taking the address of a non-virtual member function pointer. Fixes PR6258. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95524 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
63a011378d4b9483ce24400c163cb8d65ea096a5 |
07-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix assertion failure when parsing linkage specifications (PR5921), from Keir Mierle! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95516 91177308-0d34-0410-b5e6-96231b3b80d8
xtern-c.cpp
|
f6b89a173827457c28ac77b7cf091a24ef484e8a |
07-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Use the right linkage for static variables inside C++ inline functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95512 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
39de84d671bac60662251e98f20a5a6039795dfc |
07-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Improved handling of the visibility attribute. Declarations now inherit their parent's visibility. (This is kind of a risky change, but I did a self-host build and everything appears to work fine!) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95511 91177308-0d34-0410-b5e6-96231b3b80d8
isibility.cpp
|
a994ee4b197554282ae6b222c3284ccaa3a6484c |
07-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Make EmitStartEHSpec and EmitEndEHSpec return early when exceptions are disabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95509 91177308-0d34-0410-b5e6-96231b3b80d8
o-exceptions.cpp
|
a508b7de6c5246ab04ed69d0ab4e9977ec1fb4d4 |
07-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Add support for threadsafe statics, and make them the default (matching gcc). Daniel, I'd appreciate a review of the driver/cc1 parts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95508 91177308-0d34-0410-b5e6-96231b3b80d8
hreadsafe-statics.cpp
|
aec2523ab2c91413ef2f66dc944d0d6ac6a58abe |
06-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Only append 'L' for internal variable declarations, not all declarations. (Found by the mangle checker, yay) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95485 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
b2bcf1c176b200b36f371e189ce22f93c86cdf45 |
06-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Use the correct function info for constructors when applying function attributes. Fixes PR6245. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95474 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-bases.cpp
|
32fb4e1fd1cbd2ff006cc0e06c997e4eea2f0e28 |
05-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement name mangling for template template parameters git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95427 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
2ca4f633b21c65e1a4edc2405a768d7f5db564eb |
05-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix the bug that was breaking self-host, and re-land the static ctor fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95400 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
90c1c58aa72fecb8c3211aa25d0ef726ca6bf876 |
05-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r95363 and r95375, which broke self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95389 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
7e673c4c11cd1a26e87f666c37c744e9f0446dd9 |
05-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95374 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
7d94a9503c90fd26cd41a5cae3831d79e334526f |
05-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
If a global initializer has a non-trivial destructor it can't be emitted as a constant (even if it has a trivial constructor). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95363 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
0dc736627614b476ec696fa216dd2a524d0bafad |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
When binding an lvalue to a reference, we always need to pop temporaries. With this fix, and the other fixes committed today a make check-all with a clang-built LLVM now gives: Expected Passes : 6933 Expected Failures : 46 Unsupported Tests : 40 Unexpected Failures: 27 which means that we pass 99.96% of all tests :) The resulting 27 tests are all LLVMC tests and seem to be because of differences in the clang and gcc drivers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95313 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
8ffc80fe5413bcb9f350ae4d1c2d7617af970c8e |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Update test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95312 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-temporaries.cpp
|
c1b32f69687ed289fb1150df34965ada250caf70 |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we would not mark temporaries as conditional when emitting a conditional operator as an lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95311 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-temporaries.cpp
|
4e3014be0606d6be5554d76f317d5908be3bccfc |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Improve conditional temporaries test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95310 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-temporaries.cpp
|
51591bed1050827c23691cf36e2e1621dfe08b00 |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another pointer-to-member function miscompile, this time when trying to call a virtual member function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95307 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointer-calls.cpp
|
5bb0ddd10b07ecc0df43f0d5f50f0b9f10046426 |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Improve test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95306 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-temporaries.cpp
|
e8a81f7e8e26275d91c073bf908a7d6d246106c5 |
04-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Calculate offset correctly when taking the address of a virtual member function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95305 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
2f27bf854f0519810b34afd209089cc75536b757 |
04-Feb-2010 |
John McCall <rjmccall@apple.com> |
Mangle member expressions. Also invented. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95284 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
1dd7383dc48718c452e71a625b29531dd96fbb9d |
04-Feb-2010 |
John McCall <rjmccall@apple.com> |
Add mangling support for calls, sizeof/alignof, constructor calls, float literals, and unresolved lookups (which required hand-wavey extensions). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95273 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
f6b6025a4e26bb0295a57e0efece73253038f278 |
03-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Don't try to fold DeclRefExprs that point to ParmVarDecls. This had the side-effect of always folding the expression to the default argument of the parameter. For example: void f(int a = 10) { return a; } would always return 10, regardless of the passed in argument. This fixes another 600 test failures. We're now down to only 137 failures! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95262 91177308-0d34-0410-b5e6-96231b3b80d8
ember-initializers.cpp
|
e78ccb4d609a113c3e06a9c4583e845e90b1a037 |
03-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Handle reference binding in aggregate initializers. Fixes another 47 tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95235 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
0b6bc8bd7a1d2a7d7478d13d78cff94cacad61fc |
03-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
When a function or variable somehow depends on a type or declaration that is in an anonymous namespace, give that function or variable internal linkage. This change models an oddity of the C++ standard, where names declared in an anonymous namespace have external linkage but, because anonymous namespace are really "uniquely-named" namespaces, the names cannot be referenced from other translation units. That means that they have external linkage for semantic analysis, but the only sensible implementation for code generation is to give them internal linkage. We now model this notion via the UniqueExternalLinkage linkage type. There are several changes here: - Extended NamedDecl::getLinkage() to produce UniqueExternalLinkage when the declaration is in an anonymous namespace. - Added Type::getLinkage() to determine the linkage of a type, which is defined as the minimum linkage of the types (when we're dealing with a compound type that is not a struct/class/union). - Extended NamedDecl::getLinkage() to consider the linkage of the template arguments and template parameters of function template specializations and class template specializations. - Taught code generation to rely on NamedDecl::getLinkage() when determining the linkage of variables and functions, also considering the linkage of the types of those variables and functions (C++ only). Map UniqueExternalLinkage to internal linkage, taking out the explicit checks for isInAnonymousNamespace(). This fixes much of PR5792, which, as discovered by Anders Carlsson, is actually the reason behind the pass-manager assertion that causes the majority of clang-on-clang regression test failures. With this fix, Clang-built-Clang+LLVM passes 88% of its regression tests (up from 67%). The specific numbers are: LLVM: Expected Passes : 4006 Expected Failures : 32 Unsupported Tests : 40 Unexpected Failures: 736 Clang: Expected Passes : 1903 Expected Failures : 14 Unexpected Failures: 75 Overall: Expected Passes : 5909 Expected Failures : 46 Unsupported Tests : 40 Unexpected Failures: 811 Still to do: - Improve testing - Check whether we should allow the presence of types with InternalLinkage (in addition to UniqueExternalLinkage) given variables/functions internal linkage in C++, as mentioned in PR5792. - Determine how expensive the getLinkage() calls are in practice; consider caching the result in NamedDecl. - Assess the feasibility of Chris's idea in comment #1 of PR5792. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95216 91177308-0d34-0410-b5e6-96231b3b80d8
nternal-linkage.cpp
|
a78fa2c40fbbe505485e7d120dc68a292ee0c968 |
02-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Set the correct vtable pointers _before_ generating code for any member initializers. Fixes about ~2000 clang/LLVM tests in the clang-on-clang build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95116 91177308-0d34-0410-b5e6-96231b3b80d8
ember-initializers.cpp
|
fb8b69aef3377aaa786d1278aaae7e7b04ac095f |
02-Feb-2010 |
John McCall <rjmccall@apple.com> |
Codegen CXXConstructExprs with trivial constructors as constants. Eliminates a lot of spurious global initializers, fixing PR6205. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95077 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
2e13db8bc64bc99922b0aeb45443c681c1643c82 |
02-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Check in a test case and a nasty workaround for PR6199. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95076 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
b217bcce1463db6d6a9c45f53b984af49ee35d03 |
02-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
XFAIL two tests on Win32 until some cares to investigate... the problem on dyncast is just due to \r\n newline interaction w/ regexps. The remap-load.c failure is a bit stranger (the end of the extent is on the next line), but I don't care to investigate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95071 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
2c12d0319a267b844cb7d569d84426cd344b90f7 |
02-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Improve handling of emitting 'null' pointers to data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95066 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
45147d0098a34c3705f74ca121b27d7736ac113a |
02-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Move pointer to data member emission to CodeGenModule and use it in CGExprConstant. Fixes PR5674. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95063 91177308-0d34-0410-b5e6-96231b3b80d8
ointers-to-data-members.cpp
|
63b071f28ea936772634c176a34de2bf0301f79c |
02-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Merge a test into pointers-to-data-members.cpp and convert it to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95061 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointers-zero-init.cpp
ointers-to-data-members.cpp
|
fe40456f0c0060097564cecaf7faada39185463a |
02-Feb-2010 |
Anders Carlsson <andersca@mac.com> |
Rename a test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95060 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointer-cast.cpp
ointers-to-data-members.cpp
|
905a100f3d03039f6f3e3aecf2996a05cef4a267 |
31-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
When performing a derived-to-base cast that we know will not change the offset, we don't need to null check the input pointer. Fixes PR5965. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94942 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-base.cpp
yncast.cpp
|
a552ea76b0e4ce4ccdbb845667f0a12da6608c52 |
31-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
When doing a base-to-derived cast we don't need to null check the derived value if the class offset is 0. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94939 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-base.cpp
|
de4b1d86bf48bc2a84bddf6b188f6da53eaea845 |
29-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix reference binding of const lvalue references to bit-fields, which requires a temporary. Previously, we were building an initialization sequence that bound to the bit-field as if it were a real lvalue. Note that we previously (and still) diagnose binding of non-const references to bit-fields, as we should. There's no real way to test that this code is correct, since reference binding does not *currently* have any representation in the AST. This fix should make it easier for that to happen, so I've verified this fix with... Added InitializationSequence::dump(), to print an initialization sequence for debugging purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94826 91177308-0d34-0410-b5e6-96231b3b80d8
eference-init.cpp
|
46287c7922b1c715b6ade87478e91409b19f0247 |
29-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Name mangling for cast expressions, from Matthias Schiffer! Fixes PR5876. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94811 91177308-0d34-0410-b5e6-96231b3b80d8
angle-exprs.cpp
|
bfc008d5970b5bff0fd3ec15ecbd5b46f56fd9a1 |
27-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Update xcode project. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94654 91177308-0d34-0410-b5e6-96231b3b80d8
86_32-arguments.cpp
|
798345c69505226a33258177fa6e06275ef59595 |
27-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
XFAIL this for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94653 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
202e42b9bf622cd474191cbcdece658d5ef3fd8f |
27-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Fix test/CodeGenCXX/default-destructor-synthesis.cpp not to rely on asm output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94652 91177308-0d34-0410-b5e6-96231b3b80d8
efault-destructor-synthesis.cpp
|
577cacc0a3d4b6c2130c25bbe0c949623590fee3 |
27-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Fix attr.cpp by not checking the generated assembler output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94651 91177308-0d34-0410-b5e6-96231b3b80d8
ttr.cpp
|
15189fb2fb2b3b3df678e94b036b77b994704655 |
26-Jan-2010 |
Mike Stump <mrs@apple.com> |
Refine the non-virtual this adjustments for thunks by using the offset to the declaring class from the nearest virtual base class. WIP. This fixes 40% of all the problems remaining in one of my testcases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94592 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
3bb92693c3332c1e99870a4e45afff3892e1c6ae |
26-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Use the right definition when emitting a global variable. Fixes PR5564. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94555 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-data-member.cpp
|
d0c4792ca6bde9d60002760c10eb605ed2eebde8 |
26-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
If a global variable has an initializer with side effects, it can never be deferred (even if it's in an anonymous namespace). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94525 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-namespaces.cpp
|
e70d391ed56839841e4ace189d22ae3ee789b044 |
26-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another debug info crash with virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94520 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
4433f1cf8a2704395e509d020d8f79da4e273458 |
26-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Fix the test I broke, and also fix a crash when declaring a virtual destructor. Add debug info support for pure virtual member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94519 91177308-0d34-0410-b5e6-96231b3b80d8
R4890-debug-info-dtor.cpp
ebug-info.cpp
|
071c81065a282edba989bcf7c260b5838a59db50 |
26-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Make sure to always mark a global variable as not being constant if it has a C++ initializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94504 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
d99a4d2407a9d10d97db2b9bebed6ef4238c9d7a |
26-Jan-2010 |
Mike Stump <mrs@apple.com> |
Be sure to track the non-virtual part of the vcall offset in complex multiple inheritance cases. WIP. This fixes 20% of the outstanding problems found by the randomized tester. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94499 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
cf0b9cc2f72d0bc9e23a423c90836cb092f213cd |
26-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fixup a missing vcall entry. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94478 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
f7c00eda7f21ef89cfec48fa90b743a403b89d4b |
25-Jan-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a code gen. bug involving compiling global references. (fixes radar 7574896). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94434 91177308-0d34-0410-b5e6-96231b3b80d8
eference-init.cpp
|
31455256ae26cc7069111643ec4429ea564377da |
24-Jan-2010 |
Sean Hunt <rideau3@gmail.com> |
Mangle static variables with an extra name to distinguish them from non-static variables in the same TU. Fixes PR5966 for real this time; also reverts r92911, which had a incorrect fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94352 91177308-0d34-0410-b5e6-96231b3b80d8
onst-global-linkage.cpp
eferred-global-init.cpp
lobal-llvm-constant.cpp
angle.cpp
|
08e9e453f40aff95a59bd67db49b8f050765e1f0 |
24-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a nasty bug where temporaries weren't marked as being conditional in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94341 91177308-0d34-0410-b5e6-96231b3b80d8
emp-order.cpp
|
46171917dc87caf0c7a741a7301f36db2e20b132 |
23-Jan-2010 |
Mike Stump <mrs@apple.com> |
Insulate these from changes to the default for -Wunreachable-code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94326 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expressions.cpp
|
56c75a794e8949ef8a338320f44dfe067d84a0e7 |
23-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Adjust testcase for recent AsmPrinter changes, sigh. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94307 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
9f16f13639860cf90030bde70b7b29227552fffd |
23-Jan-2010 |
Daniel Dunbar <daniel@zuster.org> |
Fix a FIXME, this test folds to a constant now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94263 91177308-0d34-0410-b5e6-96231b3b80d8
emp-order.cpp
|
f9d3e9bb0052d2605d6b33d7de356d534457c9ac |
22-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fixup the rest of the testcases to grep the .ll file instead of the .s file, and add FIXMEs to the remaining broken tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94238 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
e07b6e58d3a23803f537ba861298475c1eb65eab |
22-Jan-2010 |
Mike Stump <mrs@apple.com> |
Convert more testcases to checking the .ll file instead of the .s file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94229 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
6ebee078ec83dbeb61abd95967ec385a15f6af91 |
22-Jan-2010 |
Mike Stump <mrs@apple.com> |
Be sure to select primary bases among the nearly empties in preorder, not just among the direct bases. Before we where missing nearly empties that were bases of virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94208 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
fc9f16c9e64fa145b454ce4e7b7ecdbb3aecdcf3 |
22-Jan-2010 |
Mike Stump <mrs@apple.com> |
Ensure we output all non-virtual base vtables. Fixes PR5890. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94163 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
5bb4d982230f36e6e374ea6ac83f31011a8d0a6b |
21-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert r94073, it fails in Release-Asserts builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94089 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
21c57918f45ac0d192d2202e907969fda22fa612 |
21-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Match branch labels with the trailing colon so we don't accidentally match something else. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94073 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
f79df0524de44c2866b5506ca605e54a3cba8fa8 |
20-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
allow this test to pass, even with the recent .s printer changes. Have I ever mentioned that clang regtests should not be grepping .s files?? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93998 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
35aa62aacf2b644f2ff2f0bdfd89136323698a39 |
18-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
More VTT builder fixes. With these fixes we now correctly handle the very complex VTT example from the Itanium ABI spec. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93725 91177308-0d34-0410-b5e6-96231b3b80d8
tt-layout.cpp
|
20314fffcf5d97bab58686cdcb914637b453a166 |
18-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bunch of VTT layout bugs, add simple tests for VTT layout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93709 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
tt-layout.cpp
|
0d8bb8ee72bd74382274a4cff50466d8af5d0a0c |
18-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Update virt.cpp for changes to the LLVM asm printer (?) This test should really be all LLVM IR... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93707 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
3364e626147dd6fc5e33d12cda0eaaa50baf2206 |
16-Jan-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix crash generating debug info for constructor for anonymous struct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93601 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
3005efeb131ccddcda9c332c83e49c32349e2aed |
16-Jan-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Make the AST explicitly represent the cast of the first operand of a pointer-to-member operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93592 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
8a850baa41ea9015b949183667ad96a981f10b09 |
15-Jan-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a couple bugs in copy assignment operator synthesis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93546 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis-3.cpp
|
69456f12c5e5211adbfd7c3500d13436d4fec8da |
15-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fix Release-Asserts for the time being. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93493 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
53b4810bad9385fbc65f045711585517f99fd31b |
13-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fix Release-Asserts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93353 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
f8843631377ba83d4ffbfb99e8cfb13e1d02b0cf |
13-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fix for Release-Assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93348 91177308-0d34-0410-b5e6-96231b3b80d8
elete-two-arg.cpp
|
edc95e7b3b4f3200d192b3ec7f19340a3476d209 |
13-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fix for Release-Asserts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93347 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
1d9e0aa25d718a0f6546446e12c276e1802adf1f |
13-Jan-2010 |
Mike Stump <mrs@apple.com> |
Fix Release-Asserts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93346 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
5535c38a2fcface6c13bc8bbeca66882de2fa227 |
12-Jan-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix the CodeGen half of PR5911 by changing reference initialization to correctly look through arrays to see cv-qualifiers. Also enhances the routine for doing this to preserve more type sugaring for diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93252 91177308-0d34-0410-b5e6-96231b3b80d8
eference-init.cpp
|
197a338f57a9a44efd5f025ce3d462430d260016 |
09-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
implement codegen support for preinc as an lvalue, PR5514. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93076 91177308-0d34-0410-b5e6-96231b3b80d8
xpr.cpp
|
6c6bda3b0b1d8adaac2ba3f4da7056e9f1eef52e |
08-Jan-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5967: Make const-marking for LLVM globals correct for cases requiring run-time initialization, and emit run-time initializers aggresively to avoid ordering issues with deferred globals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92976 91177308-0d34-0410-b5e6-96231b3b80d8
ttr.cpp
efault-destructor-synthesis.cpp
eferred-global-init.cpp
table-linkage.cpp
|
a9efbf009468f36df0bb66551677339055757d51 |
07-Jan-2010 |
Nuno Lopes <nunoplopes@sapo.pt> |
fix PR5869: mangle static symbols like gcc does to make it easier to diff symbol tables git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92911 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
c84622ae02283985ae39a0ff2ae99b43d1eebc3f |
07-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Test linkage of typeinfo and typeinfo names for class templates git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92897 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
1a78afbde2257d01bd38a36e094d3e3231a9b412 |
06-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert my available_externally vtables experiment. It's breaking the LLVM-with-Clang build with linker errors that I have yet to investigate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92822 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
074a2cf3c51229b90b77e998463530c9b06470e6 |
05-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Make use of available_externally linkage for vtables when the non-inline key function of a class template instantiation, when no key function is present, the class template instantiation itself was instantiated with an explicit instantiation declaration (aka extern template). I'm fairly certain that the C++0x specification gives us this lattitude, although GCC doesn't take advantage of it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92779 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
bd6d6197fcfc98356ea60e816365eb0648b69556 |
05-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve key-function computation for templates. In particular: - All classes can have a key function; templates don't change that. non-template classes when computing the key function. - We always mark all of the virtual member functions of class template instantiations. - The vtable for an instantiation of a class template has weak linkage. We could probably use available_externally linkage for vtables of classes instantiated by explicit instantiation declarations (extern templates), but GCC doesn't do this and I'm not 100% that the ABI permits it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92753 91177308-0d34-0410-b5e6-96231b3b80d8
table-key-function.cpp
table-linkage.cpp
|
7af4ec744e30d573482aef7a37089d0d32cc07ef |
05-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
When emitting member function pointers, use the canonical decl if the member function is virtual. Fixes PR5940. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92680 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
69c1d02e9bb94d10d7ccacaf94889c3d976ca8e7 |
03-Jan-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Improve coverage for test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92440 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis-3.cpp
|
c997d4278d329e18891aac9698fb991b2d4622eb |
02-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Correctly pass VTT parameters to constructors and destructors. The VTTs aren't yet used in the ctors/dtors, but that will follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92409 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
efault-constructor-default-argument.cpp
irtual-destructor-calls.cpp
|
e8f90389c43efbbe820574f674a98ac701bf48a2 |
31-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
If the key function of a record is inline, then the RTTI data should have weak_odr linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92371 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
bba4d023de3e8e9866920c40a5b200e861c5d12c |
31-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Remove rtti.cpp, it's very fragile and has been marked XFAIL for a while now. Between rtti-layout.cpp and rtti-linkage.cpp, RTTI testing should be covered. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92361 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
0814809e5bc27cccd59b63e99ab1eb52042dc13c |
31-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a bunch of bugs with VMI RTTI building, and add a whole bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92319 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
|
beb80194298097ef8680136d28e96a9326df90ac |
30-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Add base class checks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92286 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
|
2c0769e3e4ba4ad375421f0a6c6b110ed19a6dfe |
30-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Add more vtable tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92285 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
|
f64531a17037faa9e0119e90961d2db77d06865d |
30-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
More RTTI cleanup, test that RTTI classes have the correct vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92284 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
tti-linkage.cpp
|
9c7b6bb952672b9d184a4426138579d55c370afc |
29-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Handle enum types as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92276 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
09b6e6e8854cc4a824060101a9633082e55d7a33 |
29-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Fix function type RTTI linkage and add tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92266 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
3521d01aed2f55b66c7ce2ad47541a9974079699 |
28-Dec-2009 |
Sam Weinig <sam.weinig@gmail.com> |
Fix for PR5871. Make __PRETTY_FUNCTION__ work for member functions defined in a class local to a function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92200 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
190ccccdc481602e518a06d699156b1d203d09db |
27-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix runline. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92174 91177308-0d34-0410-b5e6-96231b3b80d8
onst-base-cast.cpp
|
09a8a0e6ec1252cad52666e9dbb21002b9c80f38 |
27-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix PointerExprEvaluator::VisitCastExpr so it doesn't misfold C++ casts which it doesn't know how to fold, like derived-to-base casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92173 91177308-0d34-0410-b5e6-96231b3b80d8
onst-base-cast.cpp
|
4eadcc569223135e13353c9381b448986e3f7053 |
27-Dec-2009 |
Sam Weinig <sam.weinig@gmail.com> |
Fix for PR5872. Add static specifier and const/volatile qualifiers to member functions in __PRETTY_FUNCTION__ predefined expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92171 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
cb48f8a60ad26b56d299cca9a57f8ea683d8a909 |
25-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make copy constructor elimination work in more cases; the case in question here affects clang-on-clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92151 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-elim-2.cpp
|
6be112049b24ffaa8508646aa695834b4b5ca2b2 |
25-Dec-2009 |
Sam Weinig <sam.weinig@gmail.com> |
Fix for PR5844. Be explicit about anonymous struct/class/union/namespaces in __PRETTY_FUNCTION__ predefined expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92149 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
5132655e4296b780672e9a96b46a740135073534 |
24-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
When transforming CXXExprWithTemporaries and CXXBindTemporaryExpr expressions (e.g., for template instantiation), just transform the subexpressions and return those, since the temporary-related nodes will be implicitly regenerated. Fixes PR5867, but I said that before... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92135 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
65552c424750aaa58533ca385a90b77c033cc635 |
24-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
InitializationSequence handles binding to temporaries, so that argument-passing doesn't have to. Fixes PR5867, where we were binding a temporary twice in the AST and, therefore, calling its destructor twice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92131 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
f28c687866aed1ed7b4b9ddf44a51673861236cf |
23-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle block pointer types. Fixes PR5858. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92069 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
154fe9812faddcd94568a64aee5f3cb0d47003d9 |
23-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
There is no such thing as typeinfo for a cv-qualified type. Assert that this is true when mangling, then fix up the various places in Sema and/or CodeGen that need to remove qualifiers. Addresses a linking issue when building LLVM with Clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92064 91177308-0d34-0410-b5e6-96231b3b80d8
ry-catch.cpp
|
f57f207a0fcf5fb7883597b57dd03faf952318dd |
23-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Remove cv-qualifiers from the argument to typeid git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92041 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
9e85c743a4cefff7386764bba3f3f2cdbe5c06e2 |
23-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle template template parameters. Fixes PR5861. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92030 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
f2a5539ea74bc4c4637851395f6bf6f78689f4e6 |
22-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Make sure that reinterpret_cast gets a CastKind on all successful paths. Fixes "cannot compile this unexpected cast lvalue yet" error in llvm/lib/Analysis/IPA/GlobalsModRef.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91932 91177308-0d34-0410-b5e6-96231b3b80d8
asts.cpp
|
8257d411a759b91921681c3b7f79e50e0d9252db |
22-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Make sure that we mangle overloaded operators that are member functions correctly, giving them the correct arity. With this seemingly insignificant fix, we are now able to build and link clang using clang itself! (LLVM still has to be built with gcc for the time being). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91893 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
ember-functions.cpp
|
4971ff8eea7800bd2a73652add6dcf7a4adf5f74 |
22-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
x86_64: Structures with no fields but which have padding should be classified as integer. - This is consistent, but may not be correct. I will revisit x86_64 ABI handling for C++ as a whole at some point. - PR5831. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91874 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
86_64-arguments.cpp
|
0d6d12b2db47ff34d6cd30917992a8c8ad97aac2 |
22-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
When converting from a type to itself or one of its base classes via a constructor call, the conversion is only a standard conversion sequence if that constructor is a copy constructor. This fixes PR5834 in a semi-lame way, because the "real" fix will be to move over to InitializationSequence. That will happen "soonish", but not now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91861 91177308-0d34-0410-b5e6-96231b3b80d8
R5834-constructor-conversion.cpp
|
610b0d94d71810773378be4f39922a56b1202a83 |
21-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Add tests for structs inside anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91806 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
625c1ae781e3b8973bc9ec520268fe3301e4caf5 |
21-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Incomplete structs should also have internal linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91805 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
17fa6f971c1912c77aa10bdac4b7991b5e1646e2 |
21-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Correcly handle pointers to member pointer types where the class or the pointee is incomplete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91804 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
tti-linkage.cpp
|
8d1451535524cb21a6f8347bad9fed371b9d9ecb |
20-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Rework the way pointer types are handled by the RTTI builder. We now get the right linkage for indirect pointers to incomplete structs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91799 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
tti-linkage.cpp
|
7abfbdbc97ad8e7f340789f751df1e32b10118b4 |
19-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Switch more of Sema::CheckInitializerTypes over to InitializationSequence. Specially, switch initialization of a C++ class type (either copy- or direct-initialization). Also, make sure that we create an elidable copy-construction when performing copy initialization of a C++ class variable. Fixes PR5826. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91750 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
29f1a6070ac35fcbea9241c843df7f3f7c5c3228 |
19-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Correctly initialize the PrimaryBaseInfo if a base is null. Fixes PR5832. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91748 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-function-calls.cpp
|
27a9b72bf1e4fe9f1d3ee9a5db1b9d614b0ee01c |
19-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5524: make reference binding in default argument work correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91733 91177308-0d34-0410-b5e6-96231b3b80d8
eference-bind-default-argument.cpp
|
c2c0d562bb1d03501433b450bb97df7812598d4c |
19-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Test for r91724. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91730 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-ctor.cpp
|
6f0e485a5cc120c5b30f5a5d11b2784de0c9c767 |
18-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Fix regression I introduced when dynamic_cast-ing to a reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91687 91177308-0d34-0410-b5e6-96231b3b80d8
ynamic-cast.cpp
|
0ddb6f7506d3bffe4e526f877d3ef48e8d942b1d |
18-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
It's perfectly fine to see UserDefinedConversion casts when emitting scalar expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91686 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
18ef5e28a9a2677f8b1dce1fb2638d66e0a1621f |
18-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Switch the initialization required by return statements over to the new InitializationSequence. This fixes some bugs (e.g., PR5808), changed some diagnostics, and caused more churn than expected. What's new: - InitializationSequence now has a "C conversion sequence" category and step kind, which falls back to - Changed the diagnostics for returns to always have the result type of the function first and the type of the expression second. CheckSingleAssignmentConstraints to peform checking in C. - Improved ASTs for initialization of return values. The ASTs now capture all of the temporaries we need to create, but intentionally do not bind the tempoary that is actually returned, so that it won't get destroyed twice. - Make sure to perform an (elidable!) copy of the class object that is returned from a class. - Fix copy elision in CodeGen to properly see through the subexpressions that occur with elidable copies. - Give "new" its own entity kind; as with return values and thrown objects, we don't bind the expression so we don't call a destructor for it. Note that, with this patch, I've broken returning move-only types in C++0x. We'll fix it later, when we tackle NRVO. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91669 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
3b29901b1d106789e04ce8c4cdfebe72b251db4b |
18-Dec-2009 |
Sean Callanan <scallanan@apple.com> |
Testcase fixes to reflect instruction table changes in the LLVM backend (http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20091214/092780.html) The instruction fixes were checked and approved by Chris Lattner, but these testcase fixes are mine; please yell at me if there are any problems with either. * PR5050-constructor-conversion.cpp * array-construction.cpp * constructor-conversion.cpp * cast-conversion.cpp * constructor-default-arg.cpp * derived-to-base-conv.cpp * ptr-to-member-function.cpp * call-arg-zero-temp.cpp * default-destructor-synthesis.cpp * global-array-destruction.cpp * array-operator-delete-call.cpp * decl-ref-init.cpp * default-constructor-for-members.cpp * convert-to-fptr.cpp * constructor-for-array-members.cpp * conversion-function.cpp * objc-read-weak-byref.m Fixed testcase to reflect call qualifier git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91640 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
rray-construction.cpp
rray-operator-delete-call.cpp
all-arg-zero-temp.cpp
ast-conversion.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onversion-function.cpp
onvert-to-fptr.cpp
ecl-ref-init.cpp
efault-constructor-for-members.cpp
efault-destructor-synthesis.cpp
erived-to-base-conv.cpp
lobal-array-destruction.cpp
tr-to-member-function.cpp
|
b23f20d72021548c812ddc81b91bf7ad78fe708c |
17-Dec-2009 |
Nuno Lopes <nunoplopes@sapo.pt> |
revert part of my last patch, and mark only the c++ global new operator as noalias. the rest will be infered by llvm optz git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91600 91177308-0d34-0410-b5e6-96231b3b80d8
perator-new.cpp
|
e8820a888a5d19d2c687c222cc1d5e415aedd2a7 |
17-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Attempt to fix rtti-layout.cpp on Linux. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91581 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
|
0a4f18696ccda75a00012b941430414954e678b9 |
17-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Add a (currently failing) RTTI layout test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91580 91177308-0d34-0410-b5e6-96231b3b80d8
tti-layout.cpp
|
7dd4490e47a5348d3f5c6e05946f84666eceaec7 |
16-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix test case to unbreak testing git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91551 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
16006c901315fa12a108b4e571f187f4b676e426 |
16-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
When value-initializing a class with no user-defined constructors but with a non-trivial default constructor, zero-initialize the storage and then call the default constructor. Fixes PR5800. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91548 91177308-0d34-0410-b5e6-96231b3b80d8
alue-init.cpp
|
4b3e5be334c93c3f48af2a49c0ea7cd9bae2a0e5 |
16-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Baby steps towards fixing PR5589. If a class needs a vtable pointer, add one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91545 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
irt.cpp
|
fc2844846e91398205fddc71196fe9dda04e105f |
16-Dec-2009 |
Nuno Lopes <nunoplopes@sapo.pt> |
implement PR5654: add -fassume-sane-operator-new, which is enabled by default, and adds the malloc attribute to the global function new() and to the overloaded new operators. feel free to chage the name to this lengthy argument git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91543 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
perator-new.cpp
tatic-init.cpp
|
e8e4a1c0bf2e3dd26dd0721a102307bbb589e96a |
16-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Use GetAddrOfRTTI everywhere and remove GenerateRTTI and GenerateRTTIRef. With this change, we can now compile and link TableGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91520 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
30311fa6b0735b9cb73b01e25bf9652a4b9b0c53 |
16-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Handle ImplicitValueInitExpr in AggExprEmitter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91519 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
58040a5ee50bcaebbcbebe47fbdc5fd70be90e83 |
16-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle CXXOperatorCallExprs, fixes PR5796. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91507 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
80737ad5e0a67d6e3dd0a0ba48446344215a5fd5 |
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update tests to use %clang instead of 'clang', and forcibly disable use of ' clang ' or ' clang -cc1 ' or ' clang-cc ' in test lines (by substituting them to garbage). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91460 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-convert.cpp
|
a5728872c7702ddd09537c95bc3cbd20e1f2fb09 |
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
R4827-cast.cpp
R4890-debug-info-dtor.cpp
R4983-constructor-conversion.cpp
R5050-constructor-conversion.cpp
R5093-static-member-function.cpp
_null.cpp
ddress-of-fntemplate.cpp
nonymous-namespaces.cpp
nonymous-union-member-initializer.cpp
rray-construction.cpp
rray-operator-delete-call.cpp
rray-pointer-decay.cpp
rray-value-initialize.cpp
ssign-operator.cpp
ttr.cpp
all-arg-zero-temp.cpp
ast-conversion.cpp
asts.cpp
lass-layout.cpp
ondition.cpp
onditional-expr-lvalue.cpp
onditional-temporaries.cpp
onst-global-linkage.cpp
onst-init.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onstructor-init-reference.cpp
onstructor-init.cpp
onstructor-template.cpp
onversion-function.cpp
onversion-operator-base.cpp
onvert-to-fptr.cpp
opy-assign-synthesis-1.cpp
opy-assign-synthesis-2.cpp
opy-assign-synthesis-3.cpp
opy-assign-synthesis.cpp
opy-constructor-elim.cpp
opy-constructor-synthesis-2.cpp
opy-constructor-synthesis.cpp
ebug-info.cpp
ecl-ref-init.cpp
efault-arg-temps.cpp
efault-arguments.cpp
efault-constructor-default-argument.cpp
efault-constructor-for-members.cpp
efault-constructor-template-member.cpp
efault-destructor-synthesis.cpp
elete-two-arg.cpp
elete.cpp
erived-to-base-conv.cpp
erived-to-base.cpp
estructor-calls.cpp
estructors.cpp
evirtualize-virtual-function-calls.cpp
yncast.cpp
h.cpp
lide-call-reference.cpp
mpty-union.cpp
num.cpp
val-recursive-constant.cpp
xceptions.cpp
xplicit-instantiation.cpp
xpr.cpp
xtern-c.cpp
unction-template-explicit-specialization.cpp
unction-template-specialization.cpp
lobal-array-destruction.cpp
lobal-init.cpp
lobal-llvm-constant.cpp
mplicit-instantiation-1.cpp
nit-incomplete-type.cpp
nline-functions.cpp
nstantiate-init-list.cpp
ey-function-vtable.cpp
angle-extern-local.cpp
angle-extreme.cpp
angle-subst-std.cpp
angle-subst.cpp
angle-system-header.cpp
angle-template.cpp
angle-unnamed.cpp
angle.cpp
ember-call-parens.cpp
ember-expressions.cpp
ember-function-pointers.cpp
ember-functions.cpp
ember-init-struct.cpp
ember-init-union.cpp
ember-pointer-cast.cpp
ember-pointer-type-convert.cpp
ember-pointers-zero-init.cpp
ember-templates.cpp
amespace-aliases.cpp
ested-base-member-access.cpp
ew-operator-phi.cpp
ew-with-default-arg.cpp
ew.cpp
ullptr.cpp
verload-binop-implicitconvert.cpp
redefined-expr-sizeof.cpp
redefined-expr.cpp
tr-to-datamember.cpp
tr-to-member-function.cpp
eference-field.cpp
eference-init.cpp
eferences.cpp
einterpret-cast.cpp
tti-linkage.cpp
tti.cpp
tatic-assert.cpp
tatic-data-member.cpp
tatic-init-1.cpp
tatic-init-2.cpp
tatic-init.cpp
tatic-member-variable-explicit-specialization.cpp
emp-order.cpp
emplate-anonymous-union-member-initializer.cpp
emplate-linkage.cpp
emporaries.cpp
hrow-expressions.cpp
rivial-constructor-init.cpp
nary-type-trait.cpp
ararg-conversion-ctor.cpp
irt-call-offsets.cpp
irt-canonical-decl.cpp
irt-dtor-gen.cpp
irt-dtor-key.cpp
irt-template-vtable.cpp
irt-thunk-reference.cpp
irt.cpp
irtual-base-cast.cpp
irtual-base-destructor-call.cpp
irtual-bases.cpp
irtual-destructor-calls.cpp
irtual-destructor-synthesis.cpp
irtual-function-calls.cpp
irtual-functions-incomplete-types.cpp
irtual-implicit-copy-assignment.cpp
irtual-inherited-destructor.cpp
irtual-operator-call.cpp
irtual-pseudo-destructor-call.cpp
table-cast-crash.cpp
table-key-function.cpp
table-linkage.cpp
86_64-arguments.cpp
|
ea5ae3170d8022c2007295ec794bdaf63f0273a1 |
15-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a small bug in ComputeMethodVtableIndices. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91411 91177308-0d34-0410-b5e6-96231b3b80d8
irt-call-offsets.cpp
|
34531470e6f6e394de7fd47d69917db280fee206 |
15-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Really fix this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91409 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
|
555f610d406e2510f83a4a488ec93827819d2727 |
15-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix test broken by my last commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91396 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
|
4411d2e674b0119f682ac472c3a377f14fa9fa30 |
14-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
When rebuilding CXXConstructExprs after a transformation, use CompleteConstructorCall to perform type-checking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91279 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-convert.cpp
|
e170ba7846bc4cae4b376b52eb4448645c141e59 |
14-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle unary, binary and ternary expressions correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91257 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
20e098b7e7fda6bed1d67441b56cce77cd3aa918 |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5714: make sure globals that will be modified aren't marked const. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91156 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-llvm-constant.cpp
|
470fb73d4e09e1dfe62cb545d7fe0e567ac6e8d6 |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix linkage of type info and vtable for classes without linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91152 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
6f9f25dfc7bf9cc1ab1282d6d7e9cf7916d8a09c |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure mangling doesn't crash in another case. Add some more tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91149 91177308-0d34-0410-b5e6-96231b3b80d8
angle-unnamed.cpp
angle.cpp
|
ecb7e932e9274a0628477d17931a06b3b109024a |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5706: let mangleName deal with mangling names without identifiers correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91136 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
22ed438eafdc9533b6abacb191ec82c192604f0d |
11-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
XFAIL this for now, fixing linkage bugs causes the order of globals to change. Will fix later today. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91130 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
4e7135613a558020f003972b2a5ae5f8d5306508 |
11-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Use GetAddrOfRTTI when getting the RTTI pointer for a base class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91127 91177308-0d34-0410-b5e6-96231b3b80d8
tti-linkage.cpp
|
3a1737030e3c8d209987325c61dacb8e4a65123b |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Move the code for converting a member pointer to a bool so that it is usable for logical not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91112 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
b81c786de58ce484230dc04f9a7c78bc48990106 |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5718: implement equality comparisons for member function pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91108 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
31b7f52d8c8d459e80d2a72176cc7fcc4b7d8d38 |
11-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Improve linkage of RTTI data structures. Introduce CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91098 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
irt-dtor-key.cpp
table-linkage.cpp
|
03981014e4f0c3b4e935872dda96a28c2f1874ea |
11-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a recent regression from the initialization changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91097 91177308-0d34-0410-b5e6-96231b3b80d8
eference-init.cpp
|
8370c58b9295b32bee50443fe3ac43a47a2047e8 |
11-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
When an exception needs to be freed by calling __cxa_exception_free, make sure to stash away the exception pointer somewhere. This fixes an "Instruction does not dominate all uses!" verification error when compiling TableGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91084 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
xceptions.cpp
|
9dfebdcdcdcc0cad8a3ef205d33b84f33233072b |
10-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Support unary type traits in a scalar context. Not that I've actually seen this construct, but might as well for completeness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91071 91177308-0d34-0410-b5e6-96231b3b80d8
nary-type-trait.cpp
|
29a7f3342c3c6dd15d914c61ae22246c36d51ce7 |
10-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Clean up enum constants so that they're finally sane. Fixes PR3173 and a recently introduced crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91070 91177308-0d34-0410-b5e6-96231b3b80d8
num.cpp
|
548e60efea9a1d2c31679e11e9ff0d2f19b96694 |
10-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Make sure that explicitly instantiated functions get the right linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91069 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-linkage.cpp
|
2ce79bc4fd6818abfcdaffcad136994905e62fea |
10-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Test for r90950. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91043 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-operator-base.cpp
|
c7974ca5312eefd00b9e927203def9fbd8c1d169 |
10-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Handle emitting static variables that have reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91027 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
76958099828bac6ebd45abef9f76934b3e99e397 |
10-Dec-2009 |
Mike Stump <mrs@apple.com> |
Add terminate handler for copy constructors for thrown objects. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90994 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
20093b4bf698f292c664676987541d5103b65b15 |
10-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Reimplement reference initialization (C++ [dcl.init.ref]) using the new notion of an "initialization sequence", which encapsulates the computation of the initialization sequence along with diagnostic information and the capability to turn the computed sequence into an expression. At present, I've only switched one CheckReferenceInit callers over to this new mechanism; more will follow. Aside from (hopefully) being much more true to the standard, the diagnostics provided by this reference-initialization code are a bit better than before. Some examples: p5-var.cpp:54:12: error: non-const lvalue reference to type 'struct Derived' cannot bind to a value of unrelated type 'struct Base' Derived &dr2 = b; // expected-error{{non-const lvalue reference to ... ^ ~ p5-var.cpp:55:9: error: binding of reference to type 'struct Base' to a value of type 'struct Base const' drops qualifiers Base &br3 = bc; // expected-error{{drops qualifiers}} ^ ~~ p5-var.cpp:57:15: error: ambiguous conversion from derived class 'struct Diamond' to base class 'struct Base': struct Diamond -> struct Derived -> struct Base struct Diamond -> struct Derived2 -> struct Base Base &br5 = diamond; // expected-error{{ambiguous conversion from ... ^~~~~~~ p5-var.cpp:59:9: error: non-const lvalue reference to type 'long' cannot bind to a value of unrelated type 'int' long &lr = i; // expected-error{{non-const lvalue reference to type ... ^ ~ p5-var.cpp:74:9: error: non-const lvalue reference to type 'struct Base' cannot bind to a temporary of type 'struct Base' Base &br1 = Base(); // expected-error{{non-const lvalue reference to ... ^ ~~~~~~ p5-var.cpp:102:9: error: non-const reference cannot bind to bit-field 'i' int & ir1 = (ib.i); // expected-error{{non-const reference cannot ... ^ ~~~~~~ p5-var.cpp:98:7: note: bit-field is declared here int i : 17; // expected-note{{bit-field is declared here}} ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90992 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
77a259c6dbf582949af8a243b472c0c7faa373a6 |
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5707: make sure implicit copy constructors initialize the vtable pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90840 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis-2.cpp
|
6bc20135a2c46f97da15994095616a305be35c6a |
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5710: make sure to put function template specializations into the DeclContext, so they don't completely disappear from the AST. I don't particularly like this fix, but I don't see any obviously better way to deal with it, and I think it's pretty clearly an improvement; comments welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90835 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-explicit-specialization.cpp
|
0259ce2b4a94b7d1b28a084b76650cbf448e3eb8 |
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Slight tweak to vtable linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90832 91177308-0d34-0410-b5e6-96231b3b80d8
ey-function-vtable.cpp
|
61eab8872168af6eb1e0047a82901096cf145e27 |
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Misc key function fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90831 91177308-0d34-0410-b5e6-96231b3b80d8
ey-function-vtable.cpp
|
c4451dbb4fd3858a3ee7354fcca4ab452192ddb4 |
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix some direct checks of expressions which might be surrounded by parentheses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90825 91177308-0d34-0410-b5e6-96231b3b80d8
ember-call-parens.cpp
|
ebc3317c66638a05a089abb348877b9b823f52b0 |
08-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make copy assignment operator synthesis not explode for classes with complex or non-record aggregate members. It might be worth spending some time to optimize this code (and the parallel code for copy constructors) to memcpy in larger chunks, rather than copying one member at a time. Not sure exactly how beneficial that would be, but it seems like could help for large classes with, for example, a vtable pointer forcing the generation of a copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90823 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis-3.cpp
|
c2456824a106455bae5d738fe65d80b14a6804c4 |
08-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
No need to add tail padding if the resulting LLVM struct type will have the same size as the final record size. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90820 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
|
48daf59c9f52856ca80074f1f5a30aa29c235726 |
07-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Correctly handle conditional operators involving throw. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90800 91177308-0d34-0410-b5e6-96231b3b80d8
hrow-expressions.cpp
|
91f8860de5f4280607e74c9d653751cd3f891ca7 |
07-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle basic_ostream and basic_iostream specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90794 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
d58987c67d0fa02a71af98a9fa66ffd73c1501ed |
07-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
It's OK to try to emit a vtable definition more than once. Fixes PR5697. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90751 91177308-0d34-0410-b5e6-96231b3b80d8
table-key-function.cpp
|
721e77db41cd9a07d2e1c9fdf08a4bd2eee1bc98 |
07-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Move RequireCompleteType requirement for fields early into ActOnField so that subsequent code which depends on a complete type does the right thing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90727 91177308-0d34-0410-b5e6-96231b3b80d8
efault-constructor-template-member.cpp
|
3a1ce1ed0f5686384e712837bad28c576622e442 |
07-Dec-2009 |
Sam Weinig <sam.weinig@gmail.com> |
Don't print a void return type for C++ constructors and destructors when generating a predefined expr for them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90725 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
72649ed78a25365d003b5218cae7b332c418800e |
06-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Work-in-progess rewrite of thunks: move thunk generation outside of vtable generation, and make sure we generate thunks when the function is defined rather than when the vtable is defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90722 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
20f12a20ba9cfa6f8d53c8304e24f50903c45184 |
06-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Add rudimentary support for member pointers to CGDebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90711 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
0336843eb0d04f2d4423189c26ec55b7654b1dec |
06-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a slight oversight in computing whether a copy constructor is elidable. Fixes PR5695. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90702 91177308-0d34-0410-b5e6-96231b3b80d8
lide-call-reference.cpp
|
5794c9714a7d8c7eb8003d3e2616ab389ba9e45b |
06-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
More linkage improvements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90687 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
891c8b739917ec4d171a62ceaefc640115089e7d |
05-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
If a class does not have a key function, its linkage should be weak_odr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90680 91177308-0d34-0410-b5e6-96231b3b80d8
irt-template-vtable.cpp
table-linkage.cpp
|
152d4dce59a123b9a103b3087dc3be7f0b71033e |
05-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Use createGlobalVariable for creating vtable variables too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90679 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
7ca464366349e6b197cb521794517fa026259ee4 |
05-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Factor vtable related GlobalVariable creation out into a separate function. Add vtable linkage test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90667 91177308-0d34-0410-b5e6-96231b3b80d8
table-linkage.cpp
|
378fe06b93752669d8a7dd8fa7000094b9679267 |
05-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Tweak "key function" rules so that they work for templates with virtual inline functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90645 91177308-0d34-0410-b5e6-96231b3b80d8
irt-template-vtable.cpp
|
1b3171dd6c7c319655f79de80ed8fed03f758e51 |
05-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Don't emit explicit specializations of static member variable declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90624 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-member-variable-explicit-specialization.cpp
|
48eda2c5d6d2a5c95775a1a3a8a22428bb6869c6 |
04-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Be a little more clever about inline member functions that are marked inline in the inline class declaration but not in the actual definition: class A { inline void f(); } void A::f() { } This is not the most ideal solution, since it doesn't work 100% with regular functions (as my FIXME comment states). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90607 91177308-0d34-0410-b5e6-96231b3b80d8
nline-functions.cpp
|
5c478cf2d54157062cd843737324e0d0df03a464 |
04-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Diagnose declarations of implicit member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90605 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
fd12649cd54074ca9efa0774a7812e330619d198 |
04-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
When generating a virtual destructor, don't try to make a virtual call to the base class destructor because then we'll just re-enter the same destructor! This was done to fix PR5619, so I went ahead and passed a dummy VTT pointer for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90578 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-destructor-calls.cpp
|
47846d2b4c19972e57563bb05a777748939bfb47 |
04-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Correctly mangle the 'std' namespace inside extern "C++" blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90544 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
84206757573bb9f3c91a48cebf800e3fb6c48301 |
04-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Test for non-canonical decl and vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90541 91177308-0d34-0410-b5e6-96231b3b80d8
irt-canonical-decl.cpp
|
c013118155077cf8bdaef743c5dbce760114eed3 |
03-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add recursion guards to ice-checking and evaluation for declrefs, so we don't infinitely recurse for cases we can't evaluate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90480 91177308-0d34-0410-b5e6-96231b3b80d8
val-recursive-constant.cpp
|
7b0ca3fa6f9e89d81db96fe51d4d73bf69d17edc |
03-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Handle static_assert inside functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90461 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-assert.cpp
|
2d09ed028a626d2ebccc6d7971f8c1066a177954 |
03-Dec-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make test 64 bit safe. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90452 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointer-type-convert.cpp
|
4a2251bb06a03166e34b509ca840b36f816c4081 |
03-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5659: correct a rather nasty oversight in the type conversion for member pointer types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90450 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointer-type-convert.cpp
|
6804fa27eb17567f8a783f92ab8c768ca0b561ba |
03-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix thunk generation for thunks with a parameter with reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90412 91177308-0d34-0410-b5e6-96231b3b80d8
irt-thunk-reference.cpp
|
7facf8408ff426be732b9eb62c58d42e6177dd7b |
02-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5522 and PR5666: fix a bunch of mangling issues with extern variables and funcctions declared locally within a function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90344 91177308-0d34-0410-b5e6-96231b3b80d8
angle-extern-local.cpp
|
5fcf1f0df06e72581647efd579f970378f77eb55 |
02-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix another "operator delete missing" crash: make sure we don't check isVirtual() before we've actually calculated whether the destructor is virtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90303 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-inherited-destructor.cpp
|
f195357836e712b85591b22c47e63e327c657ceb |
02-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Tweak test to check for a bit more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90302 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-implicit-copy-assignment.cpp
|
ca6affd01612fa1e4db78ae40509ac01d661730d |
02-Dec-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure to call AddOverriddenMethods for implicit copy assignment operators; it's rare, but possible, for the difference to be significant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90301 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-implicit-copy-assignment.cpp
|
6bc9768408d4b45e00350018b6e3540bc05d267d |
02-Dec-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix a code gen. crash synthesizing a destructor. Fixes pr5660. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90283 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-destructor-synthesis.cpp
|
abce6999b271f4928aa98b11d42ffebedcde1e13 |
30-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Test for my last patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90159 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-destructor-call.cpp
|
30e682e1ef4c5c82b354fe622afad1a3dd8952d7 |
30-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing assignment operator to test, and add tests for while loops and for loops (including temporaries inside the initializers). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90151 91177308-0d34-0410-b5e6-96231b3b80d8
emp-order.cpp
|
f64e44c5400ace9103de08407bb28aaa1b868b18 |
30-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add more sophisticated test for destruction order of C++ temporaries, please feel free to extend! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90143 91177308-0d34-0410-b5e6-96231b3b80d8
emp-order.cpp
|
8432f25cb242cbc809f9b10672e8e2074d362f80 |
28-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a much more thorough test of casts to virtual bases, and fix GetCXXBaseClassOffset to actually pass the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90025 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-cast.cpp
|
9b3727457d1f779da81569c2ca42ff6cd5f5b03d |
27-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Some member pointer casting tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89989 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
ember-pointer-cast.cpp
|
c16668acc904bec0ee20f6bfc2a72d6a3821a589 |
27-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5594: use EmitGlobalDefinition instead of EmitCXXDestructor so that we check whether the vtable needs to be generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89984 91177308-0d34-0410-b5e6-96231b3b80d8
irt-dtor-key.cpp
|
15233e5a4d98b66b3c6cfcc4e6413ad776a79481 |
26-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify and fix up the handling of implicit constructors, copy assignment operators, and destructors. Avoids generating declarations/definitions of trivial constructors/destructors, and makes sure the trivial copy assignment operator is generated when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89943 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis-2.cpp
|
9a14630714da7176c981e3c8d050f82bc42c2643 |
26-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Implement IRGen for MemberExpr referring to static member function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89938 91177308-0d34-0410-b5e6-96231b3b80d8
ember-expressions.cpp
|
e9d6554ba78fb81e810fdaec9b2c98ab96526e83 |
26-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Slight tweak to the algorithm for getLinkage(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89932 91177308-0d34-0410-b5e6-96231b3b80d8
onst-global-linkage.cpp
|
bd94ab9a19cb4bed55ecae9558533da9606bedcf |
26-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Use new getLinkage() method to correctly compute whether a variable has internal linkage. Fixes PR5433. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89931 91177308-0d34-0410-b5e6-96231b3b80d8
onst-global-linkage.cpp
|
f6c56e2323c3f973253805a2f35629f3253ebed4 |
25-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Add VTT parameter to base ctors/dtors with virtual bases. (They aren't used yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89835 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-bases.cpp
|
d975206755e26a391f4a1cd8bf8f96a6a65b05e6 |
25-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement proper cleanup semantics for condition variables in for statements, e.g., for(; X x = X(); ) { ... } Daniel or Anders, please review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89832 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
345e7d29d597a8fff97a20845f3ab63bec81db35 |
25-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Tweak the code-generation-for-condition-variables test case to get to what we want to test git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89818 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
99e9b4d172f6877e6ba5ebe75bb8238721f5e01c |
25-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate CXXConditionDeclExpr with extreme prejudice. All statements that involve conditions can now hold on to a separate condition declaration (a VarDecl), and will use a DeclRefExpr referring to that VarDecl for the condition expression. ForStmts now have such a VarDecl (I'd missed those in previous commits). Also, since this change reworks the Action interface for if/while/switch/for, use FullExprArg for the full expressions in those expressions, to ensure that we're emitting Note that we are (still) not generating the right cleanups for condition variables in for statements. That will be a follow-on commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89817 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
5656e14d91405417182171a705ed3e3d2d6d7aa3 |
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Clean up the AST for while loops and fix several problems with cleanups for while loops: 1) Make sure that we destroy the condition variable of a while statement each time through the loop for, e.g., while (shared_ptr<WorkInt> p = getWorkItem()) { // ... } 2) Make sure that we always enter a new cleanup scope for the body of the while loop, even when there is no compound expression, e.g., while (blah) RAIIObject raii(blah+1); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89800 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
e9cbf15b2ebedebc8bb8e162bb5cf25abd70f578 |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle references correctly when synthesizing copy constructors. With this change, the clang-on-clang test result is now Expected Passes : 224 Unexpected Failures: 37 Which means that we can compile over 80% of clang with clang! :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89799 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
744823c8741b858a477545eeea28f17570dc2e24 |
24-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix the test case failed in buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89791 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
5d4d946ec2d88696fd8422aeb64dc29688e6a2c1 |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle cases where we're constructing an array of objects and the constructor has default arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89783 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arguments.cpp
|
048f52aa9c9c78538fa369af2fc4b7031a55fa77 |
24-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Refactor collection of call arguments in common code. Add support for variadic collection functions. More to do here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89781 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
d3d5301c44138b92bf01286183f5bf310cdd37cf |
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Explicitly store the condition variable within switch statements, and make sure that this variable is destroyed when we exit the switch statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89776 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
c102297fb2857ef1af191a8e85e842cc3ac3239e |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
We always need to emit the base expression of a member expression, even when the member decl refers to an enum. Thanks to Eli for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89775 91177308-0d34-0410-b5e6-96231b3b80d8
ember-expressions.cpp
|
a244dc3a554f6bf82416697e34f9e96dc1efbb88 |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a crash when "instantiating" VarDecls that are neither type nor value dependent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89774 91177308-0d34-0410-b5e6-96231b3b80d8
ember-templates.cpp
|
01234bbc1cb94946df8046ad95e17537082b4f71 |
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce cleanup scopes for "if" statements in two places: - Outside the "if", to ensure that we destroy the condition variable at the end of the "if" statement rather than at the end of the block containing the "if" statement. - Inside the "then" and "else" branches, so that we emit then- or else-local cleanups at the end of the corresponding block when the block is not a compound statement. To make adding these new cleanup scopes easier (and since switch/do/while will all need the same treatment), added the CleanupScope RAII object to introduce a new cleanup scope and make sure it gets cleaned up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89773 91177308-0d34-0410-b5e6-96231b3b80d8
ondition.cpp
|
7e120030a07ad8c4365526b1c5cd22a641297635 |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
When mangling a ctor/dtor we need to take into consideration whether it's a member template. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89741 91177308-0d34-0410-b5e6-96231b3b80d8
ember-templates.cpp
|
1fe598c026dc03fddbd65efb8119eb1afd9b1520 |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Ignore constructor member templates in CodeGenModule::EmitTopLevelDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89737 91177308-0d34-0410-b5e6-96231b3b80d8
ember-templates.cpp
|
ecf282b0486873309fd58ec4d3ec0dbf983b33d4 |
24-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
It is common for vtables to contain pointers to functions that have either incomplete return types or incomplete argument types. Handle this by returning the llvm::OpaqueType for those cases, which CodeGenModule::GetOrCreateLLVMFunction knows about, and treats as being an "incomplete function". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89736 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-functions-incomplete-types.cpp
|
a1b29a74eb702067f18f4cac184bc705e915fd6b |
23-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Don't try to treat an enum constant as an lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89705 91177308-0d34-0410-b5e6-96231b3b80d8
ember-expressions.cpp
|
a4c98cd60e7151ea6eccfc677742bdbcf58d2a55 |
23-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Convert the && and || operands to bool using standard conversions. Fixes PR5593. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89704 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
bc0e0781da778bd5eb41a810419912893ae20448 |
23-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle converting member pointers to bool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89692 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
5d484e8cf710207010720589d89602233de61d01 |
23-Nov-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Intercept sizeof and alignof references before they get into ASTContext methods. This fixes a crash when writing sizeof(Incomplete&), and lets ASTContext's methods do the right thing for CodeGen, which fixes PR5590. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89668 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
ce9f423d2ce4b8699d9f6c7623053f645ac4dc6d |
23-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
x86_64, PR5582: Layout bases for C++ records. - Ideally we would have an single iteration interface for this, but this works for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89632 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
09edb9c38cc7dc596d97d68ba6d23545c7ad3abd |
22-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89613 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
01a79acd9a5a701c7ddb46174ddfcb0e54349f4a |
22-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Support emitting aggregate class initializers. Fixes PR5581. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89569 91177308-0d34-0410-b5e6-96231b3b80d8
onst-init.cpp
|
7e0c1957d19ab012e372c1e5e75a9264e3bacf41 |
21-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Mangler: Sketch mangling for TemplateArgument::Declaration kind. - Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89556 91177308-0d34-0410-b5e6-96231b3b80d8
angle-template.cpp
|
a446343a46ec5a2e3813f3d3314476be267fa242 |
20-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add testcases for recent checkins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89469 91177308-0d34-0410-b5e6-96231b3b80d8
h.cpp
|
a36bf8f74180e834c6bf2db867796fd5338495ab |
20-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Fix lifetime of conditional temporaries. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89467 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-temporaries.cpp
|
a84b4044b79f2cc424c6ae7ee5edb97e948ba806 |
20-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fixup key function calculations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89412 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
irt.cpp
|
498429fa24555ac1c849d8bc6a893d29bd3da4b6 |
19-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to implement new-operators with default args. Fixes pr5547. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89370 91177308-0d34-0410-b5e6-96231b3b80d8
ew-with-default-arg.cpp
|
88a4a62b8a18dc24006ef9d44e28de6c7dc987ba |
18-Nov-2009 |
Mike Stump <mrs@apple.com> |
Be sure to set visibility for ZTI symbols for classes from the class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89186 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
066b983348e06a5f9dbbb72041077bbf1a0fb9c1 |
18-Nov-2009 |
Mike Stump <mrs@apple.com> |
Make _ZTI symbols hidden. This speeds up the dynamic linker. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89185 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
2710c4159ff4761ba9867aca18f60a178b297686 |
18-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fix one last gotcha with typeid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89172 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
ae9b2be5a3771a0d45cfaba171b80e5b0c71c6ca |
18-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add rtti support for arrays, functiond without prototypes, vectors and enums. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89165 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
64989f04d13d9a4a62cc7ebee6351b7c4dbe2e74 |
18-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add rtti info for function prototypes and refactor. This allows pointer to member functions to work. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89161 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
5fae856de2520b63fd371c281a9d36c1547e17f3 |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add rtti support for pointer to data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89155 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
61c38012571dbabf1bf8f12c31bb64af1fc8d1d5 |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add rtti support for non-member pointers. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89148 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
aa069aee2e6290af170a48110641a43f80d25840 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Undo previous test fix. -split-phi-edges now disables automatically when the local register allocator is used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89127 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-default-arg.cpp
|
9f853df0d3c25c646907a7b7ef22398370def00f |
17-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Unify the way destructor epilogues are generated for synthesized and regular destructors. Also fix PR5529. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89034 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
21f5d5d74a1d8c750c29e5fc68fb45e4abfbae58 |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add typeinfo support for T* and const T* for all builtin types T. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89030 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
ea2c0b5dec07c28222856e66177f0922c9f508b1 |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add typeid for the builtin types. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89028 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
936d2a8a3968231199dddbc78378e8fddbab6e25 |
17-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix tests after enabling -split-phi-edges. object-size.c aws simply too fragile. constructor-default-arg.cpp triggers an issue when LiveVariables is run before RALocal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89025 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-default-arg.cpp
|
db519a4bb2082b98e03162ac1a4399978833643b |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Ensure we peer through () when handling typeid(*p). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89015 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
c888f485caaedfcdf62a728d542419232ee89ca0 |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Note why this doesn't yet work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89012 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
f4a08d0d8b496a7f52702e05b8d7622e030dd9d8 |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Trim spacing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89006 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
4d26b43f7c6fc9d2974da7e7389337fe32dc29d0 |
17-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix up EmitMemberInitializer to handle many more cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88999 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-struct.cpp
|
39f36e37f53bfec22a4bc2a594f2dd314395c86c |
17-Nov-2009 |
Mike Stump <mrs@apple.com> |
Testcase for dynamic_cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88996 91177308-0d34-0410-b5e6-96231b3b80d8
yncast.cpp
|
1db5345eec54f8c57d4d448e490715025cb9b9bb |
16-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make member initializers for union members work correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88989 91177308-0d34-0410-b5e6-96231b3b80d8
ember-init-union.cpp
|
6d10ac9ef3435993d0ceae7782fbeee7659af30e |
16-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Implement a few more cases for copy constructor synthesis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88971 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
912b662aec7ed42515a823431deb5aed070cc0d6 |
16-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fix members to be public. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88944 91177308-0d34-0410-b5e6-96231b3b80d8
ypeinfo
|
333dfe94b9d57650a3ca7da7fcc0bd77c0353246 |
16-Nov-2009 |
Mike Stump <mrs@apple.com> |
Make bots happy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88941 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
ypeinfo
|
2a70e94c543338059432fc38b801a56c60f0e0d7 |
16-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fix spelling for target triplet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88928 91177308-0d34-0410-b5e6-96231b3b80d8
elete-two-arg.cpp
xplicit-instantiation.cpp
|
083e3060b77917c1c1096127ab99ae921d7e8782 |
16-Nov-2009 |
Mike Stump <mrs@apple.com> |
Try and fix buildbot issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88900 91177308-0d34-0410-b5e6-96231b3b80d8
elete-two-arg.cpp
|
8dfa2b3a5b818aa888d21eed8585e3d1b9d3506b |
16-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a couple of cases where we weren't generating the right kind of call for a call to a virtual function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88891 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-operator-call.cpp
irtual-pseudo-destructor-call.cpp
|
eaea8c4c23b6892c82640c6f67034d9ed4498d45 |
16-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Implement two-argument form of delete operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88890 91177308-0d34-0410-b5e6-96231b3b80d8
elete-two-arg.cpp
|
333b2a7463fcdda83b5b9373bdb35f63ae342c4c |
15-Nov-2009 |
Mike Stump <mrs@apple.com> |
Fix linux buildbots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88856 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
f549e898a44fe91aca46fe34e9ba04a2f08318bf |
15-Nov-2009 |
Mike Stump <mrs@apple.com> |
Finish off zero check for typeid(*p) so that it will do a __cxa_bad_typeid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88852 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
c2e84ae9a6d25cea3e583c768e576b4c981ec028 |
15-Nov-2009 |
Mike Stump <mrs@apple.com> |
Implement typeid for class types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88843 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
a8285a88647805b294e946527ecee8e5ececc4ff |
15-Nov-2009 |
Mike Stump <mrs@apple.com> |
Finish off support for typeinfo generation for classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88828 91177308-0d34-0410-b5e6-96231b3b80d8
tti.cpp
|
658e8123a80d0e62f227a0c1532f2a4f106b3e73 |
14-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle CK_BitCast in EmitCastLValue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88810 91177308-0d34-0410-b5e6-96231b3b80d8
einterpret-cast.cpp
|
5b6117a7727565be9fcaf709706c7d720bf191ad |
14-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Canonicalize the type before trying to create a debug type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88808 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
55f9bdd88c93b5c8dab631c0808f7f7a541cea14 |
14-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Avoid assert-crash in a case where the expression passed to EmitConstantExpr legitimately has side-effects (and needs to be generated as a non-constant). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88767 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init-2.cpp
|
2f0055275755807395cbd94e636347ae53fb1f03 |
14-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a couple of tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88756 91177308-0d34-0410-b5e6-96231b3b80d8
irt-dtor-gen.cpp
|
ea9a20834cf9311fdf758cfbd73b8daa8e655f15 |
14-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
PR5483: Generate missing form of destructor when it is virtual. (Someone more familiar with this stuff should double-check that there isn't some more general rule; this is purely from inspecting g++ output.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88755 91177308-0d34-0410-b5e6-96231b3b80d8
irt-dtor-gen.cpp
|
49e2b8e2e5d096851b5135ea5aed222e8aa95bde |
14-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5489: don't skip the complete type requrirement for variable definitions just because the type happens to be an array type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88752 91177308-0d34-0410-b5e6-96231b3b80d8
nit-incomplete-type.cpp
|
370e53864aaed0288afdf532e127efe35d4b49f1 |
14-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88735 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arguments.cpp
|
534ba90a1b865f3731aa56423e8f02d49ff62ec7 |
13-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen. For virtual destructor call on array objects (still part of pr5472). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88712 91177308-0d34-0410-b5e6-96231b3b80d8
rray-operator-delete-call.cpp
|
22efb85eb5c09a1859956aaf408900ff83e08c53 |
13-Nov-2009 |
Mike Stump <mrs@apple.com> |
More VTT and constructor vtable testcases from recent work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88710 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
513225fd7942b01adae2cfbaef978568e23dfbca |
13-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add more testcase for construction vtables and VTTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88702 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
2cdcbdb5e69275b4269786afbe1c439200092fcd |
13-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add some more VTT testcases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88699 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
9326c5695f0e15e3a1e0f6d4372c17c113656850 |
13-Nov-2009 |
Mike Stump <mrs@apple.com> |
Add a testcase for the recent VTT work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88681 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
72c2153b466263a21870b2b1c817900d4981493e |
13-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen for arrady delete operator. Fixes pr5472. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88680 91177308-0d34-0410-b5e6-96231b3b80d8
rray-operator-delete-call.cpp
|
a660440263ceb3a2502f5dbd48b4e166544ed9fe |
13-Nov-2009 |
Mike Stump <mrs@apple.com> |
This falls into the category of stupid pet tricks. I hate to do this, but this is necessary to continue work on virtual vtables. We don't want to penalize virtual table building testcases, just because complex virtual conversions don't yet work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88676 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
4b3cbeaea60a1a2d1adc73738123c24549b7ce2c |
13-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Don't bind arguments to temporaries if the argument has a reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88662 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
03d8ed439f55b692634f9c71721ecfabbe347c4d |
13-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Fix two bugs with temporaries: 1. For A f() { return A(); } we were incorrectly calling the A destructor on the returned object. 2. For void f(A); void g() { A a; f(a); } we were incorrectly not calling the copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87082 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
010c3f531a634d0b6d56f433323f7283f684c1d0 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix test portability. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86911 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
f42d74f41076542fc9b4f4d5fa034dfa93b3c916 |
11-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Make test more platform independent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86890 91177308-0d34-0410-b5e6-96231b3b80d8
ew-operator-phi.cpp
|
e8b31cc500473f0e2558c77c8a46458deff6ce51 |
11-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Value initialize non-class array members in ctor's initializer list. Fixes PR5463. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86849 91177308-0d34-0410-b5e6-96231b3b80d8
rray-value-initialize.cpp
|
47d1e828674a2d9c020db9f9ec45f27025a39e35 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some tests in -Asserts mode. - FileCheck is a *huuuuge* improvement here. - Still feels like we could use a better tool for this though, either teach llvm-dis to spit out the FileCheck syntax, or provide another tool to turn a .ll into a "matchable" input. - Also on my Christmas list is better FileCheck diagnostics with missing variables or mismatches. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86800 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
b03bfa55d03ca38922ffedac19225d0832e8d911 |
11-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Diagnose illegally typed operator new/new[]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86755 91177308-0d34-0410-b5e6-96231b3b80d8
ew-operator-phi.cpp
|
7f1de456fe6b6fb6d3fb8144df6173d2354f595a |
10-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR5454: make sure to use the right block as the predecessor in the generated PHI node for the null check of a new operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86738 91177308-0d34-0410-b5e6-96231b3b80d8
ew-operator-phi.cpp
|
88f4280f6b60edcbdea6a38a3da8b17d66473ad6 |
10-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch implements Code gen. for destruction of global array of objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86701 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-array-destruction.cpp
|
d49c7b61d9d5682565524e845bd8d0dc90294e45 |
09-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add code generation test for r86500. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86574 91177308-0d34-0410-b5e6-96231b3b80d8
efault-constructor-default-argument.cpp
|
bb4a33cdf6342110811ae16f7ca6accababf432f |
09-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add hack to make the given testcase work. As far as I can tell, this change is reasonably safe, but it doesn't seem like the right solution. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86508 91177308-0d34-0410-b5e6-96231b3b80d8
nstantiate-init-list.cpp
|
49c16da71b9c95cc53b4af6de2833a022cb69b6a |
09-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Unify the codepaths used to verify base and member initializers for explicitly and implicitly defined constructors. This has a number of benefits: 1. Less code. 2. Explicit and implicit constructors get the same diagnostics. 3. The AST explicitly contains constructor calls from implicit default constructors. This allows handing some cases that previously weren't handled correctly in IRGen without any additional code. Specifically, implicit default constructors containing calls to constructors with default arguments are now handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86500 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
2475d76920b43014e661690836642ca3c9967179 |
08-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove RUN: true lines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86432 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
rray-construction.cpp
all-arg-zero-temp.cpp
ast-conversion.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onstructor-template.cpp
onversion-function.cpp
onvert-to-fptr.cpp
opy-assign-synthesis-1.cpp
opy-constructor-elim.cpp
opy-constructor-synthesis.cpp
ecl-ref-init.cpp
efault-constructor-for-members.cpp
efault-destructor-synthesis.cpp
erived-to-base-conv.cpp
mplicit-instantiation-1.cpp
tr-to-member-function.cpp
rivial-constructor-init.cpp
ararg-conversion-ctor.cpp
irt.cpp
86_64-arguments.cpp
|
4fcfde4d5c8f25e40720972a5543d538a0dcb220 |
08-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Eliminate &&s in tests. - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86430 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
rray-construction.cpp
ttr.cpp
all-arg-zero-temp.cpp
ast-conversion.cpp
lass-layout.cpp
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onstructor-template.cpp
onversion-function.cpp
onvert-to-fptr.cpp
opy-assign-synthesis-1.cpp
opy-assign-synthesis.cpp
opy-constructor-elim.cpp
opy-constructor-synthesis.cpp
ecl-ref-init.cpp
efault-arg-temps.cpp
efault-constructor-for-members.cpp
efault-destructor-synthesis.cpp
elete.cpp
erived-to-base-conv.cpp
xplicit-instantiation.cpp
xtern-c.cpp
mplicit-instantiation-1.cpp
ember-functions.cpp
ember-pointers-zero-init.cpp
tr-to-member-function.cpp
einterpret-cast.cpp
tatic-init-1.cpp
tatic-init.cpp
rivial-constructor-init.cpp
ararg-conversion-ctor.cpp
irt.cpp
86_64-arguments.cpp
|
589f9e3f7845c2a1bf97ae4357aec5b457a5ea19 |
08-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle member expressions where the member declaration is actually a static variable. Fixes PR5392. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86414 91177308-0d34-0410-b5e6-96231b3b80d8
ember-expressions.cpp
|
a1e1622d1549c470acc999c4399456863e58a011 |
07-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Always mangle functions with special names. Fixes PR5420. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86350 91177308-0d34-0410-b5e6-96231b3b80d8
angle-system-header.cpp
|
433d1374409a8eeaa4b0975fa187a542d5e40c23 |
07-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
When looking up and adding substitutions to the substitution table, make sure to always use the canonical declaration. With tihs change, FileCheck compiles and links but crashes during startup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86339 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
88fad6310d3104e3ac4ab685227beabaa76faf7b |
07-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure isCopyAssignment is only true for actual copy assignment operators, instead of all assignment operators. The mistake messes up IRGen because it ends up assuming that the assignment operator is actually the implicit copy assignment operator, and therefore tries to emit the RHS as an lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86307 91177308-0d34-0410-b5e6-96231b3b80d8
ssign-operator.cpp
|
9e7e3c6c47f2819bce456950617a966d26839eb4 |
07-Nov-2009 |
Mike Stump <mrs@apple.com> |
Refine the non-virtual this adjustment. Optimize out virtual this adjustments of zero. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86300 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
e504170f688b0e2113011839b933a4ec450b5182 |
06-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Prevent a code gen. crash on empty unions - pr5408. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86287 91177308-0d34-0410-b5e6-96231b3b80d8
mpty-union.cpp
|
a031b35ba4da13e105a349493f5351014cfb3354 |
06-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Simplify the debug info code, handle lvalue references and template specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86277 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
30509a30a9a6ac9ee737e5cf39744a92170d7ea4 |
06-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch fixes code gen. part of pr5333 (Conversion using elipsis conversion). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86276 91177308-0d34-0410-b5e6-96231b3b80d8
ararg-conversion-ctor.cpp
|
ba397fe24468fae6cb46f259a3f946770163bfe2 |
06-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle QualifiedNameType and SubstTemplateTypeParmType types in CGDebugInfo::CreateTypeNode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86274 91177308-0d34-0410-b5e6-96231b3b80d8
ebug-info.cpp
|
5e1b91875c275f0ec50d3680afbac150d684fdba |
06-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
If a member variable of reference type is bound to a temporary in its member initializer it needs to be destroyed at the end of the constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86230 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
1faf67478c6d423880726a327c737db13b8d9f0b |
06-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
If a member initializer create temporaries we need to destroy them. Fixes PR5077. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86225 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
a7694087e4abaea261918ffbb3ffe38feb1da489 |
06-Nov-2009 |
Anders Carlsson <andersca@mac.com> |
Handle ParenExprs in mangleExpression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86218 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
33c530e33a2232e8d6089f4a3028e6b8c3e2b746 |
06-Nov-2009 |
Mike Stump <mrs@apple.com> |
Refine the vcall for a function that is defined in a virtual base class that is overridden in a base that isn't morally virtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86217 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
599837ac1ec78e6b8d2c573f9c6d4eac0922c1f0 |
06-Nov-2009 |
Mike Stump <mrs@apple.com> |
Convert file over to checking the .ll file for codegen. Also, we speed up this file by not doing twice the checking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86205 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
393c247fe025ccb5f914e37e948192ea86faef8c |
05-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Added support for static variables which require initialization before main. Fixes pr5396. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86145 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init-1.cpp
|
7c276b84d6881df18c847b036fe3c95d94d9b5b3 |
05-Nov-2009 |
Mike Stump <mrs@apple.com> |
Refine covariant return value adjustments for thunks when null pointers are returned. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86120 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
99faefdac32eda8cf0d6db722588a76caa3add22 |
05-Nov-2009 |
Mike Stump <mrs@apple.com> |
Testcase for a recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86118 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
941e3f3f5e771bab984df140e8fda0a67f6aa2d5 |
05-Nov-2009 |
Mike Stump <mrs@apple.com> |
Update. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86117 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
105aa51c146b66f7dc4ac78faa9a7021acb98d75 |
04-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Add code gen for pointer-to-member function in ctor's initializer. Fixes pr5178. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86040 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-member-function.cpp
|
7799621ad7d16f3c6a1aeda024312d63ecd77777 |
04-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch extends CleanupScope to support destruction of array objects on block exit. Patch is by Anders Calrsson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86032 91177308-0d34-0410-b5e6-96231b3b80d8
rray-construction.cpp
|
87c12c4a4667279dacb3d4a93c64b49148a0ff79 |
04-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Store the unresolved class type in MemberPointerType's Class field, from Peter Collingbourne! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86030 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-datamember.cpp
|
7af5d19b138516244d042b6e2e94943ff4eadbc6 |
04-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
this test has started failing due to an optimizer change. Clang tests should only look at -O0 IR output not -O3 assembly output. XFAIL it for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86029 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
d0fe5366d4040545d5f72c547ae54e2c21e4cb68 |
04-Nov-2009 |
Mike Stump <mrs@apple.com> |
Split out return adjustments in thunks from this adjustment in thunks so the optimizer can tailcall into the return value adjustment thunk. This improves codesize for complex hierarchies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85988 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
62db245427b1cfb64cc0a25c918e17489a4a039c |
03-Nov-2009 |
Mike Stump <mrs@apple.com> |
vtable testcase for recent work on vcall/vbase offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85925 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
9c21289a866b677d21ed3d5ecfdfd5ced5a55410 |
03-Nov-2009 |
Mike Stump <mrs@apple.com> |
Refine codegen for covariant thunks that return references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85916 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
c902d22129322731607988dafb8cd7f708eb75b1 |
03-Nov-2009 |
Mike Stump <mrs@apple.com> |
Refine return value adjustments for thunks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85905 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
3114af3f7911befa8f05a9a76f7d9e380538075b |
31-Oct-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add missing colons for FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85683 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
6a9612f384deecf078e2e9c5c02a0992a2a1283a |
31-Oct-2009 |
Mike Stump <mrs@apple.com> |
Refine vcall/vbase ordering with vtable construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85677 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
ae013b9da64b48f22ca82828aa3c7a909f99dbd7 |
28-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen for array construction - WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85432 91177308-0d34-0410-b5e6-96231b3b80d8
rray-construction.cpp
|
7809e0d165103864ce6063070e093a0b7cd30cd9 |
28-Oct-2009 |
Mike Stump <mrs@apple.com> |
Finish off pure virtual function handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85354 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
52f08bcbb81c750ed62b53ed0b34aff16143b877 |
26-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Add Code gen support for '->*' operator which fell through the crack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85160 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-datamember.cpp
|
7a1f4cc8d5ce5813d8def23d6ec9783cb2f4450b |
23-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixed a code gen bug (by fixing the AST) involving user-defined pointer-to-member type conversion follwed by a pointer-to-member standard conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84955 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-member-function.cpp
|
8bfd31f9dad09cd52225d868bbd92a9bebe87775 |
23-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Complete code gen for '.*' binary expression for both scalar and aggregates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84910 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-datamember.cpp
|
f51dc64f90851f636302dbaaf3f52c0524cdac36 |
22-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen for '.*' binary expressions - WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84800 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-datamember.cpp
|
39762951ad2abfed7b743c01c672fac85034b856 |
21-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Expand on code gen. for pointer to data members so it works for base classe members as well. Test case enhanced for this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84780 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-datamember.cpp
|
a63629930177da7a0eb99c3fdfb35d8618808ca1 |
21-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code gen for pointer-to-datamember - WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84771 91177308-0d34-0410-b5e6-96231b3b80d8
tr-to-datamember.cpp
|
96ad5337a4949523ce9df617dad8ca10d3ab9788 |
21-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Change FixOverloadedFunctionReference to return a (possibly new) expression. Substitute TemplateIdRefExprs with DeclRefExprs. Doug, plz review :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84763 91177308-0d34-0410-b5e6-96231b3b80d8
ddress-of-fntemplate.cpp
|
48620bafe4ba879f96c2d17caefeb79f3fae2eea |
21-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Code-gen for CXXZeroInitValueExpr AST passed as argument to a function call. Removes a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84694 91177308-0d34-0410-b5e6-96231b3b80d8
all-arg-zero-temp.cpp
|
40092972b591646b47037d2b46b695a4014df413 |
21-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Fix the 32-bit ABI to return structures with non-trivial copy ctors or dtors indirectly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84686 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
9a2c8bb599a2460807e341182655a68515574124 |
20-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Force triple for test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84589 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
3759a0361ec00e03584cb6f9ce64fb1f1c947336 |
19-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Copy conversion of an expression to its base class is a standard convesion and not a user-defined conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84525 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-base-conv.cpp
|
86aa0cdfd5aa7b099efbcd612a014d1b5f0ff799 |
19-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Handle emitting the assignment operator when the lhs is a reference. Fixes PR5227. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84518 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
da921fd19fd496494365f9f2325c338e66216709 |
19-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Set the cast kind to CK_NoOp for C-style casts that are really const casts. Fixes PR5248. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84514 91177308-0d34-0410-b5e6-96231b3b80d8
asts.cpp
|
e1b7ea1b025c54b082f838ede2f483e657481fdc |
19-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
When binding a reference to a temporary, it's important that other temporaries created as on the RHS are destroyed before emitting the dtor for the temporary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84451 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
4fa26848acfbec29a748df4b58d6d654027b49c7 |
18-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
When building a cast argument, make sure to bind the result to a temporary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84448 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
fa4f55067bb62a61eb48f77b0216ab1bb1168d27 |
18-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Convert temporaries.cpp to using FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84446 91177308-0d34-0410-b5e6-96231b3b80d8
emporaries.cpp
|
8dafd5fe87588f8abb0d4ba55dd1b232b9a1256f |
18-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Rename temp-1.cpp to temporaries.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84443 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
emporaries.cpp
|
bb378cbf04e343fb15ae3611a153dde60671b514 |
18-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Use CK_BitCast for member function pointer casts. Fixes PR5138. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84438 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
329763b1e9ec8c216025e3a8379ed446d7372cbc |
18-Oct-2009 |
Nuno Lopes <nunoplopes@sapo.pt> |
add support for codegening CXXZeroInitValueExprs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84418 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
|
07ab20203fb4254f6152c9a7176732fe199adccd |
17-Oct-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
When resolving the address of an overloaded function or function template, mark the result as referenced. The most important effect of this is that function templates only referenced by address expressions now get instantiated. This, in turn, means that Hello World compiles with the Apache stdcxx library even when using endl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84363 91177308-0d34-0410-b5e6-96231b3b80d8
ddress-of-fntemplate.cpp
|
759986e85990281ea741820822809ac57fd28c40 |
17-Oct-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Don't add implicit casts of explicit address-taking of overloaded functions. Taking the address of an overloaded function with an explicit address-of operator wrapped the operator in an implicit cast that added yet another pointer level, leaving us with a corrupted AST, which crashed CodeGen in the test case I've added. Fix this by making FixOverloadedFunctionReference return whether there was an address-of operator and not adding the implicit cast in that case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84362 91177308-0d34-0410-b5e6-96231b3b80d8
ddress-of-fntemplate.cpp
|
7804bcba90bf5ea8ec6cd0f6cc9a64577f1a9259 |
17-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5211: codegen shouldn't assume that the result of ||/&& is int anymore. In C++ it is bool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84308 91177308-0d34-0410-b5e6-96231b3b80d8
xpr.cpp
|
93034ca3d025e948ddfcdd78868957efc70741a7 |
16-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Implement derived-to-base AST/code gen. There is a FIXME in CGCXX.cpp that I would like Anders to take a look at. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84265 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-base-conv.cpp
|
410f7640cfa7483132b1524138b1333b9fb9ab33 |
16-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Builtin types are subsitutable if they are qualified. Fixes PR5196. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84237 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
b3f744252a460c45e2e77053491285978286c384 |
15-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Handle struct A { }; struct B : A { }; void f() { const A& a = B(); } correctly. (This now does the offset conversion if necessary and calls the destructor when a goes out of scope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84162 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
54150d9b1d308334d40864c8d8d8d6d1a9da363e |
14-Oct-2009 |
Mike Stump <mrs@apple.com> |
Testcase for recent checkin. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84123 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
3eea6350412eb7db13f0e2791c118920b36130a4 |
13-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Don't assume that the LHS and RHS of a member pointer expression is a DeclRefExpr. Fixes PR5177. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83986 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
d9878a181f09ffc76b61d430aa3a001102fda5af |
13-Oct-2009 |
Mike Stump <mrs@apple.com> |
Refine handling for return value conversions with respect to virtual offsets for covariant thunks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83965 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
5db02476f6bce38bfe055edeeee9cc7deb83f0a5 |
12-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Fix test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83888 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-function-calls.cpp
|
4a0d832ecdc15b0667616d3ec570cade4761ceaf |
12-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Even more devirtualization cleverness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83886 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls.cpp
|
cf5deecd7885b544f1197846897513858863e3af |
12-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
More devirtualization improvements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83883 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls.cpp
|
76366487694e92509f938164f384bbdfad002f2b |
12-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Devirtualize calls on temporaries. A().f() for example. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83882 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls.cpp
|
8e7670de19334eccfe9ac5fc70fa57015b1654c8 |
12-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Factor out devirtualization checking into a separate function and make it handle references correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83880 91177308-0d34-0410-b5e6-96231b3b80d8
evirtualize-virtual-function-calls.cpp
irtual-function-calls.cpp
|
3b89f3fa61b65b73f58808c037826c8333830313 |
12-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
If the base type of a member call is a record type we don't need to emit a virtual call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83816 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-function-calls.cpp
|
76bee4b756badefda61ce867c757cc31b7afa12f |
09-Oct-2009 |
Mike Stump <mrs@apple.com> |
Speed up testing by avoiding stdio.h, also helps testing on windows. Patch by John Thompson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83593 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
74d644abe56809d9bcea7311f37aa9063ab9e064 |
08-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
If a global initializer has a non-trivial constructor or destructor, we never want to defer generation of it, even if it is declared static. With this change we're finally able to compile and run the (infamous) #include <string> #include <iostream> int main(int argc, char **argv) { std::cout << "Hello, World" << std::endl; } $ clang hello.cpp -lstdc++ -o hello $ ./hello Hello, World git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83559 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
a3f36ab6dd9567ae4d1f1703a8413df911b91863 |
08-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Port test over to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83558 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
8f8fd8ea7e5c5d04f95a3cf4af95aa93225bc2b4 |
08-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle std::basic_ostream<char, std::char_traits<char>> as So. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83557 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
c4355b6883382b85cda3b7337587784dabf3450b |
07-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle anonymous structs/unions correctly. Fixes PR5139. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83448 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
edee783ed3edcd7fd988b9fb1dc58361a7e8f8a0 |
07-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Uncomment some commented out code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83428 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-cast.cpp
|
2f1986b557fa671c4f8c9dd0d071398edfc073d5 |
07-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base class offsets. Fix the code to handle virtual bases as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83426 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-base-cast.cpp
|
b217c1b9d2225521f4021984ad5a424784fa22bb |
06-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
When mangling names, always use the canonical decl. Fixes PR5144. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83420 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
65705d1d76bd4edca324a52eaf27ecb6e6a8151c |
06-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Fix test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83398 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-function-calls.cpp
|
c33e4ba20304e222692e77f2c6ad26a5d8d32f83 |
06-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Emit the destructor epilogue in a cleanup block so a return from a destructor body still calls the epilogue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83397 91177308-0d34-0410-b5e6-96231b3b80d8
estructor-calls.cpp
|
b299d3516d4722ef527b1070bb87133427e621a3 |
06-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Pass the right type to GetAddrOfFunction when getting functions for the VTable. Fixes PR5021. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83395 91177308-0d34-0410-b5e6-96231b3b80d8
irtual-function-calls.cpp
|
56fc0d18caf9c829647a5e3ce35197f0d7e0feee |
06-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Refixed pr5086 by letting Expr::isNullPointerConstant handle checking for a null pointer for a zero-valued enumerator; moving the test case from CodeGen to Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83350 91177308-0d34-0410-b5e6-96231b3b80d8
R5086-ambig-resolution-enum.cpp
|
fb51ddfafcd5f8536d0312b3daa3c0b74b90ab5b |
06-Oct-2009 |
Mike Stump <mrs@apple.com> |
Ensure we have atleast 2-byte alignment for member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83337 91177308-0d34-0410-b5e6-96231b3b80d8
ttr.cpp
|
4c83f7cf500a5b91e58312922089d1e00f2bbf41 |
06-Oct-2009 |
Mike Stump <mrs@apple.com> |
Testcase for recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83330 91177308-0d34-0410-b5e6-96231b3b80d8
ttr.cpp
|
375c31c4673f83f925de221752cf801c2fbbb246 |
03-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Implement code generation of member function pointer calls. Fixes PR5121. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83271 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
26bc220377705292a0519a71d3ea3aef68fcfec6 |
03-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Ignore No-op casts when evaluating lvalue expressions. Fixes PR5122. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83267 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
a024d17048cd7fb71bfaee3876993ef2c27057be |
03-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Teach AggExprEmitter about pointers to member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83266 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
2c51f092e4d75550f51b4dd6f831aa5e5e6ae928 |
03-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Handle base-to-derived casts of member function pointers in CGExprConstant.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83265 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
f57b4e44d03266f2ec1b427645555ed8952bc830 |
03-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Handle members to function pointers in CGExprConstant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83264 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
ee383163a656a7e8d99efa4e5ee98c705c7fdf89 |
03-Oct-2009 |
Anders Carlsson <andersca@mac.com> |
Rewrite member function pointer test not to rely on -O2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83262 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
f8c3ad7653697ae91634bda56cb0e3d6eac2ef45 |
02-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
enumerator value of 0 is not a null pointer constant for deciding const of null pointer conversion. Fixes PR5086. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83217 91177308-0d34-0410-b5e6-96231b3b80d8
R5086-ambig-resolution-enum.cpp
|
4513272f444c59705123ccb6207414ce62c9a568 |
01-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
CodeGen may see out-of-line declarations of the various special member functions when they are explicitly declared, e.g., via a function template specialization or explicit template instantiation declaration. Don't try to synthesize bodies for the special member functions in this case; rather, check whether we have an implicit declaration and, if so, synthesize the appropriate function body. Fixes PR5084. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83212 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
249ceade4942a2a5d7888541c547abeda5bb85b4 |
01-Oct-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to implement static casting which requires one user-defined type conversion. Fixes PR5040. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83211 91177308-0d34-0410-b5e6-96231b3b80d8
ast-conversion.cpp
|
d69dd780866d8478516153870e8c3491c6eaa156 |
01-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix a lame regression in IR gen for C++ delete expressions. PR5102 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83195 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
9aeed32282fe8a775c24c01c923717ca86695685 |
01-Oct-2009 |
John McCall <rjmccall@apple.com> |
Anonymous namespaces, sema + codegen. A lot of semantics are still broken, apparently because using directives aren't quite working correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83184 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-namespaces.cpp
|
fcd0029a4ccd1380e0148b846de3bd85d2fa8ab4 |
29-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Remove PR5061 workaround. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83046 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
2472bf0a1735fa9c60a01946d5ed53b64c9c2422 |
29-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle CXXMemberCallExprs that point to a static method. Fixes PR5093. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83045 91177308-0d34-0410-b5e6-96231b3b80d8
R5093-static-member-function.cpp
|
7b69956387785006244e7868f8dab09b371dbb6d |
29-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Forgot test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83044 91177308-0d34-0410-b5e6-96231b3b80d8
ember-function-pointers.cpp
|
740256bafbba6c5b5cb95a5c5bd7db161f3b2833 |
29-Sep-2009 |
Mike Stump <mrs@apple.com> |
Fix http://llvm.org/PR5090. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83035 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
d8307b1033ef52a1ae640691bc45052fddb07a69 |
28-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch for AST representation for the implicit conversion to a function reference/pointer. And a test case for code gen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83000 91177308-0d34-0410-b5e6-96231b3b80d8
onvert-to-fptr.cpp
|
50755b0dcc81eed9dcf27abe9162527013f26bd4 |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle dependent name expressions. Fixes PR5063. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82915 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
e45117b945a0d8c1fdcc4cd8ee4500f5ee8742be |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Use mangleTemplatePrefix when we know that we're mangling a nested template name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82912 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
88599176d106453935a8fa984f690362cc48b470 |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Look for substitutions when mangling TypenameTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82885 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
0ccdf8d62cba2ad730001f133b6cc4836c42da83 |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Better template parameter type mangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82883 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
f514b544b24926834adbfe8265a72ed8b9b09d81 |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle std::basic_string<char, std::char_traits<char>, std::allocator<char> > as Ss. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82882 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
189d59cfc762d0f683b9253ddec2cf519ec85b65 |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle ::std::basic_string as Sb. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82881 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
8c0315563f05a9face7209221325019e272075fb |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle ::std::allocator as Sa. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82880 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
aeb85374e92619b8e4ce92ac6e30756b5053a137 |
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle substitutions in mangleTemplatePrefix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82879 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
e7c8cb6b2728aa98258288d221b09bc66cc05543 |
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Substitute "::std::" as "St". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82874 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst-std.cpp
|
1668f2062b237ddb137f5d16388b3dea49651f85 |
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Don't crash when trying to mangle function templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82872 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
d99edc44300b36732a14c294c93899ba28d479ea |
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle record types as decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82843 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
onstructor-default-arg.cpp
opy-assign-synthesis-1.cpp
opy-constructor-synthesis.cpp
angle-subst.cpp
ember-functions.cpp
|
ae3524866124021f3bc695886668254093c0793f |
26-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Improve mangling of typename types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82833 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
b3c477415f49668be7a770c8f44c217b42e3ccd3 |
25-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Refixed pr5050 per Anders comment. Test case enhanced per Doug's comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82791 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
|
7498e50aea92276fdd8aceb7076b4156ee6dbab4 |
25-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fix the AST tree so ir-gen can do the conversion via copy construction. Fixed pr5050. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82783 91177308-0d34-0410-b5e6-96231b3b80d8
R5050-constructor-conversion.cpp
|
8f489d692fedeafbb572103d6edca71d7762e83d |
24-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
patch to ir-gen conversion function call used in initializing a reference class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82664 91177308-0d34-0410-b5e6-96231b3b80d8
ecl-ref-init.cpp
|
018837b081bd1a725bae1c020eb1649975b04d67 |
23-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle namespace aliases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82644 91177308-0d34-0410-b5e6-96231b3b80d8
amespace-aliases.cpp
|
6ac5fc49ee70b4e3ce3e242c02c66586f652d7ac |
23-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Emit new[] cookie when needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82642 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
a4d4c019bf477ce6ff7b01517e690f6c5fd6ad71 |
23-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Basic support for new[]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82628 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
add28829c7a8d3c5da9ae140f18d3c9ad2d8b599 |
22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
CXXMethodDecls should always be mangled, even if they are inside an extern "C" block. Fixes PR5017. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82567 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
5cc58c6cfe4a6378287dbf92f9b1a23e133a6118 |
22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Don't assert that linkage decls are always C++, it's not true. Fixes PR5019. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82557 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
d553f8c57fc77a46f6a1a1c90d7fd8f2d0e96073 |
21-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Start mangling expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82423 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
7482e247163978792654ca1a99913e19dd507e0a |
18-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
More mangling goodness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82193 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
b251e9346e4ff0f995aa33c26f691406a70f0ed1 |
18-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Fix error in test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82190 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
7624f219388f2434a4988ba2508a6ca7b57ba1c3 |
18-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle mangling of TemplateSpecializationType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82189 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
d58d6f778de936516d8815783f2e88348c41dce4 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Ignore extern "C++" { } when mangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82146 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
068f347772fee0cdf66614230d7dba69cd3fa2e6 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Revert r82123 for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82125 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
657094b1ad9c0806d64e96e3faf15e7fcb0e8d65 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Treat an unqualified RecordType as a RecordDecl when substituting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82123 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
6862fc720b8e35ee4408822b2390020f263646b2 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Substitution for prefixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82122 91177308-0d34-0410-b5e6-96231b3b80d8
angle-extreme.cpp
angle-subst.cpp
|
7ed5ea9146cc0c61ab8ce94feff1153c2e8cd6db |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Convert mangle-subst.cpp over to using FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82121 91177308-0d34-0410-b5e6-96231b3b80d8
angle-subst.cpp
|
03c9d530dbdcbb00b0b1ac0abced5dcce2e21408 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Substitute unscoped template names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82119 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
angle.cpp
|
511ec0579593296d28f63a940847c38867329073 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Get rid of the last grep. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82115 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
|
9234b7ff2bb99479fb97d5faa181a55aacf28b78 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
When mangling function template specialization, mangle the type encoding of the original function template. Also, port mangle.cpp and function-template-specialization.cpp over to using FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82114 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
angle.cpp
|
7696737d41321cf20aef1aab1454872f2ff7a1c8 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Add basic substitution to the C++ mangler. It currently only looks at types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82102 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
angle-extreme.cpp
angle-subst.cpp
|
cf85b933fef4ce827df83ef2d22c322ab2078aa5 |
17-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Add a simple const mangling test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82096 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
0a8f847e97f40cce51dc69051b964732333dc028 |
16-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
x86-64 ABI: If a type is a C++ record with either a non-trivial destructor or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82050 91177308-0d34-0410-b5e6-96231b3b80d8
86_64-arguments.cpp
|
71710113531a828679ce9b7deaca8d8df08c88da |
15-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Add back the workaround since it lead to constructor conversion bugs :( git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81917 91177308-0d34-0410-b5e6-96231b3b80d8
R4983-constructor-conversion.cpp
|
8c12506ea0e9d2500f59c9865ff05ebdbae77f49 |
15-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Add test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81868 91177308-0d34-0410-b5e6-96231b3b80d8
onditional-expr-lvalue.cpp
|
aac6e3a6bbca5952263648e70cbd56d9f89cf4a2 |
15-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
If a conversion operator exists in a base class, make sure to cast the object to that base class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81852 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
7f9e646b7ed47bc8e9a60031ad0c2b55031e2077 |
15-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle reinterpret_cast between integral types and pointer types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81837 91177308-0d34-0410-b5e6-96231b3b80d8
einterpret-cast.cpp
|
c1eb14a66fdd955aff3f957a5843295f27952bdd |
15-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Codegen support for nullptr from C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81835 91177308-0d34-0410-b5e6-96231b3b80d8
ullptr.cpp
|
b191e2dda9f4dc033cb21f9625a78fe80d4ac105 |
14-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Used visible conversion function api to do overload resolution of type conversion functions in base and current class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81784 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
283e4d59b8fe63e93f20b6ffb3a623a4f60a85ea |
14-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
If a function call returns a reference, don't bind it to a temporary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81743 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
|
0a23d76999f838257f70bd43dc7f1e2242147609 |
13-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Don't use the PredefinedExpr string as the global variable name, these don't make very nice symbols, just use the function name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81653 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
0ee33cf81eb7e7e53a897efb772edf4d53af5bf1 |
12-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle CK_DerivedToBase when emitting lvalue casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81614 91177308-0d34-0410-b5e6-96231b3b80d8
erived-to-base.cpp
|
c7cba15f5fd86b96c03c57a1d307dde468f7399b |
12-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a crash when generating vtables that contain destructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81587 91177308-0d34-0410-b5e6-96231b3b80d8
table-cast-crash.cpp
|
9f185076dc8b79c8240b20a8746da96beb3f147b |
11-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Tweak the semantics of FunctionDecl::isOutOfLine to consider an instantiation of a member function template or member function of a class template to be out-of-line if the definition of that function template or member function was defined out-of-line. This ensures that we get the correct linkage for explicit instantiations of out-of-line definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81562 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
|
d5d6778fb91d018cbd57456cae71289640ea8e66 |
11-Sep-2009 |
Sam Weinig <sam.weinig@gmail.com> |
Add test for dependent PredefinedExprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81550 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr-sizeof.cpp
|
1860a31edf826bc4001e153f1a8c10e17d97af87 |
11-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Pass the GlobalDecl to getMangledName, fixes PR4890. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81486 91177308-0d34-0410-b5e6-96231b3b80d8
R4890-debug-info-dtor.cpp
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-conversion.cpp
onstructor-default-arg.cpp
onstructor-for-array-members.cpp
onstructor-init.cpp
onstructor-template.cpp
onversion-function.cpp
opy-assign-synthesis-1.cpp
opy-constructor-elim.cpp
opy-constructor-synthesis.cpp
efault-constructor-for-members.cpp
efault-destructor-synthesis.cpp
ested-base-member-access.cpp
irt.cpp
|
3a082d81006e7a2e01a6e431a22e21c78490ff8f |
08-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Vastly improve PredefinedExpr output, both in Sema and CodeGen. Patch by Sam Weinig! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81237 91177308-0d34-0410-b5e6-96231b3b80d8
redefined-expr.cpp
|
dec025b15c63e0353768e402ad1fd566d97d2be7 |
07-Sep-2009 |
Mike Stump <mrs@apple.com> |
Refine vcall offsets. Cleanups. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81143 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
d0e3daf2b980b505e535d35b432c938c6d0208ef |
05-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve the AST representation and semantic analysis for extern templates. We now distinguish between an explicit instantiation declaration and an explicit instantiation definition, and know not to instantiate explicit instantiation declarations. Unfortunately, there is some remaining confusion w.r.t. instantiation of out-of-line member function definitions that causes trouble here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81053 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
|
34374e6ce5710a91c478f69379220ff20c3e7f15 |
04-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to instantiate destructors used to destruct base and data members when they are needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80967 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
|
9d436205be3e4c05854530134be61b46b13136ff |
03-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Mark constructors used in initialization of base(s) and fields as referecned with location where they are used. Still need to look at destructor aspects of them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80950 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
|
cf1b9c790ad9c944131e7150ef13e2d421f79e88 |
03-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Referenced instatiated default constructors must be defined. Fixed pr4853. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80846 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
|
c186b8fe4a308b53569fe839a3224de70d92ab0e |
02-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Fix an assertion when initializing a union using a member initializer. (We weren't casting from the union type to the initializer type correctly). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80837 91177308-0d34-0410-b5e6-96231b3b80d8
nonymous-union-member-initializer.cpp
|
a0d4b63d15138ca00e12df3c0573954b07ea40a8 |
02-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a crash when referencing static data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80835 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-data-member.cpp
|
f4b5f5c6a1487317aab9aa30d97bccfd57c82c98 |
02-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a codegen crash when a class template has a constructor that does member initialization of an anonymous union. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80826 91177308-0d34-0410-b5e6-96231b3b80d8
emplate-anonymous-union-member-initializer.cpp
|
636a0ffbd2bda998236ddc9bb14b9222f7b49359 |
02-Sep-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Allow null initialization of scalara data members in constructors's initializer list. pr4854 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80802 91177308-0d34-0410-b5e6-96231b3b80d8
rivial-constructor-init.cpp
|
74be00b83130859e589a72b8ab370317f4a9f095 |
02-Sep-2009 |
Mike Stump <mrs@apple.com> |
Testcase for recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80725 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
faf86648bfab7e0fa975e2b32c10fe1d8b461e8c |
01-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Handle member expressions that return references correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80723 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
72f6d678c8de9f3a770e8ae5fc4979abf3940668 |
01-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
In CXXBaseOrMemberInitializer, don't confuse CtorTocall with AnonUnionMember. Fixes PR4826. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80721 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-template.cpp
|
cb3c308ef0e63b2902911b985517309c26f975dc |
01-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Use the correct cast kinds for bit casts and function to pointer decay. Fixes PR4827. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80720 91177308-0d34-0410-b5e6-96231b3b80d8
R4827-cast.cpp
|
174754cda4596f3bb2539df61ab2ab7a17aad6bf |
01-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
We can generate constructors/destructors with base classes and non-trivial fields just fine now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80701 91177308-0d34-0410-b5e6-96231b3b80d8
estructors.cpp
|
c4c65f2b696cf7a29e31f98fad6b00493f724217 |
01-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Move C++ test over to CodeGenCXX, since it requires CodeGen to reproduce git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80672 91177308-0d34-0410-b5e6-96231b3b80d8
verload-binop-implicitconvert.cpp
|
e3a97db45ac46adf963115d0266cfd3e6bc2dce8 |
29-Aug-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make IRGen for initializing a member reference work correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80439 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init-reference.cpp
|
383d29853331e4f6c0c720a1df9cab31f6ab3dba |
29-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to ir-gen user-defined conversions used in expressions [12.3.2-p3] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80436 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
31976591dee494994f2546c72c23e1e35a9c1555 |
29-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch for code gen. for c-style cast which ends in using class's conversion functions [12.3.2-p2] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80433 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
15a24e0e0737c3aa6f85fd18af64c3b6195454c3 |
29-Aug-2009 |
Mike Stump <mrs@apple.com> |
iGenerate vcalls as we build up the methods. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80405 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
7fe5d72fbc8605b60d42d32394248ea76cf763a0 |
29-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
path to ir-gen 12.3.1 Conversion by constructor git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80398 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-conversion.cpp
|
d8417784e415cefba220c8fae5f6de4322a539de |
28-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Test case for conversion type method call ir-gen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80375 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
bf3fe20f60eb3910a3717c638718ccdbe2e874c1 |
27-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for an almost recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80189 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
63bb7c2b281c62a30233b1638ecd8fb4048a38c4 |
27-Aug-2009 |
Mike Stump <mrs@apple.com> |
Fixup codegen for static dispatch to a virtual function that was almost correct. :-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80181 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
f0070dbae9535836ad41711081465dec2259786b |
26-Aug-2009 |
Mike Stump <mrs@apple.com> |
Implement virtual dispatch. :-) This is self-consistent with clang, but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80137 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
eb1a1b6df0ba8d6d42e16f056cf54a2c87780ffe |
26-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Revert r80064 since it broke the build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80066 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
78e7d3af10c861678127dc9befe5dcdef5d1baea |
26-Aug-2009 |
Mike Stump <mrs@apple.com> |
Implement virtual dispatch. :-) This is self-consistent with clang, but not yet necessarily perfectly consistent with gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80064 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
293361afd4199c92aabff9267fddea890943c586 |
25-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Emit conversion functions correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79985 91177308-0d34-0410-b5e6-96231b3b80d8
onversion-function.cpp
|
e9776247577715ad3a19461769a3488a445a8cbd |
24-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Handle CK_NullToMemberPointer in ScalarExprEmitter::EmitCast git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79929 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointers-zero-init.cpp
|
55a759b8bb52e9d74c92e17543780751c5e5c5ec |
23-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix a few tests to be -Asserts agnostic. - Ugh. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79860 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointers-zero-init.cpp
|
d1a9bac24466831e089c8f330ec9264fb3ace367 |
23-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Handle CK_NullToMemberPointer casts in the constant expr emitter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79790 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointers-zero-init.cpp
|
c28bbc2d2271aab6c5d79ef2758604221cd92a4b |
22-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to ir-gen copy assigning array members when synthesizing a copy assignment operator function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79681 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis-1.cpp
|
eb0b6d556ff2b4a5053e89fd084eb34e44cea14c |
21-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to provide ir-gen support in copying array members when synthesizing a copy constructor. Arrays's base element may have a trivial or non-trivial copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79653 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
666a91edc949f5b52eeef481601e2a60de4fdebe |
21-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for a recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79646 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
64a54ad29929443006d4c8502173c163bedaa223 |
21-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Array member construction in prologue of user-declared constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79640 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
1633427f4e2eeb26e16652c407666df39b846993 |
21-Aug-2009 |
Mike Stump <mrs@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79632 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
b9871a253d351e8776cfa5483d6330d5dffe4562 |
21-Aug-2009 |
Mike Stump <mrs@apple.com> |
We now support overriding base functions in vtables. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79587 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
6b48720ae0ae977ca052472562fadb498a6dcb6f |
21-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Added member arrays to more tests now that ir-gen supports it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79575 91177308-0d34-0410-b5e6-96231b3b80d8
efault-destructor-synthesis.cpp
|
1c536bf6bbb0cdc039cff754825b36f9abfe0629 |
21-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to ir-gen destruction of array member elements in revers order of their construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79571 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-for-array-members.cpp
|
b983744cccb7e2e5c2bc96de3dcc090ed17fa392 |
20-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine vbase offsets for the inductive case. Things are now starting to come together nicely. Still a WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79521 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
7fa0d93a3bbe290244f4f157078d9a0d6e87b44f |
20-Aug-2009 |
Mike Stump <mrs@apple.com> |
Ensure we don't output repeated vbase offsets. I have a testcase for this, but need to fixup the actual offset value before I can check it in. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79506 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
995d2818a11395b15995694a30f842a0e4fdee4f |
20-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Test case for my last patch plus a minor clean up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79500 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-for-array-members.cpp
|
9c88d985f5e1ddef9b17feba79b90249510a9cb0 |
19-Aug-2009 |
Mike Stump <mrs@apple.com> |
Update for recent improvements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79421 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
09765ece710f29dcdbd66eec361d60e53bd5a4fd |
19-Aug-2009 |
Mike Stump <mrs@apple.com> |
Restore vbase offsets for classes without a primary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79402 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
b46c92dfedf02239e7c73b9a18dcf09071731793 |
19-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine vcalls a little. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79400 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
0880bacf8fdb7de9d9c5b53b81ea0e53afccafb5 |
17-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to 1) synthesizing non-trivial default destructor when one is not provided by user. 2) More complete emission of ctor prologue when it has no initializer list or when it is synthesized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79269 91177308-0d34-0410-b5e6-96231b3b80d8
efault-destructor-synthesis.cpp
|
60e282cc1e508be327b0481cecedc206873cb86a |
16-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Improve handling of delete expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79205 91177308-0d34-0410-b5e6-96231b3b80d8
elete.cpp
|
fe3010d09cec5cd06e31a3d57fe188a04d9bfa17 |
16-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine vbase offset calculations. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79198 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
2d46eb21eb2c904831b0e9f75ab3523384c70e66 |
16-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Call MaybeBindToTemporary for overloaded binary and unary operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79173 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
|
a303f9eab9ceb356a24d84e178d079f0d41ad8d4 |
16-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Call MaybeBindToTemporary when constructing functino call operator calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79172 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
|
6f68027af2b6ce294a2706f23a1d3cb7ca1b8d37 |
16-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Add MaybeBindToTemporary calls for member call expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79171 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
|
ec74c5929c78bd1670619022f6cfd471becf65aa |
16-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Make sure to call MaybeBindToTemporary when creating CallExprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79168 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
|
4ec04c4e27b045f65541de7dffccbc04304a9b85 |
16-Aug-2009 |
Mike Stump <mrs@apple.com> |
Use the -NEXT feature of FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79166 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
276b9f1d814f4f6551cc3000590759a34185d6da |
16-Aug-2009 |
Mike Stump <mrs@apple.com> |
Cleanups and fixups for calculating the virtual base offsets. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79156 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
7a039eb88d03b35311cb2c99f84eb76634f37a71 |
16-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Add a simple test for temporaries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79147 91177308-0d34-0410-b5e6-96231b3b80d8
emp-1.cpp
|
1d9b5efffaec2349f33510dee2cf2e90c3d2d6aa |
15-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Improved on ir-gen for synthesis of non-trivial default constructor body whose class has non-static data-members which required non-trivial construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79125 91177308-0d34-0410-b5e6-96231b3b80d8
efault-constructor-for-members.cpp
|
343a3cf57ee950b024bade8b6b0a2b51663f43cd |
14-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for generation of trvial copy constructor call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79034 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-elim.cpp
|
929742338206eec29caa7c20e3c484cc79f18240 |
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for a recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78974 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
bff10c52ca5041b331132233983157859c0aecdc |
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78973 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
12de461664121da777cbec7d2e01c1b0bb730484 |
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for a recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78972 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
183d7181fd59842ac969cbc6fe0376f85dc63ae4 |
14-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixed a bug in ir-gen for copy assignment synthesis. Fixed a bug when evaluating those copy-assignments which need by lazily syntheized. A test case for these. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78965 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis-1.cpp
|
788467852cfbd940c796537849db5beef20253e8 |
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Add testcase for recent work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78959 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
4ef980984fd0e131fca3f9e6ba15e8a79cabf88c |
14-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine vtable layout for virtual bases and keep better track of primaries. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78950 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
eea0a5c6e347842fcfdd371f27c0e3b8fc644ee7 |
13-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Adds testing of copy assignment of anonymous union data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78943 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis.cpp
|
6dee5d81a6d43b1ff03fe47ab180a45bee44b371 |
13-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
More complete test for my previous patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78941 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis.cpp
|
ad25883a644dd6b52c7923dd128a7d05fb26213c |
13-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to force synthesis of copy assignment operator function in the order according to c++03. ir-gen for copy assignment in the trivial case and the first test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78938 91177308-0d34-0410-b5e6-96231b3b80d8
opy-assign-synthesis.cpp
|
94d0bceeb3afd82293326261c793b45023fd3cab |
13-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine virtual base layout. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78873 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
d76264e0b20470267249660ab947197cf6d6e31f |
12-Aug-2009 |
Mike Stump <mrs@apple.com> |
Refine primary vbase selection ordering. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78844 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
34fae9cf27b19664f1f4526e195aff2299de2c40 |
12-Aug-2009 |
Mike Stump <mrs@apple.com> |
Improve the secondary vtables to not include vbase offsets. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78831 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
664f8934e06cf10de98083b4526aef7bce191a3f |
12-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use the inbounds variant of getelementptr for common pointer arithmetic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78756 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
tatic-init.cpp
|
e64941280877d065a27e8cefd2a9038256d0e3ac |
11-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen support for anonymous union data member copying in copy constructors and used in default constructor's initializer list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78700 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
49520944c688a9d5fc78d0c2af544b825873477b |
11-Aug-2009 |
Mike Stump <mrs@apple.com> |
Implement more of the inductive case for vtable layout involving virtual base primaries and improve the layout of classes with virtual bases. WIP. Hey, I've decided I want a change to FileCheck, I need to ensure that the group is together, nothing in between. Can we change it to check the match line is from the line immediately following the last matched line, if the source for the matched line is immediately after the source for the previously matched line? // CHECK: 1 // CHECK: 2 // CHECK: 3 // CHECK: 4 // CHECK: 5 // CHECK: 6 would require 1 2 and 3 to be continuous in the output, and 4 5 and 6 to be continuous. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78638 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
f05fe65e64a5de93ba6d30e1b830fd0fc36358e9 |
10-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for generating copying of scalar data members in a synthesized copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78580 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
370c884d172329384973e452647fba0b2f5146d5 |
10-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixed a ir-gen bug in synthesizing copy constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78570 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
237957c45774713f81fbd5394b3db4317fef0938 |
09-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Improve handling of member pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78536 91177308-0d34-0410-b5e6-96231b3b80d8
ember-pointers-zero-init.cpp
|
942f4f33d02dba823594bd2d7b3d317cb01c74f8 |
09-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for initialization, in synthesize copy constructor, of base/field which have trivial copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78516 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-synthesis.cpp
|
89ed31d3f9eeb8ec77c284a5cf404a74bf5e7acf |
09-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for global initializers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78515 91177308-0d34-0410-b5e6-96231b3b80d8
lobal-init.cpp
|
3b2e16b3d25f6b311dba2871e2a566c96238c3d2 |
08-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Refactor some code and implement support for global destructors for static variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78507 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-init.cpp
|
824957643238ea1712b966deee9c65043ac6ffea |
08-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Use CastExpr::CK_ArrayToPointerDecay and fix an assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78502 91177308-0d34-0410-b5e6-96231b3b80d8
rray-pointer-decay.cpp
|
57cf2f3abad1c3541cd388d9b7882d65cf6daa7c |
07-Aug-2009 |
Mike Stump <mrs@apple.com> |
Add vbase offsets to the vtable. Wow, having an rbegin was so fortuitous. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78413 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
928f1506eb38bb26a1284b876213a8f5244f6933 |
07-Aug-2009 |
Mike Stump <mrs@apple.com> |
Add ability to generate vcall offsets for primary virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78396 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
02cf1e264719b4dada4377cc8a43888cb66f8815 |
07-Aug-2009 |
Mike Stump <mrs@apple.com> |
Add support for vcall generation for vtables for virtual bases. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78357 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
dac64a51e37a68ca095634aac47a5f14746555e6 |
07-Aug-2009 |
Mike Stump <mrs@apple.com> |
Almost forgot to turn on 32-bit test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78346 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
636548d0a3a83f51b8553132f8e1abafe66bb04b |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78344 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
e1be2b16a3a24acda0b63c3dcb4ae3384fcdaf75 |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Also generate the rtti field for virtual bases for vtables. Turn on rtti so we can properly test it. Refactor code a little. Still a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78343 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
70101ce87ff1d73ac90e4d99a3af0ae509e5934f |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Layout the primary base first in the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78327 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
8a12b564923a72224730a467007e61b5701e4aa7 |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
More layout for virtual tables for virtual bases. Still in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78314 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
37148f4efb150c1ee862ce36a7468e83dbb0085d |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Let's remember we want better codegen for these. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78310 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
c5708d992fceb57e58673f628af4125662da60fd |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Testcase for a recent checkin for vbase layout ordering. I hate to optimize and check for non-optimal code, but until the frontend is as powerful as fold... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78309 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
eb19fa948173502f47c26357c2ec41aa4be197b4 |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Layout virtual bases. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78308 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
6904cbb1f21002317387e8fc7b14b7f8c09d198f |
06-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to optimize away copy constructor call when appropriate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78267 91177308-0d34-0410-b5e6-96231b3b80d8
opy-constructor-elim.cpp
|
2effeca6b4461c56c9b2d38778cd718be006f90e |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Fixup object layout when we have a primary base (it goes first). Start preping for virtual base layout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78265 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
26899b0cac15372ef76486e26769351c2cbb98d0 |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Add another test for a recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78253 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
6f376336138ea719e3c4757ae046a5768043b276 |
06-Aug-2009 |
Mike Stump <mrs@apple.com> |
Calculate the primary base class better and use that when laying down the vtable. Still a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78252 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
aed2b3e5f3a1f849ee864c2a12e8d6a1bf8150c5 |
05-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
A blank line to separate the two blocks(per Mike comment). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78248 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-default-arg.cpp
|
b5bc3d6a052fcfe027e5de82bc8ef628efdf2d56 |
05-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Modified test case to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78231 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-default-arg.cpp
|
caa499b50bd6d423d095b79aca857f1c57345a0a |
05-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Handle destruction of temporaries used in default argument construction of constructor calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78222 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
|
b2c352ed5586cf869a5dad87a528b9ac000d2fae |
05-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to improve ir-gen for constructors with default argument expressions and a test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78213 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-default-arg.cpp
|
104ffaaa05d31d0a3dc886b7b18ebb2496bc2af4 |
04-Aug-2009 |
Mike Stump <mrs@apple.com> |
vtable building for simple inheritance. Still in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78110 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
06758d0ea712795fe0ff5c2dee4b9a162569dfef |
04-Aug-2009 |
Mike Stump <mrs@apple.com> |
Test cases for some recent work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78100 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
6ca0b32227c21ba4bc66e8f1bdbf767b563567a8 |
03-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for destructor calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77991 91177308-0d34-0410-b5e6-96231b3b80d8
estructor-calls.cpp
|
3dee6efcad9ad56d14f7edd1c29924f0b876a7f9 |
30-Jul-2009 |
Mike Stump <mrs@apple.com> |
Add ability to layout the vtable pointer in trivial cases. I noticed that we would silently do bad things with virtual bases in the layout code, so, we just turn them off. When people do better things with them, we can turn them back on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77556 91177308-0d34-0410-b5e6-96231b3b80d8
irt.cpp
|
c238a79a97ad35227a28acf16028ab63127c2fb7 |
30-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for nested non-virtual base member access in current class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77554 91177308-0d34-0410-b5e6-96231b3b80d8
ested-base-member-access.cpp
|
98a541e80848d3b7d1131237ac04e698faffd151 |
29-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to provide cast of objects in member access excpression, if needed, and remove some ir-gen code now unnencessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77490 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
1c698e0d4f9bf3d141c019d33d9040085a8a67dd |
28-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
More cleanup of data member access and then some. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77351 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
9e809e7da2448c08aa11f15be4680226754678ce |
28-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
More work toward data member access ir-gen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77332 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
bc0a2226c7fcd18b29b6846049e2cfcb872d3593 |
27-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77249 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
|
696798febaf1f69020cdf7474b91e71736c5aa69 |
27-Jul-2009 |
Anders Carlsson <andersca@mac.com> |
Use the CGRecordLayoutBuilder even if there are no fields, because in C++ an empty class will have a padding byte. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77205 91177308-0d34-0410-b5e6-96231b3b80d8
lass-layout.cpp
|
742cd1b7bb86b52b23b335d47abbd842dac0e1bf |
25-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
ir-gen for non-virtual base class initialization in constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77087 91177308-0d34-0410-b5e6-96231b3b80d8
onstructor-init.cpp
|
1fd2dd145d9bcdf0b8d60a88e1795b6ae83656f5 |
30-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve code generation for function template specializations: - Track implicit instantiations vs. the not-yet-supported explicit specializations - Give implicit instantiations of function templates (and member functions of class templates) linkonce_odr linkage. - Improve name mangling for function template specializations, including the template arguments of the instantiation and the return type of the function. Note that our name-mangling is improved, but not correct: we still don't mangle substitutions, although the manglings we produce can be demangled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74466 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
|
127102b5196ffe04bdb70fd553fe62c265ab10a9 |
29-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Keep track of function template specializations, to eliminate redundant, implicit instantiations of function templates and provide a place where we can hang function template specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74454 91177308-0d34-0410-b5e6-96231b3b80d8
unction-template-specialization.cpp
|
d7f37bf8b9a211455c5037df7b7e88e5a9510119 |
23-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement implicit instantiation of the member functions of a class template specialization. At present, all implicit instantiations occur at the end of the translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73915 91177308-0d34-0410-b5e6-96231b3b80d8
mplicit-instantiation-1.cpp
|
f54741e6465692d3bdbae974ac3beeeab92e4a95 |
16-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Handle temporaries in default arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73462 91177308-0d34-0410-b5e6-96231b3b80d8
efault-arg-temps.cpp
|
36674d2978eb53962218ac67bb4d352cc287ea05 |
11-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Don't assert when generating code with static_asserts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73208 91177308-0d34-0410-b5e6-96231b3b80d8
tatic-assert.cpp
|
215bd208d6eeff397bc4316d046ea8b4633efedf |
01-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a thinko. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72679 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
f11085398dc27c0010663c711d4a10113e41d70f |
01-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Check for null correctly for new expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72678 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
d3fd6bad1249d3f34d71b73e2333fab0db51cce4 |
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Improve irgen of 'new' further. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72677 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
627a3e573f1d9f0429d62c7ceb742a21cdabfce0 |
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
...and aggregate POD types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72676 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
3923e95280210ef877153f0c3dbab12d6ed2ad43 |
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Support for complex types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72675 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
6d0ffad181215fc4ec0fca37c55eae82df6e0531 |
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Better support for scalar POD types in 'new' expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72674 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
d958389d52170be1c6dee93031d34b13809b786b |
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Make sure to copy back arguments that can be changed by FindAllocationOverload. This fixes placement new. (Sebastian, please review). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72673 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
ed4e367f8e27d2c700efdaff9412f2bf83ddba00 |
31-May-2009 |
Anders Carlsson <andersca@mac.com> |
Very basic irgen support for new expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72672 91177308-0d34-0410-b5e6-96231b3b80d8
ew.cpp
|
2be586108bb401019647791feca19ea03fd477ce |
30-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Some small fixes for fields of reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72636 91177308-0d34-0410-b5e6-96231b3b80d8
eference-field.cpp
|
1f65cd9291d580d4f57df5f850d19805e37c5b62 |
28-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Add a target triple, because this test depends on details of the x86-64 ABI git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72503 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
e70e8f7fef3efb3d526ee25b3a0e2a4bf67a04b6 |
27-May-2009 |
Anders Carlsson <andersca@mac.com> |
IRgen support for calls to functions that return references to aggregate exressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72479 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
50c39ea4858265f3f5f42a0c624557ce2281936b |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix up constant expression handling to deal with the address of a reference correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72463 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
4a18784dea763be146df68546e6dbf4233c33077 |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add IRGen support for local variables of reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72462 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
d54b6ac2f4f6f0bd0076cbfa885b57277066f06c |
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add IRGen support for return statements in functions with reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72459 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
0f294632f36459174199b77699e339715244b5ab |
27-May-2009 |
Anders Carlsson <andersca@mac.com> |
Handle operator call expressions where the callee is a member function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72458 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
e9f2f45fe9bf79bd4aea47fa1ad9204b68510fd9 |
27-May-2009 |
Anders Carlsson <andersca@mac.com> |
Functions that return references can be rvalues as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72457 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
68ea78a093271301dc6396fc683644d8e13a90dd |
27-May-2009 |
Anders Carlsson <andersca@mac.com> |
Add another test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72450 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
482656833a71b63f67f3e93ee8c2d45b3d351ca8 |
27-May-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for emitting calls to functions that return references (as lvalues only for now) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72449 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
aba43bb13b3aa3e81990989375fba3a902bfe1c2 |
26-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Make sure that CodeGen sees template instantiations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72433 91177308-0d34-0410-b5e6-96231b3b80d8
xplicit-instantiation.cpp
|
5df0d426026b3820b5f0b13a8d4e60e9373d8d9d |
20-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Handle the remaining unhandled cases in EmitReferenceBindingToExpr. It would be nice if someone could write an ObjC++ testcase for the case of passing a property returning a struct to a function taking a const reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72159 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
7cd3a648b3d3057805c022b9470bbdfe21d732a5 |
20-May-2009 |
Anders Carlsson <andersca@mac.com> |
irgen for references to complex rvales (Very important...) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72157 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
9f75e6be16b9df33d58ec73955b3e3e3c71b2682 |
20-May-2009 |
Anders Carlsson <andersca@mac.com> |
Bad anders. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72156 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
38d068e8f13a119b89a3b8b0f79f35cab1ffd09a |
20-May-2009 |
Anders Carlsson <andersca@mac.com> |
Create a temporary if the lvalue is a bitfield. Reported by Eli. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72155 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
e04d1c77ae15a6e973e2fac7723f6c364884f58d |
20-May-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for binding references to scalar rvalues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72153 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
4bbab92167713bf4f79c0b14dcc4e83d08ac4019 |
20-May-2009 |
Anders Carlsson <andersca@mac.com> |
Bind references to lvalues correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72150 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
c8667a866bfc1d9f807282f2de5644d6aa4e9423 |
19-May-2009 |
Anders Carlsson <andersca@mac.com> |
Improve support for irgen of references. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72133 91177308-0d34-0410-b5e6-96231b3b80d8
eferences.cpp
|
0e650017acdbbeb0c590e77bbea88c200ea1caef |
17-May-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for converting member pointer types to LLVM types. Also mangle pointer to member functions correctly and add tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71981 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
2928c2107f2e0007f35fe1c224aab63535f1403d |
16-May-2009 |
Anders Carlsson <andersca@mac.com> |
extern "C" should preserve the 'extern' qualifier for VarDecls. Fixes 6853728. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71957 91177308-0d34-0410-b5e6-96231b3b80d8
xtern-c.cpp
angle.cpp
|
167b824ce1947bf71ec8a71296daa2c54ebe58df |
15-May-2009 |
Anders Carlsson <andersca@mac.com> |
A C++ member function always has either weak linkage (if it's inline or defined inline) or strong linkage (other cases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71873 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
7a0ba875a7dcee94ec74fa79b7f8a247d200a76c |
15-May-2009 |
Anders Carlsson <andersca@mac.com> |
Name mangling for class template specializations and template arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71861 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
b4880bab7fc1b61267cfd9a0ad52188e7a828cb3 |
12-May-2009 |
Chris Lattner <sabre@nondot.org> |
push GlobalDecl through enough of the CodeGenModule interfaces to allow us to support generation of deferred ctors/dtors. It looks like codegen isn't emitting a call to the dtor in member-functions.cpp:test2, but when it does, its body should get emitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71594 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
0c337ed63ff0f04fd8315afabb2d7a51969fdc97 |
12-May-2009 |
Chris Lattner <sabre@nondot.org> |
add an initial stab at emitting deferred c++ inline functions. This handles static functions and methods declared inline, but not ctors/dtors or methods not declared inline (apparently my previous patch wasn't good enough). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71591 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
4d150c84514dbf15975960a3ea46bdf6b7f16a5b |
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
only support int128_t on 64-bit and larger targets. 32-bit targets don't have support for __divti3 and friends. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70480 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
2df9ced9fd1e8c7d7b38443db07e0e811de22571 |
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
initial support for __[u]int128_t, which should be basically compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
283a062a633d6e868aa2be319da812341fe73728 |
13-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Use the new guard variable mangling function and get rid of the old code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68971 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
1e5dc6e12ccda4e783c67fa9ae11be419d7b0573 |
11-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for generating reference initialization code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68852 91177308-0d34-0410-b5e6-96231b3b80d8
onst-init.cpp
|
e9918d2443ad524e0f488e8f15d9bce4e7373cd1 |
08-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
We weren't generating correct code for calls to variadic member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68635 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
2b77ba8bc7a842829ad9193816dc1d7d5e9c5be6 |
04-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Add some basic support for generating C++ member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68425 91177308-0d34-0410-b5e6-96231b3b80d8
ember-functions.cpp
|
1b42c794481f6f958267e4ba913d74fef43161f6 |
02-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Implement mangling of declarations inside functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68321 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
329749c1ec1ead3c41af52260f1203e4991b4e83 |
02-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Mangle VarDecls correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68320 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
91e20dd8bf1bc8980ee93839383d2bd170bce050 |
02-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Emit code for linkage specifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68300 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
984e06874685396ca2cb51f0008cfff7c9b3d9c6 |
01-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Implement code generation of namespaces and add mangling tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68170 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
c6c91bc019ff7fa09f6570025ba011aad4c0d004 |
01-Apr-2009 |
Anders Carlsson <andersca@mac.com> |
Fix a mangling bug where functions with no arguments weren't getting the 'v' parameter specifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68162 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
d7d5f0223bd30dfd618762349c6209dd1d5ea3e6 |
24-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename clang to clang-cc. Tests and drivers updated, still need to shuffle dirs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67602 91177308-0d34-0410-b5e6-96231b3b80d8
_null.cpp
xpr.cpp
angle.cpp
|
4843e584b54460973b8445d38907bab0401ebb0c |
10-Mar-2009 |
Anders Carlsson <andersca@mac.com> |
Address Doug's comments wrt the mangler and fix Eli's test case git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66549 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
b1d947b1011cb559be5745153f292b2dfb46b8e6 |
08-Mar-2009 |
Anders Carlsson <andersca@mac.com> |
Make mangling work with anonymous tag types. Doug, please review git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66353 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
5f2bfd4811996abb783aa6c7254c56baa6930e8c |
13-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Add basic support for C++ name mangling according to the Itanium C++ ABI to the CodeGen library. Since C++ code-generation is so incomplete, we can't exercise much of this mangling code. However, a few smoke tests show that it's doing the same thing as GCC. When C++ codegen matures, we'll extend the ABI tester to verify name-mangling as well, and complete the implementation here. At this point, the major client of name mangling is in the uses of the new "overloadable" attribute in C, which allows overloading. Any "overloadable" function in C (or in an extern "C" block in C++) will be mangled the same way that the corresponding C++ function would be mangled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64413 91177308-0d34-0410-b5e6-96231b3b80d8
angle.cpp
|
32f6209ea9a5a88ad3f8d7ad5e5b160b403d12da |
12-Jan-2009 |
Nuno Lopes <nunoplopes@sapo.pt> |
make ScalarExprEmitter::EmitCompare() emit the expression with the correct type instead of always zext it to an int this fixes codegen of simple exprs in C++ like 'if (x != 0)' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62060 91177308-0d34-0410-b5e6-96231b3b80d8
xpr.cpp
|
3f70456b8adb0405ef2a47d51f9fc2d5937ae8ae |
21-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Add codegen support for __null git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61314 91177308-0d34-0410-b5e6-96231b3b80d8
_null.cpp
|