clang-svn: Update to rev.53251

This commit is contained in:
Alexpux
2014-08-26 21:49:38 +04:00
parent 31d1264937
commit 64439ccb75
3 changed files with 22 additions and 17 deletions

View File

@@ -3,7 +3,7 @@
_realname=clang
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-svn" "${MINGW_PACKAGE_PREFIX}-clang-analyzer-svn" "${MINGW_PACKAGE_PREFIX}-llvm-svn") # "${MINGW_PACKAGE_PREFIX}-compiler-rt-svn"
pkgver=51262.b335d96
pkgver=53251.26380cd
pkgrel=1
pkgdesc="LC language family frontend for LLVM (mingw-w64)"
arch=('any')
@@ -20,7 +20,7 @@ source=(#"llvm"::"svn+http://llvm.org/svn/llvm-project/llvm/trunk"
"clang"::"git+http://llvm.org/git/clang.git"
"rt"::"git+http://llvm.org/git/compiler-rt.git"
"testsuite"::"git+http://llvm.org/git/test-suite.git"
#"libcxx"::"git+http://llvm.org/git/libcxx.git"
"libcxx"::"git+http://llvm.org/git/libcxx.git"
clang-win64-seh.patch
clang-mingw-driver.patch
llvm-win64-exceptions.patch
@@ -30,8 +30,9 @@ md5sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP')
'a93f92f34106c45bb1ed8eced9d18d21'
'043ecdc06235869457a0772fddfcc6ca'
'a41d36c68351d781f224f688c90f7c09')
pkgver() {
cd "$srcdir/clang"
@@ -42,7 +43,7 @@ pkgver() {
prepare() {
cd ${srcdir}/llvm
patch -p1 -i ${srcdir}/llvm-win64-exceptions.patch
#patch -p1 -i ${srcdir}/llvm-win64-exceptions.patch
cd ${srcdir}/clang
patch -p1 -i ${srcdir}/clang-mingw-driver.patch

View File

@@ -80,7 +80,7 @@ index 0000000..87c0aa2
+#endif
+ if (llvm::sys::fs::exists(GCClibdir)) {
+ // Find subdirectory, should be the version of MinGW-w64 GCC
+ llvm::error_code EC;
+ std::error_code EC;
+ llvm::sys::fs::directory_iterator entry(StringRef(GCClibdir), EC);
+ if (!EC)
+ GCCVersion = llvm::sys::path::filename(entry->path());

View File

@@ -19,15 +19,15 @@ diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Option
index 5ffeb43..ab73ca8 100644
--- a/include/clang/Driver/CC1Options.td
+++ b/include/clang/Driver/CC1Options.td
@@ -397,6 +397,8 @@ def fblocks_runtime_optional : Flag<["-"], "fblocks-runtime-optional">,
@@ -430,6 +430,8 @@ def fblocks_runtime_optional : Flag<["-"], "fblocks-runtime-optional">,
HelpText<"Weakly link in the blocks runtime">;
def fsjlj_exceptions : Flag<["-"], "fsjlj-exceptions">,
HelpText<"Use SjLj style exceptions">;
+def fseh_exceptions : Flag<["-"], "fseh-exceptions">,
+ HelpText<"Use SEH style exceptions">;
def main_file_name : Separate<["-"], "main-file-name">,
HelpText<"Main file name to use for debug info">;
def split_dwarf_file : Separate<["-"], "split-dwarf-file">,
HelpText<"File name to use for split dwarf debug info output">;
def fno_wchar : Flag<["-"], "fno-wchar">,
diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h
index ceb1c76..30d687f 100644
--- a/include/clang/Driver/ToolChain.h
@@ -46,7 +46,7 @@ diff --git a/lib/CodeGen/CGException.cpp b/lib/CodeGen/CGException.cpp
index cc03b0a..a4aa44b 100644
--- a/lib/CodeGen/CGException.cpp
+++ b/lib/CodeGen/CGException.cpp
@@ -155,22 +155,27 @@ namespace {
@@ -137,25 +137,31 @@ namespace {
static const EHPersonality &get(const LangOptions &Lang);
static const EHPersonality GNU_C;
static const EHPersonality GNU_C_SJLJ;
@@ -61,19 +61,23 @@ index cc03b0a..a4aa44b 100644
};
}
const EHPersonality EHPersonality::GNU_C = { "__gcc_personality_v0", 0 };
const EHPersonality EHPersonality::GNU_C_SJLJ = { "__gcc_personality_sj0", 0 };
+const EHPersonality EHPersonality::GNU_C_SEH = { "__gcc_personality_seh0", 0 };
const EHPersonality EHPersonality::NeXT_ObjC = { "__objc_personality_v0", 0 };
const EHPersonality EHPersonality::GNU_CPlusPlus = { "__gxx_personality_v0", 0};
const EHPersonality EHPersonality::GNU_C = { "__gcc_personality_v0", nullptr };
const EHPersonality
EHPersonality::GNU_CPlusPlus_SJLJ = { "__gxx_personality_sj0", 0 };
EHPersonality::GNU_C_SJLJ = { "__gcc_personality_sj0", nullptr };
+const EHPersonality
+EHPersonality::GNU_C_SEH = { "__gcc_personality_seh0", 0 };
const EHPersonality
EHPersonality::NeXT_ObjC = { "__objc_personality_v0", nullptr };
const EHPersonality
EHPersonality::GNU_CPlusPlus = { "__gxx_personality_v0", nullptr };
const EHPersonality
EHPersonality::GNU_CPlusPlus_SJLJ = { "__gxx_personality_sj0", nullptr };
const EHPersonality
+EHPersonality::GNU_CPlusPlus_SEH = { "__gxx_personality_seh0", 0 };
+const EHPersonality
EHPersonality::GNU_ObjC = {"__gnu_objc_personality_v0", "objc_exception_throw"};
const EHPersonality
EHPersonality::GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", 0 };
EHPersonality::GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", nullptr };
@@ -180,6 +185,8 @@ EHPersonality::GNUstep_ObjC = { "__gnustep_objc_personality_v0", 0 };
static const EHPersonality &getCPersonality(const LangOptions &L) {
if (L.SjLjExceptions)