ymandel added inline comments.

================
Comment at: clang/unittests/Tooling/SourceCodeTest.cpp:249-258
   Visitor.runOverAnnotated(R"cpp(
-      #define ATTR __attribute__((deprecated("message")))
-      $r[[ATTR
+      $r[[__attribute__((deprecated("message")))
       int x;]])cpp");
 
   // Includes attributes and comments together.
   Visitor.runOverAnnotated(R"cpp(
+      $r[[__attribute__((deprecated("message")))
----------------
Thanks for trying to fix these! The changed test cases seem to be doing two 
things at once: macros and attributes, and I don't remember why. We should test 
the behavior separately.  So, I think you're new test cases are good 
regardless.  But, we still want the old tests to test the behavior for 
attributes that are hidden behind a macro, since this is used not infrequently 
in my exprience. 

IIUC, the current code isn't properly handling attributes that appear inside 
macros, which is why this fix breaks the code. Specifically, it is not 
considering the case that the location in `Attr->getLocation()` is in a macro, 
while `Range.getBegin()` is in the original file, and hence the locations are 
not comparable. I'm surprised this ever worked, tbh.

My preference would be to update the code, if you know how, so that both the 
old and new tests pass. But, I realize this may be a lot to ask. So, at the 
least, please comment out, but keep, the old tests; or, copy the old tests to a 
new test and mark it disabled. Either way, prefix with a FIXME indicating the 
issue.

WDYT?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D137979/new/

https://reviews.llvm.org/D137979

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

Reply via email to