⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cast-bad.c

📁 用于进行gcc测试
💻 C
📖 第 1 页 / 共 2 页
字号:
/* { dg-do compile } *//* { dg-options "-std=gnu99" } *//* C99 6.5.4 Cast operators.   Test invalid casts involving fixed-point.  */#define CAST(NAME,TYPE) \  struct s ## NAME { TYPE NAME; } as ## NAME; \  union u ## NAME { TYPE NAME; } au ## NAME; \  TYPE NAME; \  TYPE * NAME ## p;CAST (sf, short _Fract)CAST (f, _Fract)CAST (lf, long _Fract)CAST (llf, long long _Fract)CAST (usf, unsigned short _Fract)CAST (uf, unsigned _Fract)CAST (ulf, unsigned long _Fract)CAST (ullf, unsigned long long _Fract)CAST (Ssf, _Sat short _Fract)CAST (Sf, _Sat _Fract)CAST (Slf, _Sat long _Fract)CAST (Sllf, _Sat long long _Fract)CAST (Susf, _Sat unsigned short _Fract)CAST (Suf, _Sat unsigned _Fract)CAST (Sulf, _Sat unsigned long _Fract)CAST (Sullf, _Sat unsigned long long _Fract)CAST (sa, short _Accum)CAST (a, _Accum)CAST (la, long _Accum)CAST (lla, long long _Accum)CAST (usa, unsigned short _Accum)CAST (ua, unsigned _Accum)CAST (ula, unsigned long _Accum)CAST (ulla, unsigned long long _Accum)CAST (Ssa, _Sat short _Accum)CAST (Sa, _Sat _Accum)CAST (Sla, _Sat long _Accum)CAST (Slla, _Sat long long _Accum)CAST (Susa, _Sat unsigned short _Accum)CAST (Sua, _Sat unsigned _Accum)CAST (Sula, _Sat unsigned long _Accum)CAST (Sulla, _Sat unsigned long long _Accum)voidtest (void){  (short _Fract []) sfp; /* { dg-error "cast specifies array type" } */  (_Fract []) fp; /* { dg-error "cast specifies array type" } */  (long _Fract []) lfp; /* { dg-error "cast specifies array type" } */  (long long _Fract []) llfp; /* { dg-error "cast specifies array type" } */  (unsigned short _Fract []) usfp; /* { dg-error "cast specifies array type" } */  (unsigned _Fract []) ufp; /* { dg-error "cast specifies array type" } */  (unsigned long _Fract []) ulfp; /* { dg-error "cast specifies array type" } */  (unsigned long long _Fract []) ullfp; /* { dg-error "cast specifies array type" } */  (_Sat short _Fract []) Ssfp; /* { dg-error "cast specifies array type" } */  (_Sat _Fract []) Sfp; /* { dg-error "cast specifies array type" } */  (_Sat long _Fract []) Slfp; /* { dg-error "cast specifies array type" } */  (_Sat long long _Fract []) Sllfp; /* { dg-error "cast specifies array type" } */  (_Sat unsigned short _Fract []) Susfp; /* { dg-error "cast specifies array type" } */  (_Sat unsigned _Fract []) Sufp; /* { dg-error "cast specifies array type" } */  (_Sat unsigned long _Fract []) Sulfp; /* { dg-error "cast specifies array type" } */  (_Sat unsigned long long _Fract []) Sullfp; /* { dg-error "cast specifies array type" } */  (short _Accum []) sap; /* { dg-error "cast specifies array type" } */  (_Accum []) ap; /* { dg-error "cast specifies array type" } */  (long _Accum []) lap; /* { dg-error "cast specifies array type" } */  (long long _Accum []) llap; /* { dg-error "cast specifies array type" } */  (unsigned short _Accum []) usap; /* { dg-error "cast specifies array type" } */  (unsigned _Accum []) uap; /* { dg-error "cast specifies array type" } */  (unsigned long _Accum []) ulap; /* { dg-error "cast specifies array type" } */  (unsigned long long _Accum []) ullap; /* { dg-error "cast specifies array type" } */  (_Sat short _Accum []) Ssap; /* { dg-error "cast specifies array type" } */  (_Sat _Accum []) Sap; /* { dg-error "cast specifies array type" } */  (_Sat long _Accum []) Slap; /* { dg-error "cast specifies array type" } */  (_Sat long long _Accum []) Sllap; /* { dg-error "cast specifies array type" } */  (_Sat unsigned short _Accum []) Susap; /* { dg-error "cast specifies array type" } */  (_Sat unsigned _Accum []) Suap; /* { dg-error "cast specifies array type" } */  (_Sat unsigned long _Accum []) Sulap; /* { dg-error "cast specifies array type" } */  (_Sat unsigned long long _Accum []) Sullap; /* { dg-error "cast specifies array type" } */  (short _Fract ()) sfp; /* { dg-error "cast specifies function type" } */  (_Fract ()) fp; /* { dg-error "cast specifies function type" } */  (long _Fract ()) lfp; /* { dg-error "cast specifies function type" } */  (long long _Fract ()) llfp; /* { dg-error "cast specifies function type" } */  (unsigned short _Fract ()) usfp; /* { dg-error "cast specifies function type" } */  (unsigned _Fract ()) ufp; /* { dg-error "cast specifies function type" } */  (unsigned long _Fract ()) ulfp; /* { dg-error "cast specifies function type" } */  (unsigned long long _Fract ()) ullfp; /* { dg-error "cast specifies function type" } */  (_Sat short _Fract ()) Ssfp; /* { dg-error "cast specifies function type" } */  (_Sat _Fract ()) Sfp; /* { dg-error "cast specifies function type" } */  (_Sat long _Fract ()) Slfp; /* { dg-error "cast specifies function type" } */  (_Sat long long _Fract ()) Sllfp; /* { dg-error "cast specifies function type" } */  (_Sat unsigned short _Fract ()) Susfp; /* { dg-error "cast specifies function type" } */  (_Sat unsigned _Fract ()) Sufp; /* { dg-error "cast specifies function type" } */  (_Sat unsigned long _Fract ()) Sulfp; /* { dg-error "cast specifies function type" } */  (_Sat unsigned long long _Fract ()) Sullfp; /* { dg-error "cast specifies function type" } */  (short _Accum ()) sap; /* { dg-error "cast specifies function type" } */  (_Accum ()) ap; /* { dg-error "cast specifies function type" } */  (long _Accum ()) lap; /* { dg-error "cast specifies function type" } */  (long long _Accum ()) llap; /* { dg-error "cast specifies function type" } */  (unsigned short _Accum ()) usap; /* { dg-error "cast specifies function type" } */  (unsigned _Accum ()) uap; /* { dg-error "cast specifies function type" } */  (unsigned long _Accum ()) ulap; /* { dg-error "cast specifies function type" } */  (unsigned long long _Accum ()) ullap; /* { dg-error "cast specifies function type" } */  (_Sat short _Accum ()) Ssap; /* { dg-error "cast specifies function type" } */  (_Sat _Accum ()) Sap; /* { dg-error "cast specifies function type" } */  (_Sat long _Accum ()) Slap; /* { dg-error "cast specifies function type" } */  (_Sat long long _Accum ()) Sllap; /* { dg-error "cast specifies function type" } */  (_Sat unsigned short _Accum ()) Susap; /* { dg-error "cast specifies function type" } */  (_Sat unsigned _Accum ()) Suap; /* { dg-error "cast specifies function type" } */  (_Sat unsigned long _Accum ()) Sulap; /* { dg-error "cast specifies function type" } */  (_Sat unsigned long long _Accum ()) Sullap; /* { dg-error "cast specifies function type" } */  (struct ssf) sf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sf) f; /* { dg-error "conversion to non-scalar type requested" } */  (struct slf) lf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sllf) llf; /* { dg-error "conversion to non-scalar type requested" } */  (struct susf) usf; /* { dg-error "conversion to non-scalar type requested" } */  (struct suf) uf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sulf) ulf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sullf) ullf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSsf) Ssf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSf) Sf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSlf) Slf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSllf) Sllf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSusf) Susf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSuf) Suf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSulf) Sulf; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSullf) Sullf; /* { dg-error "conversion to non-scalar type requested" } */  (struct ssa) sa; /* { dg-error "conversion to non-scalar type requested" } */  (struct sa) a; /* { dg-error "conversion to non-scalar type requested" } */  (struct sla) la; /* { dg-error "conversion to non-scalar type requested" } */  (struct slla) lla; /* { dg-error "conversion to non-scalar type requested" } */  (struct susa) usa; /* { dg-error "conversion to non-scalar type requested" } */  (struct sua) ua; /* { dg-error "conversion to non-scalar type requested" } */  (struct sula) ula; /* { dg-error "conversion to non-scalar type requested" } */  (struct sulla) ulla; /* { dg-error "conversion to non-scalar type requested" } */  (struct sSsa) Ssa; /* { dg-error "conversion to non-scalar type requested" } */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -