v1nh1shungry added inline comments.
================ Comment at: clang/test/FixIt/fixit-const-var-init.cpp:24 + +template <> constexpr float d<int, float>; // expected-error {{must be initialized by a constant expression}} +// CHECK: fix-it:"{{.*}}":{24:42-24:42}:" = 0.0" ---------------- aaron.ballman wrote: > v1nh1shungry wrote: > > aaron.ballman wrote: > > > I'd like to see some additional test coverage for more complicated > > > declarators: > > > ``` > > > void (* const func)(int, int); > > > const int var [[clang::annotate("")]]; > > > ``` > > One more question: I just did the second test > > > > ``` > > const int var [[clang::annotate("")]]; > > ``` > > > > and it inserted the fix hint after the identifier. > > > > Is this the expected behavior of `getEndLoc()`? > @erichkeane and I talked about this off-list because it's a bit of an > academic question as to whether an attribute is "part" of a declaration or > not. We ultimately decided that we think it's best for the attribute to *not* > be considered part of the source range of the variable declaration; they are > wholly separate AST nodes. > > So based on that, we think you will need some changes to SemaInit.cpp after > all. And you'll have to use `SourceManager::isBeforeInTranslationUnit()` to > determine if the begin source location of the attribute is after the end > source location of the variable or not (because the attribute could go before > the type information or after the variable name). > > There's another test case to consider that hopefully will Just Work with this > design, but is worth testing explicitly: > ``` > void (* const func [[clang::annotate("test")]])(int, int); > ``` I have trouble getting the location of the right bracket of the attribute list, which may be used to insert the fix hint. Could you please give me some hints? Thanks a lot! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139705/new/ https://reviews.llvm.org/D139705 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits