@@ -387,10 +387,28 @@ struct BuildEventsParser
387
387
// do various cleanups/nice-ifications of the detail name:
388
388
// make paths shorter (i.e. relative to project) where possible
389
389
detailString = utils::GetNicePath (detailPtr);
390
+
391
+ // switch json to .o or .obj (or .cpp)
392
+ if (utils::EndsWith (detailString, " .json" ))
393
+ {
394
+ detailString = std::string (detailString.substr (0 , detailString.length ()-4 )) + " o" ;
395
+ }
390
396
}
391
397
else
398
+ {
392
399
detailString = detailPtr;
393
-
400
+
401
+ // Use the kram demangle
402
+ // clang needs to fix this, since Win clang symbols don't demangle using macOS demangle
403
+ if (event.type == BuildEventType::kOptFunction )
404
+ {
405
+ const char * demangledName = demangleSymbolName (detailString.c_str ());
406
+ if (demangledName != nullptr )
407
+ detailString = demangledName;
408
+ }
409
+ }
410
+
411
+
394
412
/* don't do this
395
413
// don't report the clang trace .json file, instead get the object file at the same location if it's there
396
414
if (utils::EndsWith(detailString, ".json"))
@@ -414,15 +432,6 @@ struct BuildEventsParser
414
432
detailString = llvm::demangle(detailString);
415
433
*/
416
434
417
- // Use the built in call
418
- // clang needs to fix this, since Win clang symbols don't demangle using macOS demangle
419
- if (event.type == BuildEventType::kOptFunction )
420
- {
421
- const char * demangledName = demangleSymbolName (detailString.c_str ());
422
- if (demangledName != nullptr )
423
- detailString = demangledName;
424
- }
425
-
426
435
event.detailIndex = NameToIndex (detailString.c_str (), nameToIndexLocal);
427
436
}
428
437
0 commit comments