[PATCH] D139705: [clang] fix zero-initialization fix-it for variable template
Vincent Hong via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 10 22:27:04 PST 2023
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
More information about the cfe-commits
mailing list