[PATCH] D11778: Improvements on Diagnostic in Macro Expansions

Zhengkai Wu via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 10 18:19:44 PDT 2015

zhengkai added a comment.

The helper function checkRangesForMacroArgExpansion is to check if the current Loc and Ranges are expansions of a macro's arguments.
If so, the IgnoredEnd will record this position and thus omitting all later expanded macros (Later expanded macros are showed on top of the stack though).

Two test cases are added. 
The reduced-diags-macros-backtrace.cpp is to show that my method works correctly with the option -fmacro-backtrace-limit
The reduced-diags-macros.cpp is to show that my method reduced verbose information printed indeed.

There are still a lot of other cases in which my method still works as the old version did. 
And I think there are several bugs in the existing functions like "emitDiagnostic" and "mapDiagnosticRanges".
This is issued as a bug, the link is https://llvm.org/bugs/show_bug.cgi?id=24423.
Future work will be done to improve the current result.

Comment at: test/Misc/reduced-diags-macros.cpp:14-15
@@ +13,4 @@
+// CHECK-NEXT: #define NO_INITIATION(x) int a = x * 2
+// CHECK-NEXT:                                  ^
+// CHECK: {{.*}}:7:15: error: use of undeclared identifier 'b'
This works like the old version, should be improved later


More information about the cfe-commits mailing list