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

📄 vrp14.c

📁 用于进行gcc测试
💻 C
字号:
/* { dg-do run } *//* { dg-options "-O2" } *//* { dg-require-effective-target int32plus } */struct tree_decl{  union tree_decl_u1 {    int f;    long i;    struct tree_decl_u1_a {      unsigned int align : 24;      unsigned int off_align : 8;    } a;  } u1;};extern void abort (void);unsigned intassemble_variable (struct tree_decl decl){  unsigned int align;  align = decl.u1.a.align;  if (align > (1 << ((8 * 4) < 64 ? (8 * 4) - 2 : 62)))    align = (1 << ((8 * 4) < 64 ? (8 * 4) - 2 : 62));  /* VRP should not be propagating 0 to the RHS of this assignment.     But it was erroneously applying a cast operation between types of     different precision.  align is an unsigned int with range [0,     0x4000000] but the .align field holds only 24 bits.  So the cast     was returning a [0, 0] range.  */  decl.u1.a.align = align;  return decl.u1.a.align;}main (){  struct tree_decl decl;  decl.u1.a.align = 13;  unsigned int x = assemble_variable (decl);  if (x == 0)    abort ();  return 0;}

⌨️ 快捷键说明

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