2007-10-05 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Oct 2007 03:06:37 +0000 (03:06 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Oct 2007 03:06:37 +0000 (03:06 +0000)
Fixes for --disable-libstdcxx-pch.
* include/ext/rc_string_base.h: Include stl_iterator_base_funcs.h.
* include/ext/vstring_util.h: Include stl_iterator.h and
numeric_traits.h.
* include/tr1/functional: Include new.
* testsuite/util/testsuite_api.h: Include exception.
* testsuite/lib/libstdc++.exp (libstdc++_init): Set
PCH_CXXFLAGS via cxxpchflags.

* testsuite/25_algorithms/binary_search/requirements/
explicit_instantiation/2.cc: Same.: Fix includes.
* testsuite/25_algorithms/count_if/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/equal_range/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/find_end/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/find_first_of/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/find_if/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/for_each/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/includes/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/inplace_merge/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/lexicographical_compare/
requirements/explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/lower_bound/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/make_heap/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/max_element/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/max/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/merge/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/min_element/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/min/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/next_permutation/
requirements/explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/nth_element/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/partial_sort_copy/
requirements/explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/partial_sort/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/partition/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/pop_heap/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/prev_permutation/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/push_heap/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/random_shuffle/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/remove_copy_if/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/remove_if/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/replace_copy_if/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/replace_if/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/search_n/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/search/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/set_difference/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/set_intersection/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/set_symmetric_difference/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/set_union/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/sort_heap/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/sort/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/stable_partition/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/stable_sort/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/transform/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/unique_copy/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/unique/requirements/
explicit_instantiation/2.cc: Same.
* testsuite/25_algorithms/upper_bound/requirements/
explicit_instantiation/2.cc: Same.

* testsuite/25_algorithms/remove/requirements/
explicit_instantiation/pod.cc: Provide a hint to the compiler.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129049 138bc75d-0d04-0410-961f-82ee72b054a4

51 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/rc_string_base.h
libstdc++-v3/include/ext/vstring_util.h
libstdc++-v3/include/tr1/functional
libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
libstdc++-v3/testsuite/lib/libstdc++.exp
libstdc++-v3/testsuite/util/testsuite_api.h

index 712cde5..b399869 100644 (file)
@@ -1,3 +1,106 @@
+2007-10-05  Benjamin Kosnik  <bkoz@redhat.com>
+
+       Fixes for --disable-libstdcxx-pch.
+       * include/ext/rc_string_base.h: Include stl_iterator_base_funcs.h.
+       * include/ext/vstring_util.h: Include stl_iterator.h and
+       numeric_traits.h.
+       * include/tr1/functional: Include new.
+       * testsuite/util/testsuite_api.h: Include exception.
+       * testsuite/lib/libstdc++.exp (libstdc++_init): Set
+       PCH_CXXFLAGS via cxxpchflags.
+
+       * testsuite/25_algorithms/binary_search/requirements/
+       explicit_instantiation/2.cc: Same.: Fix includes.
+       * testsuite/25_algorithms/count_if/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/equal_range/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/find_end/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/find_first_of/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/find_if/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/for_each/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/includes/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/inplace_merge/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/lexicographical_compare/
+       requirements/explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/lower_bound/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/make_heap/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/max_element/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/max/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/merge/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/min_element/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/min/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/next_permutation/
+       requirements/explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/nth_element/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/partial_sort_copy/
+       requirements/explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/partial_sort/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/partition/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/pop_heap/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/prev_permutation/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/push_heap/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/random_shuffle/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/remove_copy_if/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/remove_if/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/replace_copy_if/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/replace_if/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/search_n/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/search/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/set_difference/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/set_intersection/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/set_symmetric_difference/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/set_union/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/sort_heap/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/sort/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/stable_partition/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/stable_sort/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/transform/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/unique_copy/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/unique/requirements/
+       explicit_instantiation/2.cc: Same.
+       * testsuite/25_algorithms/upper_bound/requirements/
+       explicit_instantiation/2.cc: Same.
+
+       * testsuite/25_algorithms/remove/requirements/
+       explicit_instantiation/pod.cc: Provide a hint to the compiler.
+
 2007-10-05  Paolo Carlini  <pcarlini@suse.de>
 
        * testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref.
index 7c0934a..49128aa 100644 (file)
@@ -37,6 +37,7 @@
 #define _RC_STRING_BASE_H 1
 
 #include <ext/atomicity.h>
+#include <bits/stl_iterator_base_funcs.h>
 
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
index 390ef37..ab7cf3c 100644 (file)
@@ -44,6 +44,8 @@
 #include <bits/functexcept.h>
 #include <bits/localefwd.h>
 #include <bits/ostream_insert.h>
+#include <bits/stl_iterator.h>
+#include <ext/numeric_traits.h>
 
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
index 78f6b92..190f61a 100644 (file)
@@ -45,6 +45,7 @@
 
 #include <cmath>
 #include <typeinfo>
+#include <new>
 #include <tr1/tuple>
 #include <tr1/type_traits>
 #include <bits/stringfwd.h>
index 1bc1bcc..ca53819 100644 (file)
@@ -39,6 +39,5 @@ namespace std
   typedef pod_int              value_type;
   typedef value_type*          iterator_type;
 
-  template iterator_type remove(iterator_type, iterator_type, 
-                               const value_type&);
+  template iterator_type remove<iterator_type, value_type>(iterator_type, iterator_type, const value_type&);
 } 
