diff options
author | Fangrui Song <i@maskray.me> | 2024-03-05 21:36:40 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2024-03-05 21:36:40 -0800 |
commit | 40aef52d69c5051e5a236fcdd56259ad0333ab6d (patch) | |
tree | 253838ba88424b629167d8a5b4fbc298a7cd20ce | |
parent | 7bad74e66756ca2fd1fe4f5864e7123fb4553d78 (diff) | |
download | llvm-40aef52d69c5051e5a236fcdd56259ad0333ab6d.zip llvm-40aef52d69c5051e5a236fcdd56259ad0333ab6d.tar.gz llvm-40aef52d69c5051e5a236fcdd56259ad0333ab6d.tar.bz2 |
[𝘀𝗽𝗿] initial versionusers/MaskRay/spr/drivercrosswindows-remove-isystem-after
Created using spr 1.3.5-bogner
-rw-r--r-- | clang/include/clang/Driver/Options.td | 3 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 7 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains/CrossWindows.cpp | 10 | ||||
-rw-r--r-- | clang/test/Driver/windows-cross.c | 12 |
4 files changed, 7 insertions, 25 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index bef3873..522e377e 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4335,9 +4335,6 @@ def isysroot : JoinedOrSeparate<["-"], "isysroot">, Group<clang_i_Group>, def isystem : JoinedOrSeparate<["-"], "isystem">, Group<clang_i_Group>, Visibility<[ClangOption, CC1Option]>, HelpText<"Add directory to SYSTEM include search path">, MetaVarName<"<directory>">; -def isystem_after : JoinedOrSeparate<["-"], "isystem-after">, - Group<clang_i_Group>, Flags<[NoXarchOption]>, MetaVarName<"<directory>">, - HelpText<"Add directory to end of the SYSTEM include search path">; def iwithprefixbefore : JoinedOrSeparate<["-"], "iwithprefixbefore">, Group<clang_i_Group>, HelpText<"Set directory to include search path with prefix">, MetaVarName<"<dir>">, Visibility<[ClangOption, CC1Option]>; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 858d20f..2d9d195 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -1219,13 +1219,6 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA, << A->getAsString(Args); } } - } else if (A->getOption().matches(options::OPT_isystem_after)) { - // Handling of paths which must come late. These entries are handled by - // the toolchain itself after the resource dir is inserted in the right - // search order. - // Do not claim the argument so that the use of the argument does not - // silently go unnoticed on toolchains which do not honour the option. - continue; } else if (A->getOption().matches(options::OPT_stdlibxx_isystem)) { // Translated to -internal-isystem by the driver, no need to pass to cc1. continue; diff --git a/clang/lib/Driver/ToolChains/CrossWindows.cpp b/clang/lib/Driver/ToolChains/CrossWindows.cpp index 3c5dfba..1319451 100644 --- a/clang/lib/Driver/ToolChains/CrossWindows.cpp +++ b/clang/lib/Driver/ToolChains/CrossWindows.cpp @@ -239,15 +239,8 @@ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, const Driver &D = getDriver(); const std::string &SysRoot = D.SysRoot; - auto AddSystemAfterIncludes = [&]() { - for (const auto &P : DriverArgs.getAllArgValues(options::OPT_isystem_after)) - addSystemInclude(DriverArgs, CC1Args, P); - }; - - if (DriverArgs.hasArg(options::OPT_nostdinc)) { - AddSystemAfterIncludes(); + if (DriverArgs.hasArg(options::OPT_nostdinc)) return; - } addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include"); if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { @@ -255,7 +248,6 @@ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::sys::path::append(ResourceDir, "include"); addSystemInclude(DriverArgs, CC1Args, ResourceDir); } - AddSystemAfterIncludes(); addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); } diff --git a/clang/test/Driver/windows-cross.c b/clang/test/Driver/windows-cross.c index 75490b9..4e131d4 100644 --- a/clang/test/Driver/windows-cross.c +++ b/clang/test/Driver/windows-cross.c @@ -72,16 +72,16 @@ // CHECK-SANITIZE-TSAN: error: unsupported argument 'tsan' to option '-fsanitize=' // CHECK-SANITIZE-TSAN-NOT: "-fsanitize={{.*}}" -// RUN: %clang -### -target armv7-windows-itanium -isystem-after "Windows Kits/10/Include/10.0.10586.0/ucrt" -isystem-after "Windows Kits/10/Include/10.0.10586.0/um" -isystem-after "Windows Kits/10/Include/10.0.10586.0/shared" -c %s -o /dev/null 2>&1 \ +// RUN: %clang -### --target=armv7-windows-itanium -idirafter "Windows Kits/10/Include/10.0.10586.0/ucrt" -idirafter "Windows Kits/10/Include/10.0.10586.0/um" -idirafter "Windows Kits/10/Include/10.0.10586.0/shared" -c %s -o /dev/null 2>&1 \ // RUN: | FileCheck %s --check-prefix CHECK-ISYSTEM-AFTER // CHECK-ISYSTEM-AFTER: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-ISYSTEM-AFTER: "-idirafter" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}ucrt" +// CHECK-ISYSTEM-AFTER: "-idirafter" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}um" +// CHECK-ISYSTEM-AFTER: "-idirafter" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}shared" // CHECK-ISYSTEM-AFTER: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include" -// CHECK-ISYSTEM-AFTER: "-internal-isystem" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}ucrt" -// CHECK-ISYSTEM-AFTER: "-internal-isystem" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}um" -// CHECK-ISYSTEM-AFTER: "-internal-isystem" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}shared" -// RUN: %clang -### -target armv7-windows-itanium -nostdinc -isystem-after "Windows Kits/10/Include/10.0.10586.0/ucrt" -c %s -o /dev/null 2>&1 \ +// RUN: %clang -### -target armv7-windows-itanium -nostdinc -idirafter "Windows Kits/10/Include/10.0.10586.0/ucrt" -c %s -o /dev/null 2>&1 \ // RUN: | FileCheck %s --check-prefix CHECK-NOSTDINC-ISYSTEM-AFTER // CHECK-NOSTDINC-ISYSTEM-AFTER: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-NOSTDINC-ISYSTEM-AFTER: "-idirafter" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}ucrt" // CHECK-NOSTDINC-ISYSTEM-AFTER-NOT: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include" -// CHECK-NOSTDINC-ISYSTEM-AFTER: "-internal-isystem" "Windows Kits{{[/\\]}}10{{[/\\]}}Include{{[/\\]}}10.0.10586.0{{[/\\]}}ucrt" |