https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66159

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This keeps biting me in the Filesystem library, where I need to use an
elaborated-type-specifier to refer to struct stat, to disambiguate it from the
function int stat(const char*, struct stat*)

struct stat { };
extern "C" int stat(const char*, struct stat*);

namespace filesystem {
  typedef struct ::stat t1;
  using t2 = struct ::stat;
}

I could just say "struct stat" instead of using the nested-name-specifier, but
being explicit about the scope seems better.

Would fixing this need another global boolean like
processing_explicit_instantiation, so the warning can be suppressed when
processing_alias_declaration is true?

Would it be OK to make this warning depend on -Wredundant-decls so it can be
disabled with a #pragma?

Reply via email to