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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|diagnostic                  |
   Last reconfirmed|2017-09-28 00:00:00         |2019-8-6

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Another example that cannot be a function declaration:

struct F
{
  F(int) {}

  F operator()(int) const { return *this; }
};

int main()
{
  int i = 0;
  F(i)(0)(0);
}


vex.cc: In function 'int main()':
vex.cc:11:5: error: conflicting declaration 'F i'
   11 |   F(i)(0)(0);
      |     ^
vex.cc:10:7: note: previous declaration as 'int i'
   10 |   int i = 0;
      |       ^
vex.cc:10:7: warning: unused variable 'i' [-Wunused-variable]



Clang, EDG and MSVC all compile this.

Reply via email to