diff --git a/llvm/tools/llvmc/CompilerDriver.h b/llvm/tools/llvmc/CompilerDriver.h index 4b825e22eab3..e5bf42fda8fa 100644 --- a/llvm/tools/llvmc/CompilerDriver.h +++ b/llvm/tools/llvmc/CompilerDriver.h @@ -89,6 +89,7 @@ namespace llvm { struct ConfigData { ConfigData(); + std::string version; ///< The version number. std::string langName; ///< The name of the source language StringTable opts; ///< The o10n options for each level Action PreProcessor; ///< PreProcessor command line diff --git a/llvm/tools/llvmc/Configuration.cpp b/llvm/tools/llvmc/Configuration.cpp index a381d56e1cde..a3c62d6116dc 100644 --- a/llvm/tools/llvmc/Configuration.cpp +++ b/llvm/tools/llvmc/Configuration.cpp @@ -181,6 +181,18 @@ namespace { error("Expecting '='"); } + void parseVersion() { + if (next() == EQUALS) { + while (next_is_real()) { + if (token == STRING || token == OPTION) + confDat->version = ConfigLexerState.StringVal; + else + error("Expecting a version string"); + } + } else + error("Expecting '='"); + } + void parseLang() { switch (next() ) { case NAME: @@ -357,6 +369,7 @@ namespace { void parseAssignment() { switch (token) { + case VERSION: parseVersion(); break; case LANG: parseLang(); break; case PREPROCESSOR: parsePreprocessor(); break; case TRANSLATOR: parseTranslator(); break;