@@ -266,6 +266,9 @@ func parse(argList []string) parserResult {
266
266
"-dead_strip" : {0 , pr .warningLinkUnaryCallback }, //iam: tor does this. We lose the bitcode :-(
267
267
}
268
268
269
+ // iam: this is a list because matching needs to be done in order.
270
+ // if you add a NEW pattern; make sure it is befor any existing pattern that also
271
+ // matches and has a conflicting flagInfo value.
269
272
var argPatterns = [... ]argPattern {
270
273
{`^.+\.(c|cc|cpp|C|cxx|i|s|S|bc)$` , flagInfo {0 , pr .inputFileCallback }},
271
274
{`^.+\.([fF](|[0-9][0-9]|or|OR|pp|PP))$` , flagInfo {0 , pr .inputFileCallback }},
@@ -302,45 +305,6 @@ func parse(argList []string) parserResult {
302
305
{`^--param=.+$` , flagInfo {0 , pr .compileUnaryCallback }}, //iam: linux kernel stuff
303
306
}
304
307
305
- /*
306
- var argPatterns = map[string]flagInfo{
307
- `^.+\.(c|cc|cpp|C|cxx|i|s|S|bc)$`: {0, pr.inputFileCallback},
308
- `^.+\.([fF](|[0-9][0-9]|or|OR|pp|PP))$`: {0, pr.inputFileCallback},
309
- `^.+\.(o|lo|So|so|po|a|dylib)$`: {0, pr.objectFileCallback},
310
- `^.+\.dylib(\.\d)+$`: {0, pr.objectFileCallback},
311
- `^.+\.(So|so)(\.\d)+$`: {0, pr.objectFileCallback},
312
- `^-(l|L).+$`: {0, pr.linkUnaryCallback},
313
- `^-I.+$`: {0, pr.compileUnaryCallback},
314
- `^-D.+$`: {0, pr.compileUnaryCallback},
315
- `^-B.+$`: {0, pr.compileLinkUnaryCallback},
316
- `^-isystem.+$`: {0, pr.compileLinkUnaryCallback},
317
- `^-U.+$`: {0, pr.compileUnaryCallback},
318
- //iam: need to be careful here, not mix up linker and warning flags.
319
- `^-Wl,.+$`: {0, pr.linkUnaryCallback},
320
- `^-W[^l].*$`: {0, pr.compileUnaryCallback},
321
- `^-W[l][^,].*$`: {0, pr.compileUnaryCallback}, //iam: tor has a few -Wl...
322
- `^-fsanitize=.+$`: {0, pr.compileLinkUnaryCallback},
323
- `^-f.+$`: {0, pr.compileUnaryCallback},
324
- `^-rtlib=.+$`: {0, pr.linkUnaryCallback},
325
- `^-std=.+$`: {0, pr.compileUnaryCallback},
326
- `^-stdlib=.+$`: {0, pr.compileLinkUnaryCallback},
327
- `^-mtune=.+$`: {0, pr.compileUnaryCallback},
328
- `^--sysroot=.+$`: {0, pr.compileLinkUnaryCallback}, //both compile and link time
329
- `^-print-prog-name=.*$`: {0, pr.compileUnaryCallback},
330
- `^-print-file-name=.*$`: {0, pr.compileUnaryCallback},
331
- `^-mmacosx-version-min=.+$`: {0, pr.compileLinkUnaryCallback},
332
- `^-mstack-alignment=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
333
- `^-march=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
334
- `^-mregparm=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
335
- `^-mcmodel=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
336
- `^-mpreferred-stack-boundary=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
337
- `^-mindirect-branch=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
338
- `^--param=.+$`: {0, pr.compileUnaryCallback}, //iam: linux kernel stuff
339
- `^-fuse-ld=.+$`: {0, pr.linkUnaryCallback}, //iam: musl stuff
340
-
341
- }
342
- */
343
-
344
308
for len (argList ) > 0 {
345
309
var elem = argList [0 ]
346
310
@@ -364,15 +328,6 @@ func parse(argList []string) parserResult {
364
328
break
365
329
}
366
330
}
367
- //for pattern, fi := range argPatterns {
368
- // var regExp = regexp.MustCompile(pattern)
369
- // if regExp.MatchString(elem) {
370
- // fi.handler(elem, argList[1:1+fi.arity])
371
- // listShift = fi.arity
372
- // matched = true
373
- // break
374
- // }
375
- //}
376
331
if ! matched {
377
332
LogWarning ("Did not recognize the compiler flag: %v\n " , elem )
378
333
pr .compileUnaryCallback (elem , argList [1 :1 ])
0 commit comments