Changes in directory llvm/tools/llvmc:
CompilerDriver.cpp updated: 1.37 -> 1.38 Configuration.cpp updated: 1.24 -> 1.25 Makefile updated: 1.20 -> 1.21 c updated: 1.1 -> 1.2 --- Log message: Patches to correct several bugs in llvmc. Patches contributed by Bram Adams. Thanks Bram. --- Diffs of the changes: (+58 -7) CompilerDriver.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++---- Configuration.cpp | 7 +++++++ Makefile | 2 +- c | 3 +-- 4 files changed, 58 insertions(+), 7 deletions(-) Index: llvm/tools/llvmc/CompilerDriver.cpp diff -u llvm/tools/llvmc/CompilerDriver.cpp:1.37 llvm/tools/llvmc/CompilerDriver.cpp:1.38 --- llvm/tools/llvmc/CompilerDriver.cpp:1.37 Tue Aug 1 13:12:29 2006 +++ llvm/tools/llvmc/CompilerDriver.cpp Wed Aug 16 15:31:44 2006 @@ -227,9 +227,54 @@ assert(pat != 0 && "Invalid command pattern"); // Copy over some pattern things that don't need to change - action->program = pat->program; action->flags = pat->flags; + // See if program starts with wildcard... + std::string programName=pat->program.toString(); + if (programName[0] == '%' && programName.length() >2) { + switch(programName[1]){ + case 'b': + if (programName.substr(0,8) == "%bindir%") { + std::string tmp(LLVM_BINDIR); + tmp.append(programName.substr(8)); + pat->program.set(tmp); + } + break; + case 'l': + if (programName.substr(0,12) == "%llvmgccdir%"){ + std::string tmp(LLVMGCCDIR); + tmp.append(programName.substr(12)); + pat->program.set(tmp); + }else if (programName.substr(0,13) == "%llvmgccarch%"){ + std::string tmp(LLVMGCCARCH); + tmp.append(programName.substr(13)); + pat->program.set(tmp); + }else if (programName.substr(0,9) == "%llvmgcc%"){ + std::string tmp(LLVMGCC); + tmp.append(programName.substr(9)); + pat->program.set(tmp); + }else if (programName.substr(0,9) == "%llvmgxx%"){ + std::string tmp(LLVMGXX); + tmp.append(programName.substr(9)); + pat->program.set(tmp); + }else if (programName.substr(0,9) == "%llvmcc1%"){ + std::string tmp(LLVMCC1); + tmp.append(programName.substr(9)); + pat->program.set(tmp); + }else if (programName.substr(0,13) == "%llvmcc1plus%"){ + std::string tmp(LLVMCC1PLUS); + tmp.append(programName.substr(13)); + pat->program.set(tmp); + }else if (programName.substr(0,8) == "%libdir%") { + std::string tmp(LLVM_LIBDIR); + tmp.append(programName.substr(8)); + pat->program.set(tmp); + } + break; + } + } + action->program = pat->program; + // Do the substitutions from the pattern to the actual StringVector::iterator PI = pat->args.begin(); StringVector::iterator PE = pat->args.end(); @@ -426,9 +471,9 @@ const char** Args = (const char**) alloca(sizeof(const char*)*(action->args.size()+2)); Args[0] = action->program.toString().c_str(); - for (unsigned i = 1; i != action->args.size(); ++i) - Args[i] = action->args[i].c_str(); - Args[action->args.size()] = 0; // null terminate list. + for (unsigned i = 1; i <= action->args.size(); ++i) + Args[i] = action->args[i-1].c_str(); + Args[action->args.size()+1] = 0; // null terminate list. if (isSet(TIME_ACTIONS_FLAG)) { Timer timer(action->program.toString()); timer.startTimer(); Index: llvm/tools/llvmc/Configuration.cpp diff -u llvm/tools/llvmc/Configuration.cpp:1.24 llvm/tools/llvmc/Configuration.cpp:1.25 --- llvm/tools/llvmc/Configuration.cpp:1.24 Mon May 29 13:52:05 2006 +++ llvm/tools/llvmc/Configuration.cpp Wed Aug 16 15:31:44 2006 @@ -116,6 +116,8 @@ result.clear(); while (next_is_real()) { switch (token ) { + case LLVMGCCDIR_SUBST: + case LLVMGCCARCH_SUBST: case STRING : case OPTION : result += ConfigLexerState.StringVal; @@ -260,6 +262,11 @@ str.clear(); do { switch (token) { + case BINDIR_SUBST: + case LLVMGCC_SUBST: + case LLVMGXX_SUBST: + case LLVMCC1_SUBST: + case LLVMCC1PLUS_SUBST: case OPTION: case STRING: case ARGS_SUBST: Index: llvm/tools/llvmc/Makefile diff -u llvm/tools/llvmc/Makefile:1.20 llvm/tools/llvmc/Makefile:1.21 --- llvm/tools/llvmc/Makefile:1.20 Thu Jul 6 19:46:19 2006 +++ llvm/tools/llvmc/Makefile Wed Aug 16 15:31:44 2006 @@ -24,7 +24,7 @@ -DLLVMGCC="\"$(LLVMGCC)\"" \ -DLLVMGXX="\"$(LLVMGXX)\"" \ -DLLVMCC1="\"$(LLVMCC1)\"" \ - -DLLVMCC1PLUS="$(LLVMCC1PLUS)" + -DLLVMCC1PLUS="\"$(LLVMCC1PLUS)\"" include $(LEVEL)/Makefile.common Index: llvm/tools/llvmc/c diff -u llvm/tools/llvmc/c:1.1 llvm/tools/llvmc/c:1.2 --- llvm/tools/llvmc/c:1.1 Wed May 18 19:52:29 2005 +++ llvm/tools/llvmc/c Wed Aug 16 15:31:44 2006 @@ -9,8 +9,7 @@ lang.opt3=-O3 lang.opt4=-O3 lang.opt5=-O3 - lang.libs=%llvmgccdir%/lib %llvmgccdir%/lib \ - %llvmgccdir%/lib/gcc/%llvmgccarch% + lang.libs=%llvmgccdir%/lib %llvmgccdir%/lib %llvmgccdir%/lib/gcc/%llvmgccarch% ########################################################## # Pre-processor definitions _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits