On Jun 23, 2011, at 11:26 PM, Chad Rosier wrote:

> Fariborz,
> I applied the below changes in an attempt to resolve the buildbot failures.  
> If these aren't correct please make the necessary changes.

Looks good. I changed the diagnostic yesterday and neglected objc.dg tests. 
Thanks for fixing it.

- Fariborz

> 
> Chad
> 
> ------------------------------------------------------------------------
> r133788 | mcrosier | 2011-06-23 22:50:14 -0700 (Thu, 23 Jun 2011) | 1 line
> 
> Attempt to fix regression from r133773.
> ------------------------------------------------------------------------
> Index: src/objc.dg/super-class-4.m
> ===================================================================
> --- src/objc.dg/super-class-4.m       (revision 133787)
> +++ src/objc.dg/super-class-4.m       (revision 133788)
> @@ -5,7 +5,7 @@
> 
> #include <objc/Object.h>
> 
> -@class MyWpModule;
> +@class MyWpModule; /* { dg-error "forward class is declared here" } */
> 
> @compatibility_alias MyObject Object;
> @compatibility_alias FictitiousModule MyWpModule;
> @@ -18,11 +18,11 @@
> - (id) meth2;
> @end
> 
> -@interface FunnyModule: FictitiousModule <Img> /* { dg-error ".MyWpModule., 
> superclass of .FunnyModule." } */
> +@interface FunnyModule: FictitiousModule <Img> /* { dg-error "attempting to 
> use the forward class 'MyWpModule' as superclass of 'FunnyModule'" } */
> - (id) meth2;
> @end
> 
> -@interface MyProjWpModule : MyWpModule <MySelTarget, Img> /* { dg-error 
> ".MyWpModule., superclass of .MyProjWpModule." } */ {
> +@interface MyProjWpModule : MyWpModule <MySelTarget, Img> /* { dg-error 
> "attempting to use the forward class 'MyWpModule' as superclass of 
> 'MyProjWpModule'" } */ {
>   id i1, i2;
> }
> - (id) meth1;
> 
> 
> On Jun 23, 2011, at 7:10 PM, Chad Rosier wrote:
> 
>> Fariborz,
>> One of our internal builds is failing due to an error in the gccTestSuite 
>> (see below for errors).  Would you mind checking on this?  
>> 
>> Regards,
>> Chad
>> 
>> Test Run By mcrosier on Thu Jun 23 19:03:40 2011
>> Native configuration is i386-apple-darwin10
>> 
>>               === objc tests ===
>> 
>> Schedule of variations:
>>   unix
>> 
>> Running target unix
>> Using /usr/share/dejagnu/baseboards/unix.exp as board description file for 
>> target.
>> Using /usr/share/dejagnu/config/unix.exp as generic interface file for 
>> target.
>> Using /Users/mcrosier/clang-gcc-4_2-testsuite/src/config/default.exp as 
>> tool-and-target-specific interface file.
>> Running /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/dg.exp ...
>> set_ld_library_path_env_vars: ld_library_path=.:
>> Executing on host: /Users/mcrosier/llvm-clean/install/bin/clang 
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m    -S  
>> -o super-class-4.s    (timeout = 300)
>> spawn /Users/mcrosier/llvm-clean/install/bin/clang 
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m -S -o 
>> super-class-4.s
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:21:25: 
>> error: attempting to use the forward class 'MyWpModule' as superclass of 
>> 'FunnyModule'
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:8:1: 
>> note: forward class is declared here
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:25:29: 
>> error: attempting to use the forward class 'MyWpModule' as superclass of 
>> 'MyProjWpModule'
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:8:1: 
>> note: forward class is declared here
>> compiler exited with status 1
>> output is:
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:21:25: 
>> error: attempting to use the forward class 'MyWpModule' as superclass of 
>> 'FunnyModule'
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:8:1: 
>> note: forward class is declared here
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:25:29: 
>> error: attempting to use the forward class 'MyWpModule' as superclass of 
>> 'MyProjWpModule'
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:8:1: 
>> note: forward class is declared here
>> 
>> FAIL: objc.dg/super-class-4.m  (test for errors, line 21)
>> FAIL: objc.dg/super-class-4.m  (test for errors, line 25)
>> FAIL: objc.dg/super-class-4.m (test for excess errors)
>> Excess errors:
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:21:25: 
>> error: attempting to use the forward class 'MyWpModule' as superclass of 
>> 'FunnyModule'
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:8:1: 
>> note: forward class is declared here
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:25:29: 
>> error: attempting to use the forward class 'MyWpModule' as superclass of 
>> 'MyProjWpModule'
>> /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/super-class-4.m:8:1: 
>> note: forward class is declared here
>> 
>> testcase /Users/mcrosier/clang-gcc-4_2-testsuite/src/objc.dg/dg.exp 
>> completed in 0 seconds
>> 
>>               === objc Summary ===
>> 
>> # of unexpected failures        3
>> Executing on host: /Users/mcrosier/llvm-clean/install/bin/clang -v    
>> (timeout = 300)
>> spawn /Users/mcrosier/llvm-clean/install/bin/clang -v
>> clang version 3.0 (trunk 133781)
>> Target: x86_64-apple-darwin10.7.0
>> Thread model: posix
>> /Users/mcrosier/llvm-clean/install/bin/clang  version 3.0 (trunk 133781)
>> 
>> 
>> On Jun 23, 2011, at 4:16 PM, Fariborz Jahanian wrote:
>> 
>>> Author: fjahanian
>>> Date: Thu Jun 23 18:16:19 2011
>>> New Revision: 133773
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=133773&view=rev
>>> Log:
>>> When forming a cycle in objc's inheritance hierarchy,
>>> diagnose it properly and don't throw clang into an
>>> infinit loop. // rdar://9653341
>>> 
>>> Modified:
>>>  cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>>>  cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>>>  cfe/trunk/test/SemaObjC/class-proto-1.m
>>>  cfe/trunk/test/SemaObjC/forward-class-1.m
>>>  cfe/trunk/test/SemaObjC/undef-superclass-1.m
>>> 
>>> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>>> URL: 
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=133773&r1=133772&r2=133773&view=diff
>>> ==============================================================================
>>> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
>>> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Thu Jun 23 
>>> 18:16:19 2011
>>> @@ -330,6 +330,8 @@
>>> "duplicate interface definition for class %0">;
>>> def err_undef_superclass : Error<
>>> "cannot find interface declaration for %0, superclass of %1">;
>>> +def err_forward_superclass : Error<
>>> +  "attempting to use the forward class %0 as superclass of %1">;
>>> def err_no_nsconstant_string_class : Error<
>>> "cannot find interface declaration for %0">;
>>> def err_recursive_superclass : Error<
>>> 
>>> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>>> URL: 
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=133773&r1=133772&r2=133773&view=diff
>>> ==============================================================================
>>> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
>>> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Thu Jun 23 18:16:19 2011
>>> @@ -491,10 +491,13 @@
>>>       if (!SuperClassDecl)
>>>         Diag(SuperLoc, diag::err_undef_superclass)
>>>           << SuperName << ClassName << SourceRange(AtInterfaceLoc, 
>>> ClassLoc);
>>> -        else if (SuperClassDecl->isForwardDecl())
>>> -          Diag(SuperLoc, diag::err_undef_superclass)
>>> +        else if (SuperClassDecl->isForwardDecl()) {
>>> +          Diag(SuperLoc, diag::err_forward_superclass)
>>>           << SuperClassDecl->getDeclName() << ClassName
>>>           << SourceRange(AtInterfaceLoc, ClassLoc);
>>> +          Diag(SuperClassDecl->getLocation(), diag::note_forward_class);
>>> +          SuperClassDecl = 0;
>>> +        }
>>>     }
>>>     IDecl->setSuperClass(SuperClassDecl);
>>>     IDecl->setSuperClassLoc(SuperLoc);
>>> 
>>> Modified: cfe/trunk/test/SemaObjC/class-proto-1.m
>>> URL: 
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/class-proto-1.m?rev=133773&r1=133772&r2=133773&view=diff
>>> ==============================================================================
>>> --- cfe/trunk/test/SemaObjC/class-proto-1.m (original)
>>> +++ cfe/trunk/test/SemaObjC/class-proto-1.m Thu Jun 23 18:16:19 2011
>>> @@ -23,9 +23,9 @@
>>> 
>>> @interface E2 <p1,p2,p3> @end  // expected-warning {{cannot find protocol 
>>> definition for 'p3'}}
>>> 
>>> -@class U1, U2;
>>> +@class U1, U2; // expected-note {{forward class is declared here}}
>>> 
>>> -@interface E3 : U1 @end // expected-error {{cannot find interface 
>>> declaration for 'U1', superclass of 'E3'}}
>>> +@interface E3 : U1 @end // expected-error {{attempting to use the forward 
>>> class 'U1' as superclass of 'E3'}}
>>> 
>>> 
>>> @interface I3 : E3  @end
>>> 
>>> Modified: cfe/trunk/test/SemaObjC/forward-class-1.m
>>> URL: 
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/forward-class-1.m?rev=133773&r1=133772&r2=133773&view=diff
>>> ==============================================================================
>>> --- cfe/trunk/test/SemaObjC/forward-class-1.m (original)
>>> +++ cfe/trunk/test/SemaObjC/forward-class-1.m Thu Jun 23 18:16:19 2011
>>> @@ -1,9 +1,9 @@
>>> // RUN: %clang_cc1 -fsyntax-only -verify %s
>>> 
>>> -@class FOO, BAR;
>>> +@class FOO, BAR; // expected-note {{forward class is declared here}}
>>> @class FOO, BAR;
>>> 
>>> -@interface INTF : FOO      // expected-error {{cannot find interface 
>>> declaration for 'FOO', superclass of 'INTF'}}
>>> +@interface INTF : FOO      // expected-error {{attempting to use the 
>>> forward class 'FOO' as superclass of 'INTF'}}
>>> @end
>>> 
>>> @interface FOO 
>>> @@ -45,3 +45,14 @@
>>> @end
>>> 
>>> 
>>> +// rdar://9653341
>>> +@class B; // expected-note {{forward class is declared here}}
>>> +@interface A : B {} // expected-error {{attempting to use the forward 
>>> class 'B' as superclass of 'A'}}
>>> +@end
>>> +
>>> +@interface B : A {}
>>> +@end
>>> +
>>> +@implementation A @end
>>> +@implementation B @end
>>> +
>>> 
>>> Modified: cfe/trunk/test/SemaObjC/undef-superclass-1.m
>>> URL: 
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/undef-superclass-1.m?rev=133773&r1=133772&r2=133773&view=diff
>>> ==============================================================================
>>> --- cfe/trunk/test/SemaObjC/undef-superclass-1.m (original)
>>> +++ cfe/trunk/test/SemaObjC/undef-superclass-1.m Thu Jun 23 18:16:19 2011
>>> @@ -1,8 +1,8 @@
>>> // RUN: %clang_cc1 -fsyntax-only -verify %s
>>> 
>>> -@class SUPER, Y;
>>> +@class SUPER, Y; // expected-note 2 {{forward class is declared here}}
>>> 
>>> -@interface INTF :SUPER  // expected-error {{cannot find interface 
>>> declaration for 'SUPER', superclass of 'INTF'}}
>>> +@interface INTF :SUPER  // expected-error {{attempting to use the forward 
>>> class 'SUPER' as superclass of 'INTF'}}
>>> @end
>>> 
>>> @interface SUPER @end
>>> @@ -13,7 +13,7 @@
>>> @interface INTF2 : INTF1
>>> @end
>>> 
>>> -@interface INTF3 : Y // expected-error {{cannot find interface declaration 
>>> for 'Y', superclass of 'INTF3'}} \
>>> +@interface INTF3 : Y // expected-error {{attempting to use the forward 
>>> class 'Y' as superclass of 'INTF3'}} \
>>>                    // expected-note{{'INTF3' declared here}}
>>> @end
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> cfe-commits mailing list
>>> [email protected]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> [email protected]
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to