http://llvm.org/bugs/show_bug.cgi?id=10791
Summary: Full ObjCInterfaceDecl declaration in header without
import
Product: clang
Version: trunk
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: -New Bugs
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Created an attachment (id=7162)
--> (http://llvm.org/bugs/attachment.cgi?id=7162)
Archived mentioned in description files
When in .h file class is forward declared and in .m file class is imported,
full ObjCInterfaceDecl declaration is available in forward declaration
ObjCClassDecl.
Not sure if it is a bug, I've expected different from actual result.
STEPS TO REPRODUCE:
1) Build AST for foo.m, where files are like these (files are attached):
// imported_class.h
#import <objc/Object.h>
@interface ImportedClass : Object {}
@end
// imported_class.m
#import "imported_class.h"
@implementation ImportedClass
@end
// foo.h
#import <objc/Object.h>
@class ImportedClass;
@interface Foo : Object {
ImportedClass *var;
}
@end
// foo.m
#import "foo.h"
#import "imported_class.h"
@implementation Foo
@end
2) Observe ObjCClassDecl for @class ImportedClass; in foo.h
ACTUAL RESULT:
ObjCClassDecl contains ObjCInterfaceDecl, which is not isForwardDecl(), has
LocStart, LocEnd pointing to imported_class.h
EXPECTED RESULT:
ObjCClassDecl should contain isForwardDecl() ObjCInterfaceDecl with LocStart
pointing to foo.h.
I think it should be expected because in foo.h ImportedClass isn't imported and
full declaration isn't visible.
Build & Platform:
Build from r138705 from trunk on Mac OS X 10.6.8. Though it doesn't look like
the issue is OS-specific.
--
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