* gcc.c-torture/execute/20000914-1.c: New test.
From-SVN: r36420
This commit is contained in:
parent
ec1fb90e95
commit
cf160a6309
|
@ -1,3 +1,7 @@
|
||||||
|
Thu Sep 14 16:48:49 2000 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
|
* gcc.c-torture/execute/20000914-1.c: New test.
|
||||||
|
|
||||||
2000-09-12 Alexandre Oliva <aoliva@redhat.com>
|
2000-09-12 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* g++.other/inline13.C: New test.
|
* g++.other/inline13.C: New test.
|
||||||
|
|
|
@ -0,0 +1,290 @@
|
||||||
|
enum tree_code {
|
||||||
|
ERROR_MARK,
|
||||||
|
IDENTIFIER_NODE,
|
||||||
|
OP_IDENTIFIER,
|
||||||
|
TREE_LIST,
|
||||||
|
TREE_VEC,
|
||||||
|
BLOCK,
|
||||||
|
VOID_TYPE,
|
||||||
|
INTEGER_TYPE,
|
||||||
|
REAL_TYPE,
|
||||||
|
COMPLEX_TYPE,
|
||||||
|
VECTOR_TYPE,
|
||||||
|
ENUMERAL_TYPE,
|
||||||
|
BOOLEAN_TYPE,
|
||||||
|
CHAR_TYPE,
|
||||||
|
POINTER_TYPE,
|
||||||
|
OFFSET_TYPE,
|
||||||
|
REFERENCE_TYPE,
|
||||||
|
METHOD_TYPE,
|
||||||
|
FILE_TYPE,
|
||||||
|
ARRAY_TYPE,
|
||||||
|
SET_TYPE,
|
||||||
|
RECORD_TYPE,
|
||||||
|
UNION_TYPE,
|
||||||
|
QUAL_UNION_TYPE,
|
||||||
|
FUNCTION_TYPE,
|
||||||
|
LANG_TYPE,
|
||||||
|
INTEGER_CST,
|
||||||
|
REAL_CST,
|
||||||
|
COMPLEX_CST,
|
||||||
|
STRING_CST,
|
||||||
|
FUNCTION_DECL,
|
||||||
|
LABEL_DECL,
|
||||||
|
CONST_DECL,
|
||||||
|
TYPE_DECL,
|
||||||
|
VAR_DECL,
|
||||||
|
PARM_DECL,
|
||||||
|
RESULT_DECL,
|
||||||
|
FIELD_DECL,
|
||||||
|
NAMESPACE_DECL,
|
||||||
|
COMPONENT_REF,
|
||||||
|
BIT_FIELD_REF,
|
||||||
|
INDIRECT_REF,
|
||||||
|
BUFFER_REF,
|
||||||
|
ARRAY_REF,
|
||||||
|
CONSTRUCTOR,
|
||||||
|
COMPOUND_EXPR,
|
||||||
|
MODIFY_EXPR,
|
||||||
|
INIT_EXPR,
|
||||||
|
TARGET_EXPR,
|
||||||
|
COND_EXPR,
|
||||||
|
BIND_EXPR,
|
||||||
|
CALL_EXPR,
|
||||||
|
METHOD_CALL_EXPR,
|
||||||
|
WITH_CLEANUP_EXPR,
|
||||||
|
CLEANUP_POINT_EXPR,
|
||||||
|
PLACEHOLDER_EXPR,
|
||||||
|
WITH_RECORD_EXPR,
|
||||||
|
PLUS_EXPR,
|
||||||
|
MINUS_EXPR,
|
||||||
|
MULT_EXPR,
|
||||||
|
TRUNC_DIV_EXPR,
|
||||||
|
CEIL_DIV_EXPR,
|
||||||
|
FLOOR_DIV_EXPR,
|
||||||
|
ROUND_DIV_EXPR,
|
||||||
|
TRUNC_MOD_EXPR,
|
||||||
|
CEIL_MOD_EXPR,
|
||||||
|
FLOOR_MOD_EXPR,
|
||||||
|
ROUND_MOD_EXPR,
|
||||||
|
RDIV_EXPR,
|
||||||
|
EXACT_DIV_EXPR,
|
||||||
|
FIX_TRUNC_EXPR,
|
||||||
|
FIX_CEIL_EXPR,
|
||||||
|
FIX_FLOOR_EXPR,
|
||||||
|
FIX_ROUND_EXPR,
|
||||||
|
FLOAT_EXPR,
|
||||||
|
EXPON_EXPR,
|
||||||
|
NEGATE_EXPR,
|
||||||
|
MIN_EXPR,
|
||||||
|
MAX_EXPR,
|
||||||
|
ABS_EXPR,
|
||||||
|
FFS_EXPR,
|
||||||
|
LSHIFT_EXPR,
|
||||||
|
RSHIFT_EXPR,
|
||||||
|
LROTATE_EXPR,
|
||||||
|
RROTATE_EXPR,
|
||||||
|
BIT_IOR_EXPR,
|
||||||
|
BIT_XOR_EXPR,
|
||||||
|
BIT_AND_EXPR,
|
||||||
|
BIT_ANDTC_EXPR,
|
||||||
|
BIT_NOT_EXPR,
|
||||||
|
TRUTH_ANDIF_EXPR,
|
||||||
|
TRUTH_ORIF_EXPR,
|
||||||
|
TRUTH_AND_EXPR,
|
||||||
|
TRUTH_OR_EXPR,
|
||||||
|
TRUTH_XOR_EXPR,
|
||||||
|
TRUTH_NOT_EXPR,
|
||||||
|
LT_EXPR,
|
||||||
|
LE_EXPR,
|
||||||
|
GT_EXPR,
|
||||||
|
GE_EXPR,
|
||||||
|
EQ_EXPR,
|
||||||
|
NE_EXPR,
|
||||||
|
UNORDERED_EXPR,
|
||||||
|
ORDERED_EXPR,
|
||||||
|
UNLT_EXPR,
|
||||||
|
UNLE_EXPR,
|
||||||
|
UNGT_EXPR,
|
||||||
|
UNGE_EXPR,
|
||||||
|
UNEQ_EXPR,
|
||||||
|
IN_EXPR,
|
||||||
|
SET_LE_EXPR,
|
||||||
|
CARD_EXPR,
|
||||||
|
RANGE_EXPR,
|
||||||
|
CONVERT_EXPR,
|
||||||
|
NOP_EXPR,
|
||||||
|
NON_LVALUE_EXPR,
|
||||||
|
SAVE_EXPR,
|
||||||
|
UNSAVE_EXPR,
|
||||||
|
RTL_EXPR,
|
||||||
|
ADDR_EXPR,
|
||||||
|
REFERENCE_EXPR,
|
||||||
|
ENTRY_VALUE_EXPR,
|
||||||
|
COMPLEX_EXPR,
|
||||||
|
CONJ_EXPR,
|
||||||
|
REALPART_EXPR,
|
||||||
|
IMAGPART_EXPR,
|
||||||
|
PREDECREMENT_EXPR,
|
||||||
|
PREINCREMENT_EXPR,
|
||||||
|
POSTDECREMENT_EXPR,
|
||||||
|
POSTINCREMENT_EXPR,
|
||||||
|
VA_ARG_EXPR,
|
||||||
|
TRY_CATCH_EXPR,
|
||||||
|
TRY_FINALLY_EXPR,
|
||||||
|
GOTO_SUBROUTINE_EXPR,
|
||||||
|
POPDHC_EXPR,
|
||||||
|
POPDCC_EXPR,
|
||||||
|
LABEL_EXPR,
|
||||||
|
GOTO_EXPR,
|
||||||
|
RETURN_EXPR,
|
||||||
|
EXIT_EXPR,
|
||||||
|
LOOP_EXPR,
|
||||||
|
LABELED_BLOCK_EXPR,
|
||||||
|
EXIT_BLOCK_EXPR,
|
||||||
|
EXPR_WITH_FILE_LOCATION,
|
||||||
|
SWITCH_EXPR,
|
||||||
|
LAST_AND_UNUSED_TREE_CODE
|
||||||
|
};
|
||||||
|
typedef union tree_node *tree;
|
||||||
|
struct tree_common
|
||||||
|
{
|
||||||
|
union tree_node *chain;
|
||||||
|
union tree_node *type;
|
||||||
|
enum tree_code code : 8;
|
||||||
|
unsigned side_effects_flag : 1;
|
||||||
|
unsigned constant_flag : 1;
|
||||||
|
unsigned permanent_flag : 1;
|
||||||
|
unsigned addressable_flag : 1;
|
||||||
|
unsigned volatile_flag : 1;
|
||||||
|
unsigned readonly_flag : 1;
|
||||||
|
unsigned unsigned_flag : 1;
|
||||||
|
unsigned asm_written_flag: 1;
|
||||||
|
unsigned used_flag : 1;
|
||||||
|
unsigned nothrow_flag : 1;
|
||||||
|
unsigned static_flag : 1;
|
||||||
|
unsigned public_flag : 1;
|
||||||
|
unsigned private_flag : 1;
|
||||||
|
unsigned protected_flag : 1;
|
||||||
|
unsigned bounded_flag : 1;
|
||||||
|
unsigned lang_flag_0 : 1;
|
||||||
|
unsigned lang_flag_1 : 1;
|
||||||
|
unsigned lang_flag_2 : 1;
|
||||||
|
unsigned lang_flag_3 : 1;
|
||||||
|
unsigned lang_flag_4 : 1;
|
||||||
|
unsigned lang_flag_5 : 1;
|
||||||
|
unsigned lang_flag_6 : 1;
|
||||||
|
};
|
||||||
|
union tree_node
|
||||||
|
{
|
||||||
|
struct tree_common common;
|
||||||
|
};
|
||||||
|
enum c_tree_code {
|
||||||
|
C_DUMMY_TREE_CODE = LAST_AND_UNUSED_TREE_CODE,
|
||||||
|
SRCLOC,
|
||||||
|
SIZEOF_EXPR,
|
||||||
|
ARROW_EXPR,
|
||||||
|
ALIGNOF_EXPR,
|
||||||
|
EXPR_STMT,
|
||||||
|
COMPOUND_STMT,
|
||||||
|
DECL_STMT,
|
||||||
|
IF_STMT,
|
||||||
|
FOR_STMT,
|
||||||
|
WHILE_STMT,
|
||||||
|
DO_STMT,
|
||||||
|
RETURN_STMT,
|
||||||
|
BREAK_STMT,
|
||||||
|
CONTINUE_STMT,
|
||||||
|
SWITCH_STMT,
|
||||||
|
GOTO_STMT,
|
||||||
|
LABEL_STMT,
|
||||||
|
ASM_STMT,
|
||||||
|
SCOPE_STMT,
|
||||||
|
CASE_LABEL,
|
||||||
|
STMT_EXPR,
|
||||||
|
LAST_C_TREE_CODE
|
||||||
|
};
|
||||||
|
enum cplus_tree_code {
|
||||||
|
CP_DUMMY_TREE_CODE = LAST_C_TREE_CODE,
|
||||||
|
OFFSET_REF,
|
||||||
|
PTRMEM_CST,
|
||||||
|
NEW_EXPR,
|
||||||
|
VEC_NEW_EXPR,
|
||||||
|
DELETE_EXPR,
|
||||||
|
VEC_DELETE_EXPR,
|
||||||
|
SCOPE_REF,
|
||||||
|
MEMBER_REF,
|
||||||
|
TYPE_EXPR,
|
||||||
|
AGGR_INIT_EXPR,
|
||||||
|
THROW_EXPR,
|
||||||
|
EMPTY_CLASS_EXPR,
|
||||||
|
TEMPLATE_DECL,
|
||||||
|
TEMPLATE_PARM_INDEX,
|
||||||
|
TEMPLATE_TYPE_PARM,
|
||||||
|
TEMPLATE_TEMPLATE_PARM,
|
||||||
|
BOUND_TEMPLATE_TEMPLATE_PARM,
|
||||||
|
TYPENAME_TYPE,
|
||||||
|
TYPEOF_TYPE,
|
||||||
|
USING_DECL,
|
||||||
|
DEFAULT_ARG,
|
||||||
|
TEMPLATE_ID_EXPR,
|
||||||
|
CPLUS_BINDING,
|
||||||
|
OVERLOAD,
|
||||||
|
WRAPPER,
|
||||||
|
LOOKUP_EXPR,
|
||||||
|
FUNCTION_NAME,
|
||||||
|
MODOP_EXPR,
|
||||||
|
CAST_EXPR,
|
||||||
|
REINTERPRET_CAST_EXPR,
|
||||||
|
CONST_CAST_EXPR,
|
||||||
|
STATIC_CAST_EXPR,
|
||||||
|
DYNAMIC_CAST_EXPR,
|
||||||
|
DOTSTAR_EXPR,
|
||||||
|
TYPEID_EXPR,
|
||||||
|
PSEUDO_DTOR_EXPR,
|
||||||
|
SUBOBJECT,
|
||||||
|
CTOR_STMT,
|
||||||
|
CLEANUP_STMT,
|
||||||
|
START_CATCH_STMT,
|
||||||
|
CTOR_INITIALIZER,
|
||||||
|
RETURN_INIT,
|
||||||
|
TRY_BLOCK,
|
||||||
|
HANDLER,
|
||||||
|
TAG_DEFN,
|
||||||
|
IDENTITY_CONV,
|
||||||
|
LVALUE_CONV,
|
||||||
|
QUAL_CONV,
|
||||||
|
STD_CONV,
|
||||||
|
PTR_CONV,
|
||||||
|
PMEM_CONV,
|
||||||
|
BASE_CONV,
|
||||||
|
REF_BIND,
|
||||||
|
USER_CONV,
|
||||||
|
AMBIG_CONV,
|
||||||
|
RVALUE_CONV,
|
||||||
|
LAST_CPLUS_TREE_CODE
|
||||||
|
};
|
||||||
|
|
||||||
|
blah(){}
|
||||||
|
|
||||||
|
convert_like_real (convs)
|
||||||
|
tree convs;
|
||||||
|
{
|
||||||
|
switch (((enum tree_code) (convs)->common.code))
|
||||||
|
{
|
||||||
|
case AMBIG_CONV:
|
||||||
|
return blah();
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
abort ();
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
tree convs = (void *)malloc (sizeof (struct tree_common));;
|
||||||
|
|
||||||
|
convs->common.code = AMBIG_CONV;
|
||||||
|
convert_like_real (convs);
|
||||||
|
exit (0);
|
||||||
|
}
|
Loading…
Reference in New Issue