]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/14246 (Problems with templates, ice in write_template_arg_literal)
authorGiovanni Bajo <giovannibajo@gcc.gnu.org>
Thu, 26 Feb 2004 02:19:24 +0000 (02:19 +0000)
committerGiovanni Bajo <giovannibajo@gcc.gnu.org>
Thu, 26 Feb 2004 02:19:24 +0000 (02:19 +0000)
PR c++/14246
* g++.dg/other/crash-3.C: New test.

From-SVN: r78479

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/crash-3.C [new file with mode: 0644]

index 40bbebc8918e2614f47909ba35d77fc4ce676340..b2df3d67d77d6551852bd00586b4192b75eb4f48 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-26  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       PR c++/14246
+       * g++.dg/other/crash-3.C: New test.
+
 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * g++.dg/opt/inline4.C (dg-final): Robustify regexp.
diff --git a/gcc/testsuite/g++.dg/other/crash-3.C b/gcc/testsuite/g++.dg/other/crash-3.C
new file mode 100644 (file)
index 0000000..d13821d
--- /dev/null
@@ -0,0 +1,31 @@
+// { dg-do compile }
+// { dg-options "-g" }
+// Contributed by: <schmid at snake dot iap dot physik dot tu-darmstadt dot de>
+//   and Niall Douglas <s_gccbugzilla at nedprod dot com>
+// PR c++/14246: ice in write_template_arg_literal while mangling boolean
+//   expressions.
+
+namespace N1 {
+
+  template <typename T>
+  struct A {
+      enum { Yes = (sizeof(T) == 1) };
+  };
+
+  template<bool T>
+  struct B {
+      void foo(void);
+  };
+
+  template struct B< !A<int>::Yes >;
+
+}
+
+
+namespace N2 {
+
+  template<bool> struct A {};
+  A<!false> a;
+
+}
+