simon.giesecke added a comment.

In D115106#3180439 <https://reviews.llvm.org/D115106#3180439>, @aaron.ballman 
wrote:

> In D115106#3172949 <https://reviews.llvm.org/D115106#3172949>, 
> @simon.giesecke wrote:
>
>> Thanks a lot for addressing this issue! I am just trying it on our codebase.
>>
>>> The problem actually has nothing to do with the out-of-line definition 
>>> being inline; the problem is that hasDeclaration() of the memberExpr() will 
>>> match the out-of-line definition, which obviously isn't marked static, so 
>>> isStaticStorageClass() won't match.
>>
>> Hm, an out-of-line definition *cannot* have the `static` keyword. I wonder 
>> if it's actually a bug (in the AST? or just the matcher?) that 
>> `isStaticStorageClass` doesn't match here? I guess that other checks that 
>> use `isStaticStorageClass` might be affected by this too?
>
> `isStaticStorageClass()` calls through to `FunctionDecl::getStorageClass()` 
> which reports the storage as written on that declaration in source. So this 
> isn't a bug in the AST, it's a more of a misunderstanding of whether we're 
> querying the storage duration/linkage for the method or whether we're 
> querying whether it was written with the static keyword.

I see, makes sense.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D115106

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

Reply via email to