Bug 161529

Summary: Internal compiler error when compiling GNUstep Base.
Product: [Fedora] Fedora Reporter: Jonathan Fischer <jfischer>
Component: gcc4Assignee: Jakub Jelinek <jakub>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: dries, pauljohn
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-07-06 20:13:56 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Preprocessed source code that causes the internal compiler error. none

Description Jonathan Fischer 2005-06-23 23:20:35 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050524 Fedora/1.0.4-4 Firefox/1.0.4

Description of problem:
When attempting to compile GNUstep using GCC 4 on Fedora Core 4, I get an internal compiler error.  The output from the error is below, in the "Actual Results" field.

Version-Release number of selected component (if applicable):
gcc-objc-4.0.0-8

How reproducible:
Always

Steps to Reproduce:
1.  Using the packaged gnustep-startup from http://www.gnustep.org/, run InstallGNUstep to build & install the product.

  

Actual Results:  mframe.m: In function mframe_decode_return:
mframe.m:1579: warning: pointer targets in passing argument 2 of NSGetSizeAndAlignment differ in signedness
mframe.m:1711: internal compiler error: in assign_stack_temp_for_type, at function.c:605
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/cctt7NR7.out file, please attach this to your bugreport.


Expected Results:  No internal errors.

Additional info:

Comment 1 Jonathan Fischer 2005-06-23 23:23:13 UTC
Created attachment 115908 [details]
Preprocessed source code that causes the internal compiler error.

Comment 2 Dries Verachtert 2005-07-06 19:51:12 UTC
The following in a .c file is enough to get the ICE (it's a part from 
gnustep-base): 
 
 
 
void mframe_decode_return (const char *type, void* buffer, void* retframe) { 
  int size = 1; 
  typedef struct { 
    char  val[size]; 
  } block; 
  inline block retframe_block(void *rframe) 
  { 
    __builtin_return (rframe); 
  } 
  *(block*)buffer = retframe_block(retframe); 
} 
 

Comment 3 Dries Verachtert 2005-07-06 19:54:13 UTC
You get an internal compiler error on: 
gcc4 (GCC) 4.0.0 20050406 (Red Hat 4.0.0-0.41.fc3)           (fc3) 
gcc (GCC) 4.0.0 20050519 (Red Hat 4.0.0-8)                   (fc4 x86-64) 
 
But not on: 
gcc33 (GCC) 3.3.4 20040817 (Red Hat Linux 3.3.4-2)           (fc3) 
gcc32 (GCC) 3.2.3 20030422 (Red Hat Linux 3.2.3-6)           (fc3) 

Comment 4 Jakub Jelinek 2005-07-06 20:13:56 UTC
That's a known problem, and actually not a regression, it is enough to make
small changes to the source and older GCCs will fail the same way.
Nested functions never played well with VLA return types.

Comment 5 Paul Johnson 2005-07-08 18:18:56 UTC
*** Bug 162782 has been marked as a duplicate of this bug. ***

Comment 6 Paul Johnson 2005-07-13 17:48:59 UTC
Hello, Jakub!

When you closed this as "closed upstream," I thought you meant that gcc in
rawhide would be fixed. But I just installed gcc-4.0.1-2 from fedora-devel and I
get the same error compiling mframe.m in the Swarm Simulation libraries.  We
have a copy of mframe.m from GNUstep in there, and that's why you see us
traveling along with GNUstep bugs.  

Can you tell us when/if this bug will be fixed?  




Comment 7 Jakub Jelinek 2005-07-13 17:50:48 UTC
Closing UPSTREAM doesn't mean necessarily the bug is fixed, but that it is
tracked upstream.  When it is fixed upstream, the fix will be propagated to
rawhide.