@interface O { } @end @protocol E @end
@class F; @interface G: O { } @end @interface F: O <E> { G *g; } -(id)bar:(G *)baz; @end @implementation F -(id)bar:(G *)baz { self->g = baz; return self; } @end ICEs with -fobjc-gc -fgnu-runtime (works without -fobjc-gc or with -fobjc-gc -fnext-runtime). Apparently objc_assign_ivar_fast_decl and objc_assign_ivar_decl are only initialized for next runtime, but are used unconditionally even for GNU runtime. -- Summary: ICE in objc_build_ivar_assignment Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: objc AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41108