forked from OSchip/llvm-project
[clang-cl] Make /EHs turn on C++ EH once again
C++ exceptions are still off by default, which is similar to how C++ cleanups are off by default in MSVC. If you use clang instead of clang-cl, exceptions are also still off by default. In the future, when C++ EH is proven to be stable, we may flip the default for that driver to be consistent with other platforms. llvm-svn: 249704
This commit is contained in:
parent
ad60be9bdc
commit
b6776e0d07
|
@ -5392,10 +5392,6 @@ static EHFlags parseClangCLEHFlags(const Driver &D, const ArgList &Args) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Disable C++ EH completely, until it becomes more reliable. Users
|
|
||||||
// can use -Xclang to manually enable C++ EH until then.
|
|
||||||
EH = EHFlags();
|
|
||||||
|
|
||||||
return EH;
|
return EH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
// Note: %s must be preceded by --, otherwise it may be interpreted as a
|
// Note: %s must be preceded by --, otherwise it may be interpreted as a
|
||||||
// command-line option, e.g. on Mac where %s is commonly under /Users.
|
// command-line option, e.g. on Mac where %s is commonly under /Users.
|
||||||
|
|
||||||
// FIXME: When C++ EH works, we can make this flag turn things back on.
|
|
||||||
|
|
||||||
// RUN: %clang_cl /c /EHsc -### -- %s 2>&1 | FileCheck -check-prefix=EHsc %s
|
// RUN: %clang_cl /c /EHsc -### -- %s 2>&1 | FileCheck -check-prefix=EHsc %s
|
||||||
// EHsc-NOT: "-fcxx-exceptions"
|
// EHsc: "-fcxx-exceptions"
|
||||||
// EHsc-NOT: "-fexceptions"
|
// EHsc: "-fexceptions"
|
||||||
|
|
||||||
// RUN: %clang_cl /c /EHs-c- -### -- %s 2>&1 | FileCheck -check-prefix=EHs_c_ %s
|
// RUN: %clang_cl /c /EHs-c- -### -- %s 2>&1 | FileCheck -check-prefix=EHs_c_ %s
|
||||||
// EHs_c_-NOT: "-fcxx-exceptions"
|
// EHs_c_-NOT: "-fcxx-exceptions"
|
||||||
|
@ -16,12 +14,12 @@
|
||||||
// EHs_EHc_-NOT: "-fexceptions"
|
// EHs_EHc_-NOT: "-fexceptions"
|
||||||
|
|
||||||
// RUN: %clang_cl /c /EHs- /EHs -### -- %s 2>&1 | FileCheck -check-prefix=EHs_EHs %s
|
// RUN: %clang_cl /c /EHs- /EHs -### -- %s 2>&1 | FileCheck -check-prefix=EHs_EHs %s
|
||||||
// EHs_EHs-NOT: "-fcxx-exceptions"
|
// EHs_EHs: "-fcxx-exceptions"
|
||||||
// EHs_EHs-NOT: "-fexceptions"
|
// EHs_EHs: "-fexceptions"
|
||||||
|
|
||||||
// RUN: %clang_cl /c /EHs- /EHsa -### -- %s 2>&1 | FileCheck -check-prefix=EHs_EHa %s
|
// RUN: %clang_cl /c /EHs- /EHsa -### -- %s 2>&1 | FileCheck -check-prefix=EHs_EHa %s
|
||||||
// EHs_EHa-NOT: "-fcxx-exceptions"
|
// EHs_EHa: "-fcxx-exceptions"
|
||||||
// EHs_EHa-NOT: "-fexceptions"
|
// EHs_EHa: "-fexceptions"
|
||||||
|
|
||||||
// RUN: %clang_cl /c /EHinvalid -### -- %s 2>&1 | FileCheck -check-prefix=EHinvalid %s
|
// RUN: %clang_cl /c /EHinvalid -### -- %s 2>&1 | FileCheck -check-prefix=EHinvalid %s
|
||||||
// EHinvalid: error: invalid value 'invalid' in '/EH'
|
// EHinvalid: error: invalid value 'invalid' in '/EH'
|
||||||
|
|
Loading…
Reference in New Issue