From: Jan Hubicka Date: Mon, 12 Jan 2004 16:25:32 +0000 (+0100) Subject: re PR rtl-optimization/12826 (Optimizer removes reference through volatile pointer) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9a249c79b355459f3623cfbf8c0f2f6925d1a280;p=gcc.git re PR rtl-optimization/12826 (Optimizer removes reference through volatile pointer) PR opt/12826 * gcc.dg/20040112-1.c: New. * gcc.dg/dwarf-die[1-7].c: Move to... * gcc.dg/debug/dwarf2/dwarf-die[1-7].c: ... here. * gcc.dg/debug/dwarf2/dwarf2.exp: New. From-SVN: r75732 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4c1aae0711d..1c5950be7fd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2004-01-12 Jan Hubicka + + PR opt/12826 + * gcc.dg/20040112-1.c: New. + + * gcc.dg/dwarf-die[1-7].c: Move to... + * gcc.dg/debug/dwarf2/dwarf-die[1-7].c: ... here. + * gcc.dg/debug/dwarf2/dwarf2.exp: New. + 2004-01-12 Ian Lance Taylor PR c++/4100 diff --git a/gcc/testsuite/gcc.dg/20040112-1.c b/gcc/testsuite/gcc.dg/20040112-1.c new file mode 100644 index 00000000000..83996fe6c23 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20040112-1.c @@ -0,0 +1,15 @@ +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler "testb" } } */ +ftn (char *sp) +{ + char status; + + while (1) + { + *sp = 0xE8; + status = *(volatile char *) sp; + if (status & 0x80) + break; + } +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c new file mode 100644 index 00000000000..39f0bf2792a --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c @@ -0,0 +1,8 @@ +/* Verify that inline function never actually inlined has no abstract DIE. */ +/* { dg-do compile */ +/* { dg-options "-O2 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler-not "DW_AT_inline" } } */ +inline int t() +{ +} +int (*q)()=t; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c new file mode 100644 index 00000000000..48bce243d41 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c @@ -0,0 +1,7 @@ +/* Verify that inline function never actually emit has no DIE. */ +/* { dg-do compile */ +/* { dg-options "-O0 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler-not "CIE Version" } } */ +static inline int t() +{ +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c new file mode 100644 index 00000000000..34fddfaffc0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c @@ -0,0 +1,11 @@ +/* Verify that extern inline function never actually inlined has no abstract DIE. */ +/* { dg-do compile */ +/* { dg-options "-O0 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler-not "DW_AT_inline" } } */ +extern inline int t() +{ +} +int (*q)()=t; +int t() +{ +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c new file mode 100644 index 00000000000..b3a245d2b11 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c @@ -0,0 +1,12 @@ +/* Inlined inline function must have abstract DIE */ +/* { dg-do compile */ +/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */ +/* { dg-final { scan-assembler "3.*DW_AT_inline" } } */ +#1 "test.h" +inline int t() +{ +} +int q() +{ + t(); +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c new file mode 100644 index 00000000000..40cdc8dee37 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c @@ -0,0 +1,12 @@ +/* not inline inline function must not have abstract DIE */ +/* { dg-do compile */ +/* { dg-options "-O2 -fno-inline -gdwarf-2 -dA -fpreprocessed" } */ +/* { dg-final { scan-assembler-not "DW_AT_inline" } } */ +#1 "test.h" +inline int t() +{ +} +int q() +{ + t(); +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c new file mode 100644 index 00000000000..d8d013af38c --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c @@ -0,0 +1,14 @@ +/* Inlined non-inline function must have abstract DIE */ +/* { dg-do compile */ +/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */ +/* { dg-final { scan-assembler "1.*DW_AT_inline" } } */ +#1 "test.h" +void f(void); +static int t() +{ + f(); +} +int q() +{ + t(); +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp new file mode 100644 index 00000000000..6e3621db3ce --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp @@ -0,0 +1,42 @@ +# Copyright (C) 2002 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# GCC testsuite that uses the `dg.exp' driver. + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors -gdwarf-2" +} + +# Initialize `dg'. +dg-init + +# Main loop. +set comp_output [gcc_target_compile \ + "$srcdir/$subdir/../trivial.c" "trivial.S" assembly \ + "additional_flags=-gdwarf-2"] +if { ! [string match "*: target system does not support the * debug format*" \ + $comp_output] } { + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \ + "" $DEFAULT_CFLAGS +} + +# All done. +dg-finish diff --git a/gcc/testsuite/gcc.dg/dwarf-die1.c b/gcc/testsuite/gcc.dg/dwarf-die1.c deleted file mode 100644 index 39f0bf2792a..00000000000 --- a/gcc/testsuite/gcc.dg/dwarf-die1.c +++ /dev/null @@ -1,8 +0,0 @@ -/* Verify that inline function never actually inlined has no abstract DIE. */ -/* { dg-do compile */ -/* { dg-options "-O2 -gdwarf-2 -dA" } */ -/* { dg-final { scan-assembler-not "DW_AT_inline" } } */ -inline int t() -{ -} -int (*q)()=t; diff --git a/gcc/testsuite/gcc.dg/dwarf-die2.c b/gcc/testsuite/gcc.dg/dwarf-die2.c deleted file mode 100644 index 48bce243d41..00000000000 --- a/gcc/testsuite/gcc.dg/dwarf-die2.c +++ /dev/null @@ -1,7 +0,0 @@ -/* Verify that inline function never actually emit has no DIE. */ -/* { dg-do compile */ -/* { dg-options "-O0 -gdwarf-2 -dA" } */ -/* { dg-final { scan-assembler-not "CIE Version" } } */ -static inline int t() -{ -} diff --git a/gcc/testsuite/gcc.dg/dwarf-die3.c b/gcc/testsuite/gcc.dg/dwarf-die3.c deleted file mode 100644 index 34fddfaffc0..00000000000 --- a/gcc/testsuite/gcc.dg/dwarf-die3.c +++ /dev/null @@ -1,11 +0,0 @@ -/* Verify that extern inline function never actually inlined has no abstract DIE. */ -/* { dg-do compile */ -/* { dg-options "-O0 -gdwarf-2 -dA" } */ -/* { dg-final { scan-assembler-not "DW_AT_inline" } } */ -extern inline int t() -{ -} -int (*q)()=t; -int t() -{ -} diff --git a/gcc/testsuite/gcc.dg/dwarf-die5.c b/gcc/testsuite/gcc.dg/dwarf-die5.c deleted file mode 100644 index b3a245d2b11..00000000000 --- a/gcc/testsuite/gcc.dg/dwarf-die5.c +++ /dev/null @@ -1,12 +0,0 @@ -/* Inlined inline function must have abstract DIE */ -/* { dg-do compile */ -/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */ -/* { dg-final { scan-assembler "3.*DW_AT_inline" } } */ -#1 "test.h" -inline int t() -{ -} -int q() -{ - t(); -} diff --git a/gcc/testsuite/gcc.dg/dwarf-die6.c b/gcc/testsuite/gcc.dg/dwarf-die6.c deleted file mode 100644 index 40cdc8dee37..00000000000 --- a/gcc/testsuite/gcc.dg/dwarf-die6.c +++ /dev/null @@ -1,12 +0,0 @@ -/* not inline inline function must not have abstract DIE */ -/* { dg-do compile */ -/* { dg-options "-O2 -fno-inline -gdwarf-2 -dA -fpreprocessed" } */ -/* { dg-final { scan-assembler-not "DW_AT_inline" } } */ -#1 "test.h" -inline int t() -{ -} -int q() -{ - t(); -} diff --git a/gcc/testsuite/gcc.dg/dwarf-die7.c b/gcc/testsuite/gcc.dg/dwarf-die7.c deleted file mode 100644 index d8d013af38c..00000000000 --- a/gcc/testsuite/gcc.dg/dwarf-die7.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Inlined non-inline function must have abstract DIE */ -/* { dg-do compile */ -/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */ -/* { dg-final { scan-assembler "1.*DW_AT_inline" } } */ -#1 "test.h" -void f(void); -static int t() -{ - f(); -} -int q() -{ - t(); -}