http://llvm.org/bugs/show_bug.cgi?id=4431
Summary: Can't declare a property as an alias of another.
Product: clang
Version: unspecified
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Keywords: compile-fail
Severity: normal
Priority: P2
Component: Basic
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
If I declare two properties and synthesize both to the same instance variable,
clang will report an error. The error is of the form 'synthesized properties %0
and %1 both claim ivar %2' (and is called error_duplicate_ivar_use internally).
I am using this heavily in my current project to interface with legacy code.
For example,
@interface Person : NSObject {
NSString* first_name;
}
@property (nonatomic,retain) NSString* first_name;
@property (nonatomic,retain) NSString* firstName; // New Style alias
@end
@implementation Person
@synthesize firstName=first_name, first_name;
@end
The goal here is that older code in the (large) codebase uses the first_name
accessor or in some places is dependent on database column names. At some point
these will be cleaned out but for the foreseeable future I would like to keep
first_name available. However, it is not the proper style so for new code I'd
like to be able to reference firstName. This has been allowed in GCC through
4.2 and is only an error in Clang.
I'm happy to provide a patch to change this (it's trivial) but I wanted to see
people's opinions first. Is this a dangerous 'feature' ? I couldn't find
anything in the (admittedly limited) Objective C 2.0 reference to decide either
way.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs