X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=gcc-branch.diff;h=9ac75afeca31f10a9809ac19e7e0e707ee1ecc94;hb=e641055a91f3450ba1da0e13bf5aa1f471bbb480;hp=ae7334d737326c96c72cbba3afde2973715fe896;hpb=a7d40bafa96ba422586e5fe56b7ecf84368cd1d3;p=packages%2Fgcc.git
diff --git a/gcc-branch.diff b/gcc-branch.diff
index ae7334d..9ac75af 100644
--- a/gcc-branch.diff
+++ b/gcc-branch.diff
@@ -1,26 +1,24106 @@
-Index: gcc/DEV-PHASE
+Index: libstdc++-v3/python/libstdcxx/v6/printers.py
===================================================================
---- gcc/DEV-PHASE (.../tags/gcc_4_7_3_release) (wersja 197768)
-+++ gcc/DEV-PHASE (.../branches/gcc-4_7-branch) (wersja 197768)
-@@ -0,0 +1 @@
-+prerelease
-Index: gcc/ChangeLog
+--- libstdc++-v3/python/libstdcxx/v6/printers.py (.../tags/gcc_4_8_3_release) (revision 217117)
++++ libstdc++-v3/python/libstdcxx/v6/printers.py (.../branches/gcc-4_8-branch) (revision 217117)
+@@ -1,4 +1,4 @@
+-# Pretty-printers for libstc++.
++# Pretty-printers for libstdc++.
+
+ # Copyright (C) 2008-2013 Free Software Foundation, Inc.
+
+@@ -18,7 +18,51 @@
+ import gdb
+ import itertools
+ import re
++import sys
+
++### Python 2 + Python 3 compatibility code
++
++# Resources about compatibility:
++#
++# * : Documentation of the "six" module
++
++# FIXME: The handling of e.g. std::basic_string (at least on char)
++# probably needs updating to work with Python 3's new string rules.
++#
++# In particular, Python 3 has a separate type (called byte) for
++# bytestrings, and a special b"" syntax for the byte literals; the old
++# str() type has been redefined to always store Unicode text.
++#
++# We probably can't do much about this until this GDB PR is addressed:
++#
++
++if sys.version_info[0] > 2:
++ ### Python 3 stuff
++ Iterator = object
++ # Python 3 folds these into the normal functions.
++ imap = map
++ izip = zip
++ # Also, int subsumes long
++ long = int
++else:
++ ### Python 2 stuff
++ class Iterator:
++ """Compatibility mixin for iterators
++
++ Instead of writing next() methods for iterators, write
++ __next__() methods and use this mixin to make them work in
++ Python 2 as well as Python 3.
++
++ Idea stolen from the "six" documentation:
++
++ """
++
++ def next(self):
++ return self.__next__()
++
++ # In Python 2, we still need these from itertools
++ from itertools import imap, izip
++
+ # Try to use the new-style pretty-printing if available.
+ _use_gdb_pp = True
+ try:
+@@ -51,7 +95,7 @@
+ # anything fancier here.
+ field = typ.fields()[0]
+ if not field.is_base_class:
+- raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
++ raise ValueError("Cannot find type %s::%s" % (str(orig), name))
+ typ = field.type
+
+ class SharedPointerPrinter:
+@@ -87,7 +131,7 @@
+ class StdListPrinter:
+ "Print a std::list"
+
+- class _iterator:
++ class _iterator(Iterator):
+ def __init__(self, nodetype, head):
+ self.nodetype = nodetype
+ self.base = head['_M_next']
+@@ -97,7 +141,7 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
++ def __next__(self):
+ if self.base == self.head:
+ raise StopIteration
+ elt = self.base.cast(self.nodetype).dereference()
+@@ -135,7 +179,7 @@
+ class StdSlistPrinter:
+ "Print a __gnu_cxx::slist"
+
+- class _iterator:
++ class _iterator(Iterator):
+ def __init__(self, nodetype, head):
+ self.nodetype = nodetype
+ self.base = head['_M_head']['_M_next']
+@@ -144,7 +188,7 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
++ def __next__(self):
+ if self.base == 0:
+ raise StopIteration
+ elt = self.base.cast(self.nodetype).dereference()
+@@ -180,7 +224,7 @@
+ class StdVectorPrinter:
+ "Print a std::vector"
+
+- class _iterator:
++ class _iterator(Iterator):
+ def __init__ (self, start, finish, bitvec):
+ self.bitvec = bitvec
+ if bitvec:
+@@ -198,7 +242,7 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
++ def __next__(self):
+ count = self.count
+ self.count = self.count + 1
+ if self.bitvec:
+@@ -265,7 +309,7 @@
+ class StdTuplePrinter:
+ "Print a std::tuple"
+
+- class _iterator:
++ class _iterator(Iterator):
+ def __init__ (self, head):
+ self.head = head
+
+@@ -276,13 +320,13 @@
+ # Set the actual head to the first pair.
+ self.head = self.head.cast (nodes[0].type)
+ elif len (nodes) != 0:
+- raise ValueError, "Top of tuple tree does not consist of a single node."
++ raise ValueError("Top of tuple tree does not consist of a single node.")
+ self.count = 0
+
+ def __iter__ (self):
+ return self
+
+- def next (self):
++ def __next__ (self):
+ nodes = self.head.type.fields ()
+ # Check for further recursions in the inheritance tree.
+ if len (nodes) == 0:
+@@ -289,7 +333,7 @@
+ raise StopIteration
+ # Check that this iteration has an expected structure.
+ if len (nodes) != 2:
+- raise ValueError, "Cannot parse more than 2 nodes in a tuple tree."
++ raise ValueError("Cannot parse more than 2 nodes in a tuple tree.")
+
+ # - Left node is the next recursion parent.
+ # - Right node is the actual class contained in the tuple.
+@@ -341,7 +385,7 @@
+ return self.visualizer.display_hint ()
+ return None
+
+-class RbtreeIterator:
++class RbtreeIterator(Iterator):
+ def __init__(self, rbtree):
+ self.size = rbtree['_M_t']['_M_impl']['_M_node_count']
+ self.node = rbtree['_M_t']['_M_impl']['_M_header']['_M_left']
+@@ -353,7 +397,7 @@
+ def __len__(self):
+ return int (self.size)
+
+- def next(self):
++ def __next__(self):
+ if self.count == self.size:
+ raise StopIteration
+ result = self.node
+@@ -405,7 +449,7 @@
+ "Print a std::map or std::multimap"
+
+ # Turn an RbtreeIterator into a pretty-print iterator.
+- class _iter:
++ class _iter(Iterator):
+ def __init__(self, rbiter, type):
+ self.rbiter = rbiter
+ self.count = 0
+@@ -414,9 +458,9 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
++ def __next__(self):
+ if self.count % 2 == 0:
+- n = self.rbiter.next()
++ n = next(self.rbiter)
+ n = n.cast(self.type).dereference()['_M_value_field']
+ self.pair = n
+ item = n['first']
+@@ -447,7 +491,7 @@
+ "Print a std::set or std::multiset"
+
+ # Turn an RbtreeIterator into a pretty-print iterator.
+- class _iter:
++ class _iter(Iterator):
+ def __init__(self, rbiter, type):
+ self.rbiter = rbiter
+ self.count = 0
+@@ -456,8 +500,8 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
+- item = self.rbiter.next()
++ def __next__(self):
++ item = next(self.rbiter)
+ item = item.cast(self.type).dereference()['_M_value_field']
+ # FIXME: this is weird ... what to do?
+ # Maybe a 'set' display hint?
+@@ -522,7 +566,7 @@
+ class StdDequePrinter:
+ "Print a std::deque"
+
+- class _iter:
++ class _iter(Iterator):
+ def __init__(self, node, start, end, last, buffer_size):
+ self.node = node
+ self.p = start
+@@ -534,7 +578,7 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
++ def __next__(self):
+ if self.p == self.last:
+ raise StopIteration
+
+@@ -619,7 +663,7 @@
+ def display_hint (self):
+ return 'string'
+
+-class Tr1HashtableIterator:
++class Tr1HashtableIterator(Iterator):
+ def __init__ (self, hash):
+ self.node = hash['_M_bbegin']['_M_node']['_M_nxt']
+ self.node_type = find_type(hash.type, '__node_type').pointer()
+@@ -627,7 +671,7 @@
+ def __iter__ (self):
+ return self
+
+- def next (self):
++ def __next__ (self):
+ if self.node == 0:
+ raise StopIteration
+ node = self.node.cast(self.node_type)
+@@ -655,8 +699,8 @@
+ return '[%d]' % i
+
+ def children (self):
+- counter = itertools.imap (self.format_count, itertools.count())
+- return itertools.izip (counter, Tr1HashtableIterator (self.hashtable()))
++ counter = imap (self.format_count, itertools.count())
++ return izip (counter, Tr1HashtableIterator (self.hashtable()))
+
+ class Tr1UnorderedMapPrinter:
+ "Print a tr1::unordered_map"
+@@ -688,11 +732,11 @@
+ return '[%d]' % i
+
+ def children (self):
+- counter = itertools.imap (self.format_count, itertools.count())
++ counter = imap (self.format_count, itertools.count())
+ # Map over the hash table and flatten the result.
+- data = self.flatten (itertools.imap (self.format_one, Tr1HashtableIterator (self.hashtable())))
++ data = self.flatten (imap (self.format_one, Tr1HashtableIterator (self.hashtable())))
+ # Zip the two iterators together.
+- return itertools.izip (counter, data)
++ return izip (counter, data)
+
+ def display_hint (self):
+ return 'map'
+@@ -700,7 +744,7 @@
+ class StdForwardListPrinter:
+ "Print a std::forward_list"
+
+- class _iterator:
++ class _iterator(Iterator):
+ def __init__(self, nodetype, head):
+ self.nodetype = nodetype
+ self.base = head['_M_next']
+@@ -709,7 +753,7 @@
+ def __iter__(self):
+ return self
+
+- def next(self):
++ def __next__(self):
+ if self.base == 0:
+ raise StopIteration
+ elt = self.base.cast(self.nodetype).dereference()
+@@ -764,7 +808,7 @@
+ # A small sanity check.
+ # FIXME
+ if not self.compiled_rx.match(name + '<>'):
+- raise ValueError, 'libstdc++ programming error: "%s" does not match' % name
++ raise ValueError('libstdc++ programming error: "%s" does not match' % name)
+ printer = RxPrinter(name, function)
+ self.subprinters.append(printer)
+ self.lookup[name] = printer
+Index: libstdc++-v3/scripts/run_doxygen
+===================================================================
+--- libstdc++-v3/scripts/run_doxygen (.../tags/gcc_4_8_3_release) (revision 217117)
++++ libstdc++-v3/scripts/run_doxygen (.../branches/gcc-4_8-branch) (revision 217117)
+@@ -193,8 +193,15 @@
+ if $do_latex; then
+ cd ${outdir}/${mode}
+
+- # Also drop in the header file and style sheet
+- doxygen -w latex header.tex doxygen.sty
++ # Grrr, Doxygen 1.8.x changed the -w latex options.
++ need_footer=`doxygen -h | sed -n -e '/-w latex/s=.*footer.*=true=p'`
++
++ # Also drop in the header file (maybe footer file) and style sheet
++ if $need_footer; then
++ doxygen -w latex header.tex footer.tex doxygen.sty
++ else
++ doxygen -w latex header.tex doxygen.sty
++ fi
+
+ echo ::
+ echo :: LaTeX pages begin with
+Index: libstdc++-v3/doc/xml/manual/containers.xml
+===================================================================
+--- libstdc++-v3/doc/xml/manual/containers.xml (.../tags/gcc_4_8_3_release) (revision 217117)
++++ libstdc++-v3/doc/xml/manual/containers.xml (.../branches/gcc-4_8-branch) (revision 217117)
+@@ -25,8 +25,9 @@
+ list::size() is O(n)
+
+
+- Yes it is, and that's okay. This is a decision that we preserved
+- when we imported SGI's STL implementation. The following is
++ Yes it is, and that was okay until the 2011 edition of the C++ standard.
++ In future GCC will change it to O(1) but O(N) was a decision that we
++ preserved when we imported SGI's STL implementation. The following is
+ quoted from their FAQ:
+
+
+@@ -72,26 +73,6 @@
+
+
+
+-vector
+-
+-
+-
+-
+- Space Overhead Management
+-
+-
+- In this
+- message to the list, Daniel Kostecky announced work on an
+- alternate form of std::vector
that would support
+- hints on the number of elements to be over-allocated. The design
+- was also described, along with possible implementation choices.
+-
+-
+- The first two alpha releases were announced here
+- and here.
+-
+-
+-
+
+
+
+Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
+===================================================================
+--- libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../tags/gcc_4_8_3_release) (revision 217117)
++++ libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../branches/gcc-4_8-branch) (revision 217117)
+@@ -226,10 +226,12 @@
+
+
+
++
+ 18.8.6
+ nested_exception
+- Y
+-
++ Partial
++ Follows an earlier C++0x draft, not the final specification.
++
+
+
+ 18.9
+@@ -612,10 +614,11 @@
+
+
+
++
+ 20.6.12.4
+ uninitialized_fill_n
+- Y
+-
++ Partial
++ Returns void
.
+
+
+ 20.6.13
+@@ -1119,10 +1122,13 @@
+
+
+
++
+ 21.4
+ Class template basic_string
+- Y
+-
++ Partial
++ Non-conforming Copy-On-Write implementation.
++ Missing getline
overloads for rvalue streams.
++
+
+
+ 21.5
+@@ -1190,10 +1196,11 @@
+
+
+
++
+ 22.3.3.1
+ Character classification
+- Y
+-
++ Partial
++ Missing isblank
.
+
+
+ 22.3.3.2
+@@ -1272,16 +1279,18 @@
+
+
+
++
+ 22.4.5.1
+ Class template time_get
+- Y
+-
++ Partial
++ Missing get
and do_get
+
+
++
+ 22.4.5.2
+ Class template time_get_byname
+- Y
+-
++ Partial
++ Likewise
+
+
+ 22.4.5.3
+@@ -1434,8 +1443,10 @@
+ 23.3.5
+ Class template list
+ Partial
+- insert
and erase
members do not
+- take const_iterator
arguments (N2350).
++ O(N) size.
++ insert
and erase
members do not
++ take const_iterator
arguments (N2350).
++
+
+
+
+@@ -1650,10 +1661,11 @@
+
+
+
++
+ 25.3
+ Mutating sequence operations
+- Y
+-
++ Partial
++ rotate
returns void
.
+
+
+ 25.4
+@@ -2060,10 +2072,13 @@
+
+
+
++
+ 26.8
+ C Library
+- Y
+-
++ Partial
++ <ctgmath>
doesn't include
++ <ccomplex>
++
+
+
+
+@@ -2143,6 +2158,7 @@
+ Missing move and swap operations on basic_ios
.
+ Missing io_errc
and iostream_category
.
+ ios_base::failure
is not derived from system_error
.
++ Missing ios_base::hexfloat
.
+
+
+
+Index: libstdc++-v3/doc/html/index.html
+===================================================================
+--- libstdc++-v3/doc/html/index.html (.../tags/gcc_4_8_3_release) (revision 217117)
++++ libstdc++-v3/doc/html/index.html (.../branches/gcc-4_8-branch) (revision 217117)
+@@ -43,7 +43,7 @@
+ - Locales
- locale
- Requirements
- Design
- Implementation
- Interacting with "C" locales
- Future
- Facets
- ctype
- Implementation
- Specializations
- Future
- codecvt
- Requirements
- Design
- wchar_t Size
- Support for Unicode
- Other Issues
- Implementation
- Use
- Future
- messages
- Requirements
- Design
- Implementation
- Models
- The GNU Model
- Use
- Future
9.
+ Containers
+
+-- Sequences
- list
- list::size() is O(n)
- vector
- Space Overhead Management
- Associative
- Insertion Hints
- bitset
- Size Variable
- Type String
- Unordered Associative
- Hash Code
- Hash Code Caching Policy
- Interacting with C
- Containers vs. Arrays
10.
++- Sequences
- list
- list::size() is O(n)
- Associative
- Insertion Hints
- bitset
- Size Variable
- Type String
- Unordered Associative
- Hash Code
- Hash Code Caching Policy
- Interacting with C
- Containers vs. Arrays
10.
+ Iterators
+
+ - Predefined
- Iterators vs. Pointers
- One Past the End
11.
+@@ -162,4 +162,4 @@
+
+ D.
+ GNU General Public License version 3
+- E. GNU Free Documentation License- The GNU C++ Library API Reference
- Frequently Asked Questions