diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2018-04-27 01:42:33 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2018-04-27 01:42:33 +0000 |
commit | 2cf0bade66e1ad92328259cf00ec5c7514d0bcde (patch) | |
tree | f481ab1ab79a30693eaf8af9858b20c03b2e0c3e | |
parent | b86e22b65deee32e227acae117161aab99865701 (diff) |
[Driver] Don't enable "-fregister-global-dtors-with-atexit" by default
when compiling the kernel or kexts.
Destructors should be registered with atexit by default only when we are
compiling userland code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@331010 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Driver/ToolChains/Clang.cpp | 2 | ||||
-rw-r--r-- | test/Driver/cxa-atexit.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Driver/ToolChains/Clang.cpp b/lib/Driver/ToolChains/Clang.cpp index 6c5e2caae4..5751ceac71 100644 --- a/lib/Driver/ToolChains/Clang.cpp +++ b/lib/Driver/ToolChains/Clang.cpp @@ -4194,7 +4194,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasFlag(options::OPT_fregister_global_dtors_with_atexit, options::OPT_fno_register_global_dtors_with_atexit, - RawTriple.isOSDarwin())) + RawTriple.isOSDarwin() && !KernelOrKext)) CmdArgs.push_back("-fregister-global-dtors-with-atexit"); // -fms-extensions=0 is default. diff --git a/test/Driver/cxa-atexit.cpp b/test/Driver/cxa-atexit.cpp index 56d2552023..cc5f68b9a4 100644 --- a/test/Driver/cxa-atexit.cpp +++ b/test/Driver/cxa-atexit.cpp @@ -31,6 +31,8 @@ // RUN: FileCheck --check-prefix=WITHATEXIT %s // RUN: %clang -target x86_64-apple-darwin -c -### %s 2>&1 | \ // RUN: FileCheck --check-prefix=WITHATEXIT %s +// RUN: %clang -target x86_64-apple-darwin -c -mkernel -### %s 2>&1 | \ +// RUN: FileCheck --check-prefix=WITHOUTATEXIT %s // RUN: %clang -target x86_64-pc-linux-gnu -fregister-global-dtors-with-atexit -fno-register-global-dtors-with-atexit -c -### %s 2>&1 | \ // RUN: FileCheck --check-prefix=WITHOUTATEXIT %s // RUN: %clang -target x86_64-pc-linux-gnu -fno-register-global-dtors-with-atexit -fregister-global-dtors-with-atexit -c -### %s 2>&1 | \ |