diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/debug')
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c | 30 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/static1.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/pr39412.c | 16 |
4 files changed, 72 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c new file mode 100644 index 00000000000..11c8fad7841 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -gdwarf-2 -dA" } */ +void e(int); +__attribute__ ((always_inline)) inline int +t(int function_parameter) +{ + e(function_parameter); +} + +void test (int function_parameter2) +{ + t(function_parameter2); +} + +/* Verify that we get both function_parameter and function_parameter2 declared + in test. Overall we should have 3 variables with location defined (also + function_parameter in offline copy of t. */ +/* { dg-final { scan-assembler-times " DW_AT_location" 3 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c new file mode 100644 index 00000000000..7442dab19f9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -gdwarf-2 -dA" } */ +void q(int p); +static void +t(int constant_propagated_par) +{ + int local_var = constant_propagated_par + 1; + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); + q(local_var); +} +main() +{ + t(5); + t(5); + t(5); + t(5); + t(5); + t(5); + t(5); +} +/* { dg-final { scan-assembler "local_var" } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c new file mode 100644 index 00000000000..b9b5d0b3743 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/static1.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -gdwarf-2" } */ +void +main(void) +{ + static int unused_local_var; +} +/* { dg-final { scan-assembler "unused_local_var" } } */ diff --git a/gcc/testsuite/gcc.dg/debug/pr39412.c b/gcc/testsuite/gcc.dg/debug/pr39412.c new file mode 100644 index 00000000000..71b7b5e21a9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/pr39412.c @@ -0,0 +1,16 @@ +/* PR debug/39412 */ +/* { dg-do compile } */ + +struct S { int i; }; + +inline void +bar (const void *x, unsigned long y) +{ + const union { struct S a[y]; } *u = x; +} + +void +foo (const void *x, unsigned long y) +{ + bar (x, y); +} |