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

            Bug ID: 86255
           Summary: addition of default argument on redeclaration makes
                    this constructor a default constructor
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhonghao at pku dot org.cn
  Target Milestone: ---

The code is as follow:

# 3 "bug3.cc"
class Z {
public:


 Z(int);

private:
 int i;
};
Z::Z(int j=43): i(j){}


int main()
{
 Z zobject=Z();

}

clang++ produces the following errors:
 bug3.cc:12:10: error: addition of default argument on redeclaration makes this
constructor a default constructor
    Z::Z(int j=43): i(j){}
             ^ ~~
    bug3.cc:7:2: note: previous declaration is here

The code comes from a gcc bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=2189

I reported the difference to clang:https://bugs.llvm.org/show_bug.cgi?id=37850

 Richard Smith told me that Clang's diagnostic is correct. So, is this a
recurring bug in g++?

Reply via email to