index b48fda1..b482bf5 100644 (file)
@@ -83,7 +83,7 @@ proc libstdc++_init { testfile } {
     global env
     global v3-sharedlib 
     global srcdir blddir objdir tool_root_dir
-    global cc cxx cxxflags cxxldflags
+    global cc cxx cxxflags cxxpchflags cxxldflags
     global includes
     global gluefile wrap_flags
     global ld_library_path
@@ -184,6 +184,7 @@ proc libstdc++_init { testfile } {
     # Default settings.
     set cxx [transform "g++"]
     set cxxflags "-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0"
+    set cxxpchflags ""
     set cxxldflags ""
     set cc [transform "gcc"]
     # Locate testsuite_hooks.h and other testsuite headers.
@@ -221,6 +222,7 @@ proc libstdc++_init { testfile } {
         # If we find a testsuite_flags file, we're testing in the build dir.
        set cxx [exec sh $flags_file --build-cxx]
        set cxxflags [exec sh $flags_file --cxxflags]
+       set cxxpchflags [exec sh $flags_file --cxxpchflags]
        set cxxldflags [exec sh $flags_file --cxxldflags]
        set cc [exec sh $flags_file --build-cc]
        set includes [exec sh $flags_file --build-includes]
@@ -237,23 +239,29 @@ proc libstdc++_init { testfile } {
     # this check until $cxx and such have been initialized because we
     # perform a test compilation.  (Ideally, gcc --print-file-name would
     # list PCH files, but it does not.)
-    global PCH_CXXFLAGS
-    if ![info exists PCH_CXXFLAGS] then {
+    if { $cxxpchflags != "" } {
        set src "config[pid].cc"
        set f [open $src "w"]
        puts $f "int main () {}"
        close $f
 
+       # Fixme: "additional_flags=$cxxpchflags" fails, but would be
+       # useful as then the requested variant of the pre-build PCH
+       # files could be tested to see if it works.
        set lines [v3_target_compile $src "config[pid].o" object \
-                "additional_flags=-include additional_flags=bits/stdtr1c++.h"]
-       if {$lines == "" } {
-#          set PCH_CXXFLAGS "-include bits/extc++.h"
-#          set PCH_CXXFLAGS "-include bits/stdtr1c++.h"
-           set PCH_CXXFLAGS "-include bits/stdc++.h"
-       } else {
-           set PCH_CXXFLAGS ""
-       }
+                  "additional_flags=-include additional_flags=bits/stdc++.h"]
+       if { $lines != "" } {
+           verbose -log "Requested PCH file: $cxxpchflags"
+           verbose -log "is not working, and will not be used."
+           set cxxpchflags ""
+       } 
        file delete $src
+     } 
+    v3track cxxpchflags 2
+
+    global PCH_CXXFLAGS
+    if ![info exists PCH_CXXFLAGS] then {
+       set PCH_CXXFLAGS $cxxpchflags
        v3track PCH_CXXFLAGS 2
     }
 
index 3cd7c61..ca0d716 100644 (file)
@@ -28,6 +28,7 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
+#include <exception>
 #include <testsuite_hooks.h>
 
 #ifndef _TESTSUITE_API