aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2006-06-12 22:26:00 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2006-06-12 22:26:00 +0000
commitdfa9dde4e03150d4df95bbcfc8121b52cac401c6 (patch)
tree9f9df706cf7c9597ec5622cacd1feb52309abdc9
parentff8fe3e0add95082795509f0ecf2e4c25e0f9b99 (diff)
downloadgcc-dfa9dde4e03150d4df95bbcfc8121b52cac401c6.zip
gcc-dfa9dde4e03150d4df95bbcfc8121b52cac401c6.tar.gz
gcc-dfa9dde4e03150d4df95bbcfc8121b52cac401c6.tar.bz2
ctor6.C, [...]: New.
* g++.dg/parse/ctor6.C, g++.dg/parse/defarg11.C, g++.dg/template/friend42.C, g++.dg/template/spec30.C: New. Co-Authored-By: Kazu Hirata <kazu@codesourcery.com> From-SVN: r114585
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/parse/ctor6.C11
-rw-r--r--gcc/testsuite/g++.dg/parse/defarg11.C9
-rw-r--r--gcc/testsuite/g++.dg/template/friend42.C8
-rw-r--r--gcc/testsuite/g++.dg/template/spec30.C15
5 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4b23d39..9274cbd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2006-06-12 Mark Mitchell <mark@codesourcery.com>
+ Kazu Hirata <kazu@codesourcery.com>
+
+ * g++.dg/parse/ctor6.C, g++.dg/parse/defarg11.C,
+ g++.dg/template/friend42.C, g++.dg/template/spec30.C: New.
+
2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/27933
diff --git a/gcc/testsuite/g++.dg/parse/ctor6.C b/gcc/testsuite/g++.dg/parse/ctor6.C
new file mode 100644
index 0000000..0b14ecc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/ctor6.C
@@ -0,0 +1,11 @@
+// { dg-do compile }
+
+// There is no ambiguity in finding a right constructor for X b(a).
+
+class X {
+public:
+ X(const X&, int = 3);
+};
+
+extern X a;
+X b(a);
diff --git a/gcc/testsuite/g++.dg/parse/defarg11.C b/gcc/testsuite/g++.dg/parse/defarg11.C
new file mode 100644
index 0000000..5628aa0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/defarg11.C
@@ -0,0 +1,9 @@
+// { dg-do compile }
+// { dg-options "-pedantic" }
+
+class foo {
+public:
+ void operator& (int = 1); // { dg-error "default argument" }
+ void operator++ (int = 2); // { dg-error "default argument" }
+ void operator-- (int = 3); // { dg-error "default argument" }
+};
diff --git a/gcc/testsuite/g++.dg/template/friend42.C b/gcc/testsuite/g++.dg/template/friend42.C
new file mode 100644
index 0000000..73d10df
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend42.C
@@ -0,0 +1,8 @@
+// { dg-do compile }
+
+template <class T> void foo (int);
+
+template <class T>
+class Q {
+ friend void foo<T> (int = 3); // { dg-error "default argument" }
+};
diff --git a/gcc/testsuite/g++.dg/template/spec30.C b/gcc/testsuite/g++.dg/template/spec30.C
new file mode 100644
index 0000000..403b812
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec30.C
@@ -0,0 +1,15 @@
+// { dg-do compile }
+
+template<int N>
+inline int
+foo (int a)
+{
+ return a;
+}
+
+template<>
+inline int
+foo<0> (int a = 123) // { dg-error "default argument" }
+{
+ return a + 1;
+}