50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
/* { dg-do compile } */
|
|
/* { dg-additional-options "-Wno-pedantic -Wno-long-long -m64 -fshort-enums" } */
|
|
|
|
/* Enum return types. Passed as the underlying integer. */
|
|
|
|
typedef enum { a = 0x1, b } Echar;
|
|
typedef enum { c = 0x100, d } Eshort;
|
|
typedef enum { e = 0x10000, f } Eint;
|
|
typedef enum { g = 0x100000000LL, h } Elonglong;
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_ac \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_ac (Echar);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_as \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_as (Eshort);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_ai \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_ai (Eint);
|
|
|
|
/* { dg-final { scan-assembler-times ".extern .func dcl_all \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
|
|
void dcl_all (Elonglong);
|
|
|
|
void test_1 (void)
|
|
{
|
|
dcl_ac (1);
|
|
dcl_as (2);
|
|
dcl_ai (3);
|
|
dcl_all (4);
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_ac \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_ac (Echar c)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_as \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_as (Eshort s)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_ai \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_ai (Eint i)
|
|
{
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times ".visible .func dfn_all \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
|
|
void dfn_all (Elonglong ll)
|
|
{
|
|
}
|