From 8a69b616329acf7841ff60e934e759ed73526cdd Mon Sep 17 00:00:00 2001 From: Kai Nacke Date: Mon, 25 Nov 2013 21:18:55 +0100 Subject: [PATCH 1/4] Update to LLVM 3.5 --- runtime/druntime | 2 +- runtime/phobos | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/druntime b/runtime/druntime index 822720b8..1b275600 160000 --- a/runtime/druntime +++ b/runtime/druntime @@ -1 +1 @@ -Subproject commit 822720b8637bf5ad0d2301aa00807216a9d334bd +Subproject commit 1b27560099d7cb903276e281b056e5e2a4cad234 diff --git a/runtime/phobos b/runtime/phobos index 89a22959..9ef54a02 160000 --- a/runtime/phobos +++ b/runtime/phobos @@ -1 +1 @@ -Subproject commit 89a229598dae3f8d2d0542679873f18f0436b0ee +Subproject commit 9ef54a02d52cd7e9cbefa7ed1a861e9230bd59b0 From 1c3bcd1d2c7b30eb9b8fbbcf53f1e408ce8b0a9a Mon Sep 17 00:00:00 2001 From: Kai Nacke Date: Mon, 25 Nov 2013 22:46:55 +0100 Subject: [PATCH 2/4] Added new LLVM 3.4 intrinsics --- runtime/druntime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/druntime b/runtime/druntime index 1b275600..b962e3e1 160000 --- a/runtime/druntime +++ b/runtime/druntime @@ -1 +1 @@ -Subproject commit 1b27560099d7cb903276e281b056e5e2a4cad234 +Subproject commit b962e3e17b78fbe4bcfce315161d075cabf9cb60 From a81a98cb30508ffb2b3aaa0a8882cf65312232d7 Mon Sep 17 00:00:00 2001 From: Kai Nacke Date: Tue, 26 Nov 2013 07:56:16 +0100 Subject: [PATCH 3/4] Fix type in pragma (LLVM 3.4 only) --- runtime/druntime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/druntime b/runtime/druntime index b962e3e1..b20422e7 160000 --- a/runtime/druntime +++ b/runtime/druntime @@ -1 +1 @@ -Subproject commit b962e3e17b78fbe4bcfce315161d075cabf9cb60 +Subproject commit b20422e7c3f46c8ac095ad2f70fbd039157284ba From 7f017608a8f4bc595f49db1afa7554c73e71e286 Mon Sep 17 00:00:00 2001 From: Kai Nacke Date: Tue, 26 Nov 2013 07:56:50 +0100 Subject: [PATCH 4/4] Use enum literal instead of constant --- gen/dibuilder.cpp | 2 +- gen/module.cpp | 2 +- gen/structs.cpp | 2 +- gen/typinf.cpp | 2 +- ir/irtypestruct.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gen/dibuilder.cpp b/gen/dibuilder.cpp index 209a3254..e2799389 100644 --- a/gen/dibuilder.cpp +++ b/gen/dibuilder.cpp @@ -290,7 +290,7 @@ llvm::DIType ldc::DIBuilder::CreateCompositeType(Type *type) // if we don't know the aggregate's size, we don't know enough about it // to provide debug info. probably a forward-declared struct? - if (sd->sizeok == 0) + if (sd->sizeok == SIZEOKnone) #if LDC_LLVM_VER >= 304 return DBuilder.createUnspecifiedType(sd->toChars()); #else diff --git a/gen/module.cpp b/gen/module.cpp index 7685d894..b2739f55 100644 --- a/gen/module.cpp +++ b/gen/module.cpp @@ -536,7 +536,7 @@ void Module::genmoduleinfo() Logger::println("skipping interface '%s' in moduleinfo", cd->toPrettyChars()); continue; } - else if (cd->sizeok != 1) + else if (cd->sizeok != SIZEOKdone) { Logger::println("skipping opaque class declaration '%s' in moduleinfo", cd->toPrettyChars()); continue; diff --git a/gen/structs.cpp b/gen/structs.cpp index ed2171c9..690d93d7 100644 --- a/gen/structs.cpp +++ b/gen/structs.cpp @@ -41,7 +41,7 @@ void DtoResolveStruct(StructDeclaration* sd) DtoType(sd->type); // if it's a forward declaration, all bets are off. The type should be enough - if (sd->sizeok != 1) + if (sd->sizeok != SIZEOKdone) return; // create the IrAggr diff --git a/gen/typinf.cpp b/gen/typinf.cpp index d1394a05..3e1d9502 100644 --- a/gen/typinf.cpp +++ b/gen/typinf.cpp @@ -596,7 +596,7 @@ void TypeInfoStructDeclaration::llvmDefine() StructDeclaration *sd = tc->sym; // can't emit typeinfo for forward declarations - if (sd->sizeok != 1) + if (sd->sizeok != SIZEOKdone) { sd->error("cannot emit TypeInfo for forward declaration"); fatal(); diff --git a/ir/irtypestruct.cpp b/ir/irtypestruct.cpp index d9fa3937..44b805fa 100644 --- a/ir/irtypestruct.cpp +++ b/ir/irtypestruct.cpp @@ -88,7 +88,7 @@ IrTypeStruct* IrTypeStruct::get(StructDeclaration* sd) LOG_SCOPE; // if it's a forward declaration, all bets are off, stick with the opaque - if (sd->sizeok != 1) + if (sd->sizeok != SIZEOKdone) return t; // TODO:: Somehow merge this with IrAggr::createInitializerConstant, or