Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.c-torture/compile/pr39845.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-options "-fno-short-enums" {target short_enums} } */ typedef union tree_node *tree; enum tree_code { EXCESS_PRECISION_EXPR }; enum built_in_function { BUILT_IN_ACOS, BUILT_IN_FPCLASSIFY, BUILT_IN_ISFINITE }; struct tree_base { __extension__ enum tree_code code : 16; unsigned side_effects_flag : 1; }; struct tree_exp { tree operands[1]; }; struct tree_function_decl { __extension__ enum built_in_function function_code : 11; unsigned static_ctor_flag : 1; }; union tree_node { struct tree_base base; struct tree_function_decl function_decl; struct tree_exp exp; }; static tree convert_arguments (tree fundecl) { tree val = (void *)0; unsigned int parmnum; unsigned char type_generic_remove_excess_precision = 0; switch (((fundecl)->function_decl.function_code)) { case BUILT_IN_ISFINITE: case BUILT_IN_FPCLASSIFY: type_generic_remove_excess_precision = 1; } for (parmnum = 0;; ++parmnum) if (((enum tree_code) (val)->base.code) == EXCESS_PRECISION_EXPR && !type_generic_remove_excess_precision) val = ((val)->exp.operands[0]); return val; } tree build_function_call_vec (tree function) { return convert_arguments (function); }