Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaObjC/id.m @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -verify %s @protocol Foo; Class T; id<Foo> S; id R; void foo() { // Test assignment compatibility of Class and id. No warning should be // produced. // rdar://6770142 - Class and id<foo> are compatible. S = T; // expected-warning {{incompatible pointer types assigning to 'id<Foo>' from 'Class'}} T = S; // expected-warning {{incompatible pointer types assigning to 'Class' from 'id<Foo>'}} R = T; T = R; R = S; S = R; } // Test attempt to redefine 'id' in an incompatible fashion. // rdar://11356439 typedef int id; // expected-error {{typedef redefinition with different types ('int' vs 'id')}} id b; typedef double id; // expected-error {{typedef redefinition with different types ('double' vs 'id')}} typedef char *id; // expected-error {{typedef redefinition with different types ('char *' vs 'id')}} typedef union U{ int iu; } *id; // expected-error {{typedef redefinition with different types ('union U *' vs 'id')}} void test11356439(id o) { o->x; // expected-error {{member reference base type 'id' is not a structure or union}} }