blob: 661a914489db8f07d5f3a3a5781d36b77807ede8 [file] [log] [blame]
Mikhail Glushenkov84612022009-12-07 17:03:21 +00001#include <string>
2#include <vector>
3
4namespace hooks {
5typedef std::vector<std::string> StrVec;
6
7/// ConvertToMAttr - Convert -m* and -mno-* to -mattr=+*,-*
8std::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}