Mikhail Glushenkov | 8461202 | 2009-12-07 17:03:21 +0000 | [diff] [blame] | 1 | #include <string> |
| 2 | #include <vector> |
| 3 | |
| 4 | namespace hooks { |
| 5 | typedef std::vector<std::string> StrVec; |
| 6 | |
| 7 | /// ConvertToMAttr - Convert -m* and -mno-* to -mattr=+*,-* |
| 8 | std::string ConvertToMAttr(const StrVec& Opts) { |
| 9 | std::string out("-mattr="); |
| 10 | |
| 11 | bool firstIter = true; |
| 12 | for (StrVec::const_iterator B = Opts.begin(), E = Opts.end(); B!=E; ++B) { |
| 13 | const std::string& Arg = *B; |
| 14 | |
| 15 | if (firstIter) |
| 16 | firstIter = false; |
| 17 | else |
| 18 | out += ","; |
| 19 | |
| 20 | if (Arg.find("no-") == 0 && Arg[3] != 0) { |
| 21 | out += '-'; |
| 22 | out += Arg.c_str() + 3; |
| 23 | } |
| 24 | else { |
| 25 | out += '+'; |
| 26 | out += Arg; |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | return out; |
| 31 | } |
| 32 | |
| 33 | } |