ext Tests for GNU language extensions.
inherit Tests for inheritance -- virtual functions, multiple inheritance, etc.
init Tests for initialization semantics, constructors/destructors, etc.
-lookup Tests for lookup semantics, namespaces, etc.
+lookup Tests for lookup semantics, namespaces, using, etc.
overload Tests for overload resolution and conversions.
+parse Tests for parsing.
rtti Tests for run-time type identification (typeid, dynamic_cast, etc.)
template Tests for templates.
warn Tests for compiler warnings.
--- /dev/null
+// Test that completing an array declared with a typedef doesn't change
+// the typedef.
+
+// { dg-do run }
+
+typedef int iArr[];
+
+const iArr array4={
+ {1},{2},{3},{4}
+};
+
+const iArr array3={
+ {1},{2},{3}
+};
+
+const iArr array5={
+ {1},{2},{3},{4},{5}
+};
+
+int main()
+{
+ if (sizeof (array4)/sizeof (array4[0]) != 4
+ || sizeof (array3)/sizeof (array3[0]) != 3
+ || sizeof (array5)/sizeof (array5[0]) != 5)
+ return 1;
+}
--- /dev/null
+// Copyright (C) 2001 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
+
+// { dg-do compile }
+
+namespace N
+{
+ template<int> void f() {}
+}
+
+using N::f< 0 >; // { dg-error "using-declaration" "" }
+
+struct A {
+ template <class T> void f(T);
+ template <class T> struct X { };
+};
+
+struct B : A {
+ using A::X; // OK
+ using A::f; // OK
+};
+
+struct C : A {
+ using A::f<double>; // { dg-error "using-declaration" "" }
+ using A::X<int>; // { dg-error "parse error" "" }
+};
+
+++ /dev/null
-// Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
-// Origin: Bill Somerville <bill@classdesign.com>
-// { dg-do compile }
-
-int main()
-{
- ( int() > int() ); // { dg-bogus "parse" "" { xfail *-*-* } }
- return 0;
-}
+++ /dev/null
-// Copyright (C) 2001 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
-
-// { dg-do compile }
-
-namespace N
-{
- template<int> void f() {}
-}
-
-using N::f< 0 >; // { dg-error "using-declaration" "" }
-
-struct A {
- template <class T> void f(T);
- template <class T> struct X { };
-};
-
-struct B : A {
- using A::X; // OK
- using A::f; // OK
-};
-
-struct C : A {
- using A::f<double>; // { dg-error "using-declaration" "" }
- using A::X<int>; // { dg-error "parse error" "" }
-};
-
--- /dev/null
+// Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
+// Origin: Bill Somerville <bill@classdesign.com>
+// { dg-do compile }
+
+int main()
+{
+ ( int() > int() ); // { dg-bogus "parse" "" { xfail *-*-* } }
+ return 0;
+}