Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaObjC/protocols.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 -Wno-deprecated-declarations -verify %s @interface INTF1 @required // expected-error {{directive may only be specified in protocols only}} - (int) FooBar; - (int) FooBar1; - (int) FooBar2; @optional // expected-error {{directive may only be specified in protocols only}} + (int) C; - (int)I; @end @protocol p1,p2,p3; @protocol p1; @protocol PROTO1 @required - (int) FooBar; @optional - (void) MyMethod1; + (int) S; @end @protocol PROTO2<p1> @end @protocol p1 @end @protocol PROTO<p1> // expected-note {{previous definition is here}} @end @protocol PROTO<p1> // expected-warning {{duplicate protocol definition of 'PROTO'}} @end @protocol PROTO3<p1, p1> @end @protocol p2 <p1> @end @protocol PROTO4 <p1, p2, PROTO, PROTO3, p3> @end // rdar://6771034 @protocol XX; @protocol YY <XX> // Use of declaration of XX here should not cause a warning. - zz; @end // Detect circular dependencies. @protocol B; @protocol C < B > // expected-note{{previous definition is here}} @end @protocol A < C > @end @protocol B < A > // expected-error{{protocol has circular dependency}} @end @protocol P - (int)test:(int)param, ..; // expected-warning{{type specifier missing}} \ // expected-error{{expected ';' after method prototype}} @end