diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/warn/Wunused-label-3.C')
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wunused-label-3.C | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-label-3.C b/gcc/testsuite/g++.dg/warn/Wunused-label-3.C new file mode 100644 index 000000000..7479ca20c --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-label-3.C @@ -0,0 +1,51 @@ +// { dg-do compile } +// { dg-options "-Wunused-label" } + +extern void f9(); + +template<int i> +void +f1() +{ + if (i) + return; + + l1: f9(); // { dg-warning "not used" } + l3: ; f9(); // { dg-warning "not used" } + l4: __attribute__ ((unused)) ; f9(); +} + +template +void f1<0>(); + +template<int i> +void +f2() +{ + if (i) + return; + + l1: f9(); // { dg-warning "not used" } + l3: ; f9(); // { dg-warning "not used" } + l4: __attribute__ ((unused)) ; f9(); +} + +template +void f2<1>(); + +template<int i> +void +f3() +{ + void* lab; + l1: f9(); + l2: __attribute__ ((unused)) ; f9(); + lab = i ? &&l1 : &&l2; + goto *lab; +} + +template +void f3<0>(); + +template +void f3<1>(); |