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:
Created attachment 115908 [details] Preprocessed source code that causes the internal compiler error.
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); }
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)
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.
*** Bug 162782 has been marked as a duplicate of this bug. ***
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?
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.