X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCompilerDriver%2FTool.cpp;h=5e558ca43c8d828a5fd04dd4cc4ca5ec6daf2234;hb=170f06ebe2e80ce8bda87425081541493056fb10;hp=9f4ab4956627afd5cfd3ba173105b917e7ec30a6;hpb=90a6fd31b73b9e63d2465f19c25e8ee56c7e30db;p=oota-llvm.git diff --git a/lib/CompilerDriver/Tool.cpp b/lib/CompilerDriver/Tool.cpp index 9f4ab495662..5e558ca43c8 100644 --- a/lib/CompilerDriver/Tool.cpp +++ b/lib/CompilerDriver/Tool.cpp @@ -17,6 +17,8 @@ #include "llvm/ADT/StringExtras.h" #include "llvm/System/Path.h" +#include + using namespace llvm; using namespace llvmc; @@ -71,3 +73,22 @@ sys::Path Tool::OutFilename(const sys::Path& In, } return Out; } + +namespace { + template + bool CompareFirst (std::pair p1, std::pair p2) { + return std::less()(p1.first, p2.first); + } +} + +StrVector Tool::SortArgs(ArgsVector& Args) const { + StrVector Out; + + // HACK: this won't be needed when we'll migrate away from CommandLine. + std::stable_sort(Args.begin(), Args.end(), &CompareFirst); + for (ArgsVector::iterator B = Args.begin(), E = Args.end(); B != E; ++B) { + Out.push_back(B->second); + } + + return Out; +}