[Bug c++/106395] New: [10/11 regression] [mingw] "redeclared without dllimport attribute: previous dllimport ignored" on C++ friend

thiago at kde dot org gcc-bugzilla@gcc.gnu.org
Thu Jul 21 21:17:57 GMT 2022


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

            Bug ID: 106395
           Summary: [10/11 regression] [mingw] "redeclared without
                    dllimport attribute: previous dllimport ignored" on
                    C++ friend
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: thiago at kde dot org
  Target Milestone: ---

__attribute__((dllimport)) void f();
class S
{
private:
    int i;
    friend __attribute__((dllimport)) void f();
};

With GCC 10.3.0 (OpenSUSE Tumbleweed):
$ x86_64-w64-mingw32-gcc -c -Werror /tmp/test.cpp        

With GCC 11.2.1 (Fedora 35 & 36):
$ x86_64-w64-mingw32-gcc -Wall -Wextra -Werror -c /tmp/test.cpp

With GCC 12.1.0 (Arch Linux, self built):
$ x86_64-w64-mingw32-g++ -Werror -c /tmp/test.cpp
/tmp/test.cpp:6:44: error: ‘void f()’ redeclared without dllimport attribute:
previous dllimport ignored [-Werror=attributes]
    6 |     friend __attribute__((dllimport)) void f();
      |                                            ^
cc1plus: all warnings being treated as errors

GCC 12 is obviously wrong because it is complaining that the attribute is
missing and then shows that the attribute is right there.


More information about the Gcc-bugs mailing list