[Bug c++/55698] New: gcc does not report warning if operator not used : control reaches end of non-void function [-Wreturn-type]

maxim.prohorenko at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Dec 14 21:07:00 GMT 2012


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

             Bug #: 55698
           Summary: gcc does not report warning if operator not used :
                    control reaches end of non-void function
                    [-Wreturn-type]
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: maxim.prohorenko@gmail.com


Two unused functions, but only 1 warning report. But if comment "return 0;" in
main - 2 warnings.

gcc  -Wall -Wno-long-long -pedantic ../gcc_operator/main.cpp -o main.o
../gcc_operator/main.cpp: In function 'int f(double)':                          
../gcc_operator/main.cpp:5:1: warning: control reaches end of non-void function
[-Wreturn-type]                                                      

-- main.cpp --
int f (double x)
{
  if (x > 0 || x < 0)
    return 1;
}

struct value
{
  double x;

  int operator== (const value &a)
  {
    if (a.x < x || a.x > x)
      return 0;
  }
};

int main (int argc, char **argv)
{
  value a, b;

  return 0;
  return a == b;
}
-- cut --
gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)

yum info gcc
Loaded plugins: langpacks, presto, refresh-packagekit
Installed Packages
Name        : gcc
Arch        : x86_64
Version     : 4.7.2
Release     : 8.fc18
Size        : 32 M



More information about the Gcc-bugs mailing list