>From revision 144119:

struct _Impl_base
{
  _Impl_base() = default;

#if 1
  ~_Impl_base() = default;
#else
  ~_Impl_base() { }
#endif
};

_Impl_base::~_Impl_base() { }

int main()
{
  _Impl_base i;
  return 0;
}

compiled:
%COMP.sh "-std=c++0x -g -O2 -Wall -Wextra" default2.cc

Has no error, when:

default2.cc:12: error: redefinition of �_Impl_base::~_Impl_base()�
default2.cc:8: error: �_Impl_base::~_Impl_base()� previously defined here

Is expected. Code in #else should be equivalent to #if.


-- 
           Summary: defaulted dtor redefinition not caught
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: accepts-invalid
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bkoz at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39164

Reply via email to