From 87ce5d1cb99094fc7ffb42e0522da4e7bab403f8 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Mon, 3 Dec 2007 22:25:42 +0000 Subject: [PATCH] Fixed a bug exposed by referencing an ivar field using component reference syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44553 91177308-0d34-0410-b5e6-96231b3b80d8 --- Driver/RewriteTest.cpp | 4 +++- test/Sema/undef-field-reference-1.m | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 test/Sema/undef-field-reference-1.m diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp index b17f32bd14..a749284fa3 100644 --- a/Driver/RewriteTest.cpp +++ b/Driver/RewriteTest.cpp @@ -593,7 +593,9 @@ void RewriteTest::RewriteInterfaceDecl(ObjcInterfaceDecl *ClassDecl) { ResultStr += "#define _REWRITER_typedef_"; ResultStr += ClassDecl->getName(); ResultStr += "\n"; - ResultStr += "typedef struct objc_object "; + ResultStr += "typedef struct "; + ResultStr += ClassDecl->getName(); + ResultStr += " "; ResultStr += ClassDecl->getName(); ResultStr += ";\n#endif\n"; diff --git a/test/Sema/undef-field-reference-1.m b/test/Sema/undef-field-reference-1.m new file mode 100644 index 0000000000..485188b649 --- /dev/null +++ b/test/Sema/undef-field-reference-1.m @@ -0,0 +1,17 @@ +// RUN: clang -rewrite-test %s | clang + +#include + +@interface MyDerived +{ +@public + int IVAR; +} +@end + +MyDerived *pd; +int main() { + return pd->IVAR; +} + + -- 2.50.1