summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog16
-rw-r--r--libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h7
-rw-r--r--libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h7
-rw-r--r--libstdc++-v3/libsupc++/cxxabi.h6
-rwxr-xr-xlibstdc++-v3/scripts/create_testsuite_files2
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/01.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/02.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/03.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/04.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/05.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/06.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/07.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/08.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/09.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/10.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/11.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/12.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/13.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/14.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/15.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/16.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/17.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/18.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/19.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/20.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/21.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/22.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/23.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/24.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/25.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc (renamed from libstdc++-v3/testsuite/demangle/abi_examples/26.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/01.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/02.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/03.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/04.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/05.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/06.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/07.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/08.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/09.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/10.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/11.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/12.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/13.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc (renamed from libstdc++-v3/testsuite/demangle/abi_text/14.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc (renamed from libstdc++-v3/testsuite/demangle/regression/3111-1.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc (renamed from libstdc++-v3/testsuite/demangle/regression/3111-2.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-01.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-02.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-03.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-04.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-05.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-06.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-07.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-08.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-09.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-10.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-11.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986-12.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/7986.cc (renamed from libstdc++-v3/testsuite/demangle/regression/7986.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/8897.cc (renamed from libstdc++-v3/testsuite/demangle/regression/8897.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-01.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-02.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-03.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-04.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-05.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-06.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-07.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-08.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-09.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-10.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-11.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-12.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-13.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-14.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-15.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc (renamed from libstdc++-v3/testsuite/demangle/regression/cw-16.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/demangle/regression/old.cc (renamed from libstdc++-v3/testsuite/demangle/regression/old.cc)0
-rw-r--r--libstdc++-v3/testsuite/abi/header_cxxabi.c22
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp51
-rw-r--r--libstdc++-v3/testsuite/libstdc++-dg/conformance.exp4
81 files changed, 93 insertions, 22 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f9123f136f1..c88fb9984b1 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,19 @@
+2006-10-09 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/29095
+ * libsupc++/cxxabi.h (__cxa_cdtor_type): Explicit "C" linkage.
+ * config/cpu/arm/cxxabi_tweaks.h: Same.
+ * config/cpu/generic/cxxabi_tweaks.h: Same.
+ * testsuite/abi: Add.
+ * testsuite/abi/header_cxxabi.cc: New.
+ * testsuite/demangle: Move...
+ * testsuite/abi/demangle: ...here.
+ * testsuite/libstdc++-dg/conformance.exp: Adjust testsuite file
+ calculation.
+ * scripts/create_testsuite_files: Same.
+ * testsuite/lib/libstdc++.exp (v3_target_compile_as_c): New.
+ (libstdc++-dg-test): Use it.
+
2006-10-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28277 (partial: __add_grouping)
diff --git a/libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h b/libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
index 76c8a36400e..f8a1820b734 100644
--- a/libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
+++ b/libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
@@ -1,6 +1,6 @@
// Control various target specific ABI tweaks. ARM version.
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -33,6 +33,8 @@
#ifdef __cplusplus
namespace __cxxabiv1
{
+ extern "C"
+ {
#endif
#ifdef __ARM_EABI__
@@ -67,7 +69,8 @@ namespace __cxxabiv1
#endif //!__ARM_EABI__
#ifdef __cplusplus
+ }
} // namespace __cxxabiv1
#endif
-#endif // __cxxabiv1
+#endif
diff --git a/libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h b/libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
index 4b74805d8b0..4b1e7320851 100644
--- a/libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
+++ b/libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
@@ -1,6 +1,6 @@
// Control various target specific ABI tweaks. Generic version.
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -33,6 +33,8 @@
#ifdef __cplusplus
namespace __cxxabiv1
{
+ extern "C"
+ {
#endif
// The generic ABI uses the first byte of a 64-bit guard variable.
@@ -47,7 +49,8 @@ namespace __cxxabiv1
typedef void __cxa_cdtor_return_type;
#ifdef __cplusplus
+ }
} // namespace __cxxabiv1
#endif
-#endif // __cxxabiv1
+#endif
diff --git a/libstdc++-v3/libsupc++/cxxabi.h b/libstdc++-v3/libsupc++/cxxabi.h
index e7b2857bb22..c0418d82588 100644
--- a/libstdc++-v3/libsupc++/cxxabi.h
+++ b/libstdc++-v3/libsupc++/cxxabi.h
@@ -1,6 +1,6 @@
// new abi support -*- C++ -*-
-// Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -54,12 +54,12 @@
#ifdef __cplusplus
namespace __cxxabiv1
{
- typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
-
extern "C"
{
#endif
+ typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
+
// Allocate array.
void*
__cxa_vec_new(size_t __element_count, size_t __element_size,
diff --git a/libstdc++-v3/scripts/create_testsuite_files b/libstdc++-v3/scripts/create_testsuite_files
index 74b2455d061..8d87e09d017 100755
--- a/libstdc++-v3/scripts/create_testsuite_files
+++ b/libstdc++-v3/scripts/create_testsuite_files
@@ -32,7 +32,7 @@ cd $srcdir
# This is the ugly version of "everything but the current directory". It's
# what has to happen when find(1) doesn't support -mindepth, or -xtype.
dlist=`echo [0-9][0-9]*`
-dlist="$dlist backward demangle ext performance thread tr1"
+dlist="$dlist abi backward ext performance thread tr1"
find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01
find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02
cat $tmp.01 $tmp.02 | sort > $tmp.1
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/01.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
index 85cb59d428d..85cb59d428d 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/01.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/02.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
index 408d6ae419a..408d6ae419a 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/02.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/03.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
index 70673a9a796..70673a9a796 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/03.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/04.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
index 9cf22cfa3ef..9cf22cfa3ef 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/04.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/05.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
index 293bbd4354d..293bbd4354d 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/05.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/06.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
index 3fb40043fcc..3fb40043fcc 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/06.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/07.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
index 40a6c5cef8e..40a6c5cef8e 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/07.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/08.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
index 087cfd58621..087cfd58621 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/08.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/09.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
index 3242cb541b1..3242cb541b1 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/09.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/10.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
index a47c9235462..a47c9235462 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/10.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/11.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
index 2b1f3b6a1b1..2b1f3b6a1b1 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/11.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/12.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
index 60b299f4aa6..60b299f4aa6 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/12.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/13.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
index 9c17340d9b7..9c17340d9b7 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/13.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/14.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
index fe6879c1034..fe6879c1034 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/14.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/15.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
index 9fcb64aa1e7..9fcb64aa1e7 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/15.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/16.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
index d3732ead390..d3732ead390 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/16.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/17.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
index 29274b2fee9..29274b2fee9 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/17.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/18.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
index 526b1d8d1b8..526b1d8d1b8 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/18.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/19.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
index 2d6ae3d00fb..2d6ae3d00fb 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/19.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/20.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
index eaa5db0430f..eaa5db0430f 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/20.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/21.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
index d4c69a91005..d4c69a91005 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/21.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/22.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
index d4c69a91005..d4c69a91005 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/22.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/23.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
index 57659fb0cd7..57659fb0cd7 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/23.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/24.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
index 5be5266a132..5be5266a132 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/24.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/25.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
index 3a3c019b22b..3a3c019b22b 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/25.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_examples/26.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
index 783eafa3787..783eafa3787 100644
--- a/libstdc++-v3/testsuite/demangle/abi_examples/26.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/01.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
index 70da290442b..70da290442b 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/01.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/02.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
index 28a617aef7d..28a617aef7d 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/02.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/03.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
index deca8721dbf..deca8721dbf 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/03.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/04.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
index 073240bd96b..073240bd96b 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/04.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/05.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
index 5b94fd80859..5b94fd80859 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/05.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/06.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
index caf11256ded..caf11256ded 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/06.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/07.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
index 6c3285a84f1..6c3285a84f1 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/07.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/08.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
index ff7e8bb1f3a..ff7e8bb1f3a 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/08.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/09.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
index 67abf85a660..67abf85a660 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/09.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/10.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
index f9c651f1f8d..f9c651f1f8d 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/10.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/11.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
index 8c458e91414..8c458e91414 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/11.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/12.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
index 4db3df44f62..4db3df44f62 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/12.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/13.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
index 5b6f64afc71..5b6f64afc71 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/13.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
diff --git a/libstdc++-v3/testsuite/demangle/abi_text/14.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
index cde1cbf28d2..cde1cbf28d2 100644
--- a/libstdc++-v3/testsuite/demangle/abi_text/14.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/3111-1.cc b/libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
index f21aed06fdc..f21aed06fdc 100644
--- a/libstdc++-v3/testsuite/demangle/regression/3111-1.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/3111-2.cc b/libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
index 725cc55f16c..725cc55f16c 100644
--- a/libstdc++-v3/testsuite/demangle/regression/3111-2.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-01.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
index 67eeb67c64e..67eeb67c64e 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-01.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-02.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
index 4d9e3ad9ed6..4d9e3ad9ed6 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-02.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-03.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
index c4da14d780f..c4da14d780f 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-03.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-04.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
index 46507944df9..46507944df9 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-04.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-05.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
index 4ca3eb4f9c0..4ca3eb4f9c0 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-05.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-06.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
index 04881ebc9df..04881ebc9df 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-06.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-07.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
index 45ebff7b61e..45ebff7b61e 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-07.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-08.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
index 148add2d21e..148add2d21e 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-08.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-09.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
index 7ac3ac0f3b7..7ac3ac0f3b7 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-09.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-10.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
index 592a9fda9cc..592a9fda9cc 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-10.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-11.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
index 34bc8835861..34bc8835861 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-11.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986-12.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
index 819a915726c..819a915726c 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986-12.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/7986.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
index 7cea89643ef..7cea89643ef 100644
--- a/libstdc++-v3/testsuite/demangle/regression/7986.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/8897.cc b/libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
index 1a7e54532cb..1a7e54532cb 100644
--- a/libstdc++-v3/testsuite/demangle/regression/8897.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-01.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
index 920c14d878d..920c14d878d 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-01.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-02.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
index b38c323eca1..b38c323eca1 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-02.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-03.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
index 710dea6d7bf..710dea6d7bf 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-03.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-04.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
index 8a524f3480c..8a524f3480c 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-04.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-05.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
index 2b776853346..2b776853346 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-05.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-06.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
index a131d4c5f5c..a131d4c5f5c 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-06.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-07.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
index da278ac6c16..da278ac6c16 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-07.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-08.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
index 01a29c0db9c..01a29c0db9c 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-08.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-09.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
index 2e48a63efd5..2e48a63efd5 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-09.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-10.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
index 61fe7c9e8e4..61fe7c9e8e4 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-10.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-11.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
index fbb869e8487..fbb869e8487 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-11.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-12.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
index 84667159378..84667159378 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-12.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-13.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
index ae621f0bfd1..ae621f0bfd1 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-13.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-14.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
index aa250f0d4af..aa250f0d4af 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-14.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-15.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
index cca8e96c0f0..cca8e96c0f0 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-15.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/cw-16.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
index 0c8c29f28af..0c8c29f28af 100644
--- a/libstdc++-v3/testsuite/demangle/regression/cw-16.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
diff --git a/libstdc++-v3/testsuite/demangle/regression/old.cc b/libstdc++-v3/testsuite/abi/demangle/regression/old.cc
index 736ede7a70e..736ede7a70e 100644
--- a/libstdc++-v3/testsuite/demangle/regression/old.cc
+++ b/libstdc++-v3/testsuite/abi/demangle/regression/old.cc
diff --git a/libstdc++-v3/testsuite/abi/header_cxxabi.c b/libstdc++-v3/testsuite/abi/header_cxxabi.c
new file mode 100644
index 00000000000..de6ae7ec6ca
--- /dev/null
+++ b/libstdc++-v3/testsuite/abi/header_cxxabi.c
@@ -0,0 +1,22 @@
+// { dg-do compile }
+// { dg-options "-x c" }
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// Must be compilable as "C"
+#include <cxxabi.h>
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 0d059cf1d76..9aa32665c09 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -272,6 +272,7 @@ proc libstdc++-dg-test { prog do_what extra_tool_flags } {
}
}
+ set select_compile "v3_target_compile"
set options ""
if { $extra_tool_flags != "" } {
verbose -log "extra_tool_flags are:"
@@ -279,16 +280,17 @@ proc libstdc++-dg-test { prog do_what extra_tool_flags } {
if { [string first "-x c" $extra_tool_flags ] != -1 } {
# Short-circut a bunch of complicated goo here for the
# special case of compiling a test file as a "C" file, not
- # as C++: just use target_compile, instead of the usual
- # gimmicks.
+ # as C++. Why? So -nostdc++ doesn't trip us up. So all the
+ # extra object files don't trip us up. So automatically
+ # linking in libstdc++ doesn't happen. So CXXFLAGS don't
+ # error.
verbose -log "compiling and executing as C, not C++"
- set compile_type "executable"
- set output_file "./[file rootname [file tail $prog]].exe"
- remote_file build delete $output_file;
- lappend options "additional_flags=$extra_tool_flags"
- set comp_output [target_compile "$prog" "$output_file" "$compile_type" $options];
- set comp_output [ prune_g++_output $comp_output ];
- return [list $comp_output $output_file]
+
+ set edit_tool_flags $extra_tool_flags
+ regsub -all ".x c" $edit_tool_flags "" edit_tool_flags
+ lappend options "additional_flags=$edit_tool_flags"
+
+ set select_compile "v3_target_compile_as_c"
} else {
lappend options "additional_flags=$extra_tool_flags"
}
@@ -296,7 +298,7 @@ proc libstdc++-dg-test { prog do_what extra_tool_flags } {
# There is a libstdc++_compile made for us by default (via the tool-
# and-target file), but the defaults are lacking in goodness.
- set comp_output [v3_target_compile "$prog" "$output_file" "$compile_type" $options];
+ set comp_output [$select_compile "$prog" "$output_file" "$compile_type" $options];
set comp_output [ prune_g++_output $comp_output ];
return [list $comp_output $output_file]
@@ -323,7 +325,6 @@ proc v3_target_compile { source dest type options } {
global cxxflags
global cxxldflags
global includes
- global blddir
global v3-test_objs
if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
@@ -340,8 +341,9 @@ proc v3_target_compile { source dest type options } {
# Flag setting based on type argument.
if { $type == "executable" } {
# Link the support objects into executables.
- set cxx_final [concat $cxx_final ${v3-test_objs}]
set cxx_final [concat $cxx_final $cxxldflags]
+ # lappend options "additional_flags=./libtestc++.a"
+ set cxx_final [concat $cxx_final ${v3-test_objs}]
} else {
if { $type == "sharedlib" } {
# Don't link in anything.
@@ -356,6 +358,31 @@ proc v3_target_compile { source dest type options } {
}
+# Called from libstdc++-dg-test above, but only for "C" compilation.
+# Calls back into system's target_compile to actually do the work.
+proc v3_target_compile_as_c { source dest type options } {
+ global gluefile
+ global wrap_flags
+ global includes
+
+ if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
+ lappend options "libs=${gluefile}"
+ lappend options "ldflags=${wrap_flags}"
+ }
+
+ set tname [target_info name]
+ set cc_final [board_info $tname compiler]
+ set cxxlibglossflags [libgloss_link_flags]
+ set cc_final [concat $cc_final $cxxlibglossflags]
+ set cc_final [concat $cc_final $includes]
+ regsub -all ".nostdinc.." $cc_final "" cc_final
+
+ lappend options "compiler=$cc_final"
+ lappend options "timeout=600"
+
+ return [target_compile $source $dest $type $options]
+}
+
# Build the support objects linked in with the libstdc++ tests. In
# addition, set v3-wchar_t, v3-threads, v3-test_objs, and v3-symver
# appropriately.
diff --git a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
index a05ad3adb3f..6a05a27ff8d 100644
--- a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
+++ b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
@@ -53,12 +53,12 @@ if {[info exists tests_file] && [file exists $tests_file]} {
} else {
# Find directories that might have tests.
set subdirs [glob "$srcdir/\[0-9\]\[0-9\]*"]
+ lappend subdirs "$srcdir/abi"
lappend subdirs "$srcdir/backward"
- lappend subdirs "$srcdir/demangle"
lappend subdirs "$srcdir/ext"
lappend subdirs "$srcdir/performance"
- lappend subdirs "$srcdir/tr1"
lappend subdirs "$srcdir/thread"
+ lappend subdirs "$srcdir/tr1"
verbose "subdirs are $subdirs"
# Find all the tests.