Toolchains: Add C++98 as a language standard.

This was curiously missing from the CompilerFlag enum, so e.g. setting
"QMAKE_CXXFLAGS += -std=c++98" in a .pro file did not have the desired
effect on higher-level code such as the code model.

Change-Id: Ia4323b699a2ccea9d3cbde10b05affe87d955277
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Christian Kandeler
2015-04-14 14:50:14 +02:00
parent fc23148202
commit 24eea82477
3 changed files with 5 additions and 1 deletions

View File

@@ -86,6 +86,8 @@ void ProjectPart::evaluateToolchain(const ToolChain *tc,
languageVersion = CXX14; languageVersion = CXX14;
else if (flags & ToolChain::StandardCxx11) else if (flags & ToolChain::StandardCxx11)
languageVersion = CXX11; languageVersion = CXX11;
else if (flags & ToolChain::StandardCxx98)
languageVersion = CXX98;
else else
languageVersion = CXX11; languageVersion = CXX11;

View File

@@ -448,6 +448,7 @@ ToolChain::CompilerFlags GccToolChain::compilerFlags(const QStringList &cxxflags
const QByteArray std = flag.mid(5).toLatin1(); const QByteArray std = flag.mid(5).toLatin1();
if (std == "c++98" || std == "c++03") { if (std == "c++98" || std == "c++03") {
flags &= ~CompilerFlags(StandardCxx11 | StandardCxx14 | StandardCxx17 | GnuExtensions); flags &= ~CompilerFlags(StandardCxx11 | StandardCxx14 | StandardCxx17 | GnuExtensions);
flags |= StandardCxx98;
} else if (std == "gnu++98" || std == "gnu++03") { } else if (std == "gnu++98" || std == "gnu++03") {
flags &= ~CompilerFlags(StandardCxx11 | StandardCxx14 | StandardCxx17); flags &= ~CompilerFlags(StandardCxx11 | StandardCxx14 | StandardCxx17);
flags |= GnuExtensions; flags |= GnuExtensions;

View File

@@ -101,7 +101,8 @@ public:
OpenMP = 0x40, OpenMP = 0x40,
ObjectiveC = 0x80, ObjectiveC = 0x80,
StandardCxx14 = 0x100, StandardCxx14 = 0x100,
StandardCxx17 = 0x200 StandardCxx17 = 0x200,
StandardCxx98 = 0x400,
}; };
Q_DECLARE_FLAGS(CompilerFlags, CompilerFlag) Q_DECLARE_FLAGS(CompilerFlags, CompilerFlag)