亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? class-protocol-1.mm

?? linux下編程用 編譯軟件
?? MM
字號:
/* Check Class <protocol> types *//* Author: David Ayers <d.ayers@inode.at> *//* { dg-do compile } */#include <objc/objc.h>#include <objc/objc-api.h>@protocol MyProto1+(void)doItClass1;-(void)doItInstance1;@end@protocol MyProto2+(void)doItClass2;-(void)doItInstance2;@end@interface MyClass1 <MyProto1>{  Class isa;}@end@implementation MyClass1+(void)doItClass1{}-(void)doItInstance1{}@end@interface MyClass2 : MyClass1 <MyProto2>@end@implementation MyClass2+(void)doItClass2{}-(void)doItInstance2{}@end@interface MyClass3{  Class isa;}@end@interface MyClass4 : MyClass3 <MyProto1>@end/*----------------------------------------*/Class cls = 0;Class <MyProto1> clsP1 = 0;Class <MyProto2> clsP2 = 0;voidtestSimple(void){  [cls doItClass1];  [cls doItInstance1];  [cls doItClass2];  [cls doItInstance2];  [clsP1 doItClass1];  [clsP1 doItInstance1]; /* { dg-warning "instead of" }  */  [clsP1 doItClass2];    /* { dg-warning "not found in protocol" } */  [clsP1 doItInstance2]; /* { dg-warning "not found in protocol" } */  [clsP2 doItClass1];    /* { dg-warning "not found in protocol" } */  [clsP2 doItInstance1]; /* { dg-warning "not found in protocol" } */  [clsP2 doItClass2];  [clsP2 doItInstance2]; /* { dg-warning "instead of" }  */  [MyClass1 doItClass1];  [MyClass1 doItInstance1];  [MyClass1 doItClass2];    /* { dg-warning "may not respond to" } */  [MyClass1 doItInstance2]; /* { dg-warning "may not respond to" } */  [MyClass2 doItClass1];  [MyClass2 doItInstance1];  [MyClass2 doItClass2];  [MyClass2 doItInstance2]; /* { dg-warning "may not respond to" } */  [MyClass3 doItClass1];    /* { dg-warning "may not respond to" } */  [MyClass3 doItInstance1]; /* { dg-warning "may not respond to" } */  [MyClass4 doItClass1];  [MyClass4 doItInstance1]; /* { dg-warning "may not respond to" } */}/*----------------------------------------*//* Protocols declared by categories */@protocol MyProto3+(void)doItClass3;-(void)doItInstance3;@end@protocol MyProto4+(void)doItClass4;-(void)doItInstance4;@end@interface MyClass1 (Category1) <MyProto3>@end@interface MyClass2 (Category2) <MyProto4>@endvoidtestCategory(void){  [cls doItClass3];  [cls doItInstance3];  [cls doItClass4];  [cls doItInstance4];  [MyClass1 doItClass3];  [MyClass1 doItInstance3];  [MyClass1 doItClass4];    /* { dg-warning "may not respond" } */  [MyClass1 doItInstance4]; /* { dg-warning "may not respond" } */  [MyClass2 doItClass3];  [MyClass2 doItInstance3];  [MyClass2 doItClass4];  [MyClass2 doItInstance4]; /* { dg-warning "may not respond" } */}/*----------------------------------------*//* Inherited protocols declared by categories */@protocol MyProto5 <MyProto1>+(void)doItClass5;-(void)doItInstance5;@end@protocol MyProto6 <MyProto2>+(void)doItClass6;-(void)doItInstance6;@end@interface MyClass1 (Category3) <MyProto5>@end@interface MyClass2 (Category4) <MyProto6>@endClass <MyProto5> clsP5 = 0;Class <MyProto6> clsP6 = 0;voidtestCategoryInherited(void){  [cls doItClass5];  [cls doItInstance5];  [cls doItClass6];  [cls doItInstance6];  [clsP5 doItClass1];  [clsP5 doItInstance1]; /* { dg-warning "instead of" }  */  [clsP5 doItClass2];    /* { dg-warning "not found in protocol" } */  [clsP5 doItInstance2]; /* { dg-warning "not found in protocol" } */  [clsP6 doItClass1];    /* { dg-warning "not found in protocol" } */  [clsP6 doItInstance1]; /* { dg-warning "not found in protocol" } */  [clsP6 doItClass2];  [clsP6 doItInstance2]; /* { dg-warning "instead of" }  */  [MyClass1 doItClass5];  [MyClass1 doItInstance5];  [MyClass1 doItClass6];    /* { dg-warning "may not respond" } */  [MyClass1 doItInstance6]; /* { dg-warning "may not respond" } */  [MyClass2 doItClass5];  [MyClass2 doItInstance5];  [MyClass2 doItClass6];  [MyClass2 doItInstance6]; /* { dg-warning "may not respond" } */}/*----------------------------------------*//* Forward declared root protocols */@protocol FwProto;@interface MyClass1 (Forward) <FwProto>@endClass <FwProto> clsP7 = 0;voidtestForwardeDeclared1(void){  [cls doItClass7];         /* { dg-warning "no .\\+doItClass7. method found" } */  [cls doItInstance7];      /* { dg-warning "no .\\+doItInstance7. method found" } */  [clsP7 doItClass7];       /* { dg-warning "not found in protocol" } */  /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } 190 } */  [clsP7 doItInstance7];    /* { dg-warning "not found in protocol" } */  /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } 192 } */  [MyClass1 doItClass7];    /* { dg-warning "may not respond" } */  [MyClass1 doItInstance7]; /* { dg-warning "may not respond" } */  [MyClass2 doItClass7];    /* { dg-warning "may not respond" } */  [MyClass2 doItInstance7]; /* { dg-warning "may not respond" } */}@protocol FwProto+(void)doItClass7;-(void)doItInstance7;@endvoidtestForwardeDeclared2(void){  [cls doItClass7];  [cls doItInstance7];  [clsP7 doItClass7];      [clsP7 doItInstance7]; /* { dg-warning "instead of" }  */  [MyClass1 doItClass7];  [MyClass1 doItInstance7];  [MyClass2 doItClass7];  [MyClass2 doItInstance7];}/*----------------------------------------*//* Inherited non root protocols */@protocol MyProto8+(void)doItClass8;-(void)doItInstance8;@end@protocol MyProto9 <MyProto8>+(void)doItClass9;-(void)doItInstance9;@end@interface MyClass1 (InheritedNonRoot) <MyProto9>@endClass <MyProto8> clsP8 = 0;Class <MyProto9> clsP9 = 0;voidtestInheritedNonRoot(void){  [cls doItClass8];  [cls doItInstance8];  [cls doItClass9];  [cls doItInstance9];  [clsP8 doItClass8];  [clsP8 doItInstance8]; /* { dg-warning "instead of" }  */  [clsP8 doItClass9];    /* { dg-warning "not found in protocol" } */  [clsP8 doItInstance9]; /* { dg-warning "not found in protocol" } */  [clsP9 doItClass8];  [clsP9 doItInstance8]; /* { dg-warning "instead of" }  */  [clsP9 doItClass9];  [clsP9 doItInstance9]; /* { dg-warning "instead of" }  */  [MyClass1 doItClass8];  [MyClass1 doItInstance8];  [MyClass1 doItClass9];  [MyClass1 doItInstance9];  [MyClass2 doItClass8];  [MyClass2 doItInstance8];  [MyClass2 doItClass9];  [MyClass2 doItInstance9];  }/*----------------------------------------*//* Prototype mismatch  */@protocol MyOtherProto1+(id)doItClass1;-(id)doItInstance1;@end@interface MyOtherClass1 <MyOtherProto1>@endClass <MyOtherProto1> oclsP1;voidtestPrototypeMismatch(void){  id tmp1 = [oclsP1 doItClass1];  id tmp2 = [oclsP1 doItInstance1]; /* { dg-warning "instead of" }  */  [clsP1 doItClass1];  [clsP1 doItInstance1]; /* { dg-warning "instead of" }  */}id obj = nil;id <MyProto1> objP1 = nil;id <MyProto2> objP2 = nil;id <MyProto5> objP5 = nil;int num = 0;void *ptr = 0;MyClass1 *mc1 = nil;voidtestComptypes(void){  { /* id <protocol>, id <protocol>  */    objP1 == objP2;  /* { dg-warning "lacks a cast" } */    objP2 == objP1;  /* { dg-warning "lacks a cast" } */    objP1 == objP5;    objP5 == objP1;  }  { /* id <protocol>, SomeClass *  */    mc1 == objP1;    objP1 == mc1;    mc1 == objP2; /* { dg-warning "lacks a cast" } */    objP2 == mc1; /* { dg-warning "lacks a cast" } */  }  { /* id <protocol>, id  */    obj == objP1;    objP1 == obj;  }  { /* id <protocol>, Class  */    cls == objP1; /* { dg-warning "lacks a cast" } */    objP1 == cls; /* { dg-warning "lacks a cast" } */  }  { /* id <protocol>, non-ObjC  */    num == objP1; /* { dg-warning "between pointer" } */    objP1 == num; /* { dg-warning "between pointer" } */    ptr == objP1;    objP1 == ptr;  }  { /* Class <protocol>, Class <protocol> */    clsP1 == clsP2; /* { dg-warning "lacks a cast" } */    clsP2 == clsP1; /* { dg-warning "lacks a cast" } */    clsP1 == clsP5;    clsP5 == clsP1;  }  { /* Class <protocol>, SomeClass * */    mc1 == clsP1; /* { dg-warning "lacks a cast" } */    clsP1 == mc1; /* { dg-warning "lacks a cast" } */  }  { /* Class <protocol>, id */    obj == clsP1;    clsP1 == obj;  }  { /* Class <protocol>, Class */    cls == clsP1;    clsP1 == cls;  }  { /* Class <protocol>, non-ObjC */    num == clsP1; /* { dg-warning "between pointer" } */    clsP1 == num; /* { dg-warning "between pointer" } */    ptr == clsP1;    clsP1 == ptr;  }  { /* Class <protocol>, id <protocol> */    clsP1 == objP1; /* { dg-warning "lacks a cast" } */    objP1 == clsP1; /* { dg-warning "lacks a cast" } */  }  { /* id <protocol>, id <protocol>  */    objP1 = objP2; /* { dg-warning "does not conform" } */    objP2 = objP1; /* { dg-warning "does not conform" } */    objP1 = objP5;    objP5 = objP1; /* { dg-warning "does not conform" } */  }  { /* id <protocol>, SomeClass *  */    mc1 = objP1;    objP1 = mc1;    mc1 = objP2; /* { dg-warning "does not conform" } */    objP2 = mc1; /* { dg-warning "does not implement" } */  }  { /* id <protocol>, id  */    obj = objP1;    objP1 = obj;  }  { /* id <protocol>, Class  */    cls = objP1; /* { dg-warning "distinct Objective\\-C type" } */    objP1 = cls; /* { dg-warning "distinct Objective\\-C type" } */  }  { /* id <protocol>, non-ObjC  */    num = objP1; /* { dg-error "invalid conversion" } */    objP1 = num; /* { dg-error "invalid conversion" } */    ptr = objP1;    objP1 = ptr; /* { dg-error "invalid conversion" } */  }  { /* Class <protocol>, Class <protocol> */    clsP1 = clsP2; /* { dg-warning "does not conform" } */    clsP2 = clsP1; /* { dg-warning "does not conform" } */    clsP1 = clsP5;    clsP5 = clsP1; /* { dg-warning "does not conform" } */  }  { /* Class <protocol>, SomeClass * */    /* These combinations should always elicit a warning.  */    mc1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */    clsP1 = mc1; /* { dg-warning "distinct Objective\\-C type" } */        mc1 = clsP2; /* { dg-warning "distinct Objective\\-C type" } */    clsP2 = mc1; /* { dg-warning "distinct Objective\\-C type" } */  }  { /* Class <protocol>, id */    obj = clsP1;    clsP1 = obj;  }  { /* Class <protocol>, Class */    cls = clsP1;    clsP1 = cls;  }  { /* Class <protocol>, non-ObjC */    num = clsP1; /* { dg-error "invalid conversion" } */    clsP1 = num; /* { dg-error "invalid conversion" } */    ptr = clsP1;    clsP1 = ptr; /* { dg-error "invalid conversion" } */  }  { /* Class <protocol>, id <protocol> */    clsP1 = objP1; /* { dg-warning "distinct Objective\\-C type" } */    objP1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */  }}int main (){  testSimple();  testCategory();  testCategoryInherited();  return(0);}/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } *//* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } *//* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品午夜在线观看| 欧美日韩国产成人在线91 | 成人一区二区三区| 国产亚洲欧美在线| 成人综合婷婷国产精品久久免费| 国产女人aaa级久久久级| 成人免费视频视频在线观看免费| 国产精品成人一区二区三区夜夜夜| 99久久精品久久久久久清纯| |精品福利一区二区三区| 欧美伊人久久久久久午夜久久久久| 一区二区三区影院| 欧美日韩在线精品一区二区三区激情| 视频一区欧美精品| 精品国产一区二区在线观看| 国产成人a级片| 亚洲另类在线一区| 欧美一区二区久久久| 国产黄色精品视频| 一区二区在线电影| 日韩欧美高清在线| 成人免费视频免费观看| 亚洲第一搞黄网站| 26uuu亚洲综合色| 91麻豆高清视频| 免费成人美女在线观看| 国产片一区二区| 欧美日韩性生活| 丰满放荡岳乱妇91ww| 亚洲国产va精品久久久不卡综合| 欧美电视剧免费全集观看| 成人一区二区视频| 午夜精品视频一区| 国产精品免费观看视频| 欧美久久免费观看| 成人av网址在线| 日本91福利区| 亚洲精品中文在线影院| 精品国产3级a| 欧美日韩一本到| 不卡一区二区中文字幕| 日韩av一级电影| 亚洲色图一区二区三区| 精品国产乱码久久久久久久久| 91香蕉视频mp4| 国产一区二区精品久久91| 亚洲成人免费在线| 中文字幕在线观看不卡| 日韩视频中午一区| 欧美日韩一区二区三区在线看| 国产不卡免费视频| 久久爱www久久做| 亚洲成a人v欧美综合天堂下载| 欧美国产日韩a欧美在线观看| 日韩一区二区三区电影在线观看| 色哟哟一区二区三区| 国产精品一区二区91| 美女爽到高潮91| 亚洲成av人在线观看| 亚洲精品欧美激情| 中文字幕日韩一区二区| 国产欧美综合在线观看第十页| 日韩欧美在线观看一区二区三区| 欧美性生交片4| 在线免费亚洲电影| 一本色道亚洲精品aⅴ| 不卡视频免费播放| 成人av一区二区三区| 成人毛片老司机大片| 国产乱色国产精品免费视频| 九九**精品视频免费播放| 日韩成人免费看| 日韩av中文字幕一区二区三区| 一区二区三区91| 一区二区三区资源| 一区二区欧美在线观看| 亚洲码国产岛国毛片在线| 中文字幕日本不卡| 亚洲免费在线看| 一区二区三国产精华液| 亚洲国产精品久久一线不卡| 一区二区三区电影在线播| 一区二区三区在线免费视频| 一区二区三区毛片| 亚洲一区二区三区四区在线观看| 一区二区三区欧美| 亚洲妇熟xx妇色黄| 婷婷成人激情在线网| 美洲天堂一区二卡三卡四卡视频| 日本v片在线高清不卡在线观看| 麻豆成人免费电影| 国产一区二区三区视频在线播放| 国产精品一区专区| www.日韩在线| 在线视频综合导航| 91精品国产综合久久久久久久| 日韩视频不卡中文| 精品国产乱码久久久久久浪潮 | 免费成人小视频| 久久99国内精品| 国产成a人无v码亚洲福利| 99精品国产视频| 欧美日韩国产一二三| 日韩三级高清在线| 国产精品网站在线观看| 亚洲综合久久久| 麻豆91精品视频| 成人性生交大片免费看在线播放 | 天天综合色天天| 久久国产精品99久久人人澡| 福利一区福利二区| 欧美三级韩国三级日本一级| 欧美成人a∨高清免费观看| 国产欧美精品一区二区三区四区 | 麻豆精品在线看| 国产成人av一区二区| 欧美在线观看一二区| 日韩精品中文字幕一区二区三区| 日本一区二区动态图| 亚洲一区二区三区在线| 国产一区二区视频在线播放| 91视视频在线观看入口直接观看www | 理论电影国产精品| 99久久精品国产观看| 777色狠狠一区二区三区| 中文字幕国产一区二区| 亚洲国产你懂的| 成人激情免费视频| 欧美一区二区三区日韩视频| 亚洲欧美综合网| 久久99精品国产.久久久久| 日本乱人伦一区| 国产调教视频一区| 日日夜夜免费精品视频| 成人综合激情网| 日韩欧美久久久| 亚洲影院免费观看| 成人a免费在线看| 精品噜噜噜噜久久久久久久久试看 | 亚洲国产精华液网站w| 热久久一区二区| 色女孩综合影院| 国产精品日产欧美久久久久| 久久精品国产精品亚洲综合| 日本精品一区二区三区高清| 午夜精品福利久久久| www.日韩精品| 国产欧美日韩三区| 国产一区在线精品| 欧美一区二区在线观看| 亚洲成人在线免费| 在线欧美小视频| 亚洲欧美一区二区三区极速播放| 国产91精品露脸国语对白| 日韩欧美一级精品久久| 亚洲成av人在线观看| 91美女片黄在线| 国产精品免费久久久久| 国产激情91久久精品导航| 久久夜色精品国产欧美乱极品| 日本 国产 欧美色综合| 欧美精品777| 日韩福利视频网| 欧美福利视频一区| 日韩精品一二区| 欧美一区二区三区思思人| 日本中文一区二区三区| 91精品国产综合久久久久久| 亚洲成年人网站在线观看| 欧美日韩欧美一区二区| 亚洲二区在线观看| 欧美日本一区二区在线观看| 亚洲高清免费视频| 777久久久精品| 日韩黄色免费电影| 日韩欧美一二三区| 国产一区二区三区观看| 国产亚洲欧美一级| 99精品欧美一区二区三区小说 | 99久久伊人网影院| 亚洲天堂a在线| 色哟哟国产精品| 五月综合激情网| 日韩欧美色综合| 国产成人在线色| 亚洲女女做受ⅹxx高潮| 欧美日韩综合不卡| 欧美a级理论片| 国产视频一区二区在线| 97se亚洲国产综合自在线| 亚洲国产欧美日韩另类综合| 欧美一区二区三区电影| 国产激情视频一区二区三区欧美| 国产精品盗摄一区二区三区| 欧日韩精品视频| 久久精品999| 亚洲欧洲性图库| 在线观看91精品国产麻豆| 国模娜娜一区二区三区| 亚洲日本一区二区|