[Bug c++/25390] gcc-4.1.0: Invalid warning: control reaches end of non-void function
pmladek at suse dot cz
gcc-bugzilla@gcc.gnu.org
Tue Dec 13 13:09:00 GMT 2005
------- Comment #1 from pmladek at suse dot cz 2005-12-13 13:08 -------
First, I am sorry for the first empty message. I pressed enter too fast.
Well, I have got an invalid warning: control reaches end of non-void function
with gcc-4.1.0-pre
The reduced testcase looks like:
--- cut ---
namespace store
{
class OStoreFile
{
public:inline OStoreFile (void) {};
inline ~ OStoreFile (void) {};
};
}
using namespace store;
int test (int i1, int i2)
{
OStoreFile rRegFile;
if (i2)
{
switch (i2)
{
case 1:
return 1;
break;
case 2:
return 2;
break;
default:
return 0;
break;
}
}
else
{
if (i2 == 10)
return 2;
else
return 3;
}
}
--- cut ---
Here is the output from g++:
hope:/tmp/gcc.bug # g++ -c -Wall test.ii
test.ii: In function ‘int test(int, int)’:
test.ii:37: warning: control reaches end of non-void function
hope:/tmp/gcc.bug # g++ --version
g++ (GCC) 4.1.0 20051129 (prerelease) (SUSE Linux)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The warning should not be printed because a value is returned in each case.
It seems that the variable OStoreFile rRegFile; is important to reproduce the
problem.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25390
More information about the Gcc-bugs
mailing list