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'
----------------
Yes.
This works like the old version, should be improved later


http://reviews.llvm.org/D11778



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to