[Bug objc/47784] New: Internal compiler error in dot notation assignment of const value

cjwl at objc dot net gcc-bugzilla@gcc.gnu.org
Thu Feb 17 15:08:00 GMT 2011


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

           Summary: Internal compiler error in dot notation assignment of
                    const value
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: objc
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: cjwl@objc.net


Using the new Objective-C 2.0 dot notation syntax, assigning a property with a
'const' value causes an internal compiler error, this is with gcc 4.6.0 SVN
trunk r170061. Built for arm-linux-eabi on OS X 10.6. It doesn't appear to be
anything particular to arm though.

This is a reduced example which triggers the bug, usage of 'const' is the
trigger:

typedef struct {
 float x;
} SomeType;

@interface SomeClass

@property(assign,readwrite) SomeType position;

@end

@implementation SomeClass

-(void)example {
// Error only happens when const is used

   const SomeType SomeTypeZero = {0.0f};

   self.position= SomeTypeZero;
}

@end


This is the compiler error:


main.m: In function '-[SomeClass example]':
main.m:19:4: error: assignment of read-only variable '__objc_property_temp'
main.m:19:4: internal compiler error: tree check: expected class 'expression',
have 'exceptional' (error_mark) in objc_maybe_build_modify_expr, at
objc/objc-act.c:1976
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

It appears a temporary variable is given the same type as the right hand side
and it's all downhill from there. I don't have a fix for this.



More information about the Gcc-bugs mailing list