Public bug reported:

$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 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.

$ gcc test.c

$ gcc -O2 test.c
test.c: In function 'main':
test.c:6:1: internal compiler error: Illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
Preprocessed source stored into /tmp/ccYojEN6.out file, please attach this to
your bugreport.

$ cat test.c
int main (void)
{
  volatile int a;
  if (a == 42)
    return 1;
}

--------------------------------
If I add "return 0;" to the end of function - problem is fixed. I understand,
that program is not correct, but, as I think, gcc should not fail on that. It
seems, it is optimizer bug.

The problem does not appear in upstream (look at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54340 )

** Affects: gcc-4.6 (Ubuntu)
     Importance: Undecided
         Status: New

** Description changed:

  $ gcc --version
  gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
  Copyright (C) 2011 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.
  
  $ gcc test.c
  
- $ LANG=C gcc -O2 test.c 
+ $ gcc -O2 test.c
  test.c: In function 'main':
  test.c:6:1: internal compiler error: Illegal instruction
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
  Preprocessed source stored into /tmp/ccYojEN6.out file, please attach this to
  your bugreport.
  
- $ cat test.c 
+ $ cat test.c
  int main (void)
  {
-   volatile int a;
-   if (a == 42)
-     return 1;
+   volatile int a;
+   if (a == 42)
+     return 1;
  }
  
  --------------------------------
  If I add "return 0;" to the end of function - problem is fixed. I understand,
  that program is not correct, but, as I think, gcc should not fail on that. It
  seems, it is optimizer bug.
  
  The problem does not appear in upstream (look at
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54340 )

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1039401

Title:
   Illegal instruction (int main() returns nothing, only when -O2/-O3
  used)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.6/+bug/1039401/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to