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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits