]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
This commit was manufactured by cvs2svn to create branch
authorNo Author <no-author@gcc.gnu.org>
Mon, 8 Nov 2004 17:41:20 +0000 (17:41 +0000)
committerNo Author <no-author@gcc.gnu.org>
Mon, 8 Nov 2004 17:41:20 +0000 (17:41 +0000)
'gcc-3_4-branch'.

From-SVN: r90273

gcc/testsuite/g++.dg/conversion/const3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/crash25.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/typedef2.C [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc [new file with mode: 0644]
libstdc++-v3/testsuite/thread/18185.cc [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/conversion/const3.C b/gcc/testsuite/g++.dg/conversion/const3.C
new file mode 100644 (file)
index 0000000..faa9f81
--- /dev/null
@@ -0,0 +1,7 @@
+// PR c++/18177
+
+void foo()
+{
+  X; // { dg-error "" }
+  const_cast<int&>(X);
+}
diff --git a/gcc/testsuite/g++.dg/template/crash25.C b/gcc/testsuite/g++.dg/template/crash25.C
new file mode 100644 (file)
index 0000000..fa77f0d
--- /dev/null
@@ -0,0 +1,3 @@
+// PR c++/18124
+
+template <template <int> class class> class A {}; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/template/typedef2.C b/gcc/testsuite/g++.dg/template/typedef2.C
new file mode 100644 (file)
index 0000000..6c65671
--- /dev/null
@@ -0,0 +1,3 @@
+// PR c++/18155
+
+template<int> typedef struct A; // { dg-error "" }
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
new file mode 100644 (file)
index 0000000..4f16d15
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+#include <testsuite_hooks.h>
+
+int main()
+{
+  __gnu_test::bitmask_operators<std::ios_base::fmtflags>();
+};
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc
new file mode 100644 (file)
index 0000000..3c4e6af
--- /dev/null
@@ -0,0 +1,84 @@
+// { dg-do compile }
+// { dg-options "-Wall" { target *-*-* } }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+
+// PR libstdc++/17922
+// -Wall
+typedef std::ios_base::fmtflags bitmask_type;
+
+void
+case_labels(bitmask_type b)
+{
+  switch (b) 
+    {
+    case std::ios_base::boolalpha:
+      break;
+    case std::ios_base::dec:
+      break;
+    case std::ios_base::fixed:
+      break;
+    case std::ios_base::hex:
+      break;
+    case std::ios_base::internal:
+      break;
+    case std::ios_base::left:
+      break;
+    case std::ios_base::oct:
+      break;
+    case std::ios_base::right:
+      break;
+    case std::ios_base::scientific:
+      break;
+    case std::ios_base::showbase:
+      break;
+    case std::ios_base::showpoint:
+      break;
+    case std::ios_base::showpos:
+      break;
+    case std::ios_base::skipws:
+      break;
+    case std::ios_base::unitbuf:
+      break;
+    case std::ios_base::uppercase:
+      break;
+    case std::ios_base::adjustfield:
+      break;
+    case std::ios_base::basefield:
+      break;
+    case std::ios_base::floatfield:
+      break;
+    case std::_S_ios_fmtflags_end:
+      break;
+    }
+}
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
new file mode 100644 (file)
index 0000000..c8a00a0
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+#include <testsuite_hooks.h>
+
+int main()
+{
+  __gnu_test::bitmask_operators<std::ios_base::iostate>();
+};
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc
new file mode 100644 (file)
index 0000000..51277c9
--- /dev/null
@@ -0,0 +1,56 @@
+// { dg-do compile }
+// { dg-options "-Wall" { target *-*-* } }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+
+// PR libstdc++/17922
+// -Wall
+typedef std::ios_base::iostate bitmask_type;
+
+void
+case_labels(bitmask_type b)
+{
+  switch (b) 
+    {
+    case std::ios_base::goodbit:
+      break;
+    case std::ios_base::badbit:
+      break;
+    case std::ios_base::eofbit:
+      break;
+    case std::ios_base::failbit:
+      break;
+    case std::_S_ios_iostate_end:
+      break;
+    }
+}
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
new file mode 100644 (file)
index 0000000..457b6dd
--- /dev/null
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+#include <testsuite_hooks.h>
+
+int main()
+{
+  __gnu_test::bitmask_operators<std::ios_base::openmode>();
+};
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc
new file mode 100644 (file)
index 0000000..4287550
--- /dev/null
@@ -0,0 +1,60 @@
+// { dg-do compile }
+// { dg-options "-Wall" { target *-*-* } }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+
+// PR libstdc++/17922
+// -Wall
+typedef std::ios_base::openmode bitmask_type;
+
+void
+case_labels(bitmask_type b)
+{
+  switch (b) 
+    {
+    case std::ios_base::app:
+      break;
+    case std::ios_base::ate:
+      break;
+    case std::ios_base::binary:
+      break;
+    case std::ios_base::in:
+      break;
+    case std::ios_base::out:
+      break;
+    case std::ios_base::trunc:
+      break;
+    case std::_S_ios_openmode_end:
+      break;
+    }
+}
diff --git a/libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc b/libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc
new file mode 100644 (file)
index 0000000..0769758
--- /dev/null
@@ -0,0 +1,54 @@
+// { dg-do compile }
+// { dg-options "-Wall" { target *-*-* } }
+// -*- C++ -*-
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// 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.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+// Benjamin Kosnik  <bkoz@redhat.com>
+
+#include <ios>
+
+// PR libstdc++/17922
+// -Wall
+typedef std::ios_base::seekdir test_type;
+
+void
+case_labels(test_type b)
+{
+  switch (b) 
+    {
+    case std::ios_base::beg:
+      break;
+    case std::ios_base::cur:
+      break;
+    case std::ios_base::end:
+      break;
+    case std::_S_ios_fmtflags_end:
+      break;
+    }
+}
diff --git a/libstdc++-v3/testsuite/thread/18185.cc b/libstdc++-v3/testsuite/thread/18185.cc
new file mode 100644 (file)
index 0000000..5ea1db0
--- /dev/null
@@ -0,0 +1,53 @@
+//
+// Copyright (C) 2004 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.
+
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } }
+// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } }
+// { dg-options "-pthreads" { target *-*-solaris* } }
+
+#include <ext/new_allocator.h>
+#include <string>
+#include <pthread.h>
+
+static void *
+foo (void *p)
+{
+  typedef std::char_traits<char> traits_type;
+  typedef __gnu_cxx::new_allocator<char> allocator_type;
+  typedef std::basic_string<char, traits_type, allocator_type> string_type;
+  try
+    {
+      throw string_type("leak");
+    }
+  catch (const string_type&)
+    {
+      pthread_exit (0);
+    }
+}
+
+// c++/18185
+// This used to leak memory.
+int
+main ()
+{
+  pthread_t t;
+  int j = pthread_create (&t, 0, foo, 0);
+  int i = pthread_join (t, 0);
+  return 0;
+}