[PATCH] D59402: Fix-it hints for -Wmissing-{prototypes,variable-declarations}

Aaron Puchert via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 31 10:09:19 PDT 2019

aaronpuchert removed a reviewer: bkramer.
aaronpuchert added a comment.

I discovered an issue with variables, because there can be multiple definitions with the same `TypeLoc`:

  extern int a;
  int a, b;

We emit the warning for `b`, but we can't just put static in front of the declaration, as that would affect `a` as well. I haven't found a way to determine whether a `VarDecl` shares its type with another declaration, especially since global declarations don't even belong to a `DeclStmt`. We just get

  TranslationUnitDecl 0x1d0b598 <<invalid sloc>> <invalid sloc>
  |-VarDecl 0x1d47b60 <<stdin>:1:1, col:12> col:12 a 'int' extern
  |-VarDecl 0x1d47c18 prev 0x1d47b60 <line:2:1, col:5> col:5 a 'int'
  `-VarDecl 0x1d47c90 <col:1, col:8> col:8 b 'int'

So I think I have to drop the fix-it hint there, but I can still emit a note.

  rC Clang



More information about the cfe-commits mailing list