+2004-01-12 Jan Hubicka <jh@suse.cz>
+
+ 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 <ian@wasabisystems.com>
PR c++/4100
--- /dev/null
+/* { 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;
+ }
+}
--- /dev/null
+/* 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;
--- /dev/null
+/* 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()
+{
+}
--- /dev/null
+/* 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()
+{
+}
--- /dev/null
+/* 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();
+}
--- /dev/null
+/* 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();
+}
--- /dev/null
+/* 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();
+}
--- /dev/null
+# 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
+++ /dev/null
-/* 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;
+++ /dev/null
-/* 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()
-{
-}
+++ /dev/null
-/* 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()
-{
-}
+++ /dev/null
-/* 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();
-}
+++ /dev/null
-/* 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();
-}
+++ /dev/null
-/* 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();
-}