[Bug c++/59916] New: [4.9 Regression] constructors and destructors can cause "control reaches end of non-void function" warnings with -Os
Bernhard.Rosenkranzer at linaro dot org
gcc-bugzilla@gcc.gnu.org
Thu Jan 23 11:35:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59916
Bug ID: 59916
Summary: [4.9 Regression] constructors and destructors can
cause "control reaches end of non-void function"
warnings with -Os
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: Bernhard.Rosenkranzer at linaro dot org
Created attachment 31929
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31929&action=edit
test case
The following C++ code:
class A
{
};
class B : virtual public A
{
public:
B();
virtual ~B();
};
B::B()
{
}
B::~B()
{
}
causes an incorrect warning with current 4.9 git with -Os:
[bero@localhost gcc-test]$ arm-linux-androideabi-g++ -Werror=return-type -Os -o
test.o test.cpp
test.cpp: In constructor 'B::B()':
test.cpp:14:1: error: control reaches end of non-void function
[-Werror=return-type]
}
^
test.cpp: In constructor 'B::B()':
test.cpp:14:1: error: control reaches end of non-void function
[-Werror=return-type]
}
^
test.cpp: In destructor 'B::~B()':
test.cpp:18:1: error: control reaches end of non-void function
[-Werror=return-type]
}
^
test.cpp: In destructor 'virtual B::~B()':
test.cpp:18:1: error: control reaches end of non-void function
[-Werror=return-type]
}
^
cc1plus: some warnings being treated as errors
More information about the Gcc-bugs
mailing list