summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/gcctoolchain.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>2022-07-14 12:06:50 +0200
committerOswald Buddenhagen <oswald.buddenhagen@gmx.de>2022-07-20 12:26:48 +0000
commit9841a10f35af347048d1ba49687170bdf95960b5 (patch)
treee0adb2a8e8ea09843cc3522caf8dd222161be749 /src/plugins/projectexplorer/gcctoolchain.cpp
parent6fe15c58c973091807ae9d1c7874067cb3f1195a (diff)
downloadqt-creator-9841a10f35af347048d1ba49687170bdf95960b5.tar.gz
GccToolChain: whitelist all -f* and -O* gcc options
there are way too many -f* options to catch all relevant ones. my particular case was the linux kernel, for which passing -mcmodel=kernel but not -fno-PIE caused a gcc error. if any particular option causes trouble, it should be blacklisted instead. also handle -O* while at it; -Og comes to mind as a relevant one. this follows 3b79fafb3 in spirit. Change-Id: I5de56082b695205409a8e82de2cab0618e2806a8 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/gcctoolchain.cpp')
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index ee0a0e3e36..b3c827041f 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -449,18 +449,14 @@ static QStringList filteredFlags(const QStringList &allFlags, bool considerSysro
|| a == "-gcc-toolchain" || a == "-target" || a == "-mllvm" || a == "-isystem") {
if (++i < allFlags.length())
filtered << a << allFlags.at(i);
- } else if (a.startsWith("-m") || a == "-Os" || a == "-O0" || a == "-O1" || a == "-O2"
- || a == "-O3" || a == "-ffinite-math-only" || a == "-fshort-double"
- || a == "-fshort-wchar" || a == "-fsignaling-nans" || a == "-fno-inline"
- || a == "-fno-exceptions" || a == "-fstack-protector"
- || a == "-fstack-protector-all" || a == "-fsanitize=address"
- || a == "-fno-rtti" || a.startsWith("-std=") || a.startsWith("-stdlib=")
+ } else if (a.startsWith("-m") || a.startsWith("-f") || a.startsWith("-O")
+ || a.startsWith("-std=") || a.startsWith("-stdlib=")
|| a.startsWith("-specs=") || a == "-ansi" || a == "-undef"
- || a.startsWith("-D") || a.startsWith("-U") || a == "-fopenmp"
- || a == "-Wno-deprecated" || a == "-fPIC" || a == "-fpic" || a == "-fPIE"
- || a == "-fpie" || a.startsWith("-stdlib=") || a.startsWith("-B")
+ || a.startsWith("-D") || a.startsWith("-U")
+ || a.startsWith("-stdlib=") || a.startsWith("-B")
|| a.startsWith("--target=")
|| (a.startsWith("-isystem") && a.length() > 8)
+ || a == "-Wno-deprecated"
|| a == "-nostdinc" || a == "-nostdinc++") {
filtered << a;
}