Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaObjC/id.m @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
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}} }