GAS LISTING /tmp/ccev5sD5.s 			page 1


   1              		.file	"hello-exceptions.cpp"
   2              		.text
   3              	.Ltext0:
   4              		.align 2
   5              		.globl	_ZNK12MyExceptionA4whatEv
   7              	_ZNK12MyExceptionA4whatEv:
   8              	.LFB1250:
   9              		.file 1 "hello-exceptions.cpp"
   1:hello-exceptions.cpp **** #include <exception>
   2:hello-exceptions.cpp **** #include <string>
   3:hello-exceptions.cpp **** #include <iostream>
   4:hello-exceptions.cpp **** 
   5:hello-exceptions.cpp **** using namespace std;
   6:hello-exceptions.cpp **** 
   7:hello-exceptions.cpp **** class MyExceptionA : public exception {
   8:hello-exceptions.cpp ****   private:
   9:hello-exceptions.cpp ****     string _what;
  10:hello-exceptions.cpp ****   public:
  11:hello-exceptions.cpp ****     MyExceptionA(string what) throw ();
  12:hello-exceptions.cpp ****     ~MyExceptionA() throw ();
  13:hello-exceptions.cpp **** 
  14:hello-exceptions.cpp ****     virtual const char *what() const throw ();
  15:hello-exceptions.cpp ****     string as_string() const;
  16:hello-exceptions.cpp **** };
  17:hello-exceptions.cpp **** 
  18:hello-exceptions.cpp **** MyExceptionA::MyExceptionA(string what) throw ():
  19:hello-exceptions.cpp ****     _what(what)
  20:hello-exceptions.cpp **** {}
  21:hello-exceptions.cpp **** 
  22:hello-exceptions.cpp **** MyExceptionA::~MyExceptionA() throw () {
  23:hello-exceptions.cpp **** }
  24:hello-exceptions.cpp **** 
  25:hello-exceptions.cpp **** const char *MyExceptionA::what() const throw () {
  10              		.loc 1 25 0
  11              		.cfi_startproc
  12              	.LVL0:
  13 0000 4883EC08 		subq	$8, %rsp
  14              		.cfi_def_cfa_offset 16
  26:hello-exceptions.cpp ****     return _what.c_str();
  15              		.loc 1 26 0
  16 0004 4883C708 		addq	$8, %rdi
  17              	.LVL1:
  18 0008 E8000000 		call	_ZNKSs5c_strEv
  18      00
  19              	.LVL2:
  27:hello-exceptions.cpp **** }
  20              		.loc 1 27 0
  21 000d 4883C408 		addq	$8, %rsp
  22              		.cfi_def_cfa_offset 8
  23 0011 C3       		ret
  24              		.cfi_endproc
  25              	.LFE1250:
  27              		.align 2
  28              		.globl	_ZN12MyExceptionAD2Ev
  30              	_ZN12MyExceptionAD2Ev:
  31              	.LFB1247:
  22:hello-exceptions.cpp **** }
GAS LISTING /tmp/ccev5sD5.s 			page 2


  32              		.loc 1 22 0
  33              		.cfi_startproc
  34              	.LVL3:
  35 0012 53       		pushq	%rbx
  36              		.cfi_def_cfa_offset 16
  37              		.cfi_offset 3, -16
  38 0013 4889FB   		movq	%rdi, %rbx
  39              	.LBB2:
  22:hello-exceptions.cpp **** }
  40              		.loc 1 22 0
  41 0016 48C70700 		movq	$_ZTV12MyExceptionA+16, (%rdi)
  41      000000
  42 001d 488D7F08 		leaq	8(%rdi), %rdi
  43              	.LVL4:
  44 0021 E8000000 		call	_ZNSsD1Ev
  44      00
  45              	.LVL5:
  46 0026 4889DF   		movq	%rbx, %rdi
  47 0029 E8000000 		call	_ZNSt9exceptionD2Ev
  47      00
  48              	.LVL6:
  49              	.LBE2:
  23:hello-exceptions.cpp **** 
  50              		.loc 1 23 0
  51 002e 5B       		popq	%rbx
  52              		.cfi_def_cfa_offset 8
  53              	.LVL7:
  54 002f C3       		ret
  55              		.cfi_endproc
  56              	.LFE1247:
  58              		.globl	_ZN12MyExceptionAD1Ev
  59              		.set	_ZN12MyExceptionAD1Ev,_ZN12MyExceptionAD2Ev
  60              		.align 2
  61              		.globl	_ZN12MyExceptionAD0Ev
  63              	_ZN12MyExceptionAD0Ev:
  64              	.LFB1249:
  22:hello-exceptions.cpp **** }
  65              		.loc 1 22 0
  66              		.cfi_startproc
  67              	.LVL8:
  68 0030 53       		pushq	%rbx
  69              		.cfi_def_cfa_offset 16
  70              		.cfi_offset 3, -16
  71 0031 4889FB   		movq	%rdi, %rbx
  23:hello-exceptions.cpp **** 
  72              		.loc 1 23 0
  73 0034 E8000000 		call	_ZN12MyExceptionAD1Ev
  73      00
  74              	.LVL9:
  75 0039 4889DF   		movq	%rbx, %rdi
  76 003c E8000000 		call	_ZdlPv
  76      00
  77              	.LVL10:
  78 0041 5B       		popq	%rbx
  79              		.cfi_def_cfa_offset 8
  80              	.LVL11:
  81 0042 C3       		ret
GAS LISTING /tmp/ccev5sD5.s 			page 3


  82              		.cfi_endproc
  83              	.LFE1249:
  86              	_Z41__static_initialization_and_destruction_0ii:
  87              	.LFB1423:
  28:hello-exceptions.cpp **** 
  29:hello-exceptions.cpp **** string MyExceptionA::as_string() const {
  30:hello-exceptions.cpp ****     return "MyExceptionA(" + _what + ")";
  31:hello-exceptions.cpp **** }
  32:hello-exceptions.cpp **** 
  33:hello-exceptions.cpp **** 
  34:hello-exceptions.cpp **** // arg must be greater than 0. Returns half arg, rounded down.
  35:hello-exceptions.cpp **** int take_half(int arg) throw (MyExceptionA) {
  36:hello-exceptions.cpp ****     if (arg <= 0) {
  37:hello-exceptions.cpp ****         throw MyExceptionA("arg is not greater than 0.");
  38:hello-exceptions.cpp ****     }
  39:hello-exceptions.cpp ****     return arg / 2;
  40:hello-exceptions.cpp **** }
  41:hello-exceptions.cpp **** 
  42:hello-exceptions.cpp **** void helloExceptions() {
  43:hello-exceptions.cpp ****     try {
  44:hello-exceptions.cpp ****         take_half(-2);
  45:hello-exceptions.cpp ****     } catch (MyExceptionA &e) {
  46:hello-exceptions.cpp ****         cout << "Got exception: " << e.as_string() << endl;
  47:hello-exceptions.cpp ****     }
  48:hello-exceptions.cpp **** }
  88              		.loc 1 48 0
  89              		.cfi_startproc
  90              	.LVL12:
  91 0043 83FF01   		cmpl	$1, %edi
  92 0046 752E     		jne	.L11
  93              		.loc 1 48 0 discriminator 1
  94 0048 81FEFFFF 		cmpl	$65535, %esi
  94      0000
  95 004e 7526     		jne	.L11
  96              		.loc 1 48 0 is_stmt 0
  97 0050 4883EC08 		subq	$8, %rsp
  98              		.cfi_def_cfa_offset 16
  99              		.file 2 "/usr/include/c++/4.8/iostream"
   1:/usr/include/c++/4.8/iostream **** // Standard iostream objects -*- C++ -*-
   2:/usr/include/c++/4.8/iostream **** 
   3:/usr/include/c++/4.8/iostream **** // Copyright (C) 1997-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/iostream **** //
   5:/usr/include/c++/4.8/iostream **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/iostream **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/iostream **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/iostream **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/iostream **** // any later version.
  10:/usr/include/c++/4.8/iostream **** 
  11:/usr/include/c++/4.8/iostream **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/iostream **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/iostream **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/iostream **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/iostream **** 
  16:/usr/include/c++/4.8/iostream **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/iostream **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/iostream **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/iostream **** 
GAS LISTING /tmp/ccev5sD5.s 			page 4


  20:/usr/include/c++/4.8/iostream **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/iostream **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/iostream **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/iostream **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/iostream **** 
  25:/usr/include/c++/4.8/iostream **** /** @file include/iostream
  26:/usr/include/c++/4.8/iostream ****  *  This is a Standard C++ Library header.
  27:/usr/include/c++/4.8/iostream ****  */
  28:/usr/include/c++/4.8/iostream **** 
  29:/usr/include/c++/4.8/iostream **** //
  30:/usr/include/c++/4.8/iostream **** // ISO C++ 14882: 27.3  Standard iostream objects
  31:/usr/include/c++/4.8/iostream **** //
  32:/usr/include/c++/4.8/iostream **** 
  33:/usr/include/c++/4.8/iostream **** #ifndef _GLIBCXX_IOSTREAM
  34:/usr/include/c++/4.8/iostream **** #define _GLIBCXX_IOSTREAM 1
  35:/usr/include/c++/4.8/iostream **** 
  36:/usr/include/c++/4.8/iostream **** #pragma GCC system_header
  37:/usr/include/c++/4.8/iostream **** 
  38:/usr/include/c++/4.8/iostream **** #include <bits/c++config.h>
  39:/usr/include/c++/4.8/iostream **** #include <ostream>
  40:/usr/include/c++/4.8/iostream **** #include <istream>
  41:/usr/include/c++/4.8/iostream **** 
  42:/usr/include/c++/4.8/iostream **** namespace std _GLIBCXX_VISIBILITY(default)
  43:/usr/include/c++/4.8/iostream **** {
  44:/usr/include/c++/4.8/iostream **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  45:/usr/include/c++/4.8/iostream **** 
  46:/usr/include/c++/4.8/iostream ****   /**
  47:/usr/include/c++/4.8/iostream ****    *  @name Standard Stream Objects
  48:/usr/include/c++/4.8/iostream ****    *
  49:/usr/include/c++/4.8/iostream ****    *  The &lt;iostream&gt; header declares the eight <em>standard stream
  50:/usr/include/c++/4.8/iostream ****    *  objects</em>.  For other declarations, see
  51:/usr/include/c++/4.8/iostream ****    *  http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html
  52:/usr/include/c++/4.8/iostream ****    *  and the @link iosfwd I/O forward declarations @endlink
  53:/usr/include/c++/4.8/iostream ****    *
  54:/usr/include/c++/4.8/iostream ****    *  They are required by default to cooperate with the global C
  55:/usr/include/c++/4.8/iostream ****    *  library's @c FILE streams, and to be available during program
  56:/usr/include/c++/4.8/iostream ****    *  startup and termination. For more information, see the HOWTO
  57:/usr/include/c++/4.8/iostream ****    *  linked to above.
  58:/usr/include/c++/4.8/iostream ****   */
  59:/usr/include/c++/4.8/iostream ****   //@{
  60:/usr/include/c++/4.8/iostream ****   extern istream cin;		/// Linked to standard input
  61:/usr/include/c++/4.8/iostream ****   extern ostream cout;		/// Linked to standard output
  62:/usr/include/c++/4.8/iostream ****   extern ostream cerr;		/// Linked to standard error (unbuffered)
  63:/usr/include/c++/4.8/iostream ****   extern ostream clog;		/// Linked to standard error (buffered)
  64:/usr/include/c++/4.8/iostream **** 
  65:/usr/include/c++/4.8/iostream **** #ifdef _GLIBCXX_USE_WCHAR_T
  66:/usr/include/c++/4.8/iostream ****   extern wistream wcin;		/// Linked to standard input
  67:/usr/include/c++/4.8/iostream ****   extern wostream wcout;	/// Linked to standard output
  68:/usr/include/c++/4.8/iostream ****   extern wostream wcerr;	/// Linked to standard error (unbuffered)
  69:/usr/include/c++/4.8/iostream ****   extern wostream wclog;	/// Linked to standard error (buffered)
  70:/usr/include/c++/4.8/iostream **** #endif
  71:/usr/include/c++/4.8/iostream ****   //@}
  72:/usr/include/c++/4.8/iostream **** 
  73:/usr/include/c++/4.8/iostream ****   // For construction of filebuffers for cout, cin, cerr, clog et. al.
  74:/usr/include/c++/4.8/iostream ****   static ios_base::Init __ioinit;
 100              		.loc 2 74 0 is_stmt 1
 101 0054 BF000000 		movl	$_ZStL8__ioinit, %edi
GAS LISTING /tmp/ccev5sD5.s 			page 5


 101      00
 102              	.LVL13:
 103 0059 E8000000 		call	_ZNSt8ios_base4InitC1Ev
 103      00
 104              	.LVL14:
 105 005e BA000000 		movl	$__dso_handle, %edx
 105      00
 106 0063 BE000000 		movl	$_ZStL8__ioinit, %esi
 106      00
 107 0068 BF000000 		movl	$_ZNSt8ios_base4InitD1Ev, %edi
 107      00
 108 006d E8000000 		call	__cxa_atexit
 108      00
 109              	.LVL15:
 110              		.loc 1 48 0
 111 0072 4883C408 		addq	$8, %rsp
 112              		.cfi_def_cfa_offset 8
 113              	.L11:
 114 0076 C3       		ret
 115              		.cfi_endproc
 116              	.LFE1423:
 118              		.section	.text._ZNSt9exceptionC2Ev,"axG",@progbits,_ZNSt9exceptionC5Ev,comdat
 119              		.align 2
 120              		.weak	_ZNSt9exceptionC2Ev
 122              	_ZNSt9exceptionC2Ev:
 123              	.LFB1:
 124              		.file 3 "/usr/include/c++/4.8/exception"
   1:/usr/include/c++/4.8/exception **** // Exception Handling support header for -*- C++ -*-
   2:/usr/include/c++/4.8/exception **** 
   3:/usr/include/c++/4.8/exception **** // Copyright (C) 1995-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/exception **** //
   5:/usr/include/c++/4.8/exception **** // This file is part of GCC.
   6:/usr/include/c++/4.8/exception **** //
   7:/usr/include/c++/4.8/exception **** // GCC is free software; you can redistribute it and/or modify
   8:/usr/include/c++/4.8/exception **** // it under the terms of the GNU General Public License as published by
   9:/usr/include/c++/4.8/exception **** // the Free Software Foundation; either version 3, or (at your option)
  10:/usr/include/c++/4.8/exception **** // any later version.
  11:/usr/include/c++/4.8/exception **** //
  12:/usr/include/c++/4.8/exception **** // GCC is distributed in the hope that it will be useful,
  13:/usr/include/c++/4.8/exception **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/usr/include/c++/4.8/exception **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15:/usr/include/c++/4.8/exception **** // GNU General Public License for more details.
  16:/usr/include/c++/4.8/exception **** //
  17:/usr/include/c++/4.8/exception **** // Under Section 7 of GPL version 3, you are granted additional
  18:/usr/include/c++/4.8/exception **** // permissions described in the GCC Runtime Library Exception, version
  19:/usr/include/c++/4.8/exception **** // 3.1, as published by the Free Software Foundation.
  20:/usr/include/c++/4.8/exception **** 
  21:/usr/include/c++/4.8/exception **** // You should have received a copy of the GNU General Public License and
  22:/usr/include/c++/4.8/exception **** // a copy of the GCC Runtime Library Exception along with this program;
  23:/usr/include/c++/4.8/exception **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  24:/usr/include/c++/4.8/exception **** // <http://www.gnu.org/licenses/>.
  25:/usr/include/c++/4.8/exception **** 
  26:/usr/include/c++/4.8/exception **** /** @file exception
  27:/usr/include/c++/4.8/exception ****  *  This is a Standard C++ Library header.
  28:/usr/include/c++/4.8/exception ****  */
  29:/usr/include/c++/4.8/exception **** 
  30:/usr/include/c++/4.8/exception **** #ifndef __EXCEPTION__
GAS LISTING /tmp/ccev5sD5.s 			page 6


  31:/usr/include/c++/4.8/exception **** #define __EXCEPTION__
  32:/usr/include/c++/4.8/exception **** 
  33:/usr/include/c++/4.8/exception **** #pragma GCC system_header
  34:/usr/include/c++/4.8/exception **** 
  35:/usr/include/c++/4.8/exception **** #pragma GCC visibility push(default)
  36:/usr/include/c++/4.8/exception **** 
  37:/usr/include/c++/4.8/exception **** #include <bits/c++config.h>
  38:/usr/include/c++/4.8/exception **** #include <bits/atomic_lockfree_defines.h>
  39:/usr/include/c++/4.8/exception **** 
  40:/usr/include/c++/4.8/exception **** extern "C++" {
  41:/usr/include/c++/4.8/exception **** 
  42:/usr/include/c++/4.8/exception **** namespace std
  43:/usr/include/c++/4.8/exception **** {
  44:/usr/include/c++/4.8/exception ****   /**
  45:/usr/include/c++/4.8/exception ****    * @defgroup exceptions Exceptions
  46:/usr/include/c++/4.8/exception ****    * @ingroup diagnostics
  47:/usr/include/c++/4.8/exception ****    *
  48:/usr/include/c++/4.8/exception ****    * Classes and functions for reporting errors via exception classes.
  49:/usr/include/c++/4.8/exception ****    * @{
  50:/usr/include/c++/4.8/exception ****    */
  51:/usr/include/c++/4.8/exception **** 
  52:/usr/include/c++/4.8/exception ****   /**
  53:/usr/include/c++/4.8/exception ****    *  @brief Base class for all library exceptions.
  54:/usr/include/c++/4.8/exception ****    *
  55:/usr/include/c++/4.8/exception ****    *  This is the base class for all exceptions thrown by the standard
  56:/usr/include/c++/4.8/exception ****    *  library, and by certain language expressions.  You are free to derive
  57:/usr/include/c++/4.8/exception ****    *  your own %exception classes, or use a different hierarchy, or to
  58:/usr/include/c++/4.8/exception ****    *  throw non-class data (e.g., fundamental types).
  59:/usr/include/c++/4.8/exception ****    */
  60:/usr/include/c++/4.8/exception ****   class exception
  61:/usr/include/c++/4.8/exception ****   {
  62:/usr/include/c++/4.8/exception ****   public:
  63:/usr/include/c++/4.8/exception ****     exception() _GLIBCXX_USE_NOEXCEPT { }
 125              		.loc 3 63 0
 126              		.cfi_startproc
 127              	.LVL16:
 128              	.LBB3:
 129              		.loc 3 63 0
 130 0000 48C70700 		movq	$_ZTVSt9exception+16, (%rdi)
 130      000000
 131 0007 C3       		ret
 132              	.LBE3:
 133              		.cfi_endproc
 134              	.LFE1:
 136              		.weak	_ZNSt9exceptionC1Ev
 137              		.set	_ZNSt9exceptionC1Ev,_ZNSt9exceptionC2Ev
 138              		.section	.text._ZNSt11char_traitsIcE6lengthEPKc,"axG",@progbits,_ZNSt11char_traitsIcE6lengthEPKc,c
 139              		.weak	_ZNSt11char_traitsIcE6lengthEPKc
 141              	_ZNSt11char_traitsIcE6lengthEPKc:
 142              	.LFB299:
 143              		.file 4 "/usr/include/c++/4.8/bits/char_traits.h"
   1:/usr/include/c++/4.8/bits/char_traits.h **** // Character Traits for use by standard string and iostream -*- C++ -*-
   2:/usr/include/c++/4.8/bits/char_traits.h **** 
   3:/usr/include/c++/4.8/bits/char_traits.h **** // Copyright (C) 1997-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/char_traits.h **** //
   5:/usr/include/c++/4.8/bits/char_traits.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/char_traits.h **** // software; you can redistribute it and/or modify it under the
GAS LISTING /tmp/ccev5sD5.s 			page 7


   7:/usr/include/c++/4.8/bits/char_traits.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/char_traits.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/char_traits.h **** // any later version.
  10:/usr/include/c++/4.8/bits/char_traits.h **** 
  11:/usr/include/c++/4.8/bits/char_traits.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/char_traits.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/char_traits.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/char_traits.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/char_traits.h **** 
  16:/usr/include/c++/4.8/bits/char_traits.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/char_traits.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/char_traits.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/char_traits.h **** 
  20:/usr/include/c++/4.8/bits/char_traits.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/char_traits.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/char_traits.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/char_traits.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/char_traits.h **** 
  25:/usr/include/c++/4.8/bits/char_traits.h **** /** @file bits/char_traits.h
  26:/usr/include/c++/4.8/bits/char_traits.h ****  *  This is an internal header file, included by other library headers.
  27:/usr/include/c++/4.8/bits/char_traits.h ****  *  Do not attempt to use it directly. @headername{string}
  28:/usr/include/c++/4.8/bits/char_traits.h ****  */
  29:/usr/include/c++/4.8/bits/char_traits.h **** 
  30:/usr/include/c++/4.8/bits/char_traits.h **** //
  31:/usr/include/c++/4.8/bits/char_traits.h **** // ISO C++ 14882: 21  Strings library
  32:/usr/include/c++/4.8/bits/char_traits.h **** //
  33:/usr/include/c++/4.8/bits/char_traits.h **** 
  34:/usr/include/c++/4.8/bits/char_traits.h **** #ifndef _CHAR_TRAITS_H
  35:/usr/include/c++/4.8/bits/char_traits.h **** #define _CHAR_TRAITS_H 1
  36:/usr/include/c++/4.8/bits/char_traits.h **** 
  37:/usr/include/c++/4.8/bits/char_traits.h **** #pragma GCC system_header
  38:/usr/include/c++/4.8/bits/char_traits.h **** 
  39:/usr/include/c++/4.8/bits/char_traits.h **** #include <bits/stl_algobase.h>  // std::copy, std::fill_n
  40:/usr/include/c++/4.8/bits/char_traits.h **** #include <bits/postypes.h>      // For streampos
  41:/usr/include/c++/4.8/bits/char_traits.h **** #include <cwchar>               // For WEOF, wmemmove, wmemset, etc.
  42:/usr/include/c++/4.8/bits/char_traits.h **** 
  43:/usr/include/c++/4.8/bits/char_traits.h **** namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
  44:/usr/include/c++/4.8/bits/char_traits.h **** {
  45:/usr/include/c++/4.8/bits/char_traits.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  46:/usr/include/c++/4.8/bits/char_traits.h **** 
  47:/usr/include/c++/4.8/bits/char_traits.h ****   /**
  48:/usr/include/c++/4.8/bits/char_traits.h ****    *  @brief  Mapping from character type to associated types.
  49:/usr/include/c++/4.8/bits/char_traits.h ****    *
  50:/usr/include/c++/4.8/bits/char_traits.h ****    *  @note This is an implementation class for the generic version
  51:/usr/include/c++/4.8/bits/char_traits.h ****    *  of char_traits.  It defines int_type, off_type, pos_type, and
  52:/usr/include/c++/4.8/bits/char_traits.h ****    *  state_type.  By default these are unsigned long, streamoff,
  53:/usr/include/c++/4.8/bits/char_traits.h ****    *  streampos, and mbstate_t.  Users who need a different set of
  54:/usr/include/c++/4.8/bits/char_traits.h ****    *  types, but who don't need to change the definitions of any function
  55:/usr/include/c++/4.8/bits/char_traits.h ****    *  defined in char_traits, can specialize __gnu_cxx::_Char_types
  56:/usr/include/c++/4.8/bits/char_traits.h ****    *  while leaving __gnu_cxx::char_traits alone. */
  57:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
  58:/usr/include/c++/4.8/bits/char_traits.h ****     struct _Char_types
  59:/usr/include/c++/4.8/bits/char_traits.h ****     {
  60:/usr/include/c++/4.8/bits/char_traits.h ****       typedef unsigned long   int_type;
  61:/usr/include/c++/4.8/bits/char_traits.h ****       typedef std::streampos  pos_type;
  62:/usr/include/c++/4.8/bits/char_traits.h ****       typedef std::streamoff  off_type;
  63:/usr/include/c++/4.8/bits/char_traits.h ****       typedef std::mbstate_t  state_type;
GAS LISTING /tmp/ccev5sD5.s 			page 8


  64:/usr/include/c++/4.8/bits/char_traits.h ****     };
  65:/usr/include/c++/4.8/bits/char_traits.h **** 
  66:/usr/include/c++/4.8/bits/char_traits.h **** 
  67:/usr/include/c++/4.8/bits/char_traits.h ****   /**
  68:/usr/include/c++/4.8/bits/char_traits.h ****    *  @brief  Base class used to implement std::char_traits.
  69:/usr/include/c++/4.8/bits/char_traits.h ****    *
  70:/usr/include/c++/4.8/bits/char_traits.h ****    *  @note For any given actual character type, this definition is
  71:/usr/include/c++/4.8/bits/char_traits.h ****    *  probably wrong.  (Most of the member functions are likely to be
  72:/usr/include/c++/4.8/bits/char_traits.h ****    *  right, but the int_type and state_type typedefs, and the eof()
  73:/usr/include/c++/4.8/bits/char_traits.h ****    *  member function, are likely to be wrong.)  The reason this class
  74:/usr/include/c++/4.8/bits/char_traits.h ****    *  exists is so users can specialize it.  Classes in namespace std
  75:/usr/include/c++/4.8/bits/char_traits.h ****    *  may not be specialized for fundamental types, but classes in
  76:/usr/include/c++/4.8/bits/char_traits.h ****    *  namespace __gnu_cxx may be.
  77:/usr/include/c++/4.8/bits/char_traits.h ****    *
  78:/usr/include/c++/4.8/bits/char_traits.h ****    *  See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt05ch13s03.html
  79:/usr/include/c++/4.8/bits/char_traits.h ****    *  for advice on how to make use of this class for @a unusual character
  80:/usr/include/c++/4.8/bits/char_traits.h ****    *  types. Also, check out include/ext/pod_char_traits.h.  
  81:/usr/include/c++/4.8/bits/char_traits.h ****    */
  82:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
  83:/usr/include/c++/4.8/bits/char_traits.h ****     struct char_traits
  84:/usr/include/c++/4.8/bits/char_traits.h ****     {
  85:/usr/include/c++/4.8/bits/char_traits.h ****       typedef _CharT                                    char_type;
  86:/usr/include/c++/4.8/bits/char_traits.h ****       typedef typename _Char_types<_CharT>::int_type    int_type;
  87:/usr/include/c++/4.8/bits/char_traits.h ****       typedef typename _Char_types<_CharT>::pos_type    pos_type;
  88:/usr/include/c++/4.8/bits/char_traits.h ****       typedef typename _Char_types<_CharT>::off_type    off_type;
  89:/usr/include/c++/4.8/bits/char_traits.h ****       typedef typename _Char_types<_CharT>::state_type  state_type;
  90:/usr/include/c++/4.8/bits/char_traits.h **** 
  91:/usr/include/c++/4.8/bits/char_traits.h ****       static void
  92:/usr/include/c++/4.8/bits/char_traits.h ****       assign(char_type& __c1, const char_type& __c2)
  93:/usr/include/c++/4.8/bits/char_traits.h ****       { __c1 = __c2; }
  94:/usr/include/c++/4.8/bits/char_traits.h **** 
  95:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR bool
  96:/usr/include/c++/4.8/bits/char_traits.h ****       eq(const char_type& __c1, const char_type& __c2)
  97:/usr/include/c++/4.8/bits/char_traits.h ****       { return __c1 == __c2; }
  98:/usr/include/c++/4.8/bits/char_traits.h **** 
  99:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR bool
 100:/usr/include/c++/4.8/bits/char_traits.h ****       lt(const char_type& __c1, const char_type& __c2)
 101:/usr/include/c++/4.8/bits/char_traits.h ****       { return __c1 < __c2; }
 102:/usr/include/c++/4.8/bits/char_traits.h **** 
 103:/usr/include/c++/4.8/bits/char_traits.h ****       static int
 104:/usr/include/c++/4.8/bits/char_traits.h ****       compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
 105:/usr/include/c++/4.8/bits/char_traits.h **** 
 106:/usr/include/c++/4.8/bits/char_traits.h ****       static std::size_t
 107:/usr/include/c++/4.8/bits/char_traits.h ****       length(const char_type* __s);
 108:/usr/include/c++/4.8/bits/char_traits.h **** 
 109:/usr/include/c++/4.8/bits/char_traits.h ****       static const char_type*
 110:/usr/include/c++/4.8/bits/char_traits.h ****       find(const char_type* __s, std::size_t __n, const char_type& __a);
 111:/usr/include/c++/4.8/bits/char_traits.h **** 
 112:/usr/include/c++/4.8/bits/char_traits.h ****       static char_type*
 113:/usr/include/c++/4.8/bits/char_traits.h ****       move(char_type* __s1, const char_type* __s2, std::size_t __n);
 114:/usr/include/c++/4.8/bits/char_traits.h **** 
 115:/usr/include/c++/4.8/bits/char_traits.h ****       static char_type*
 116:/usr/include/c++/4.8/bits/char_traits.h ****       copy(char_type* __s1, const char_type* __s2, std::size_t __n);
 117:/usr/include/c++/4.8/bits/char_traits.h **** 
 118:/usr/include/c++/4.8/bits/char_traits.h ****       static char_type*
 119:/usr/include/c++/4.8/bits/char_traits.h ****       assign(char_type* __s, std::size_t __n, char_type __a);
 120:/usr/include/c++/4.8/bits/char_traits.h **** 
GAS LISTING /tmp/ccev5sD5.s 			page 9


 121:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR char_type
 122:/usr/include/c++/4.8/bits/char_traits.h ****       to_char_type(const int_type& __c)
 123:/usr/include/c++/4.8/bits/char_traits.h ****       { return static_cast<char_type>(__c); }
 124:/usr/include/c++/4.8/bits/char_traits.h **** 
 125:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR int_type
 126:/usr/include/c++/4.8/bits/char_traits.h ****       to_int_type(const char_type& __c)
 127:/usr/include/c++/4.8/bits/char_traits.h ****       { return static_cast<int_type>(__c); }
 128:/usr/include/c++/4.8/bits/char_traits.h **** 
 129:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR bool
 130:/usr/include/c++/4.8/bits/char_traits.h ****       eq_int_type(const int_type& __c1, const int_type& __c2)
 131:/usr/include/c++/4.8/bits/char_traits.h ****       { return __c1 == __c2; }
 132:/usr/include/c++/4.8/bits/char_traits.h **** 
 133:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR int_type
 134:/usr/include/c++/4.8/bits/char_traits.h ****       eof()
 135:/usr/include/c++/4.8/bits/char_traits.h ****       { return static_cast<int_type>(_GLIBCXX_STDIO_EOF); }
 136:/usr/include/c++/4.8/bits/char_traits.h **** 
 137:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR int_type
 138:/usr/include/c++/4.8/bits/char_traits.h ****       not_eof(const int_type& __c)
 139:/usr/include/c++/4.8/bits/char_traits.h ****       { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
 140:/usr/include/c++/4.8/bits/char_traits.h ****     };
 141:/usr/include/c++/4.8/bits/char_traits.h **** 
 142:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
 143:/usr/include/c++/4.8/bits/char_traits.h ****     int
 144:/usr/include/c++/4.8/bits/char_traits.h ****     char_traits<_CharT>::
 145:/usr/include/c++/4.8/bits/char_traits.h ****     compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
 146:/usr/include/c++/4.8/bits/char_traits.h ****     {
 147:/usr/include/c++/4.8/bits/char_traits.h ****       for (std::size_t __i = 0; __i < __n; ++__i)
 148:/usr/include/c++/4.8/bits/char_traits.h **** 	if (lt(__s1[__i], __s2[__i]))
 149:/usr/include/c++/4.8/bits/char_traits.h **** 	  return -1;
 150:/usr/include/c++/4.8/bits/char_traits.h **** 	else if (lt(__s2[__i], __s1[__i]))
 151:/usr/include/c++/4.8/bits/char_traits.h **** 	  return 1;
 152:/usr/include/c++/4.8/bits/char_traits.h ****       return 0;
 153:/usr/include/c++/4.8/bits/char_traits.h ****     }
 154:/usr/include/c++/4.8/bits/char_traits.h **** 
 155:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
 156:/usr/include/c++/4.8/bits/char_traits.h ****     std::size_t
 157:/usr/include/c++/4.8/bits/char_traits.h ****     char_traits<_CharT>::
 158:/usr/include/c++/4.8/bits/char_traits.h ****     length(const char_type* __p)
 159:/usr/include/c++/4.8/bits/char_traits.h ****     {
 160:/usr/include/c++/4.8/bits/char_traits.h ****       std::size_t __i = 0;
 161:/usr/include/c++/4.8/bits/char_traits.h ****       while (!eq(__p[__i], char_type()))
 162:/usr/include/c++/4.8/bits/char_traits.h ****         ++__i;
 163:/usr/include/c++/4.8/bits/char_traits.h ****       return __i;
 164:/usr/include/c++/4.8/bits/char_traits.h ****     }
 165:/usr/include/c++/4.8/bits/char_traits.h **** 
 166:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
 167:/usr/include/c++/4.8/bits/char_traits.h ****     const typename char_traits<_CharT>::char_type*
 168:/usr/include/c++/4.8/bits/char_traits.h ****     char_traits<_CharT>::
 169:/usr/include/c++/4.8/bits/char_traits.h ****     find(const char_type* __s, std::size_t __n, const char_type& __a)
 170:/usr/include/c++/4.8/bits/char_traits.h ****     {
 171:/usr/include/c++/4.8/bits/char_traits.h ****       for (std::size_t __i = 0; __i < __n; ++__i)
 172:/usr/include/c++/4.8/bits/char_traits.h ****         if (eq(__s[__i], __a))
 173:/usr/include/c++/4.8/bits/char_traits.h ****           return __s + __i;
 174:/usr/include/c++/4.8/bits/char_traits.h ****       return 0;
 175:/usr/include/c++/4.8/bits/char_traits.h ****     }
 176:/usr/include/c++/4.8/bits/char_traits.h **** 
 177:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
GAS LISTING /tmp/ccev5sD5.s 			page 10


 178:/usr/include/c++/4.8/bits/char_traits.h ****     typename char_traits<_CharT>::char_type*
 179:/usr/include/c++/4.8/bits/char_traits.h ****     char_traits<_CharT>::
 180:/usr/include/c++/4.8/bits/char_traits.h ****     move(char_type* __s1, const char_type* __s2, std::size_t __n)
 181:/usr/include/c++/4.8/bits/char_traits.h ****     {
 182:/usr/include/c++/4.8/bits/char_traits.h ****       return static_cast<_CharT*>(__builtin_memmove(__s1, __s2,
 183:/usr/include/c++/4.8/bits/char_traits.h **** 						    __n * sizeof(char_type)));
 184:/usr/include/c++/4.8/bits/char_traits.h ****     }
 185:/usr/include/c++/4.8/bits/char_traits.h **** 
 186:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
 187:/usr/include/c++/4.8/bits/char_traits.h ****     typename char_traits<_CharT>::char_type*
 188:/usr/include/c++/4.8/bits/char_traits.h ****     char_traits<_CharT>::
 189:/usr/include/c++/4.8/bits/char_traits.h ****     copy(char_type* __s1, const char_type* __s2, std::size_t __n)
 190:/usr/include/c++/4.8/bits/char_traits.h ****     {
 191:/usr/include/c++/4.8/bits/char_traits.h ****       // NB: Inline std::copy so no recursive dependencies.
 192:/usr/include/c++/4.8/bits/char_traits.h ****       std::copy(__s2, __s2 + __n, __s1);
 193:/usr/include/c++/4.8/bits/char_traits.h ****       return __s1;
 194:/usr/include/c++/4.8/bits/char_traits.h ****     }
 195:/usr/include/c++/4.8/bits/char_traits.h **** 
 196:/usr/include/c++/4.8/bits/char_traits.h ****   template<typename _CharT>
 197:/usr/include/c++/4.8/bits/char_traits.h ****     typename char_traits<_CharT>::char_type*
 198:/usr/include/c++/4.8/bits/char_traits.h ****     char_traits<_CharT>::
 199:/usr/include/c++/4.8/bits/char_traits.h ****     assign(char_type* __s, std::size_t __n, char_type __a)
 200:/usr/include/c++/4.8/bits/char_traits.h ****     {
 201:/usr/include/c++/4.8/bits/char_traits.h ****       // NB: Inline std::fill_n so no recursive dependencies.
 202:/usr/include/c++/4.8/bits/char_traits.h ****       std::fill_n(__s, __n, __a);
 203:/usr/include/c++/4.8/bits/char_traits.h ****       return __s;
 204:/usr/include/c++/4.8/bits/char_traits.h ****     }
 205:/usr/include/c++/4.8/bits/char_traits.h **** 
 206:/usr/include/c++/4.8/bits/char_traits.h **** _GLIBCXX_END_NAMESPACE_VERSION
 207:/usr/include/c++/4.8/bits/char_traits.h **** } // namespace
 208:/usr/include/c++/4.8/bits/char_traits.h **** 
 209:/usr/include/c++/4.8/bits/char_traits.h **** namespace std _GLIBCXX_VISIBILITY(default)
 210:/usr/include/c++/4.8/bits/char_traits.h **** {
 211:/usr/include/c++/4.8/bits/char_traits.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
 212:/usr/include/c++/4.8/bits/char_traits.h **** 
 213:/usr/include/c++/4.8/bits/char_traits.h ****   // 21.1
 214:/usr/include/c++/4.8/bits/char_traits.h ****   /**
 215:/usr/include/c++/4.8/bits/char_traits.h ****    *  @brief  Basis for explicit traits specializations.
 216:/usr/include/c++/4.8/bits/char_traits.h ****    *
 217:/usr/include/c++/4.8/bits/char_traits.h ****    *  @note  For any given actual character type, this definition is
 218:/usr/include/c++/4.8/bits/char_traits.h ****    *  probably wrong.  Since this is just a thin wrapper around
 219:/usr/include/c++/4.8/bits/char_traits.h ****    *  __gnu_cxx::char_traits, it is possible to achieve a more
 220:/usr/include/c++/4.8/bits/char_traits.h ****    *  appropriate definition by specializing __gnu_cxx::char_traits.
 221:/usr/include/c++/4.8/bits/char_traits.h ****    *
 222:/usr/include/c++/4.8/bits/char_traits.h ****    *  See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt05ch13s03.html
 223:/usr/include/c++/4.8/bits/char_traits.h ****    *  for advice on how to make use of this class for @a unusual character
 224:/usr/include/c++/4.8/bits/char_traits.h ****    *  types. Also, check out include/ext/pod_char_traits.h.
 225:/usr/include/c++/4.8/bits/char_traits.h ****   */
 226:/usr/include/c++/4.8/bits/char_traits.h ****   template<class _CharT>
 227:/usr/include/c++/4.8/bits/char_traits.h ****     struct char_traits : public __gnu_cxx::char_traits<_CharT>
 228:/usr/include/c++/4.8/bits/char_traits.h ****     { };
 229:/usr/include/c++/4.8/bits/char_traits.h **** 
 230:/usr/include/c++/4.8/bits/char_traits.h **** 
 231:/usr/include/c++/4.8/bits/char_traits.h ****   /// 21.1.3.1  char_traits specializations
 232:/usr/include/c++/4.8/bits/char_traits.h ****   template<>
 233:/usr/include/c++/4.8/bits/char_traits.h ****     struct char_traits<char>
 234:/usr/include/c++/4.8/bits/char_traits.h ****     {
GAS LISTING /tmp/ccev5sD5.s 			page 11


 235:/usr/include/c++/4.8/bits/char_traits.h ****       typedef char              char_type;
 236:/usr/include/c++/4.8/bits/char_traits.h ****       typedef int               int_type;
 237:/usr/include/c++/4.8/bits/char_traits.h ****       typedef streampos         pos_type;
 238:/usr/include/c++/4.8/bits/char_traits.h ****       typedef streamoff         off_type;
 239:/usr/include/c++/4.8/bits/char_traits.h ****       typedef mbstate_t         state_type;
 240:/usr/include/c++/4.8/bits/char_traits.h **** 
 241:/usr/include/c++/4.8/bits/char_traits.h ****       static void
 242:/usr/include/c++/4.8/bits/char_traits.h ****       assign(char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT
 243:/usr/include/c++/4.8/bits/char_traits.h ****       { __c1 = __c2; }
 244:/usr/include/c++/4.8/bits/char_traits.h **** 
 245:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR bool
 246:/usr/include/c++/4.8/bits/char_traits.h ****       eq(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT
 247:/usr/include/c++/4.8/bits/char_traits.h ****       { return __c1 == __c2; }
 248:/usr/include/c++/4.8/bits/char_traits.h **** 
 249:/usr/include/c++/4.8/bits/char_traits.h ****       static _GLIBCXX_CONSTEXPR bool
 250:/usr/include/c++/4.8/bits/char_traits.h ****       lt(const char_type& __c1, const char_type& __c2) _GLIBCXX_NOEXCEPT
 251:/usr/include/c++/4.8/bits/char_traits.h ****       { return __c1 < __c2; }
 252:/usr/include/c++/4.8/bits/char_traits.h **** 
 253:/usr/include/c++/4.8/bits/char_traits.h ****       static int
 254:/usr/include/c++/4.8/bits/char_traits.h ****       compare(const char_type* __s1, const char_type* __s2, size_t __n)
 255:/usr/include/c++/4.8/bits/char_traits.h ****       { return __builtin_memcmp(__s1, __s2, __n); }
 256:/usr/include/c++/4.8/bits/char_traits.h **** 
 257:/usr/include/c++/4.8/bits/char_traits.h ****       static size_t
 258:/usr/include/c++/4.8/bits/char_traits.h ****       length(const char_type* __s)
 144              		.loc 4 258 0
 145              		.cfi_startproc
 146              	.LVL17:
 259:/usr/include/c++/4.8/bits/char_traits.h ****       { return __builtin_strlen(__s); }
 147              		.loc 4 259 0
 148 0000 B8000000 		movl	$0, %eax
 148      00
 149 0005 48C7C1FF 		movq	$-1, %rcx
 149      FFFFFF
 150 000c F2AE     		repnz scasb
 151              	.LVL18:
 152 000e 48F7D1   		notq	%rcx
 153 0011 488D41FF 		leaq	-1(%rcx), %rax
 154 0015 C3       		ret
 155              		.cfi_endproc
 156              	.LFE299:
 158              		.text
 159 0077 90       		.align 2
 160              		.globl	_ZN12MyExceptionAC2ESs
 162              	_ZN12MyExceptionAC2ESs:
 163              	.LFB1244:
  18:hello-exceptions.cpp ****     _what(what)
 164              		.loc 1 18 0
 165              		.cfi_startproc
 166              		.cfi_personality 0x3,__gxx_personality_v0
 167              		.cfi_lsda 0x3,.LLSDA1244
 168              	.LVL19:
 169 0078 4154     		pushq	%r12
 170              		.cfi_def_cfa_offset 16
 171              		.cfi_offset 12, -16
 172 007a 55       		pushq	%rbp
 173              		.cfi_def_cfa_offset 24
 174              		.cfi_offset 6, -24
GAS LISTING /tmp/ccev5sD5.s 			page 12


 175 007b 53       		pushq	%rbx
 176              		.cfi_def_cfa_offset 32
 177              		.cfi_offset 3, -32
 178 007c 4889FB   		movq	%rdi, %rbx
 179 007f 4889F5   		movq	%rsi, %rbp
 180              	.LBB4:
  19:hello-exceptions.cpp **** {}
 181              		.loc 1 19 0
 182 0082 E8000000 		call	_ZNSt9exceptionC2Ev
 182      00
 183              	.LVL20:
 184 0087 48C70300 		movq	$_ZTV12MyExceptionA+16, (%rbx)
 184      000000
 185 008e 488D7B08 		leaq	8(%rbx), %rdi
 186 0092 4889EE   		movq	%rbp, %rsi
 187              	.LEHB0:
 188 0095 E8000000 		call	_ZNSsC1ERKSs
 188      00
 189              	.LEHE0:
 190              	.LVL21:
 191 009a EB24     		jmp	.L18
 192              	.L17:
 193 009c 4889C5   		movq	%rax, %rbp
 194              	.LVL22:
 195 009f 4989D4   		movq	%rdx, %r12
 196 00a2 4889DF   		movq	%rbx, %rdi
 197 00a5 E8000000 		call	_ZNSt9exceptionD2Ev
 197      00
 198              	.LVL23:
 199 00aa 4983FCFF 		cmpq	$-1, %r12
 200 00ae 7408     		je	.L16
 201 00b0 4889EF   		movq	%rbp, %rdi
 202              	.LEHB1:
 203 00b3 E8000000 		call	_Unwind_Resume
 203      00
 204              	.LVL24:
 205              	.L16:
 206              	.LBE4:
  18:hello-exceptions.cpp ****     _what(what)
 207              		.loc 1 18 0
 208 00b8 4889EF   		movq	%rbp, %rdi
 209 00bb E8000000 		call	__cxa_call_unexpected
 209      00
 210              	.LEHE1:
 211              	.LVL25:
 212              	.L18:
  20:hello-exceptions.cpp **** 
 213              		.loc 1 20 0
 214 00c0 5B       		popq	%rbx
 215              		.cfi_def_cfa_offset 24
 216              	.LVL26:
 217 00c1 5D       		popq	%rbp
 218              		.cfi_def_cfa_offset 16
 219              	.LVL27:
 220 00c2 415C     		popq	%r12
 221              		.cfi_def_cfa_offset 8
 222 00c4 C3       		ret
GAS LISTING /tmp/ccev5sD5.s 			page 13


 223              		.cfi_endproc
 224              	.LFE1244:
 225              		.globl	__gxx_personality_v0
 226              		.section	.gcc_except_table,"a",@progbits
 227              		.align 4
 228              	.LLSDA1244:
 229 0000 FF       		.byte	0xff
 230 0001 03       		.byte	0x3
 231 0002 11       		.uleb128 .LLSDATT1244-.LLSDATTD1244
 232              	.LLSDATTD1244:
 233 0003 01       		.byte	0x1
 234 0004 08       		.uleb128 .LLSDACSE1244-.LLSDACSB1244
 235              	.LLSDACSB1244:
 236 0005 1D       		.uleb128 .LEHB0-.LFB1244
 237 0006 05       		.uleb128 .LEHE0-.LEHB0
 238 0007 24       		.uleb128 .L17-.LFB1244
 239 0008 03       		.uleb128 0x3
 240 0009 3B       		.uleb128 .LEHB1-.LFB1244
 241 000a 0D       		.uleb128 .LEHE1-.LEHB1
 242 000b 00       		.uleb128 0
 243 000c 00       		.uleb128 0
 244              	.LLSDACSE1244:
 245 000d 7F       		.byte	0x7f
 246 000e 00       		.byte	0
 247 000f 00       		.byte	0
 248 0010 7D       		.byte	0x7d
 249 0011 000000   		.align 4
 250              	.LLSDATT1244:
 251 0014 00       		.byte	0
 252              		.text
 254              		.globl	_ZN12MyExceptionAC1ESs
 255              		.set	_ZN12MyExceptionAC1ESs,_ZN12MyExceptionAC2ESs
 256              		.section	.rodata.str1.1,"aMS",@progbits,1
 257              	.LC0:
 258 0000 61726720 		.string	"arg is not greater than 0."
 258      6973206E 
 258      6F742067 
 258      72656174 
 258      65722074 
 259              		.text
 260              		.globl	_Z9take_halfi
 262              	_Z9take_halfi:
 263              	.LFB1252:
  35:hello-exceptions.cpp ****     if (arg <= 0) {
 264              		.loc 1 35 0
 265              		.cfi_startproc
 266              		.cfi_personality 0x3,__gxx_personality_v0
 267              		.cfi_lsda 0x3,.LLSDA1252
 268              	.LVL28:
  36:hello-exceptions.cpp ****         throw MyExceptionA("arg is not greater than 0.");
 269              		.loc 1 36 0
 270 00c5 85FF     		testl	%edi, %edi
 271 00c7 7F7B     		jg	.L21
  35:hello-exceptions.cpp ****     if (arg <= 0) {
 272              		.loc 1 35 0
 273 00c9 4154     		pushq	%r12
 274              		.cfi_def_cfa_offset 16
GAS LISTING /tmp/ccev5sD5.s 			page 14


 275              		.cfi_offset 12, -16
 276 00cb 55       		pushq	%rbp
 277              		.cfi_def_cfa_offset 24
 278              		.cfi_offset 6, -24
 279 00cc 53       		pushq	%rbx
 280              		.cfi_def_cfa_offset 32
 281              		.cfi_offset 3, -32
 282 00cd 4883EC20 		subq	$32, %rsp
 283              		.cfi_def_cfa_offset 64
  37:hello-exceptions.cpp ****     }
 284              		.loc 1 37 0
 285 00d1 BF100000 		movl	$16, %edi
 285      00
 286              	.LVL29:
 287 00d6 E8000000 		call	__cxa_allocate_exception
 287      00
 288              	.LVL30:
 289 00db 4889C3   		movq	%rax, %rbx
 290 00de 488D5424 		leaq	15(%rsp), %rdx
 290      0F
 291 00e3 BE000000 		movl	$.LC0, %esi
 291      00
 292 00e8 488D7C24 		leaq	16(%rsp), %rdi
 292      10
 293              	.LEHB2:
 294 00ed E8000000 		call	_ZNSsC1EPKcRKSaIcE
 294      00
 295              	.LEHE2:
 296              	.LVL31:
  37:hello-exceptions.cpp ****     }
 297              		.loc 1 37 0 is_stmt 0 discriminator 1
 298 00f2 488D7424 		leaq	16(%rsp), %rsi
 298      10
 299 00f7 4889DF   		movq	%rbx, %rdi
 300 00fa E8000000 		call	_ZN12MyExceptionAC1ESs
 300      00
 301              	.LVL32:
 302 00ff 488D7C24 		leaq	16(%rsp), %rdi
 302      10
 303 0104 E8000000 		call	_ZNSsD1Ev
 303      00
 304              	.LVL33:
 305 0109 BA000000 		movl	$_ZN12MyExceptionAD1Ev, %edx
 305      00
 306 010e BE000000 		movl	$_ZTI12MyExceptionA, %esi
 306      00
 307 0113 4889DF   		movq	%rbx, %rdi
 308              	.LEHB3:
 309 0116 E8000000 		call	__cxa_throw
 309      00
 310              	.LEHE3:
 311              	.LVL34:
 312              	.L25:
 313 011b 4989C4   		movq	%rax, %r12
 314 011e 4889D5   		movq	%rdx, %rbp
  37:hello-exceptions.cpp ****     }
 315              		.loc 1 37 0
GAS LISTING /tmp/ccev5sD5.s 			page 15


 316 0121 4889DF   		movq	%rbx, %rdi
 317 0124 E8000000 		call	__cxa_free_exception
 317      00
 318              	.LVL35:
 319 0129 4C89E7   		movq	%r12, %rdi
 320 012c 4889EA   		movq	%rbp, %rdx
 321 012f EB03     		jmp	.L23
 322              	.L26:
 323 0131 4889C7   		movq	%rax, %rdi
 324              	.L23:
 325 0134 4883FAFF 		cmpq	$-1, %rdx
 326 0138 7405     		je	.L24
 327              	.LEHB4:
 328 013a E8000000 		call	_Unwind_Resume
 328      00
 329              	.LVL36:
 330              	.L24:
  35:hello-exceptions.cpp ****     if (arg <= 0) {
 331              		.loc 1 35 0 is_stmt 1
 332 013f E8000000 		call	__cxa_call_unexpected
 332      00
 333              	.LEHE4:
 334              	.LVL37:
 335              	.L21:
 336              		.cfi_def_cfa_offset 8
 337              		.cfi_restore 3
 338              		.cfi_restore 6
 339              		.cfi_restore 12
  39:hello-exceptions.cpp **** }
 340              		.loc 1 39 0
 341 0144 89F8     		movl	%edi, %eax
 342 0146 C1E81F   		shrl	$31, %eax
 343 0149 01F8     		addl	%edi, %eax
 344 014b D1F8     		sarl	%eax
  40:hello-exceptions.cpp **** 
 345              		.loc 1 40 0
 346 014d C3       		ret
 347              		.cfi_endproc
 348              	.LFE1252:
 349              		.section	.gcc_except_table
 350 0015 000000   		.align 4
 351              	.LLSDA1252:
 352 0018 FF       		.byte	0xff
 353 0019 03       		.byte	0x3
 354 001a 19       		.uleb128 .LLSDATT1252-.LLSDATTD1252
 355              	.LLSDATTD1252:
 356 001b 01       		.byte	0x1
 357 001c 0C       		.uleb128 .LLSDACSE1252-.LLSDACSB1252
 358              	.LLSDACSB1252:
 359 001d 28       		.uleb128 .LEHB2-.LFB1252
 360 001e 05       		.uleb128 .LEHE2-.LEHB2
 361 001f 56       		.uleb128 .L25-.LFB1252
 362 0020 03       		.uleb128 0x3
 363 0021 51       		.uleb128 .LEHB3-.LFB1252
 364 0022 05       		.uleb128 .LEHE3-.LEHB3
 365 0023 6C       		.uleb128 .L26-.LFB1252
 366 0024 01       		.uleb128 0x1
GAS LISTING /tmp/ccev5sD5.s 			page 16


 367 0025 75       		.uleb128 .LEHB4-.LFB1252
 368 0026 0A       		.uleb128 .LEHE4-.LEHB4
 369 0027 00       		.uleb128 0
 370 0028 00       		.uleb128 0
 371              	.LLSDACSE1252:
 372 0029 7F       		.byte	0x7f
 373 002a 00       		.byte	0
 374 002b 00       		.byte	0
 375 002c 7D       		.byte	0x7d
 376 002d 000000   		.align 4
 377 0030 00000000 		.long	_ZTI12MyExceptionA
 378              	.LLSDATT1252:
 379 0034 01       		.byte	0x1
 380 0035 00       		.byte	0
 381              		.text
 383              		.section	.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_,"axG",@progbits,_ZStplIcSt11
 384              		.weak	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 386              	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_:
 387              	.LFB1314:
 388              		.file 5 "/usr/include/c++/4.8/bits/basic_string.tcc"
   1:/usr/include/c++/4.8/bits/basic_string.tcc **** // Components for manipulating sequences of characters -*- C++ -*-
   2:/usr/include/c++/4.8/bits/basic_string.tcc **** 
   3:/usr/include/c++/4.8/bits/basic_string.tcc **** // Copyright (C) 1997-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/basic_string.tcc **** //
   5:/usr/include/c++/4.8/bits/basic_string.tcc **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/basic_string.tcc **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/basic_string.tcc **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/basic_string.tcc **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/basic_string.tcc **** // any later version.
  10:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  11:/usr/include/c++/4.8/bits/basic_string.tcc **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/basic_string.tcc **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/basic_string.tcc **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/basic_string.tcc **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  16:/usr/include/c++/4.8/bits/basic_string.tcc **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/basic_string.tcc **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/basic_string.tcc **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  20:/usr/include/c++/4.8/bits/basic_string.tcc **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/basic_string.tcc **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/basic_string.tcc **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/basic_string.tcc **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  25:/usr/include/c++/4.8/bits/basic_string.tcc **** /** @file bits/basic_string.tcc
  26:/usr/include/c++/4.8/bits/basic_string.tcc ****  *  This is an internal header file, included by other library headers.
  27:/usr/include/c++/4.8/bits/basic_string.tcc ****  *  Do not attempt to use it directly. @headername{string}
  28:/usr/include/c++/4.8/bits/basic_string.tcc ****  */
  29:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  30:/usr/include/c++/4.8/bits/basic_string.tcc **** //
  31:/usr/include/c++/4.8/bits/basic_string.tcc **** // ISO C++ 14882: 21  Strings library
  32:/usr/include/c++/4.8/bits/basic_string.tcc **** //
  33:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  34:/usr/include/c++/4.8/bits/basic_string.tcc **** // Written by Jason Merrill based upon the specification by Takanori Adachi
  35:/usr/include/c++/4.8/bits/basic_string.tcc **** // in ANSI X3J16/94-0013R2.  Rewritten by Nathan Myers to ISO-14882.
  36:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  37:/usr/include/c++/4.8/bits/basic_string.tcc **** #ifndef _BASIC_STRING_TCC
GAS LISTING /tmp/ccev5sD5.s 			page 17


  38:/usr/include/c++/4.8/bits/basic_string.tcc **** #define _BASIC_STRING_TCC 1
  39:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  40:/usr/include/c++/4.8/bits/basic_string.tcc **** #pragma GCC system_header
  41:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  42:/usr/include/c++/4.8/bits/basic_string.tcc **** #include <bits/cxxabi_forced.h>
  43:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  44:/usr/include/c++/4.8/bits/basic_string.tcc **** namespace std _GLIBCXX_VISIBILITY(default)
  45:/usr/include/c++/4.8/bits/basic_string.tcc **** {
  46:/usr/include/c++/4.8/bits/basic_string.tcc **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  47:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  48:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  49:/usr/include/c++/4.8/bits/basic_string.tcc ****     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
  50:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
  51:/usr/include/c++/4.8/bits/basic_string.tcc ****     _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
  52:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  53:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  54:/usr/include/c++/4.8/bits/basic_string.tcc ****     const _CharT
  55:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
  56:/usr/include/c++/4.8/bits/basic_string.tcc ****     _Rep::_S_terminal = _CharT();
  57:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  58:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  59:/usr/include/c++/4.8/bits/basic_string.tcc ****     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
  60:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::npos;
  61:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  62:/usr/include/c++/4.8/bits/basic_string.tcc ****   // Linker sets _S_empty_rep_storage to all 0s (one reference, empty string)
  63:/usr/include/c++/4.8/bits/basic_string.tcc ****   // at static init time (before static ctors are run).
  64:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  65:/usr/include/c++/4.8/bits/basic_string.tcc ****     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  66:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
  67:/usr/include/c++/4.8/bits/basic_string.tcc ****     (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
  68:/usr/include/c++/4.8/bits/basic_string.tcc ****       sizeof(size_type)];
  69:/usr/include/c++/4.8/bits/basic_string.tcc **** 
  70:/usr/include/c++/4.8/bits/basic_string.tcc ****   // NB: This is the special case for Input Iterators, used in
  71:/usr/include/c++/4.8/bits/basic_string.tcc ****   // istreambuf_iterators, etc.
  72:/usr/include/c++/4.8/bits/basic_string.tcc ****   // Input Iterators have a cost structure very different from
  73:/usr/include/c++/4.8/bits/basic_string.tcc ****   // pointers, calling for a different coding style.
  74:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  75:/usr/include/c++/4.8/bits/basic_string.tcc ****     template<typename _InIterator>
  76:/usr/include/c++/4.8/bits/basic_string.tcc ****       _CharT*
  77:/usr/include/c++/4.8/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
  78:/usr/include/c++/4.8/bits/basic_string.tcc ****       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
  79:/usr/include/c++/4.8/bits/basic_string.tcc **** 		   input_iterator_tag)
  80:/usr/include/c++/4.8/bits/basic_string.tcc ****       {
  81:/usr/include/c++/4.8/bits/basic_string.tcc **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
  82:/usr/include/c++/4.8/bits/basic_string.tcc **** 	if (__beg == __end && __a == _Alloc())
  83:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  return _S_empty_rep()._M_refdata();
  84:/usr/include/c++/4.8/bits/basic_string.tcc **** #endif
  85:/usr/include/c++/4.8/bits/basic_string.tcc **** 	// Avoid reallocation for common case.
  86:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_CharT __buf[128];
  87:/usr/include/c++/4.8/bits/basic_string.tcc **** 	size_type __len = 0;
  88:/usr/include/c++/4.8/bits/basic_string.tcc **** 	while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
  89:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  {
  90:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __buf[__len++] = *__beg;
  91:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    ++__beg;
  92:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  }
  93:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
  94:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_copy(__r->_M_refdata(), __buf, __len);
GAS LISTING /tmp/ccev5sD5.s 			page 18


  95:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__try
  96:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  {
  97:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    while (__beg != __end)
  98:/usr/include/c++/4.8/bits/basic_string.tcc **** 	      {
  99:/usr/include/c++/4.8/bits/basic_string.tcc **** 		if (__len == __r->_M_capacity)
 100:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  {
 101:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    // Allocate more space.
 102:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
 103:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
 104:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    __r->_M_destroy(__a);
 105:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    __r = __another;
 106:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  }
 107:/usr/include/c++/4.8/bits/basic_string.tcc **** 		__r->_M_refdata()[__len++] = *__beg;
 108:/usr/include/c++/4.8/bits/basic_string.tcc **** 		++__beg;
 109:/usr/include/c++/4.8/bits/basic_string.tcc **** 	      }
 110:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  }
 111:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__catch(...)
 112:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  {
 113:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __r->_M_destroy(__a);
 114:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __throw_exception_again;
 115:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  }
 116:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__r->_M_set_length_and_sharable(__len);
 117:/usr/include/c++/4.8/bits/basic_string.tcc **** 	return __r->_M_refdata();
 118:/usr/include/c++/4.8/bits/basic_string.tcc ****       }
 119:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 120:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 121:/usr/include/c++/4.8/bits/basic_string.tcc ****     template <typename _InIterator>
 122:/usr/include/c++/4.8/bits/basic_string.tcc ****       _CharT*
 123:/usr/include/c++/4.8/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
 124:/usr/include/c++/4.8/bits/basic_string.tcc ****       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
 125:/usr/include/c++/4.8/bits/basic_string.tcc **** 		   forward_iterator_tag)
 126:/usr/include/c++/4.8/bits/basic_string.tcc ****       {
 127:/usr/include/c++/4.8/bits/basic_string.tcc **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 128:/usr/include/c++/4.8/bits/basic_string.tcc **** 	if (__beg == __end && __a == _Alloc())
 129:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  return _S_empty_rep()._M_refdata();
 130:/usr/include/c++/4.8/bits/basic_string.tcc **** #endif
 131:/usr/include/c++/4.8/bits/basic_string.tcc **** 	// NB: Not required, but considered best practice.
 132:/usr/include/c++/4.8/bits/basic_string.tcc **** 	if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end)
 133:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  __throw_logic_error(__N("basic_string::_S_construct null not valid"));
 134:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 135:/usr/include/c++/4.8/bits/basic_string.tcc **** 	const size_type __dnew = static_cast<size_type>(std::distance(__beg,
 136:/usr/include/c++/4.8/bits/basic_string.tcc **** 								      __end));
 137:/usr/include/c++/4.8/bits/basic_string.tcc **** 	// Check for out_of_range and length_error exceptions.
 138:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
 139:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__try
 140:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
 141:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__catch(...)
 142:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  {
 143:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __r->_M_destroy(__a);
 144:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __throw_exception_again;
 145:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  }
 146:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__r->_M_set_length_and_sharable(__dnew);
 147:/usr/include/c++/4.8/bits/basic_string.tcc **** 	return __r->_M_refdata();
 148:/usr/include/c++/4.8/bits/basic_string.tcc ****       }
 149:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 150:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 151:/usr/include/c++/4.8/bits/basic_string.tcc ****     _CharT*
GAS LISTING /tmp/ccev5sD5.s 			page 19


 152:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 153:/usr/include/c++/4.8/bits/basic_string.tcc ****     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
 154:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 155:/usr/include/c++/4.8/bits/basic_string.tcc **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 156:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n == 0 && __a == _Alloc())
 157:/usr/include/c++/4.8/bits/basic_string.tcc **** 	return _S_empty_rep()._M_refdata();
 158:/usr/include/c++/4.8/bits/basic_string.tcc **** #endif
 159:/usr/include/c++/4.8/bits/basic_string.tcc ****       // Check for out_of_range and length_error exceptions.
 160:/usr/include/c++/4.8/bits/basic_string.tcc ****       _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
 161:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n)
 162:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_assign(__r->_M_refdata(), __n, __c);
 163:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 164:/usr/include/c++/4.8/bits/basic_string.tcc ****       __r->_M_set_length_and_sharable(__n);
 165:/usr/include/c++/4.8/bits/basic_string.tcc ****       return __r->_M_refdata();
 166:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 167:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 168:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 169:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 170:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(const basic_string& __str)
 171:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
 172:/usr/include/c++/4.8/bits/basic_string.tcc **** 					  __str.get_allocator()),
 173:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  __str.get_allocator())
 174:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 175:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 176:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 177:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 178:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(const _Alloc& __a)
 179:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
 180:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 181:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 182:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 183:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 184:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(const basic_string& __str, size_type __pos, size_type __n)
 185:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__str._M_data()
 186:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       + __str._M_check(__pos,
 187:/usr/include/c++/4.8/bits/basic_string.tcc **** 						"basic_string::basic_string"),
 188:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       __str._M_data() + __str._M_limit(__pos, __n)
 189:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       + __pos, _Alloc()), _Alloc())
 190:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 191:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 192:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 193:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 194:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(const basic_string& __str, size_type __pos,
 195:/usr/include/c++/4.8/bits/basic_string.tcc **** 		 size_type __n, const _Alloc& __a)
 196:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__str._M_data()
 197:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       + __str._M_check(__pos,
 198:/usr/include/c++/4.8/bits/basic_string.tcc **** 						"basic_string::basic_string"),
 199:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       __str._M_data() + __str._M_limit(__pos, __n)
 200:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       + __pos, __a), __a)
 201:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 202:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 203:/usr/include/c++/4.8/bits/basic_string.tcc ****   // TBD: DPG annotate
 204:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 205:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 206:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
 207:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
 208:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
GAS LISTING /tmp/ccev5sD5.s 			page 20


 209:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 210:/usr/include/c++/4.8/bits/basic_string.tcc ****   // TBD: DPG annotate
 211:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 212:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 213:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(const _CharT* __s, const _Alloc& __a)
 214:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
 215:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       __s + npos, __a), __a)
 216:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 217:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 218:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 219:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 220:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(size_type __n, _CharT __c, const _Alloc& __a)
 221:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__n, __c, __a), __a)
 222:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 223:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 224:/usr/include/c++/4.8/bits/basic_string.tcc ****   // TBD: DPG annotate
 225:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 226:/usr/include/c++/4.8/bits/basic_string.tcc ****     template<typename _InputIterator>
 227:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 228:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
 229:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__beg, __end, __a), __a)
 230:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 231:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 232:/usr/include/c++/4.8/bits/basic_string.tcc **** #if __cplusplus >= 201103L
 233:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 234:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 235:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string(initializer_list<_CharT> __l, const _Alloc& __a)
 236:/usr/include/c++/4.8/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__l.begin(), __l.end(), __a), __a)
 237:/usr/include/c++/4.8/bits/basic_string.tcc ****     { }
 238:/usr/include/c++/4.8/bits/basic_string.tcc **** #endif
 239:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 240:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 241:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 242:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 243:/usr/include/c++/4.8/bits/basic_string.tcc ****     assign(const basic_string& __str)
 244:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 245:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (_M_rep() != __str._M_rep())
 246:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 247:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  // XXX MT
 248:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const allocator_type __a = this->get_allocator();
 249:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
 250:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_dispose(__a);
 251:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_data(__tmp);
 252:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 253:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 254:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 255:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 256:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 257:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 258:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 259:/usr/include/c++/4.8/bits/basic_string.tcc ****     assign(const _CharT* __s, size_type __n)
 260:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 261:/usr/include/c++/4.8/bits/basic_string.tcc ****       __glibcxx_requires_string_len(__s, __n);
 262:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_check_length(this->size(), __n, "basic_string::assign");
 263:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
 264:/usr/include/c++/4.8/bits/basic_string.tcc **** 	return _M_replace_safe(size_type(0), this->size(), __s, __n);
 265:/usr/include/c++/4.8/bits/basic_string.tcc ****       else
GAS LISTING /tmp/ccev5sD5.s 			page 21


 266:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 267:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  // Work in-place.
 268:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const size_type __pos = __s - _M_data();
 269:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__pos >= __n)
 270:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    _M_copy(_M_data(), __s, __n);
 271:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  else if (__pos)
 272:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    _M_move(_M_data(), __s, __n);
 273:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_set_length_and_sharable(__n);
 274:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  return *this;
 275:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 276:/usr/include/c++/4.8/bits/basic_string.tcc ****      }
 277:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 278:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 279:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 280:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 281:/usr/include/c++/4.8/bits/basic_string.tcc ****     append(size_type __n, _CharT __c)
 282:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 283:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n)
 284:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 285:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_check_length(size_type(0), __n, "basic_string::append");	  
 286:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const size_type __len = __n + this->size();
 287:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__len > this->capacity() || _M_rep()->_M_is_shared())
 288:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    this->reserve(__len);
 289:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_assign(_M_data() + this->size(), __n, __c);
 290:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_set_length_and_sharable(__len);
 291:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 292:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 293:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 294:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 295:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 296:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 297:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 298:/usr/include/c++/4.8/bits/basic_string.tcc ****     append(const _CharT* __s, size_type __n)
 299:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 300:/usr/include/c++/4.8/bits/basic_string.tcc ****       __glibcxx_requires_string_len(__s, __n);
 301:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n)
 302:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 303:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_check_length(size_type(0), __n, "basic_string::append");
 304:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const size_type __len = __n + this->size();
 305:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__len > this->capacity() || _M_rep()->_M_is_shared())
 306:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    {
 307:/usr/include/c++/4.8/bits/basic_string.tcc **** 	      if (_M_disjunct(__s))
 308:/usr/include/c++/4.8/bits/basic_string.tcc **** 		this->reserve(__len);
 309:/usr/include/c++/4.8/bits/basic_string.tcc **** 	      else
 310:/usr/include/c++/4.8/bits/basic_string.tcc **** 		{
 311:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  const size_type __off = __s - _M_data();
 312:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  this->reserve(__len);
 313:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  __s = _M_data() + __off;
 314:/usr/include/c++/4.8/bits/basic_string.tcc **** 		}
 315:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    }
 316:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_copy(_M_data() + this->size(), __s, __n);
 317:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_set_length_and_sharable(__len);
 318:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 319:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 320:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 321:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 322:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
GAS LISTING /tmp/ccev5sD5.s 			page 22


 323:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 324:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 325:/usr/include/c++/4.8/bits/basic_string.tcc ****     append(const basic_string& __str)
 326:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 327:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __size = __str.size();
 328:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__size)
 329:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 330:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const size_type __len = __size + this->size();
 331:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__len > this->capacity() || _M_rep()->_M_is_shared())
 332:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    this->reserve(__len);
 333:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_copy(_M_data() + this->size(), __str._M_data(), __size);
 334:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_set_length_and_sharable(__len);
 335:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 336:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 337:/usr/include/c++/4.8/bits/basic_string.tcc ****     }    
 338:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 339:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 340:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 341:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 342:/usr/include/c++/4.8/bits/basic_string.tcc ****     append(const basic_string& __str, size_type __pos, size_type __n)
 343:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 344:/usr/include/c++/4.8/bits/basic_string.tcc ****       __str._M_check(__pos, "basic_string::append");
 345:/usr/include/c++/4.8/bits/basic_string.tcc ****       __n = __str._M_limit(__pos, __n);
 346:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n)
 347:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 348:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const size_type __len = __n + this->size();
 349:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__len > this->capacity() || _M_rep()->_M_is_shared())
 350:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    this->reserve(__len);
 351:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
 352:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_set_length_and_sharable(__len);	  
 353:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 354:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 355:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 356:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 357:/usr/include/c++/4.8/bits/basic_string.tcc ****    template<typename _CharT, typename _Traits, typename _Alloc>
 358:/usr/include/c++/4.8/bits/basic_string.tcc ****      basic_string<_CharT, _Traits, _Alloc>&
 359:/usr/include/c++/4.8/bits/basic_string.tcc ****      basic_string<_CharT, _Traits, _Alloc>::
 360:/usr/include/c++/4.8/bits/basic_string.tcc ****      insert(size_type __pos, const _CharT* __s, size_type __n)
 361:/usr/include/c++/4.8/bits/basic_string.tcc ****      {
 362:/usr/include/c++/4.8/bits/basic_string.tcc ****        __glibcxx_requires_string_len(__s, __n);
 363:/usr/include/c++/4.8/bits/basic_string.tcc ****        _M_check(__pos, "basic_string::insert");
 364:/usr/include/c++/4.8/bits/basic_string.tcc ****        _M_check_length(size_type(0), __n, "basic_string::insert");
 365:/usr/include/c++/4.8/bits/basic_string.tcc ****        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
 366:/usr/include/c++/4.8/bits/basic_string.tcc ****          return _M_replace_safe(__pos, size_type(0), __s, __n);
 367:/usr/include/c++/4.8/bits/basic_string.tcc ****        else
 368:/usr/include/c++/4.8/bits/basic_string.tcc ****          {
 369:/usr/include/c++/4.8/bits/basic_string.tcc ****            // Work in-place.
 370:/usr/include/c++/4.8/bits/basic_string.tcc ****            const size_type __off = __s - _M_data();
 371:/usr/include/c++/4.8/bits/basic_string.tcc ****            _M_mutate(__pos, 0, __n);
 372:/usr/include/c++/4.8/bits/basic_string.tcc ****            __s = _M_data() + __off;
 373:/usr/include/c++/4.8/bits/basic_string.tcc ****            _CharT* __p = _M_data() + __pos;
 374:/usr/include/c++/4.8/bits/basic_string.tcc ****            if (__s  + __n <= __p)
 375:/usr/include/c++/4.8/bits/basic_string.tcc ****              _M_copy(__p, __s, __n);
 376:/usr/include/c++/4.8/bits/basic_string.tcc ****            else if (__s >= __p)
 377:/usr/include/c++/4.8/bits/basic_string.tcc ****              _M_copy(__p, __s + __n, __n);
 378:/usr/include/c++/4.8/bits/basic_string.tcc ****            else
 379:/usr/include/c++/4.8/bits/basic_string.tcc ****              {
GAS LISTING /tmp/ccev5sD5.s 			page 23


 380:/usr/include/c++/4.8/bits/basic_string.tcc **** 	       const size_type __nleft = __p - __s;
 381:/usr/include/c++/4.8/bits/basic_string.tcc ****                _M_copy(__p, __s, __nleft);
 382:/usr/include/c++/4.8/bits/basic_string.tcc ****                _M_copy(__p + __nleft, __p + __n, __n - __nleft);
 383:/usr/include/c++/4.8/bits/basic_string.tcc ****              }
 384:/usr/include/c++/4.8/bits/basic_string.tcc ****            return *this;
 385:/usr/include/c++/4.8/bits/basic_string.tcc ****          }
 386:/usr/include/c++/4.8/bits/basic_string.tcc ****      }
 387:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 388:/usr/include/c++/4.8/bits/basic_string.tcc ****    template<typename _CharT, typename _Traits, typename _Alloc>
 389:/usr/include/c++/4.8/bits/basic_string.tcc ****      typename basic_string<_CharT, _Traits, _Alloc>::iterator
 390:/usr/include/c++/4.8/bits/basic_string.tcc ****      basic_string<_CharT, _Traits, _Alloc>::
 391:/usr/include/c++/4.8/bits/basic_string.tcc ****      erase(iterator __first, iterator __last)
 392:/usr/include/c++/4.8/bits/basic_string.tcc ****      {
 393:/usr/include/c++/4.8/bits/basic_string.tcc ****        _GLIBCXX_DEBUG_PEDASSERT(__first >= _M_ibegin() && __first <= __last
 394:/usr/include/c++/4.8/bits/basic_string.tcc **** 				&& __last <= _M_iend());
 395:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 396:/usr/include/c++/4.8/bits/basic_string.tcc ****        // NB: This isn't just an optimization (bail out early when
 397:/usr/include/c++/4.8/bits/basic_string.tcc ****        // there is nothing to do, really), it's also a correctness
 398:/usr/include/c++/4.8/bits/basic_string.tcc ****        // issue vs MT, see libstdc++/40518.
 399:/usr/include/c++/4.8/bits/basic_string.tcc ****        const size_type __size = __last - __first;
 400:/usr/include/c++/4.8/bits/basic_string.tcc ****        if (__size)
 401:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 {
 402:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   const size_type __pos = __first - _M_ibegin();
 403:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   _M_mutate(__pos, __size, size_type(0));
 404:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   _M_rep()->_M_set_leaked();
 405:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   return iterator(_M_data() + __pos);
 406:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 }
 407:/usr/include/c++/4.8/bits/basic_string.tcc ****        else
 408:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 return __first;
 409:/usr/include/c++/4.8/bits/basic_string.tcc ****      }
 410:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 411:/usr/include/c++/4.8/bits/basic_string.tcc ****    template<typename _CharT, typename _Traits, typename _Alloc>
 412:/usr/include/c++/4.8/bits/basic_string.tcc ****      basic_string<_CharT, _Traits, _Alloc>&
 413:/usr/include/c++/4.8/bits/basic_string.tcc ****      basic_string<_CharT, _Traits, _Alloc>::
 414:/usr/include/c++/4.8/bits/basic_string.tcc ****      replace(size_type __pos, size_type __n1, const _CharT* __s,
 415:/usr/include/c++/4.8/bits/basic_string.tcc **** 	     size_type __n2)
 416:/usr/include/c++/4.8/bits/basic_string.tcc ****      {
 417:/usr/include/c++/4.8/bits/basic_string.tcc ****        __glibcxx_requires_string_len(__s, __n2);
 418:/usr/include/c++/4.8/bits/basic_string.tcc ****        _M_check(__pos, "basic_string::replace");
 419:/usr/include/c++/4.8/bits/basic_string.tcc ****        __n1 = _M_limit(__pos, __n1);
 420:/usr/include/c++/4.8/bits/basic_string.tcc ****        _M_check_length(__n1, __n2, "basic_string::replace");
 421:/usr/include/c++/4.8/bits/basic_string.tcc ****        bool __left;
 422:/usr/include/c++/4.8/bits/basic_string.tcc ****        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
 423:/usr/include/c++/4.8/bits/basic_string.tcc ****          return _M_replace_safe(__pos, __n1, __s, __n2);
 424:/usr/include/c++/4.8/bits/basic_string.tcc ****        else if ((__left = __s + __n2 <= _M_data() + __pos)
 425:/usr/include/c++/4.8/bits/basic_string.tcc **** 		|| _M_data() + __pos + __n1 <= __s)
 426:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 {
 427:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   // Work in-place: non-overlapping case.
 428:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   size_type __off = __s - _M_data();
 429:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   __left ? __off : (__off += __n2 - __n1);
 430:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   _M_mutate(__pos, __n1, __n2);
 431:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
 432:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   return *this;
 433:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 }
 434:/usr/include/c++/4.8/bits/basic_string.tcc ****        else
 435:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 {
 436:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   // Todo: overlapping case.
GAS LISTING /tmp/ccev5sD5.s 			page 24


 437:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   const basic_string __tmp(__s, __n2);
 438:/usr/include/c++/4.8/bits/basic_string.tcc **** 	   return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
 439:/usr/include/c++/4.8/bits/basic_string.tcc **** 	 }
 440:/usr/include/c++/4.8/bits/basic_string.tcc ****      }
 441:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 442:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 443:/usr/include/c++/4.8/bits/basic_string.tcc ****     void
 444:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::
 445:/usr/include/c++/4.8/bits/basic_string.tcc ****     _M_destroy(const _Alloc& __a) throw ()
 446:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 447:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __size = sizeof(_Rep_base) +
 448:/usr/include/c++/4.8/bits/basic_string.tcc **** 	                       (this->_M_capacity + 1) * sizeof(_CharT);
 449:/usr/include/c++/4.8/bits/basic_string.tcc ****       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
 450:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 451:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 452:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 453:/usr/include/c++/4.8/bits/basic_string.tcc ****     void
 454:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 455:/usr/include/c++/4.8/bits/basic_string.tcc ****     _M_leak_hard()
 456:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 457:/usr/include/c++/4.8/bits/basic_string.tcc **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 458:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (_M_rep() == &_S_empty_rep())
 459:/usr/include/c++/4.8/bits/basic_string.tcc **** 	return;
 460:/usr/include/c++/4.8/bits/basic_string.tcc **** #endif
 461:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (_M_rep()->_M_is_shared())
 462:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_mutate(0, 0, 0);
 463:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_rep()->_M_set_leaked();
 464:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 465:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 466:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 467:/usr/include/c++/4.8/bits/basic_string.tcc ****     void
 468:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 469:/usr/include/c++/4.8/bits/basic_string.tcc ****     _M_mutate(size_type __pos, size_type __len1, size_type __len2)
 470:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 471:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __old_size = this->size();
 472:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __new_size = __old_size + __len2 - __len1;
 473:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __how_much = __old_size - __pos - __len1;
 474:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 475:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
 476:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 477:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  // Must reallocate.
 478:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const allocator_type __a = get_allocator();
 479:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
 480:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 481:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__pos)
 482:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    _M_copy(__r->_M_refdata(), _M_data(), __pos);
 483:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__how_much)
 484:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    _M_copy(__r->_M_refdata() + __pos + __len2,
 485:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    _M_data() + __pos + __len1, __how_much);
 486:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 487:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_dispose(__a);
 488:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_data(__r->_M_refdata());
 489:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 490:/usr/include/c++/4.8/bits/basic_string.tcc ****       else if (__how_much && __len1 != __len2)
 491:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 492:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  // Work in-place.
 493:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_move(_M_data() + __pos + __len2,
GAS LISTING /tmp/ccev5sD5.s 			page 25


 494:/usr/include/c++/4.8/bits/basic_string.tcc **** 		  _M_data() + __pos + __len1, __how_much);
 495:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 496:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_rep()->_M_set_length_and_sharable(__new_size);
 497:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 498:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 499:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 500:/usr/include/c++/4.8/bits/basic_string.tcc ****     void
 501:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 502:/usr/include/c++/4.8/bits/basic_string.tcc ****     reserve(size_type __res)
 503:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 504:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__res != this->capacity() || _M_rep()->_M_is_shared())
 505:/usr/include/c++/4.8/bits/basic_string.tcc ****         {
 506:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  // Make sure we don't shrink below the current size
 507:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__res < this->size())
 508:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __res = this->size();
 509:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const allocator_type __a = get_allocator();
 510:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
 511:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_rep()->_M_dispose(__a);
 512:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_data(__tmp);
 513:/usr/include/c++/4.8/bits/basic_string.tcc ****         }
 514:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 515:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 516:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 517:/usr/include/c++/4.8/bits/basic_string.tcc ****     void
 518:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 519:/usr/include/c++/4.8/bits/basic_string.tcc ****     swap(basic_string& __s)
 520:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 521:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (_M_rep()->_M_is_leaked())
 522:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_rep()->_M_set_sharable();
 523:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__s._M_rep()->_M_is_leaked())
 524:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__s._M_rep()->_M_set_sharable();
 525:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (this->get_allocator() == __s.get_allocator())
 526:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 527:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _CharT* __tmp = _M_data();
 528:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  _M_data(__s._M_data());
 529:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  __s._M_data(__tmp);
 530:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 531:/usr/include/c++/4.8/bits/basic_string.tcc ****       // The code below can usually be optimized away.
 532:/usr/include/c++/4.8/bits/basic_string.tcc ****       else
 533:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 534:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const basic_string __tmp1(_M_ibegin(), _M_iend(),
 535:/usr/include/c++/4.8/bits/basic_string.tcc **** 				    __s.get_allocator());
 536:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
 537:/usr/include/c++/4.8/bits/basic_string.tcc **** 				    this->get_allocator());
 538:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  *this = __tmp2;
 539:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  __s = __tmp1;
 540:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 541:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 542:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 543:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 544:/usr/include/c++/4.8/bits/basic_string.tcc ****     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
 545:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::
 546:/usr/include/c++/4.8/bits/basic_string.tcc ****     _S_create(size_type __capacity, size_type __old_capacity,
 547:/usr/include/c++/4.8/bits/basic_string.tcc **** 	      const _Alloc& __alloc)
 548:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 549:/usr/include/c++/4.8/bits/basic_string.tcc ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
 550:/usr/include/c++/4.8/bits/basic_string.tcc ****       // 83.  String::npos vs. string::max_size()
GAS LISTING /tmp/ccev5sD5.s 			page 26


 551:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__capacity > _S_max_size)
 552:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__throw_length_error(__N("basic_string::_S_create"));
 553:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 554:/usr/include/c++/4.8/bits/basic_string.tcc ****       // The standard places no restriction on allocating more memory
 555:/usr/include/c++/4.8/bits/basic_string.tcc ****       // than is strictly needed within this layer at the moment or as
 556:/usr/include/c++/4.8/bits/basic_string.tcc ****       // requested by an explicit application call to reserve().
 557:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 558:/usr/include/c++/4.8/bits/basic_string.tcc ****       // Many malloc implementations perform quite poorly when an
 559:/usr/include/c++/4.8/bits/basic_string.tcc ****       // application attempts to allocate memory in a stepwise fashion
 560:/usr/include/c++/4.8/bits/basic_string.tcc ****       // growing each allocation size by only 1 char.  Additionally,
 561:/usr/include/c++/4.8/bits/basic_string.tcc ****       // it makes little sense to allocate less linear memory than the
 562:/usr/include/c++/4.8/bits/basic_string.tcc ****       // natural blocking size of the malloc implementation.
 563:/usr/include/c++/4.8/bits/basic_string.tcc ****       // Unfortunately, we would need a somewhat low-level calculation
 564:/usr/include/c++/4.8/bits/basic_string.tcc ****       // with tuned parameters to get this perfect for any particular
 565:/usr/include/c++/4.8/bits/basic_string.tcc ****       // malloc implementation.  Fortunately, generalizations about
 566:/usr/include/c++/4.8/bits/basic_string.tcc ****       // common features seen among implementations seems to suffice.
 567:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 568:/usr/include/c++/4.8/bits/basic_string.tcc ****       // __pagesize need not match the actual VM page size for good
 569:/usr/include/c++/4.8/bits/basic_string.tcc ****       // results in practice, thus we pick a common value on the low
 570:/usr/include/c++/4.8/bits/basic_string.tcc ****       // side.  __malloc_header_size is an estimate of the amount of
 571:/usr/include/c++/4.8/bits/basic_string.tcc ****       // overhead per memory allocation (in practice seen N * sizeof
 572:/usr/include/c++/4.8/bits/basic_string.tcc ****       // (void*) where N is 0, 2 or 4).  According to folklore,
 573:/usr/include/c++/4.8/bits/basic_string.tcc ****       // picking this value on the high side is better than
 574:/usr/include/c++/4.8/bits/basic_string.tcc ****       // low-balling it (especially when this algorithm is used with
 575:/usr/include/c++/4.8/bits/basic_string.tcc ****       // malloc implementations that allocate memory blocks rounded up
 576:/usr/include/c++/4.8/bits/basic_string.tcc ****       // to a size which is a power of 2).
 577:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __pagesize = 4096;
 578:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __malloc_header_size = 4 * sizeof(void*);
 579:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 580:/usr/include/c++/4.8/bits/basic_string.tcc ****       // The below implements an exponential growth policy, necessary to
 581:/usr/include/c++/4.8/bits/basic_string.tcc ****       // meet amortized linear time requirements of the library: see
 582:/usr/include/c++/4.8/bits/basic_string.tcc ****       // http://gcc.gnu.org/ml/libstdc++/2001-07/msg00085.html.
 583:/usr/include/c++/4.8/bits/basic_string.tcc ****       // It's active for allocations requiring an amount of memory above
 584:/usr/include/c++/4.8/bits/basic_string.tcc ****       // system pagesize. This is consistent with the requirements of the
 585:/usr/include/c++/4.8/bits/basic_string.tcc ****       // standard: http://gcc.gnu.org/ml/libstdc++/2001-07/msg00130.html
 586:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
 587:/usr/include/c++/4.8/bits/basic_string.tcc **** 	__capacity = 2 * __old_capacity;
 588:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 589:/usr/include/c++/4.8/bits/basic_string.tcc ****       // NB: Need an array of char_type[__capacity], plus a terminating
 590:/usr/include/c++/4.8/bits/basic_string.tcc ****       // null char_type() element, plus enough for the _Rep data structure.
 591:/usr/include/c++/4.8/bits/basic_string.tcc ****       // Whew. Seemingly so needy, yet so elemental.
 592:/usr/include/c++/4.8/bits/basic_string.tcc ****       size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
 593:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 594:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __adj_size = __size + __malloc_header_size;
 595:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__adj_size > __pagesize && __capacity > __old_capacity)
 596:/usr/include/c++/4.8/bits/basic_string.tcc **** 	{
 597:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  const size_type __extra = __pagesize - __adj_size % __pagesize;
 598:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  __capacity += __extra / sizeof(_CharT);
 599:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  // Never allocate a string bigger than _S_max_size.
 600:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  if (__capacity > _S_max_size)
 601:/usr/include/c++/4.8/bits/basic_string.tcc **** 	    __capacity = _S_max_size;
 602:/usr/include/c++/4.8/bits/basic_string.tcc **** 	  __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
 603:/usr/include/c++/4.8/bits/basic_string.tcc **** 	}
 604:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 605:/usr/include/c++/4.8/bits/basic_string.tcc ****       // NB: Might throw, but no worries about a leak, mate: _Rep()
 606:/usr/include/c++/4.8/bits/basic_string.tcc ****       // does not throw.
 607:/usr/include/c++/4.8/bits/basic_string.tcc ****       void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
GAS LISTING /tmp/ccev5sD5.s 			page 27


 608:/usr/include/c++/4.8/bits/basic_string.tcc ****       _Rep *__p = new (__place) _Rep;
 609:/usr/include/c++/4.8/bits/basic_string.tcc ****       __p->_M_capacity = __capacity;
 610:/usr/include/c++/4.8/bits/basic_string.tcc ****       // ABI compatibility - 3.4.x set in _S_create both
 611:/usr/include/c++/4.8/bits/basic_string.tcc ****       // _M_refcount and _M_length.  All callers of _S_create
 612:/usr/include/c++/4.8/bits/basic_string.tcc ****       // in basic_string.tcc then set just _M_length.
 613:/usr/include/c++/4.8/bits/basic_string.tcc ****       // In 4.0.x and later both _M_refcount and _M_length
 614:/usr/include/c++/4.8/bits/basic_string.tcc ****       // are initialized in the callers, unfortunately we can
 615:/usr/include/c++/4.8/bits/basic_string.tcc ****       // have 3.4.x compiled code with _S_create callers inlined
 616:/usr/include/c++/4.8/bits/basic_string.tcc ****       // calling 4.0.x+ _S_create.
 617:/usr/include/c++/4.8/bits/basic_string.tcc ****       __p->_M_set_sharable();
 618:/usr/include/c++/4.8/bits/basic_string.tcc ****       return __p;
 619:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 620:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 621:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 622:/usr/include/c++/4.8/bits/basic_string.tcc ****     _CharT*
 623:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::
 624:/usr/include/c++/4.8/bits/basic_string.tcc ****     _M_clone(const _Alloc& __alloc, size_type __res)
 625:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 626:/usr/include/c++/4.8/bits/basic_string.tcc ****       // Requested capacity of the clone.
 627:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __requested_cap = this->_M_length + __res;
 628:/usr/include/c++/4.8/bits/basic_string.tcc ****       _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
 629:/usr/include/c++/4.8/bits/basic_string.tcc **** 				  __alloc);
 630:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (this->_M_length)
 631:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
 632:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 633:/usr/include/c++/4.8/bits/basic_string.tcc ****       __r->_M_set_length_and_sharable(this->_M_length);
 634:/usr/include/c++/4.8/bits/basic_string.tcc ****       return __r->_M_refdata();
 635:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 636:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 637:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 638:/usr/include/c++/4.8/bits/basic_string.tcc ****     void
 639:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 640:/usr/include/c++/4.8/bits/basic_string.tcc ****     resize(size_type __n, _CharT __c)
 641:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 642:/usr/include/c++/4.8/bits/basic_string.tcc ****       const size_type __size = this->size();
 643:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_check_length(__size, __n, "basic_string::resize");
 644:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__size < __n)
 645:/usr/include/c++/4.8/bits/basic_string.tcc **** 	this->append(__n - __size, __c);
 646:/usr/include/c++/4.8/bits/basic_string.tcc ****       else if (__n < __size)
 647:/usr/include/c++/4.8/bits/basic_string.tcc **** 	this->erase(__n);
 648:/usr/include/c++/4.8/bits/basic_string.tcc ****       // else nothing (in particular, avoid calling _M_mutate() unnecessarily.)
 649:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 650:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 651:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 652:/usr/include/c++/4.8/bits/basic_string.tcc ****     template<typename _InputIterator>
 653:/usr/include/c++/4.8/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>&
 654:/usr/include/c++/4.8/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
 655:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
 656:/usr/include/c++/4.8/bits/basic_string.tcc **** 			  _InputIterator __k2, __false_type)
 657:/usr/include/c++/4.8/bits/basic_string.tcc ****       {
 658:/usr/include/c++/4.8/bits/basic_string.tcc **** 	const basic_string __s(__k1, __k2);
 659:/usr/include/c++/4.8/bits/basic_string.tcc **** 	const size_type __n1 = __i2 - __i1;
 660:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
 661:/usr/include/c++/4.8/bits/basic_string.tcc **** 	return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
 662:/usr/include/c++/4.8/bits/basic_string.tcc **** 			       __s.size());
 663:/usr/include/c++/4.8/bits/basic_string.tcc ****       }
 664:/usr/include/c++/4.8/bits/basic_string.tcc **** 
GAS LISTING /tmp/ccev5sD5.s 			page 28


 665:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 666:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 667:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 668:/usr/include/c++/4.8/bits/basic_string.tcc ****     _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
 669:/usr/include/c++/4.8/bits/basic_string.tcc **** 		   _CharT __c)
 670:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 671:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
 672:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_mutate(__pos1, __n1, __n2);
 673:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n2)
 674:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_assign(_M_data() + __pos1, __n2, __c);
 675:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 676:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 677:/usr/include/c++/4.8/bits/basic_string.tcc **** 
 678:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 679:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 680:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 681:/usr/include/c++/4.8/bits/basic_string.tcc ****     _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
 682:/usr/include/c++/4.8/bits/basic_string.tcc **** 		    size_type __n2)
 683:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 684:/usr/include/c++/4.8/bits/basic_string.tcc ****       _M_mutate(__pos1, __n1, __n2);
 685:/usr/include/c++/4.8/bits/basic_string.tcc ****       if (__n2)
 686:/usr/include/c++/4.8/bits/basic_string.tcc **** 	_M_copy(_M_data() + __pos1, __s, __n2);
 687:/usr/include/c++/4.8/bits/basic_string.tcc ****       return *this;
 688:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 689:/usr/include/c++/4.8/bits/basic_string.tcc ****    
 690:/usr/include/c++/4.8/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 691:/usr/include/c++/4.8/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>
 692:/usr/include/c++/4.8/bits/basic_string.tcc ****     operator+(const _CharT* __lhs,
 389              		.loc 5 692 0
 390              		.cfi_startproc
 391              		.cfi_personality 0x3,__gxx_personality_v0
 392              		.cfi_lsda 0x3,.LLSDA1314
 393              	.LVL38:
 394 0000 4155     		pushq	%r13
 395              		.cfi_def_cfa_offset 16
 396              		.cfi_offset 13, -16
 397 0002 4154     		pushq	%r12
 398              		.cfi_def_cfa_offset 24
 399              		.cfi_offset 12, -24
 400 0004 55       		pushq	%rbp
 401              		.cfi_def_cfa_offset 32
 402              		.cfi_offset 6, -32
 403 0005 53       		pushq	%rbx
 404              		.cfi_def_cfa_offset 40
 405              		.cfi_offset 3, -40
 406 0006 4883EC08 		subq	$8, %rsp
 407              		.cfi_def_cfa_offset 48
 408 000a 4889FB   		movq	%rdi, %rbx
 409 000d 4989F4   		movq	%rsi, %r12
 410 0010 4889D5   		movq	%rdx, %rbp
 411              	.LBB5:
 693:/usr/include/c++/4.8/bits/basic_string.tcc **** 	      const basic_string<_CharT, _Traits, _Alloc>& __rhs)
 694:/usr/include/c++/4.8/bits/basic_string.tcc ****     {
 695:/usr/include/c++/4.8/bits/basic_string.tcc ****       __glibcxx_requires_string(__lhs);
 696:/usr/include/c++/4.8/bits/basic_string.tcc ****       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
 697:/usr/include/c++/4.8/bits/basic_string.tcc ****       typedef typename __string_type::size_type	  __size_type;
 698:/usr/include/c++/4.8/bits/basic_string.tcc ****       const __size_type __len = _Traits::length(__lhs);
GAS LISTING /tmp/ccev5sD5.s 			page 29


 412              		.loc 5 698 0
 413 0013 4889F7   		movq	%rsi, %rdi
 414              	.LVL39:
 415 0016 E8000000 		call	_ZNSt11char_traitsIcE6lengthEPKc
 415      00
 416              	.LVL40:
 417 001b 4989C5   		movq	%rax, %r13
 418              	.LVL41:
 699:/usr/include/c++/4.8/bits/basic_string.tcc ****       __string_type __str;
 419              		.loc 5 699 0
 420 001e 4889DF   		movq	%rbx, %rdi
 421 0021 E8000000 		call	_ZNSsC1Ev
 421      00
 422              	.LVL42:
 700:/usr/include/c++/4.8/bits/basic_string.tcc ****       __str.reserve(__len + __rhs.size());
 423              		.loc 5 700 0
 424 0026 4889EF   		movq	%rbp, %rdi
 425 0029 E8000000 		call	_ZNKSs4sizeEv
 425      00
 426              	.LVL43:
 427 002e 4A8D3428 		leaq	(%rax,%r13), %rsi
 428 0032 4889DF   		movq	%rbx, %rdi
 429              	.LEHB5:
 430 0035 E8000000 		call	_ZNSs7reserveEm
 430      00
 431              	.LVL44:
 701:/usr/include/c++/4.8/bits/basic_string.tcc ****       __str.append(__lhs, __len);
 432              		.loc 5 701 0
 433 003a 4C89EA   		movq	%r13, %rdx
 434 003d 4C89E6   		movq	%r12, %rsi
 435 0040 4889DF   		movq	%rbx, %rdi
 436 0043 E8000000 		call	_ZNSs6appendEPKcm
 436      00
 437              	.LVL45:
 702:/usr/include/c++/4.8/bits/basic_string.tcc ****       __str.append(__rhs);
 438              		.loc 5 702 0
 439 0048 4889EE   		movq	%rbp, %rsi
 440 004b 4889DF   		movq	%rbx, %rdi
 441 004e E8000000 		call	_ZNSs6appendERKSs
 441      00
 442              	.LEHE5:
 443              	.LVL46:
 444 0053 EB13     		jmp	.L32
 445              	.L31:
 446 0055 4889C5   		movq	%rax, %rbp
 447              	.LVL47:
 448 0058 4889DF   		movq	%rbx, %rdi
 449 005b E8000000 		call	_ZNSsD1Ev
 449      00
 450              	.LVL48:
 451 0060 4889EF   		movq	%rbp, %rdi
 452              	.LEHB6:
 453 0063 E8000000 		call	_Unwind_Resume
 453      00
 454              	.LEHE6:
 455              	.LVL49:
 456              	.L32:
GAS LISTING /tmp/ccev5sD5.s 			page 30


 457              	.LBE5:
 703:/usr/include/c++/4.8/bits/basic_string.tcc ****       return __str;
 704:/usr/include/c++/4.8/bits/basic_string.tcc ****     }
 458              		.loc 5 704 0
 459 0068 4889D8   		movq	%rbx, %rax
 460 006b 4883C408 		addq	$8, %rsp
 461              		.cfi_def_cfa_offset 40
 462 006f 5B       		popq	%rbx
 463              		.cfi_def_cfa_offset 32
 464              	.LVL50:
 465 0070 5D       		popq	%rbp
 466              		.cfi_def_cfa_offset 24
 467              	.LVL51:
 468 0071 415C     		popq	%r12
 469              		.cfi_def_cfa_offset 16
 470              	.LVL52:
 471 0073 415D     		popq	%r13
 472              		.cfi_def_cfa_offset 8
 473              	.LVL53:
 474 0075 C3       		ret
 475              		.cfi_endproc
 476              	.LFE1314:
 477              		.section	.gcc_except_table
 478              	.LLSDA1314:
 479 0036 FF       		.byte	0xff
 480 0037 FF       		.byte	0xff
 481 0038 01       		.byte	0x1
 482 0039 08       		.uleb128 .LLSDACSE1314-.LLSDACSB1314
 483              	.LLSDACSB1314:
 484 003a 35       		.uleb128 .LEHB5-.LFB1314
 485 003b 1E       		.uleb128 .LEHE5-.LEHB5
 486 003c 55       		.uleb128 .L31-.LFB1314
 487 003d 00       		.uleb128 0
 488 003e 63       		.uleb128 .LEHB6-.LFB1314
 489 003f 05       		.uleb128 .LEHE6-.LEHB6
 490 0040 00       		.uleb128 0
 491 0041 00       		.uleb128 0
 492              	.LLSDACSE1314:
 493              		.section	.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_,"axG",@progbits,_ZStplIcSt11
 495              		.section	.text._ZSt4moveIRSsEONSt16remove_referenceIT_E4typeEOS2_,"axG",@progbits,_ZSt4moveIRSsEON
 496              		.weak	_ZSt4moveIRSsEONSt16remove_referenceIT_E4typeEOS2_
 498              	_ZSt4moveIRSsEONSt16remove_referenceIT_E4typeEOS2_:
 499              	.LFB1316:
 500              		.file 6 "/usr/include/c++/4.8/bits/move.h"
   1:/usr/include/c++/4.8/bits/move.h **** // Move, forward and identity for C++0x + swap -*- C++ -*-
   2:/usr/include/c++/4.8/bits/move.h **** 
   3:/usr/include/c++/4.8/bits/move.h **** // Copyright (C) 2007-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/move.h **** //
   5:/usr/include/c++/4.8/bits/move.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/move.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/move.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/move.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/move.h **** // any later version.
  10:/usr/include/c++/4.8/bits/move.h **** 
  11:/usr/include/c++/4.8/bits/move.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/move.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/move.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GAS LISTING /tmp/ccev5sD5.s 			page 31


  14:/usr/include/c++/4.8/bits/move.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/move.h **** 
  16:/usr/include/c++/4.8/bits/move.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/move.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/move.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/move.h **** 
  20:/usr/include/c++/4.8/bits/move.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/move.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/move.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/move.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/move.h **** 
  25:/usr/include/c++/4.8/bits/move.h **** /** @file bits/move.h
  26:/usr/include/c++/4.8/bits/move.h ****  *  This is an internal header file, included by other library headers.
  27:/usr/include/c++/4.8/bits/move.h ****  *  Do not attempt to use it directly. @headername{utility}
  28:/usr/include/c++/4.8/bits/move.h ****  */
  29:/usr/include/c++/4.8/bits/move.h **** 
  30:/usr/include/c++/4.8/bits/move.h **** #ifndef _MOVE_H
  31:/usr/include/c++/4.8/bits/move.h **** #define _MOVE_H 1
  32:/usr/include/c++/4.8/bits/move.h **** 
  33:/usr/include/c++/4.8/bits/move.h **** #include <bits/c++config.h>
  34:/usr/include/c++/4.8/bits/move.h **** #include <bits/concept_check.h>
  35:/usr/include/c++/4.8/bits/move.h **** 
  36:/usr/include/c++/4.8/bits/move.h **** namespace std _GLIBCXX_VISIBILITY(default)
  37:/usr/include/c++/4.8/bits/move.h **** {
  38:/usr/include/c++/4.8/bits/move.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  39:/usr/include/c++/4.8/bits/move.h **** 
  40:/usr/include/c++/4.8/bits/move.h ****   // Used, in C++03 mode too, by allocators, etc.
  41:/usr/include/c++/4.8/bits/move.h ****   /**
  42:/usr/include/c++/4.8/bits/move.h ****    *  @brief Same as C++11 std::addressof
  43:/usr/include/c++/4.8/bits/move.h ****    *  @ingroup utilities
  44:/usr/include/c++/4.8/bits/move.h ****    */
  45:/usr/include/c++/4.8/bits/move.h ****   template<typename _Tp>
  46:/usr/include/c++/4.8/bits/move.h ****     inline _Tp*
  47:/usr/include/c++/4.8/bits/move.h ****     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
  48:/usr/include/c++/4.8/bits/move.h ****     {
  49:/usr/include/c++/4.8/bits/move.h ****       return reinterpret_cast<_Tp*>
  50:/usr/include/c++/4.8/bits/move.h **** 	(&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
  51:/usr/include/c++/4.8/bits/move.h ****     }
  52:/usr/include/c++/4.8/bits/move.h **** 
  53:/usr/include/c++/4.8/bits/move.h **** _GLIBCXX_END_NAMESPACE_VERSION
  54:/usr/include/c++/4.8/bits/move.h **** } // namespace
  55:/usr/include/c++/4.8/bits/move.h **** 
  56:/usr/include/c++/4.8/bits/move.h **** #if __cplusplus >= 201103L
  57:/usr/include/c++/4.8/bits/move.h **** #include <type_traits> // Brings in std::declval too.
  58:/usr/include/c++/4.8/bits/move.h **** 
  59:/usr/include/c++/4.8/bits/move.h **** namespace std _GLIBCXX_VISIBILITY(default)
  60:/usr/include/c++/4.8/bits/move.h **** {
  61:/usr/include/c++/4.8/bits/move.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  62:/usr/include/c++/4.8/bits/move.h **** 
  63:/usr/include/c++/4.8/bits/move.h ****   /**
  64:/usr/include/c++/4.8/bits/move.h ****    *  @addtogroup utilities
  65:/usr/include/c++/4.8/bits/move.h ****    *  @{
  66:/usr/include/c++/4.8/bits/move.h ****    */
  67:/usr/include/c++/4.8/bits/move.h **** 
  68:/usr/include/c++/4.8/bits/move.h ****   /**
  69:/usr/include/c++/4.8/bits/move.h ****    *  @brief  Forward an lvalue.
  70:/usr/include/c++/4.8/bits/move.h ****    *  @return The parameter cast to the specified type.
GAS LISTING /tmp/ccev5sD5.s 			page 32


  71:/usr/include/c++/4.8/bits/move.h ****    *
  72:/usr/include/c++/4.8/bits/move.h ****    *  This function is used to implement "perfect forwarding".
  73:/usr/include/c++/4.8/bits/move.h ****    */
  74:/usr/include/c++/4.8/bits/move.h ****   template<typename _Tp>
  75:/usr/include/c++/4.8/bits/move.h ****     constexpr _Tp&&
  76:/usr/include/c++/4.8/bits/move.h ****     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
  77:/usr/include/c++/4.8/bits/move.h ****     { return static_cast<_Tp&&>(__t); }
  78:/usr/include/c++/4.8/bits/move.h **** 
  79:/usr/include/c++/4.8/bits/move.h ****   /**
  80:/usr/include/c++/4.8/bits/move.h ****    *  @brief  Forward an rvalue.
  81:/usr/include/c++/4.8/bits/move.h ****    *  @return The parameter cast to the specified type.
  82:/usr/include/c++/4.8/bits/move.h ****    *
  83:/usr/include/c++/4.8/bits/move.h ****    *  This function is used to implement "perfect forwarding".
  84:/usr/include/c++/4.8/bits/move.h ****    */
  85:/usr/include/c++/4.8/bits/move.h ****   template<typename _Tp>
  86:/usr/include/c++/4.8/bits/move.h ****     constexpr _Tp&&
  87:/usr/include/c++/4.8/bits/move.h ****     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
  88:/usr/include/c++/4.8/bits/move.h ****     {
  89:/usr/include/c++/4.8/bits/move.h ****       static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument"
  90:/usr/include/c++/4.8/bits/move.h **** 		    " substituting _Tp is an lvalue reference type");
  91:/usr/include/c++/4.8/bits/move.h ****       return static_cast<_Tp&&>(__t);
  92:/usr/include/c++/4.8/bits/move.h ****     }
  93:/usr/include/c++/4.8/bits/move.h **** 
  94:/usr/include/c++/4.8/bits/move.h ****   /**
  95:/usr/include/c++/4.8/bits/move.h ****    *  @brief  Convert a value to an rvalue.
  96:/usr/include/c++/4.8/bits/move.h ****    *  @param  __t  A thing of arbitrary type.
  97:/usr/include/c++/4.8/bits/move.h ****    *  @return The parameter cast to an rvalue-reference to allow moving it.
  98:/usr/include/c++/4.8/bits/move.h ****   */
  99:/usr/include/c++/4.8/bits/move.h ****   template<typename _Tp>
 100:/usr/include/c++/4.8/bits/move.h ****     constexpr typename std::remove_reference<_Tp>::type&&
 101:/usr/include/c++/4.8/bits/move.h ****     move(_Tp&& __t) noexcept
 501              		.loc 6 101 0
 502              		.cfi_startproc
 503              	.LVL54:
 504 0000 4889F8   		movq	%rdi, %rax
 102:/usr/include/c++/4.8/bits/move.h ****     { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }
 505              		.loc 6 102 0
 506 0003 C3       		ret
 507              		.cfi_endproc
 508              	.LFE1316:
 510              		.section	.text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_,"axG",@progbits,_ZStplIcSt11c
 511              		.weak	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_
 513              	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_:
 514              	.LFB1315:
 515              		.file 7 "/usr/include/c++/4.8/bits/basic_string.h"
   1:/usr/include/c++/4.8/bits/basic_string.h **** // Components for manipulating sequences of characters -*- C++ -*-
   2:/usr/include/c++/4.8/bits/basic_string.h **** 
   3:/usr/include/c++/4.8/bits/basic_string.h **** // Copyright (C) 1997-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/basic_string.h **** //
   5:/usr/include/c++/4.8/bits/basic_string.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/basic_string.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/basic_string.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/basic_string.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/basic_string.h **** // any later version.
  10:/usr/include/c++/4.8/bits/basic_string.h **** 
  11:/usr/include/c++/4.8/bits/basic_string.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/basic_string.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
GAS LISTING /tmp/ccev5sD5.s 			page 33


  13:/usr/include/c++/4.8/bits/basic_string.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/basic_string.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/basic_string.h **** 
  16:/usr/include/c++/4.8/bits/basic_string.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/basic_string.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/basic_string.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/basic_string.h **** 
  20:/usr/include/c++/4.8/bits/basic_string.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/basic_string.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/basic_string.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/basic_string.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/basic_string.h **** 
  25:/usr/include/c++/4.8/bits/basic_string.h **** /** @file bits/basic_string.h
  26:/usr/include/c++/4.8/bits/basic_string.h ****  *  This is an internal header file, included by other library headers.
  27:/usr/include/c++/4.8/bits/basic_string.h ****  *  Do not attempt to use it directly. @headername{string}
  28:/usr/include/c++/4.8/bits/basic_string.h ****  */
  29:/usr/include/c++/4.8/bits/basic_string.h **** 
  30:/usr/include/c++/4.8/bits/basic_string.h **** //
  31:/usr/include/c++/4.8/bits/basic_string.h **** // ISO C++ 14882: 21 Strings library
  32:/usr/include/c++/4.8/bits/basic_string.h **** //
  33:/usr/include/c++/4.8/bits/basic_string.h **** 
  34:/usr/include/c++/4.8/bits/basic_string.h **** #ifndef _BASIC_STRING_H
  35:/usr/include/c++/4.8/bits/basic_string.h **** #define _BASIC_STRING_H 1
  36:/usr/include/c++/4.8/bits/basic_string.h **** 
  37:/usr/include/c++/4.8/bits/basic_string.h **** #pragma GCC system_header
  38:/usr/include/c++/4.8/bits/basic_string.h **** 
  39:/usr/include/c++/4.8/bits/basic_string.h **** #include <ext/atomicity.h>
  40:/usr/include/c++/4.8/bits/basic_string.h **** #include <debug/debug.h>
  41:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
  42:/usr/include/c++/4.8/bits/basic_string.h **** #include <initializer_list>
  43:/usr/include/c++/4.8/bits/basic_string.h **** #endif
  44:/usr/include/c++/4.8/bits/basic_string.h **** 
  45:/usr/include/c++/4.8/bits/basic_string.h **** namespace std _GLIBCXX_VISIBILITY(default)
  46:/usr/include/c++/4.8/bits/basic_string.h **** {
  47:/usr/include/c++/4.8/bits/basic_string.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  48:/usr/include/c++/4.8/bits/basic_string.h **** 
  49:/usr/include/c++/4.8/bits/basic_string.h ****   /**
  50:/usr/include/c++/4.8/bits/basic_string.h ****    *  @class basic_string basic_string.h <string>
  51:/usr/include/c++/4.8/bits/basic_string.h ****    *  @brief  Managing sequences of characters and character-like objects.
  52:/usr/include/c++/4.8/bits/basic_string.h ****    *
  53:/usr/include/c++/4.8/bits/basic_string.h ****    *  @ingroup strings
  54:/usr/include/c++/4.8/bits/basic_string.h ****    *  @ingroup sequences
  55:/usr/include/c++/4.8/bits/basic_string.h ****    *
  56:/usr/include/c++/4.8/bits/basic_string.h ****    *  @tparam _CharT  Type of character
  57:/usr/include/c++/4.8/bits/basic_string.h ****    *  @tparam _Traits  Traits for character type, defaults to
  58:/usr/include/c++/4.8/bits/basic_string.h ****    *                   char_traits<_CharT>.
  59:/usr/include/c++/4.8/bits/basic_string.h ****    *  @tparam _Alloc  Allocator type, defaults to allocator<_CharT>.
  60:/usr/include/c++/4.8/bits/basic_string.h ****    *
  61:/usr/include/c++/4.8/bits/basic_string.h ****    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
  62:/usr/include/c++/4.8/bits/basic_string.h ****    *  <a href="tables.html#66">reversible container</a>, and a
  63:/usr/include/c++/4.8/bits/basic_string.h ****    *  <a href="tables.html#67">sequence</a>.  Of the
  64:/usr/include/c++/4.8/bits/basic_string.h ****    *  <a href="tables.html#68">optional sequence requirements</a>, only
  65:/usr/include/c++/4.8/bits/basic_string.h ****    *  @c push_back, @c at, and @c %array access are supported.
  66:/usr/include/c++/4.8/bits/basic_string.h ****    *
  67:/usr/include/c++/4.8/bits/basic_string.h ****    *  @doctodo
  68:/usr/include/c++/4.8/bits/basic_string.h ****    *
  69:/usr/include/c++/4.8/bits/basic_string.h ****    *
GAS LISTING /tmp/ccev5sD5.s 			page 34


  70:/usr/include/c++/4.8/bits/basic_string.h ****    *  Documentation?  What's that?
  71:/usr/include/c++/4.8/bits/basic_string.h ****    *  Nathan Myers <ncm@cantrip.org>.
  72:/usr/include/c++/4.8/bits/basic_string.h ****    *
  73:/usr/include/c++/4.8/bits/basic_string.h ****    *  A string looks like this:
  74:/usr/include/c++/4.8/bits/basic_string.h ****    *
  75:/usr/include/c++/4.8/bits/basic_string.h ****    *  @code
  76:/usr/include/c++/4.8/bits/basic_string.h ****    *                                        [_Rep]
  77:/usr/include/c++/4.8/bits/basic_string.h ****    *                                        _M_length
  78:/usr/include/c++/4.8/bits/basic_string.h ****    *   [basic_string<char_type>]            _M_capacity
  79:/usr/include/c++/4.8/bits/basic_string.h ****    *   _M_dataplus                          _M_refcount
  80:/usr/include/c++/4.8/bits/basic_string.h ****    *   _M_p ---------------->               unnamed array of char_type
  81:/usr/include/c++/4.8/bits/basic_string.h ****    *  @endcode
  82:/usr/include/c++/4.8/bits/basic_string.h ****    *
  83:/usr/include/c++/4.8/bits/basic_string.h ****    *  Where the _M_p points to the first character in the string, and
  84:/usr/include/c++/4.8/bits/basic_string.h ****    *  you cast it to a pointer-to-_Rep and subtract 1 to get a
  85:/usr/include/c++/4.8/bits/basic_string.h ****    *  pointer to the header.
  86:/usr/include/c++/4.8/bits/basic_string.h ****    *
  87:/usr/include/c++/4.8/bits/basic_string.h ****    *  This approach has the enormous advantage that a string object
  88:/usr/include/c++/4.8/bits/basic_string.h ****    *  requires only one allocation.  All the ugliness is confined
  89:/usr/include/c++/4.8/bits/basic_string.h ****    *  within a single %pair of inline functions, which each compile to
  90:/usr/include/c++/4.8/bits/basic_string.h ****    *  a single @a add instruction: _Rep::_M_data(), and
  91:/usr/include/c++/4.8/bits/basic_string.h ****    *  string::_M_rep(); and the allocation function which gets a
  92:/usr/include/c++/4.8/bits/basic_string.h ****    *  block of raw bytes and with room enough and constructs a _Rep
  93:/usr/include/c++/4.8/bits/basic_string.h ****    *  object at the front.
  94:/usr/include/c++/4.8/bits/basic_string.h ****    *
  95:/usr/include/c++/4.8/bits/basic_string.h ****    *  The reason you want _M_data pointing to the character %array and
  96:/usr/include/c++/4.8/bits/basic_string.h ****    *  not the _Rep is so that the debugger can see the string
  97:/usr/include/c++/4.8/bits/basic_string.h ****    *  contents. (Probably we should add a non-inline member to get
  98:/usr/include/c++/4.8/bits/basic_string.h ****    *  the _Rep for the debugger to use, so users can check the actual
  99:/usr/include/c++/4.8/bits/basic_string.h ****    *  string length.)
 100:/usr/include/c++/4.8/bits/basic_string.h ****    *
 101:/usr/include/c++/4.8/bits/basic_string.h ****    *  Note that the _Rep object is a POD so that you can have a
 102:/usr/include/c++/4.8/bits/basic_string.h ****    *  static <em>empty string</em> _Rep object already @a constructed before
 103:/usr/include/c++/4.8/bits/basic_string.h ****    *  static constructors have run.  The reference-count encoding is
 104:/usr/include/c++/4.8/bits/basic_string.h ****    *  chosen so that a 0 indicates one reference, so you never try to
 105:/usr/include/c++/4.8/bits/basic_string.h ****    *  destroy the empty-string _Rep object.
 106:/usr/include/c++/4.8/bits/basic_string.h ****    *
 107:/usr/include/c++/4.8/bits/basic_string.h ****    *  All but the last paragraph is considered pretty conventional
 108:/usr/include/c++/4.8/bits/basic_string.h ****    *  for a C++ string implementation.
 109:/usr/include/c++/4.8/bits/basic_string.h ****   */
 110:/usr/include/c++/4.8/bits/basic_string.h ****   // 21.3  Template class basic_string
 111:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
 112:/usr/include/c++/4.8/bits/basic_string.h ****     class basic_string
 113:/usr/include/c++/4.8/bits/basic_string.h ****     {
 114:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
 115:/usr/include/c++/4.8/bits/basic_string.h **** 
 116:/usr/include/c++/4.8/bits/basic_string.h ****       // Types:
 117:/usr/include/c++/4.8/bits/basic_string.h ****     public:
 118:/usr/include/c++/4.8/bits/basic_string.h ****       typedef _Traits					    traits_type;
 119:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _Traits::char_type		    value_type;
 120:/usr/include/c++/4.8/bits/basic_string.h ****       typedef _Alloc					    allocator_type;
 121:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _CharT_alloc_type::size_type	    size_type;
 122:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _CharT_alloc_type::difference_type   difference_type;
 123:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _CharT_alloc_type::reference	    reference;
 124:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _CharT_alloc_type::const_reference   const_reference;
 125:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _CharT_alloc_type::pointer	    pointer;
 126:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename _CharT_alloc_type::const_pointer	    const_pointer;
GAS LISTING /tmp/ccev5sD5.s 			page 35


 127:/usr/include/c++/4.8/bits/basic_string.h ****       typedef __gnu_cxx::__normal_iterator<pointer, basic_string>  iterator;
 128:/usr/include/c++/4.8/bits/basic_string.h ****       typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
 129:/usr/include/c++/4.8/bits/basic_string.h ****                                                             const_iterator;
 130:/usr/include/c++/4.8/bits/basic_string.h ****       typedef std::reverse_iterator<const_iterator>	const_reverse_iterator;
 131:/usr/include/c++/4.8/bits/basic_string.h ****       typedef std::reverse_iterator<iterator>		    reverse_iterator;
 132:/usr/include/c++/4.8/bits/basic_string.h **** 
 133:/usr/include/c++/4.8/bits/basic_string.h ****     private:
 134:/usr/include/c++/4.8/bits/basic_string.h ****       // _Rep: string representation
 135:/usr/include/c++/4.8/bits/basic_string.h ****       //   Invariants:
 136:/usr/include/c++/4.8/bits/basic_string.h ****       //   1. String really contains _M_length + 1 characters: due to 21.3.4
 137:/usr/include/c++/4.8/bits/basic_string.h ****       //      must be kept null-terminated.
 138:/usr/include/c++/4.8/bits/basic_string.h ****       //   2. _M_capacity >= _M_length
 139:/usr/include/c++/4.8/bits/basic_string.h ****       //      Allocated memory is always (_M_capacity + 1) * sizeof(_CharT).
 140:/usr/include/c++/4.8/bits/basic_string.h ****       //   3. _M_refcount has three states:
 141:/usr/include/c++/4.8/bits/basic_string.h ****       //      -1: leaked, one reference, no ref-copies allowed, non-const.
 142:/usr/include/c++/4.8/bits/basic_string.h ****       //       0: one reference, non-const.
 143:/usr/include/c++/4.8/bits/basic_string.h ****       //     n>0: n + 1 references, operations require a lock, const.
 144:/usr/include/c++/4.8/bits/basic_string.h ****       //   4. All fields==0 is an empty string, given the extra storage
 145:/usr/include/c++/4.8/bits/basic_string.h ****       //      beyond-the-end for a null terminator; thus, the shared
 146:/usr/include/c++/4.8/bits/basic_string.h ****       //      empty string representation needs no constructor.
 147:/usr/include/c++/4.8/bits/basic_string.h **** 
 148:/usr/include/c++/4.8/bits/basic_string.h ****       struct _Rep_base
 149:/usr/include/c++/4.8/bits/basic_string.h ****       {
 150:/usr/include/c++/4.8/bits/basic_string.h **** 	size_type		_M_length;
 151:/usr/include/c++/4.8/bits/basic_string.h **** 	size_type		_M_capacity;
 152:/usr/include/c++/4.8/bits/basic_string.h **** 	_Atomic_word		_M_refcount;
 153:/usr/include/c++/4.8/bits/basic_string.h ****       };
 154:/usr/include/c++/4.8/bits/basic_string.h **** 
 155:/usr/include/c++/4.8/bits/basic_string.h ****       struct _Rep : _Rep_base
 156:/usr/include/c++/4.8/bits/basic_string.h ****       {
 157:/usr/include/c++/4.8/bits/basic_string.h **** 	// Types:
 158:/usr/include/c++/4.8/bits/basic_string.h **** 	typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
 159:/usr/include/c++/4.8/bits/basic_string.h **** 
 160:/usr/include/c++/4.8/bits/basic_string.h **** 	// (Public) Data members:
 161:/usr/include/c++/4.8/bits/basic_string.h **** 
 162:/usr/include/c++/4.8/bits/basic_string.h **** 	// The maximum number of individual char_type elements of an
 163:/usr/include/c++/4.8/bits/basic_string.h **** 	// individual string is determined by _S_max_size. This is the
 164:/usr/include/c++/4.8/bits/basic_string.h **** 	// value that will be returned by max_size().  (Whereas npos
 165:/usr/include/c++/4.8/bits/basic_string.h **** 	// is the maximum number of bytes the allocator can allocate.)
 166:/usr/include/c++/4.8/bits/basic_string.h **** 	// If one was to divvy up the theoretical largest size string,
 167:/usr/include/c++/4.8/bits/basic_string.h **** 	// with a terminating character and m _CharT elements, it'd
 168:/usr/include/c++/4.8/bits/basic_string.h **** 	// look like this:
 169:/usr/include/c++/4.8/bits/basic_string.h **** 	// npos = sizeof(_Rep) + (m * sizeof(_CharT)) + sizeof(_CharT)
 170:/usr/include/c++/4.8/bits/basic_string.h **** 	// Solving for m:
 171:/usr/include/c++/4.8/bits/basic_string.h **** 	// m = ((npos - sizeof(_Rep))/sizeof(CharT)) - 1
 172:/usr/include/c++/4.8/bits/basic_string.h **** 	// In addition, this implementation quarters this amount.
 173:/usr/include/c++/4.8/bits/basic_string.h **** 	static const size_type	_S_max_size;
 174:/usr/include/c++/4.8/bits/basic_string.h **** 	static const _CharT	_S_terminal;
 175:/usr/include/c++/4.8/bits/basic_string.h **** 
 176:/usr/include/c++/4.8/bits/basic_string.h **** 	// The following storage is init'd to 0 by the linker, resulting
 177:/usr/include/c++/4.8/bits/basic_string.h ****         // (carefully) in an empty string with one reference.
 178:/usr/include/c++/4.8/bits/basic_string.h ****         static size_type _S_empty_rep_storage[];
 179:/usr/include/c++/4.8/bits/basic_string.h **** 
 180:/usr/include/c++/4.8/bits/basic_string.h ****         static _Rep&
 181:/usr/include/c++/4.8/bits/basic_string.h ****         _S_empty_rep()
 182:/usr/include/c++/4.8/bits/basic_string.h ****         { 
 183:/usr/include/c++/4.8/bits/basic_string.h **** 	  // NB: Mild hack to avoid strict-aliasing warnings.  Note that
GAS LISTING /tmp/ccev5sD5.s 			page 36


 184:/usr/include/c++/4.8/bits/basic_string.h **** 	  // _S_empty_rep_storage is never modified and the punning should
 185:/usr/include/c++/4.8/bits/basic_string.h **** 	  // be reasonably safe in this case.
 186:/usr/include/c++/4.8/bits/basic_string.h **** 	  void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
 187:/usr/include/c++/4.8/bits/basic_string.h **** 	  return *reinterpret_cast<_Rep*>(__p);
 188:/usr/include/c++/4.8/bits/basic_string.h **** 	}
 189:/usr/include/c++/4.8/bits/basic_string.h **** 
 190:/usr/include/c++/4.8/bits/basic_string.h ****         bool
 191:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_is_leaked() const
 192:/usr/include/c++/4.8/bits/basic_string.h ****         { return this->_M_refcount < 0; }
 193:/usr/include/c++/4.8/bits/basic_string.h **** 
 194:/usr/include/c++/4.8/bits/basic_string.h ****         bool
 195:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_is_shared() const
 196:/usr/include/c++/4.8/bits/basic_string.h ****         { return this->_M_refcount > 0; }
 197:/usr/include/c++/4.8/bits/basic_string.h **** 
 198:/usr/include/c++/4.8/bits/basic_string.h ****         void
 199:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_set_leaked()
 200:/usr/include/c++/4.8/bits/basic_string.h ****         { this->_M_refcount = -1; }
 201:/usr/include/c++/4.8/bits/basic_string.h **** 
 202:/usr/include/c++/4.8/bits/basic_string.h ****         void
 203:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_set_sharable()
 204:/usr/include/c++/4.8/bits/basic_string.h ****         { this->_M_refcount = 0; }
 205:/usr/include/c++/4.8/bits/basic_string.h **** 
 206:/usr/include/c++/4.8/bits/basic_string.h **** 	void
 207:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_set_length_and_sharable(size_type __n)
 208:/usr/include/c++/4.8/bits/basic_string.h **** 	{
 209:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 210:/usr/include/c++/4.8/bits/basic_string.h **** 	  if (__builtin_expect(this != &_S_empty_rep(), false))
 211:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 212:/usr/include/c++/4.8/bits/basic_string.h **** 	    {
 213:/usr/include/c++/4.8/bits/basic_string.h **** 	      this->_M_set_sharable();  // One reference.
 214:/usr/include/c++/4.8/bits/basic_string.h **** 	      this->_M_length = __n;
 215:/usr/include/c++/4.8/bits/basic_string.h **** 	      traits_type::assign(this->_M_refdata()[__n], _S_terminal);
 216:/usr/include/c++/4.8/bits/basic_string.h **** 	      // grrr. (per 21.3.4)
 217:/usr/include/c++/4.8/bits/basic_string.h **** 	      // You cannot leave those LWG people alone for a second.
 218:/usr/include/c++/4.8/bits/basic_string.h **** 	    }
 219:/usr/include/c++/4.8/bits/basic_string.h **** 	}
 220:/usr/include/c++/4.8/bits/basic_string.h **** 
 221:/usr/include/c++/4.8/bits/basic_string.h **** 	_CharT*
 222:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_refdata() throw()
 223:/usr/include/c++/4.8/bits/basic_string.h **** 	{ return reinterpret_cast<_CharT*>(this + 1); }
 224:/usr/include/c++/4.8/bits/basic_string.h **** 
 225:/usr/include/c++/4.8/bits/basic_string.h **** 	_CharT*
 226:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
 227:/usr/include/c++/4.8/bits/basic_string.h **** 	{
 228:/usr/include/c++/4.8/bits/basic_string.h **** 	  return (!_M_is_leaked() && __alloc1 == __alloc2)
 229:/usr/include/c++/4.8/bits/basic_string.h **** 	          ? _M_refcopy() : _M_clone(__alloc1);
 230:/usr/include/c++/4.8/bits/basic_string.h **** 	}
 231:/usr/include/c++/4.8/bits/basic_string.h **** 
 232:/usr/include/c++/4.8/bits/basic_string.h **** 	// Create & Destroy
 233:/usr/include/c++/4.8/bits/basic_string.h **** 	static _Rep*
 234:/usr/include/c++/4.8/bits/basic_string.h **** 	_S_create(size_type, size_type, const _Alloc&);
 235:/usr/include/c++/4.8/bits/basic_string.h **** 
 236:/usr/include/c++/4.8/bits/basic_string.h **** 	void
 237:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_dispose(const _Alloc& __a)
 238:/usr/include/c++/4.8/bits/basic_string.h **** 	{
 239:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 240:/usr/include/c++/4.8/bits/basic_string.h **** 	  if (__builtin_expect(this != &_S_empty_rep(), false))
GAS LISTING /tmp/ccev5sD5.s 			page 37


 241:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 242:/usr/include/c++/4.8/bits/basic_string.h **** 	    {
 243:/usr/include/c++/4.8/bits/basic_string.h **** 	      // Be race-detector-friendly.  For more info see bits/c++config.
 244:/usr/include/c++/4.8/bits/basic_string.h **** 	      _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&this->_M_refcount);
 245:/usr/include/c++/4.8/bits/basic_string.h **** 	      if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
 246:/usr/include/c++/4.8/bits/basic_string.h **** 							 -1) <= 0)
 247:/usr/include/c++/4.8/bits/basic_string.h **** 		{
 248:/usr/include/c++/4.8/bits/basic_string.h **** 		  _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&this->_M_refcount);
 249:/usr/include/c++/4.8/bits/basic_string.h **** 		  _M_destroy(__a);
 250:/usr/include/c++/4.8/bits/basic_string.h **** 		}
 251:/usr/include/c++/4.8/bits/basic_string.h **** 	    }
 252:/usr/include/c++/4.8/bits/basic_string.h **** 	}  // XXX MT
 253:/usr/include/c++/4.8/bits/basic_string.h **** 
 254:/usr/include/c++/4.8/bits/basic_string.h **** 	void
 255:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_destroy(const _Alloc&) throw();
 256:/usr/include/c++/4.8/bits/basic_string.h **** 
 257:/usr/include/c++/4.8/bits/basic_string.h **** 	_CharT*
 258:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_refcopy() throw()
 259:/usr/include/c++/4.8/bits/basic_string.h **** 	{
 260:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 261:/usr/include/c++/4.8/bits/basic_string.h **** 	  if (__builtin_expect(this != &_S_empty_rep(), false))
 262:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 263:/usr/include/c++/4.8/bits/basic_string.h ****             __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
 264:/usr/include/c++/4.8/bits/basic_string.h **** 	  return _M_refdata();
 265:/usr/include/c++/4.8/bits/basic_string.h **** 	}  // XXX MT
 266:/usr/include/c++/4.8/bits/basic_string.h **** 
 267:/usr/include/c++/4.8/bits/basic_string.h **** 	_CharT*
 268:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_clone(const _Alloc&, size_type __res = 0);
 269:/usr/include/c++/4.8/bits/basic_string.h ****       };
 270:/usr/include/c++/4.8/bits/basic_string.h **** 
 271:/usr/include/c++/4.8/bits/basic_string.h ****       // Use empty-base optimization: http://www.cantrip.org/emptyopt.html
 272:/usr/include/c++/4.8/bits/basic_string.h ****       struct _Alloc_hider : _Alloc
 273:/usr/include/c++/4.8/bits/basic_string.h ****       {
 274:/usr/include/c++/4.8/bits/basic_string.h **** 	_Alloc_hider(_CharT* __dat, const _Alloc& __a)
 275:/usr/include/c++/4.8/bits/basic_string.h **** 	: _Alloc(__a), _M_p(__dat) { }
 276:/usr/include/c++/4.8/bits/basic_string.h **** 
 277:/usr/include/c++/4.8/bits/basic_string.h **** 	_CharT* _M_p; // The actual data.
 278:/usr/include/c++/4.8/bits/basic_string.h ****       };
 279:/usr/include/c++/4.8/bits/basic_string.h **** 
 280:/usr/include/c++/4.8/bits/basic_string.h ****     public:
 281:/usr/include/c++/4.8/bits/basic_string.h ****       // Data Members (public):
 282:/usr/include/c++/4.8/bits/basic_string.h ****       // NB: This is an unsigned type, and thus represents the maximum
 283:/usr/include/c++/4.8/bits/basic_string.h ****       // size that the allocator can hold.
 284:/usr/include/c++/4.8/bits/basic_string.h ****       ///  Value returned by various member functions when they fail.
 285:/usr/include/c++/4.8/bits/basic_string.h ****       static const size_type	npos = static_cast<size_type>(-1);
 286:/usr/include/c++/4.8/bits/basic_string.h **** 
 287:/usr/include/c++/4.8/bits/basic_string.h ****     private:
 288:/usr/include/c++/4.8/bits/basic_string.h ****       // Data Members (private):
 289:/usr/include/c++/4.8/bits/basic_string.h ****       mutable _Alloc_hider	_M_dataplus;
 290:/usr/include/c++/4.8/bits/basic_string.h **** 
 291:/usr/include/c++/4.8/bits/basic_string.h ****       _CharT*
 292:/usr/include/c++/4.8/bits/basic_string.h ****       _M_data() const
 293:/usr/include/c++/4.8/bits/basic_string.h ****       { return  _M_dataplus._M_p; }
 294:/usr/include/c++/4.8/bits/basic_string.h **** 
 295:/usr/include/c++/4.8/bits/basic_string.h ****       _CharT*
 296:/usr/include/c++/4.8/bits/basic_string.h ****       _M_data(_CharT* __p)
 297:/usr/include/c++/4.8/bits/basic_string.h ****       { return (_M_dataplus._M_p = __p); }
GAS LISTING /tmp/ccev5sD5.s 			page 38


 298:/usr/include/c++/4.8/bits/basic_string.h **** 
 299:/usr/include/c++/4.8/bits/basic_string.h ****       _Rep*
 300:/usr/include/c++/4.8/bits/basic_string.h ****       _M_rep() const
 301:/usr/include/c++/4.8/bits/basic_string.h ****       { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
 302:/usr/include/c++/4.8/bits/basic_string.h **** 
 303:/usr/include/c++/4.8/bits/basic_string.h ****       // For the internal use we have functions similar to `begin'/`end'
 304:/usr/include/c++/4.8/bits/basic_string.h ****       // but they do not call _M_leak.
 305:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
 306:/usr/include/c++/4.8/bits/basic_string.h ****       _M_ibegin() const
 307:/usr/include/c++/4.8/bits/basic_string.h ****       { return iterator(_M_data()); }
 308:/usr/include/c++/4.8/bits/basic_string.h **** 
 309:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
 310:/usr/include/c++/4.8/bits/basic_string.h ****       _M_iend() const
 311:/usr/include/c++/4.8/bits/basic_string.h ****       { return iterator(_M_data() + this->size()); }
 312:/usr/include/c++/4.8/bits/basic_string.h **** 
 313:/usr/include/c++/4.8/bits/basic_string.h ****       void
 314:/usr/include/c++/4.8/bits/basic_string.h ****       _M_leak()    // for use in begin() & non-const op[]
 315:/usr/include/c++/4.8/bits/basic_string.h ****       {
 316:/usr/include/c++/4.8/bits/basic_string.h **** 	if (!_M_rep()->_M_is_leaked())
 317:/usr/include/c++/4.8/bits/basic_string.h **** 	  _M_leak_hard();
 318:/usr/include/c++/4.8/bits/basic_string.h ****       }
 319:/usr/include/c++/4.8/bits/basic_string.h **** 
 320:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
 321:/usr/include/c++/4.8/bits/basic_string.h ****       _M_check(size_type __pos, const char* __s) const
 322:/usr/include/c++/4.8/bits/basic_string.h ****       {
 323:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__pos > this->size())
 324:/usr/include/c++/4.8/bits/basic_string.h **** 	  __throw_out_of_range(__N(__s));
 325:/usr/include/c++/4.8/bits/basic_string.h **** 	return __pos;
 326:/usr/include/c++/4.8/bits/basic_string.h ****       }
 327:/usr/include/c++/4.8/bits/basic_string.h **** 
 328:/usr/include/c++/4.8/bits/basic_string.h ****       void
 329:/usr/include/c++/4.8/bits/basic_string.h ****       _M_check_length(size_type __n1, size_type __n2, const char* __s) const
 330:/usr/include/c++/4.8/bits/basic_string.h ****       {
 331:/usr/include/c++/4.8/bits/basic_string.h **** 	if (this->max_size() - (this->size() - __n1) < __n2)
 332:/usr/include/c++/4.8/bits/basic_string.h **** 	  __throw_length_error(__N(__s));
 333:/usr/include/c++/4.8/bits/basic_string.h ****       }
 334:/usr/include/c++/4.8/bits/basic_string.h **** 
 335:/usr/include/c++/4.8/bits/basic_string.h ****       // NB: _M_limit doesn't check for a bad __pos value.
 336:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
 337:/usr/include/c++/4.8/bits/basic_string.h ****       _M_limit(size_type __pos, size_type __off) const
 338:/usr/include/c++/4.8/bits/basic_string.h ****       {
 339:/usr/include/c++/4.8/bits/basic_string.h **** 	const bool __testoff =  __off < this->size() - __pos;
 340:/usr/include/c++/4.8/bits/basic_string.h **** 	return __testoff ? __off : this->size() - __pos;
 341:/usr/include/c++/4.8/bits/basic_string.h ****       }
 342:/usr/include/c++/4.8/bits/basic_string.h **** 
 343:/usr/include/c++/4.8/bits/basic_string.h ****       // True if _Rep and source do not overlap.
 344:/usr/include/c++/4.8/bits/basic_string.h ****       bool
 345:/usr/include/c++/4.8/bits/basic_string.h ****       _M_disjunct(const _CharT* __s) const
 346:/usr/include/c++/4.8/bits/basic_string.h ****       {
 347:/usr/include/c++/4.8/bits/basic_string.h **** 	return (less<const _CharT*>()(__s, _M_data())
 348:/usr/include/c++/4.8/bits/basic_string.h **** 		|| less<const _CharT*>()(_M_data() + this->size(), __s));
 349:/usr/include/c++/4.8/bits/basic_string.h ****       }
 350:/usr/include/c++/4.8/bits/basic_string.h **** 
 351:/usr/include/c++/4.8/bits/basic_string.h ****       // When __n = 1 way faster than the general multichar
 352:/usr/include/c++/4.8/bits/basic_string.h ****       // traits_type::copy/move/assign.
 353:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 354:/usr/include/c++/4.8/bits/basic_string.h ****       _M_copy(_CharT* __d, const _CharT* __s, size_type __n)
GAS LISTING /tmp/ccev5sD5.s 			page 39


 355:/usr/include/c++/4.8/bits/basic_string.h ****       {
 356:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__n == 1)
 357:/usr/include/c++/4.8/bits/basic_string.h **** 	  traits_type::assign(*__d, *__s);
 358:/usr/include/c++/4.8/bits/basic_string.h **** 	else
 359:/usr/include/c++/4.8/bits/basic_string.h **** 	  traits_type::copy(__d, __s, __n);
 360:/usr/include/c++/4.8/bits/basic_string.h ****       }
 361:/usr/include/c++/4.8/bits/basic_string.h **** 
 362:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 363:/usr/include/c++/4.8/bits/basic_string.h ****       _M_move(_CharT* __d, const _CharT* __s, size_type __n)
 364:/usr/include/c++/4.8/bits/basic_string.h ****       {
 365:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__n == 1)
 366:/usr/include/c++/4.8/bits/basic_string.h **** 	  traits_type::assign(*__d, *__s);
 367:/usr/include/c++/4.8/bits/basic_string.h **** 	else
 368:/usr/include/c++/4.8/bits/basic_string.h **** 	  traits_type::move(__d, __s, __n);	  
 369:/usr/include/c++/4.8/bits/basic_string.h ****       }
 370:/usr/include/c++/4.8/bits/basic_string.h **** 
 371:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 372:/usr/include/c++/4.8/bits/basic_string.h ****       _M_assign(_CharT* __d, size_type __n, _CharT __c)
 373:/usr/include/c++/4.8/bits/basic_string.h ****       {
 374:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__n == 1)
 375:/usr/include/c++/4.8/bits/basic_string.h **** 	  traits_type::assign(*__d, __c);
 376:/usr/include/c++/4.8/bits/basic_string.h **** 	else
 377:/usr/include/c++/4.8/bits/basic_string.h **** 	  traits_type::assign(__d, __n, __c);	  
 378:/usr/include/c++/4.8/bits/basic_string.h ****       }
 379:/usr/include/c++/4.8/bits/basic_string.h **** 
 380:/usr/include/c++/4.8/bits/basic_string.h ****       // _S_copy_chars is a separate template to permit specialization
 381:/usr/include/c++/4.8/bits/basic_string.h ****       // to optimize for the common case of pointers as iterators.
 382:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _Iterator>
 383:/usr/include/c++/4.8/bits/basic_string.h ****         static void
 384:/usr/include/c++/4.8/bits/basic_string.h ****         _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
 385:/usr/include/c++/4.8/bits/basic_string.h ****         {
 386:/usr/include/c++/4.8/bits/basic_string.h **** 	  for (; __k1 != __k2; ++__k1, ++__p)
 387:/usr/include/c++/4.8/bits/basic_string.h **** 	    traits_type::assign(*__p, *__k1); // These types are off.
 388:/usr/include/c++/4.8/bits/basic_string.h **** 	}
 389:/usr/include/c++/4.8/bits/basic_string.h **** 
 390:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 391:/usr/include/c++/4.8/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
 392:/usr/include/c++/4.8/bits/basic_string.h ****       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
 393:/usr/include/c++/4.8/bits/basic_string.h **** 
 394:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 395:/usr/include/c++/4.8/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
 396:/usr/include/c++/4.8/bits/basic_string.h ****       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
 397:/usr/include/c++/4.8/bits/basic_string.h **** 
 398:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 399:/usr/include/c++/4.8/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
 400:/usr/include/c++/4.8/bits/basic_string.h ****       { _M_copy(__p, __k1, __k2 - __k1); }
 401:/usr/include/c++/4.8/bits/basic_string.h **** 
 402:/usr/include/c++/4.8/bits/basic_string.h ****       static void
 403:/usr/include/c++/4.8/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
 404:/usr/include/c++/4.8/bits/basic_string.h ****       { _M_copy(__p, __k1, __k2 - __k1); }
 405:/usr/include/c++/4.8/bits/basic_string.h **** 
 406:/usr/include/c++/4.8/bits/basic_string.h ****       static int
 407:/usr/include/c++/4.8/bits/basic_string.h ****       _S_compare(size_type __n1, size_type __n2)
 408:/usr/include/c++/4.8/bits/basic_string.h ****       {
 409:/usr/include/c++/4.8/bits/basic_string.h **** 	const difference_type __d = difference_type(__n1 - __n2);
 410:/usr/include/c++/4.8/bits/basic_string.h **** 
 411:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__d > __gnu_cxx::__numeric_traits<int>::__max)
GAS LISTING /tmp/ccev5sD5.s 			page 40


 412:/usr/include/c++/4.8/bits/basic_string.h **** 	  return __gnu_cxx::__numeric_traits<int>::__max;
 413:/usr/include/c++/4.8/bits/basic_string.h **** 	else if (__d < __gnu_cxx::__numeric_traits<int>::__min)
 414:/usr/include/c++/4.8/bits/basic_string.h **** 	  return __gnu_cxx::__numeric_traits<int>::__min;
 415:/usr/include/c++/4.8/bits/basic_string.h **** 	else
 416:/usr/include/c++/4.8/bits/basic_string.h **** 	  return int(__d);
 417:/usr/include/c++/4.8/bits/basic_string.h ****       }
 418:/usr/include/c++/4.8/bits/basic_string.h **** 
 419:/usr/include/c++/4.8/bits/basic_string.h ****       void
 420:/usr/include/c++/4.8/bits/basic_string.h ****       _M_mutate(size_type __pos, size_type __len1, size_type __len2);
 421:/usr/include/c++/4.8/bits/basic_string.h **** 
 422:/usr/include/c++/4.8/bits/basic_string.h ****       void
 423:/usr/include/c++/4.8/bits/basic_string.h ****       _M_leak_hard();
 424:/usr/include/c++/4.8/bits/basic_string.h **** 
 425:/usr/include/c++/4.8/bits/basic_string.h ****       static _Rep&
 426:/usr/include/c++/4.8/bits/basic_string.h ****       _S_empty_rep()
 427:/usr/include/c++/4.8/bits/basic_string.h ****       { return _Rep::_S_empty_rep(); }
 428:/usr/include/c++/4.8/bits/basic_string.h **** 
 429:/usr/include/c++/4.8/bits/basic_string.h ****     public:
 430:/usr/include/c++/4.8/bits/basic_string.h ****       // Construct/copy/destroy:
 431:/usr/include/c++/4.8/bits/basic_string.h ****       // NB: We overload ctors in some cases instead of using default
 432:/usr/include/c++/4.8/bits/basic_string.h ****       // arguments, per 17.4.4.4 para. 2 item 2.
 433:/usr/include/c++/4.8/bits/basic_string.h **** 
 434:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 435:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Default constructor creates an empty string.
 436:/usr/include/c++/4.8/bits/basic_string.h ****        */
 437:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string()
 438:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 439:/usr/include/c++/4.8/bits/basic_string.h ****       : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
 440:/usr/include/c++/4.8/bits/basic_string.h **** #else
 441:/usr/include/c++/4.8/bits/basic_string.h ****       : _M_dataplus(_S_construct(size_type(), _CharT(), _Alloc()), _Alloc()){ }
 442:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 443:/usr/include/c++/4.8/bits/basic_string.h **** 
 444:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 445:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct an empty string using allocator @a a.
 446:/usr/include/c++/4.8/bits/basic_string.h ****        */
 447:/usr/include/c++/4.8/bits/basic_string.h ****       explicit
 448:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(const _Alloc& __a);
 449:/usr/include/c++/4.8/bits/basic_string.h **** 
 450:/usr/include/c++/4.8/bits/basic_string.h ****       // NB: per LWG issue 42, semantics different from IS:
 451:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 452:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string with copy of value of @a str.
 453:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string.
 454:/usr/include/c++/4.8/bits/basic_string.h ****        */
 455:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(const basic_string& __str);
 456:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 457:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string as copy of a substring.
 458:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string.
 459:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __pos  Index of first character to copy from.
 460:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __n  Number of characters to copy (default remainder).
 461:/usr/include/c++/4.8/bits/basic_string.h ****        */
 462:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(const basic_string& __str, size_type __pos,
 463:/usr/include/c++/4.8/bits/basic_string.h **** 		   size_type __n = npos);
 464:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 465:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string as copy of a substring.
 466:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string.
 467:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __pos  Index of first character to copy from.
 468:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __n  Number of characters to copy.
GAS LISTING /tmp/ccev5sD5.s 			page 41


 469:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __a  Allocator to use.
 470:/usr/include/c++/4.8/bits/basic_string.h ****        */
 471:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(const basic_string& __str, size_type __pos,
 472:/usr/include/c++/4.8/bits/basic_string.h **** 		   size_type __n, const _Alloc& __a);
 473:/usr/include/c++/4.8/bits/basic_string.h **** 
 474:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 475:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string initialized by a character %array.
 476:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __s  Source character %array.
 477:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __n  Number of characters to copy.
 478:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __a  Allocator to use (default is default allocator).
 479:/usr/include/c++/4.8/bits/basic_string.h ****        *
 480:/usr/include/c++/4.8/bits/basic_string.h ****        *  NB: @a __s must have at least @a __n characters, &apos;\\0&apos;
 481:/usr/include/c++/4.8/bits/basic_string.h ****        *  has no special meaning.
 482:/usr/include/c++/4.8/bits/basic_string.h ****        */
 483:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(const _CharT* __s, size_type __n,
 484:/usr/include/c++/4.8/bits/basic_string.h **** 		   const _Alloc& __a = _Alloc());
 485:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 486:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string as copy of a C string.
 487:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __s  Source C string.
 488:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __a  Allocator to use (default is default allocator).
 489:/usr/include/c++/4.8/bits/basic_string.h ****        */
 490:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
 491:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 492:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string as multiple characters.
 493:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __n  Number of characters.
 494:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __c  Character to use.
 495:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __a  Allocator to use (default is default allocator).
 496:/usr/include/c++/4.8/bits/basic_string.h ****        */
 497:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
 498:/usr/include/c++/4.8/bits/basic_string.h **** 
 499:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
 500:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 501:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Move construct string.
 502:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string.
 503:/usr/include/c++/4.8/bits/basic_string.h ****        *
 504:/usr/include/c++/4.8/bits/basic_string.h ****        *  The newly-created string contains the exact contents of @a __str.
 505:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __str is a valid, but unspecified string.
 506:/usr/include/c++/4.8/bits/basic_string.h ****        **/
 507:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(basic_string&& __str) noexcept
 508:/usr/include/c++/4.8/bits/basic_string.h ****       : _M_dataplus(__str._M_dataplus)
 509:/usr/include/c++/4.8/bits/basic_string.h ****       {
 510:/usr/include/c++/4.8/bits/basic_string.h **** #if _GLIBCXX_FULLY_DYNAMIC_STRING == 0
 511:/usr/include/c++/4.8/bits/basic_string.h **** 	__str._M_data(_S_empty_rep()._M_refdata());
 512:/usr/include/c++/4.8/bits/basic_string.h **** #else
 513:/usr/include/c++/4.8/bits/basic_string.h **** 	__str._M_data(_S_construct(size_type(), _CharT(), get_allocator()));
 514:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 515:/usr/include/c++/4.8/bits/basic_string.h ****       }
 516:/usr/include/c++/4.8/bits/basic_string.h **** 
 517:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 518:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string from an initializer %list.
 519:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __l  std::initializer_list of characters.
 520:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __a  Allocator to use (default is default allocator).
 521:/usr/include/c++/4.8/bits/basic_string.h ****        */
 522:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc());
 523:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
 524:/usr/include/c++/4.8/bits/basic_string.h **** 
 525:/usr/include/c++/4.8/bits/basic_string.h ****       /**
GAS LISTING /tmp/ccev5sD5.s 			page 42


 526:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Construct string as copy of a range.
 527:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __beg  Start of range.
 528:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __end  End of range.
 529:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __a  Allocator to use (default is default allocator).
 530:/usr/include/c++/4.8/bits/basic_string.h ****        */
 531:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InputIterator>
 532:/usr/include/c++/4.8/bits/basic_string.h ****         basic_string(_InputIterator __beg, _InputIterator __end,
 533:/usr/include/c++/4.8/bits/basic_string.h **** 		     const _Alloc& __a = _Alloc());
 534:/usr/include/c++/4.8/bits/basic_string.h **** 
 535:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 536:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Destroy the string instance.
 537:/usr/include/c++/4.8/bits/basic_string.h ****        */
 538:/usr/include/c++/4.8/bits/basic_string.h ****       ~basic_string() _GLIBCXX_NOEXCEPT
 539:/usr/include/c++/4.8/bits/basic_string.h ****       { _M_rep()->_M_dispose(this->get_allocator()); }
 540:/usr/include/c++/4.8/bits/basic_string.h **** 
 541:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 542:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Assign the value of @a str to this string.
 543:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string.
 544:/usr/include/c++/4.8/bits/basic_string.h ****        */
 545:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 546:/usr/include/c++/4.8/bits/basic_string.h ****       operator=(const basic_string& __str) 
 547:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->assign(__str); }
 548:/usr/include/c++/4.8/bits/basic_string.h **** 
 549:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 550:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Copy contents of @a s into this string.
 551:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __s  Source null-terminated string.
 552:/usr/include/c++/4.8/bits/basic_string.h ****        */
 553:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 554:/usr/include/c++/4.8/bits/basic_string.h ****       operator=(const _CharT* __s) 
 555:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->assign(__s); }
 556:/usr/include/c++/4.8/bits/basic_string.h **** 
 557:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 558:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to string of length 1.
 559:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __c  Source character.
 560:/usr/include/c++/4.8/bits/basic_string.h ****        *
 561:/usr/include/c++/4.8/bits/basic_string.h ****        *  Assigning to a character makes this string length 1 and
 562:/usr/include/c++/4.8/bits/basic_string.h ****        *  (*this)[0] == @a c.
 563:/usr/include/c++/4.8/bits/basic_string.h ****        */
 564:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 565:/usr/include/c++/4.8/bits/basic_string.h ****       operator=(_CharT __c) 
 566:/usr/include/c++/4.8/bits/basic_string.h ****       { 
 567:/usr/include/c++/4.8/bits/basic_string.h **** 	this->assign(1, __c); 
 568:/usr/include/c++/4.8/bits/basic_string.h **** 	return *this;
 569:/usr/include/c++/4.8/bits/basic_string.h ****       }
 570:/usr/include/c++/4.8/bits/basic_string.h **** 
 571:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
 572:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 573:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Move assign the value of @a str to this string.
 574:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string.
 575:/usr/include/c++/4.8/bits/basic_string.h ****        *
 576:/usr/include/c++/4.8/bits/basic_string.h ****        *  The contents of @a str are moved into this string (without copying).
 577:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a str is a valid, but unspecified string.
 578:/usr/include/c++/4.8/bits/basic_string.h ****        **/
 579:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 580:/usr/include/c++/4.8/bits/basic_string.h ****       operator=(basic_string&& __str)
 581:/usr/include/c++/4.8/bits/basic_string.h ****       {
 582:/usr/include/c++/4.8/bits/basic_string.h **** 	// NB: DR 1204.
GAS LISTING /tmp/ccev5sD5.s 			page 43


 583:/usr/include/c++/4.8/bits/basic_string.h **** 	this->swap(__str);
 584:/usr/include/c++/4.8/bits/basic_string.h **** 	return *this;
 585:/usr/include/c++/4.8/bits/basic_string.h ****       }
 586:/usr/include/c++/4.8/bits/basic_string.h **** 
 587:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 588:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to string constructed from initializer %list.
 589:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __l  std::initializer_list.
 590:/usr/include/c++/4.8/bits/basic_string.h ****        */
 591:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 592:/usr/include/c++/4.8/bits/basic_string.h ****       operator=(initializer_list<_CharT> __l)
 593:/usr/include/c++/4.8/bits/basic_string.h ****       {
 594:/usr/include/c++/4.8/bits/basic_string.h **** 	this->assign(__l.begin(), __l.size());
 595:/usr/include/c++/4.8/bits/basic_string.h **** 	return *this;
 596:/usr/include/c++/4.8/bits/basic_string.h ****       }
 597:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
 598:/usr/include/c++/4.8/bits/basic_string.h **** 
 599:/usr/include/c++/4.8/bits/basic_string.h ****       // Iterators:
 600:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 601:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read/write iterator that points to the first character in
 602:/usr/include/c++/4.8/bits/basic_string.h ****        *  the %string.  Unshares the string.
 603:/usr/include/c++/4.8/bits/basic_string.h ****        */
 604:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
 605:/usr/include/c++/4.8/bits/basic_string.h ****       begin() _GLIBCXX_NOEXCEPT
 606:/usr/include/c++/4.8/bits/basic_string.h ****       {
 607:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_leak();
 608:/usr/include/c++/4.8/bits/basic_string.h **** 	return iterator(_M_data());
 609:/usr/include/c++/4.8/bits/basic_string.h ****       }
 610:/usr/include/c++/4.8/bits/basic_string.h **** 
 611:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 612:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) iterator that points to the first
 613:/usr/include/c++/4.8/bits/basic_string.h ****        *  character in the %string.
 614:/usr/include/c++/4.8/bits/basic_string.h ****        */
 615:/usr/include/c++/4.8/bits/basic_string.h ****       const_iterator
 616:/usr/include/c++/4.8/bits/basic_string.h ****       begin() const _GLIBCXX_NOEXCEPT
 617:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_iterator(_M_data()); }
 618:/usr/include/c++/4.8/bits/basic_string.h **** 
 619:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 620:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read/write iterator that points one past the last
 621:/usr/include/c++/4.8/bits/basic_string.h ****        *  character in the %string.  Unshares the string.
 622:/usr/include/c++/4.8/bits/basic_string.h ****        */
 623:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
 624:/usr/include/c++/4.8/bits/basic_string.h ****       end() _GLIBCXX_NOEXCEPT
 625:/usr/include/c++/4.8/bits/basic_string.h ****       {
 626:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_leak();
 627:/usr/include/c++/4.8/bits/basic_string.h **** 	return iterator(_M_data() + this->size());
 628:/usr/include/c++/4.8/bits/basic_string.h ****       }
 629:/usr/include/c++/4.8/bits/basic_string.h **** 
 630:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 631:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) iterator that points one past the
 632:/usr/include/c++/4.8/bits/basic_string.h ****        *  last character in the %string.
 633:/usr/include/c++/4.8/bits/basic_string.h ****        */
 634:/usr/include/c++/4.8/bits/basic_string.h ****       const_iterator
 635:/usr/include/c++/4.8/bits/basic_string.h ****       end() const _GLIBCXX_NOEXCEPT
 636:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_iterator(_M_data() + this->size()); }
 637:/usr/include/c++/4.8/bits/basic_string.h **** 
 638:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 639:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read/write reverse iterator that points to the last
GAS LISTING /tmp/ccev5sD5.s 			page 44


 640:/usr/include/c++/4.8/bits/basic_string.h ****        *  character in the %string.  Iteration is done in reverse element
 641:/usr/include/c++/4.8/bits/basic_string.h ****        *  order.  Unshares the string.
 642:/usr/include/c++/4.8/bits/basic_string.h ****        */
 643:/usr/include/c++/4.8/bits/basic_string.h ****       reverse_iterator
 644:/usr/include/c++/4.8/bits/basic_string.h ****       rbegin() _GLIBCXX_NOEXCEPT
 645:/usr/include/c++/4.8/bits/basic_string.h ****       { return reverse_iterator(this->end()); }
 646:/usr/include/c++/4.8/bits/basic_string.h **** 
 647:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 648:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) reverse iterator that points
 649:/usr/include/c++/4.8/bits/basic_string.h ****        *  to the last character in the %string.  Iteration is done in
 650:/usr/include/c++/4.8/bits/basic_string.h ****        *  reverse element order.
 651:/usr/include/c++/4.8/bits/basic_string.h ****        */
 652:/usr/include/c++/4.8/bits/basic_string.h ****       const_reverse_iterator
 653:/usr/include/c++/4.8/bits/basic_string.h ****       rbegin() const _GLIBCXX_NOEXCEPT
 654:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_reverse_iterator(this->end()); }
 655:/usr/include/c++/4.8/bits/basic_string.h **** 
 656:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 657:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read/write reverse iterator that points to one before the
 658:/usr/include/c++/4.8/bits/basic_string.h ****        *  first character in the %string.  Iteration is done in reverse
 659:/usr/include/c++/4.8/bits/basic_string.h ****        *  element order.  Unshares the string.
 660:/usr/include/c++/4.8/bits/basic_string.h ****        */
 661:/usr/include/c++/4.8/bits/basic_string.h ****       reverse_iterator
 662:/usr/include/c++/4.8/bits/basic_string.h ****       rend() _GLIBCXX_NOEXCEPT
 663:/usr/include/c++/4.8/bits/basic_string.h ****       { return reverse_iterator(this->begin()); }
 664:/usr/include/c++/4.8/bits/basic_string.h **** 
 665:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 666:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) reverse iterator that points
 667:/usr/include/c++/4.8/bits/basic_string.h ****        *  to one before the first character in the %string.  Iteration
 668:/usr/include/c++/4.8/bits/basic_string.h ****        *  is done in reverse element order.
 669:/usr/include/c++/4.8/bits/basic_string.h ****        */
 670:/usr/include/c++/4.8/bits/basic_string.h ****       const_reverse_iterator
 671:/usr/include/c++/4.8/bits/basic_string.h ****       rend() const _GLIBCXX_NOEXCEPT
 672:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_reverse_iterator(this->begin()); }
 673:/usr/include/c++/4.8/bits/basic_string.h **** 
 674:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
 675:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 676:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) iterator that points to the first
 677:/usr/include/c++/4.8/bits/basic_string.h ****        *  character in the %string.
 678:/usr/include/c++/4.8/bits/basic_string.h ****        */
 679:/usr/include/c++/4.8/bits/basic_string.h ****       const_iterator
 680:/usr/include/c++/4.8/bits/basic_string.h ****       cbegin() const noexcept
 681:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_iterator(this->_M_data()); }
 682:/usr/include/c++/4.8/bits/basic_string.h **** 
 683:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 684:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) iterator that points one past the
 685:/usr/include/c++/4.8/bits/basic_string.h ****        *  last character in the %string.
 686:/usr/include/c++/4.8/bits/basic_string.h ****        */
 687:/usr/include/c++/4.8/bits/basic_string.h ****       const_iterator
 688:/usr/include/c++/4.8/bits/basic_string.h ****       cend() const noexcept
 689:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_iterator(this->_M_data() + this->size()); }
 690:/usr/include/c++/4.8/bits/basic_string.h **** 
 691:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 692:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) reverse iterator that points
 693:/usr/include/c++/4.8/bits/basic_string.h ****        *  to the last character in the %string.  Iteration is done in
 694:/usr/include/c++/4.8/bits/basic_string.h ****        *  reverse element order.
 695:/usr/include/c++/4.8/bits/basic_string.h ****        */
 696:/usr/include/c++/4.8/bits/basic_string.h ****       const_reverse_iterator
GAS LISTING /tmp/ccev5sD5.s 			page 45


 697:/usr/include/c++/4.8/bits/basic_string.h ****       crbegin() const noexcept
 698:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_reverse_iterator(this->end()); }
 699:/usr/include/c++/4.8/bits/basic_string.h **** 
 700:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 701:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) reverse iterator that points
 702:/usr/include/c++/4.8/bits/basic_string.h ****        *  to one before the first character in the %string.  Iteration
 703:/usr/include/c++/4.8/bits/basic_string.h ****        *  is done in reverse element order.
 704:/usr/include/c++/4.8/bits/basic_string.h ****        */
 705:/usr/include/c++/4.8/bits/basic_string.h ****       const_reverse_iterator
 706:/usr/include/c++/4.8/bits/basic_string.h ****       crend() const noexcept
 707:/usr/include/c++/4.8/bits/basic_string.h ****       { return const_reverse_iterator(this->begin()); }
 708:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 709:/usr/include/c++/4.8/bits/basic_string.h **** 
 710:/usr/include/c++/4.8/bits/basic_string.h ****     public:
 711:/usr/include/c++/4.8/bits/basic_string.h ****       // Capacity:
 712:/usr/include/c++/4.8/bits/basic_string.h ****       ///  Returns the number of characters in the string, not including any
 713:/usr/include/c++/4.8/bits/basic_string.h ****       ///  null-termination.
 714:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
 715:/usr/include/c++/4.8/bits/basic_string.h ****       size() const _GLIBCXX_NOEXCEPT
 716:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_rep()->_M_length; }
 717:/usr/include/c++/4.8/bits/basic_string.h **** 
 718:/usr/include/c++/4.8/bits/basic_string.h ****       ///  Returns the number of characters in the string, not including any
 719:/usr/include/c++/4.8/bits/basic_string.h ****       ///  null-termination.
 720:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
 721:/usr/include/c++/4.8/bits/basic_string.h ****       length() const _GLIBCXX_NOEXCEPT
 722:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_rep()->_M_length; }
 723:/usr/include/c++/4.8/bits/basic_string.h **** 
 724:/usr/include/c++/4.8/bits/basic_string.h ****       ///  Returns the size() of the largest possible %string.
 725:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
 726:/usr/include/c++/4.8/bits/basic_string.h ****       max_size() const _GLIBCXX_NOEXCEPT
 727:/usr/include/c++/4.8/bits/basic_string.h ****       { return _Rep::_S_max_size; }
 728:/usr/include/c++/4.8/bits/basic_string.h **** 
 729:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 730:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Resizes the %string to the specified number of characters.
 731:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __n  Number of characters the %string should contain.
 732:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __c  Character to fill any new elements.
 733:/usr/include/c++/4.8/bits/basic_string.h ****        *
 734:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function will %resize the %string to the specified
 735:/usr/include/c++/4.8/bits/basic_string.h ****        *  number of characters.  If the number is smaller than the
 736:/usr/include/c++/4.8/bits/basic_string.h ****        *  %string's current size the %string is truncated, otherwise
 737:/usr/include/c++/4.8/bits/basic_string.h ****        *  the %string is extended and new elements are %set to @a __c.
 738:/usr/include/c++/4.8/bits/basic_string.h ****        */
 739:/usr/include/c++/4.8/bits/basic_string.h ****       void
 740:/usr/include/c++/4.8/bits/basic_string.h ****       resize(size_type __n, _CharT __c);
 741:/usr/include/c++/4.8/bits/basic_string.h **** 
 742:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 743:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Resizes the %string to the specified number of characters.
 744:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __n  Number of characters the %string should contain.
 745:/usr/include/c++/4.8/bits/basic_string.h ****        *
 746:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function will resize the %string to the specified length.  If
 747:/usr/include/c++/4.8/bits/basic_string.h ****        *  the new size is smaller than the %string's current size the %string
 748:/usr/include/c++/4.8/bits/basic_string.h ****        *  is truncated, otherwise the %string is extended and new characters
 749:/usr/include/c++/4.8/bits/basic_string.h ****        *  are default-constructed.  For basic types such as char, this means
 750:/usr/include/c++/4.8/bits/basic_string.h ****        *  setting them to 0.
 751:/usr/include/c++/4.8/bits/basic_string.h ****        */
 752:/usr/include/c++/4.8/bits/basic_string.h ****       void
 753:/usr/include/c++/4.8/bits/basic_string.h ****       resize(size_type __n)
GAS LISTING /tmp/ccev5sD5.s 			page 46


 754:/usr/include/c++/4.8/bits/basic_string.h ****       { this->resize(__n, _CharT()); }
 755:/usr/include/c++/4.8/bits/basic_string.h **** 
 756:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
 757:/usr/include/c++/4.8/bits/basic_string.h ****       ///  A non-binding request to reduce capacity() to size().
 758:/usr/include/c++/4.8/bits/basic_string.h ****       void
 759:/usr/include/c++/4.8/bits/basic_string.h ****       shrink_to_fit()
 760:/usr/include/c++/4.8/bits/basic_string.h ****       {
 761:/usr/include/c++/4.8/bits/basic_string.h **** 	if (capacity() > size())
 762:/usr/include/c++/4.8/bits/basic_string.h **** 	  {
 763:/usr/include/c++/4.8/bits/basic_string.h **** 	    __try
 764:/usr/include/c++/4.8/bits/basic_string.h **** 	      { reserve(0); }
 765:/usr/include/c++/4.8/bits/basic_string.h **** 	    __catch(...)
 766:/usr/include/c++/4.8/bits/basic_string.h **** 	      { }
 767:/usr/include/c++/4.8/bits/basic_string.h **** 	  }
 768:/usr/include/c++/4.8/bits/basic_string.h ****       }
 769:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 770:/usr/include/c++/4.8/bits/basic_string.h **** 
 771:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 772:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns the total number of characters that the %string can hold
 773:/usr/include/c++/4.8/bits/basic_string.h ****        *  before needing to allocate more memory.
 774:/usr/include/c++/4.8/bits/basic_string.h ****        */
 775:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
 776:/usr/include/c++/4.8/bits/basic_string.h ****       capacity() const _GLIBCXX_NOEXCEPT
 777:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_rep()->_M_capacity; }
 778:/usr/include/c++/4.8/bits/basic_string.h **** 
 779:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 780:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Attempt to preallocate enough memory for specified number of
 781:/usr/include/c++/4.8/bits/basic_string.h ****        *          characters.
 782:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __res_arg  Number of characters required.
 783:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If @a __res_arg exceeds @c max_size().
 784:/usr/include/c++/4.8/bits/basic_string.h ****        *
 785:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function attempts to reserve enough memory for the
 786:/usr/include/c++/4.8/bits/basic_string.h ****        *  %string to hold the specified number of characters.  If the
 787:/usr/include/c++/4.8/bits/basic_string.h ****        *  number requested is more than max_size(), length_error is
 788:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.
 789:/usr/include/c++/4.8/bits/basic_string.h ****        *
 790:/usr/include/c++/4.8/bits/basic_string.h ****        *  The advantage of this function is that if optimal code is a
 791:/usr/include/c++/4.8/bits/basic_string.h ****        *  necessity and the user can determine the string length that will be
 792:/usr/include/c++/4.8/bits/basic_string.h ****        *  required, the user can reserve the memory in %advance, and thus
 793:/usr/include/c++/4.8/bits/basic_string.h ****        *  prevent a possible reallocation of memory and copying of %string
 794:/usr/include/c++/4.8/bits/basic_string.h ****        *  data.
 795:/usr/include/c++/4.8/bits/basic_string.h ****        */
 796:/usr/include/c++/4.8/bits/basic_string.h ****       void
 797:/usr/include/c++/4.8/bits/basic_string.h ****       reserve(size_type __res_arg = 0);
 798:/usr/include/c++/4.8/bits/basic_string.h **** 
 799:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 800:/usr/include/c++/4.8/bits/basic_string.h ****        *  Erases the string, making it empty.
 801:/usr/include/c++/4.8/bits/basic_string.h ****        */
 802:/usr/include/c++/4.8/bits/basic_string.h ****       void
 803:/usr/include/c++/4.8/bits/basic_string.h ****       clear() _GLIBCXX_NOEXCEPT
 804:/usr/include/c++/4.8/bits/basic_string.h ****       { _M_mutate(0, this->size(), 0); }
 805:/usr/include/c++/4.8/bits/basic_string.h **** 
 806:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 807:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns true if the %string is empty.  Equivalent to 
 808:/usr/include/c++/4.8/bits/basic_string.h ****        *  <code>*this == ""</code>.
 809:/usr/include/c++/4.8/bits/basic_string.h ****        */
 810:/usr/include/c++/4.8/bits/basic_string.h ****       bool
GAS LISTING /tmp/ccev5sD5.s 			page 47


 811:/usr/include/c++/4.8/bits/basic_string.h ****       empty() const _GLIBCXX_NOEXCEPT
 812:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->size() == 0; }
 813:/usr/include/c++/4.8/bits/basic_string.h **** 
 814:/usr/include/c++/4.8/bits/basic_string.h ****       // Element access:
 815:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 816:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Subscript access to the data contained in the %string.
 817:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __pos  The index of the character to access.
 818:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Read-only (constant) reference to the character.
 819:/usr/include/c++/4.8/bits/basic_string.h ****        *
 820:/usr/include/c++/4.8/bits/basic_string.h ****        *  This operator allows for easy, array-style, data access.
 821:/usr/include/c++/4.8/bits/basic_string.h ****        *  Note that data access with this operator is unchecked and
 822:/usr/include/c++/4.8/bits/basic_string.h ****        *  out_of_range lookups are not defined. (For checked lookups
 823:/usr/include/c++/4.8/bits/basic_string.h ****        *  see at().)
 824:/usr/include/c++/4.8/bits/basic_string.h ****        */
 825:/usr/include/c++/4.8/bits/basic_string.h ****       const_reference
 826:/usr/include/c++/4.8/bits/basic_string.h ****       operator[] (size_type __pos) const
 827:/usr/include/c++/4.8/bits/basic_string.h ****       {
 828:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_ASSERT(__pos <= size());
 829:/usr/include/c++/4.8/bits/basic_string.h **** 	return _M_data()[__pos];
 830:/usr/include/c++/4.8/bits/basic_string.h ****       }
 831:/usr/include/c++/4.8/bits/basic_string.h **** 
 832:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 833:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Subscript access to the data contained in the %string.
 834:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __pos  The index of the character to access.
 835:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Read/write reference to the character.
 836:/usr/include/c++/4.8/bits/basic_string.h ****        *
 837:/usr/include/c++/4.8/bits/basic_string.h ****        *  This operator allows for easy, array-style, data access.
 838:/usr/include/c++/4.8/bits/basic_string.h ****        *  Note that data access with this operator is unchecked and
 839:/usr/include/c++/4.8/bits/basic_string.h ****        *  out_of_range lookups are not defined. (For checked lookups
 840:/usr/include/c++/4.8/bits/basic_string.h ****        *  see at().)  Unshares the string.
 841:/usr/include/c++/4.8/bits/basic_string.h ****        */
 842:/usr/include/c++/4.8/bits/basic_string.h ****       reference
 843:/usr/include/c++/4.8/bits/basic_string.h ****       operator[](size_type __pos)
 844:/usr/include/c++/4.8/bits/basic_string.h ****       {
 845:/usr/include/c++/4.8/bits/basic_string.h ****         // allow pos == size() as v3 extension:
 846:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_ASSERT(__pos <= size());
 847:/usr/include/c++/4.8/bits/basic_string.h ****         // but be strict in pedantic mode:
 848:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(__pos < size());
 849:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_leak();
 850:/usr/include/c++/4.8/bits/basic_string.h **** 	return _M_data()[__pos];
 851:/usr/include/c++/4.8/bits/basic_string.h ****       }
 852:/usr/include/c++/4.8/bits/basic_string.h **** 
 853:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 854:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Provides access to the data contained in the %string.
 855:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n The index of the character to access.
 856:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Read-only (const) reference to the character.
 857:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a n is an invalid index.
 858:/usr/include/c++/4.8/bits/basic_string.h ****        *
 859:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function provides for safer data access.  The parameter is
 860:/usr/include/c++/4.8/bits/basic_string.h ****        *  first checked that it is in the range of the string.  The function
 861:/usr/include/c++/4.8/bits/basic_string.h ****        *  throws out_of_range if the check fails.
 862:/usr/include/c++/4.8/bits/basic_string.h ****        */
 863:/usr/include/c++/4.8/bits/basic_string.h ****       const_reference
 864:/usr/include/c++/4.8/bits/basic_string.h ****       at(size_type __n) const
 865:/usr/include/c++/4.8/bits/basic_string.h ****       {
 866:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__n >= this->size())
 867:/usr/include/c++/4.8/bits/basic_string.h **** 	  __throw_out_of_range(__N("basic_string::at"));
GAS LISTING /tmp/ccev5sD5.s 			page 48


 868:/usr/include/c++/4.8/bits/basic_string.h **** 	return _M_data()[__n];
 869:/usr/include/c++/4.8/bits/basic_string.h ****       }
 870:/usr/include/c++/4.8/bits/basic_string.h **** 
 871:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 872:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Provides access to the data contained in the %string.
 873:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n The index of the character to access.
 874:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Read/write reference to the character.
 875:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a n is an invalid index.
 876:/usr/include/c++/4.8/bits/basic_string.h ****        *
 877:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function provides for safer data access.  The parameter is
 878:/usr/include/c++/4.8/bits/basic_string.h ****        *  first checked that it is in the range of the string.  The function
 879:/usr/include/c++/4.8/bits/basic_string.h ****        *  throws out_of_range if the check fails.  Success results in
 880:/usr/include/c++/4.8/bits/basic_string.h ****        *  unsharing the string.
 881:/usr/include/c++/4.8/bits/basic_string.h ****        */
 882:/usr/include/c++/4.8/bits/basic_string.h ****       reference
 883:/usr/include/c++/4.8/bits/basic_string.h ****       at(size_type __n)
 884:/usr/include/c++/4.8/bits/basic_string.h ****       {
 885:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__n >= size())
 886:/usr/include/c++/4.8/bits/basic_string.h **** 	  __throw_out_of_range(__N("basic_string::at"));
 887:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_leak();
 888:/usr/include/c++/4.8/bits/basic_string.h **** 	return _M_data()[__n];
 889:/usr/include/c++/4.8/bits/basic_string.h ****       }
 890:/usr/include/c++/4.8/bits/basic_string.h **** 
 891:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
 892:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 893:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read/write reference to the data at the first
 894:/usr/include/c++/4.8/bits/basic_string.h ****        *  element of the %string.
 895:/usr/include/c++/4.8/bits/basic_string.h ****        */
 896:/usr/include/c++/4.8/bits/basic_string.h ****       reference
 897:/usr/include/c++/4.8/bits/basic_string.h ****       front()
 898:/usr/include/c++/4.8/bits/basic_string.h ****       { return operator[](0); }
 899:/usr/include/c++/4.8/bits/basic_string.h **** 
 900:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 901:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) reference to the data at the first
 902:/usr/include/c++/4.8/bits/basic_string.h ****        *  element of the %string.
 903:/usr/include/c++/4.8/bits/basic_string.h ****        */
 904:/usr/include/c++/4.8/bits/basic_string.h ****       const_reference
 905:/usr/include/c++/4.8/bits/basic_string.h ****       front() const
 906:/usr/include/c++/4.8/bits/basic_string.h ****       { return operator[](0); }
 907:/usr/include/c++/4.8/bits/basic_string.h **** 
 908:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 909:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read/write reference to the data at the last
 910:/usr/include/c++/4.8/bits/basic_string.h ****        *  element of the %string.
 911:/usr/include/c++/4.8/bits/basic_string.h ****        */
 912:/usr/include/c++/4.8/bits/basic_string.h ****       reference
 913:/usr/include/c++/4.8/bits/basic_string.h ****       back()
 914:/usr/include/c++/4.8/bits/basic_string.h ****       { return operator[](this->size() - 1); }
 915:/usr/include/c++/4.8/bits/basic_string.h **** 
 916:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 917:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns a read-only (constant) reference to the data at the
 918:/usr/include/c++/4.8/bits/basic_string.h ****        *  last element of the %string.
 919:/usr/include/c++/4.8/bits/basic_string.h ****        */
 920:/usr/include/c++/4.8/bits/basic_string.h ****       const_reference
 921:/usr/include/c++/4.8/bits/basic_string.h ****       back() const
 922:/usr/include/c++/4.8/bits/basic_string.h ****       { return operator[](this->size() - 1); }
 923:/usr/include/c++/4.8/bits/basic_string.h **** #endif
 924:/usr/include/c++/4.8/bits/basic_string.h **** 
GAS LISTING /tmp/ccev5sD5.s 			page 49


 925:/usr/include/c++/4.8/bits/basic_string.h ****       // Modifiers:
 926:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 927:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a string to this string.
 928:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  The string to append.
 929:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 930:/usr/include/c++/4.8/bits/basic_string.h ****        */
 931:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 932:/usr/include/c++/4.8/bits/basic_string.h ****       operator+=(const basic_string& __str)
 933:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->append(__str); }
 934:/usr/include/c++/4.8/bits/basic_string.h **** 
 935:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 936:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a C string.
 937:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to append.
 938:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 939:/usr/include/c++/4.8/bits/basic_string.h ****        */
 940:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 941:/usr/include/c++/4.8/bits/basic_string.h ****       operator+=(const _CharT* __s)
 942:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->append(__s); }
 943:/usr/include/c++/4.8/bits/basic_string.h **** 
 944:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 945:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a character.
 946:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  The character to append.
 947:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 948:/usr/include/c++/4.8/bits/basic_string.h ****        */
 949:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 950:/usr/include/c++/4.8/bits/basic_string.h ****       operator+=(_CharT __c)
 951:/usr/include/c++/4.8/bits/basic_string.h ****       { 
 952:/usr/include/c++/4.8/bits/basic_string.h **** 	this->push_back(__c);
 953:/usr/include/c++/4.8/bits/basic_string.h **** 	return *this;
 954:/usr/include/c++/4.8/bits/basic_string.h ****       }
 955:/usr/include/c++/4.8/bits/basic_string.h **** 
 956:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
 957:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 958:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append an initializer_list of characters.
 959:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __l  The initializer_list of characters to be appended.
 960:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 961:/usr/include/c++/4.8/bits/basic_string.h ****        */
 962:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 963:/usr/include/c++/4.8/bits/basic_string.h ****       operator+=(initializer_list<_CharT> __l)
 964:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->append(__l.begin(), __l.size()); }
 965:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
 966:/usr/include/c++/4.8/bits/basic_string.h **** 
 967:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 968:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a string to this string.
 969:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  The string to append.
 970:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 971:/usr/include/c++/4.8/bits/basic_string.h ****        */
 972:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 973:/usr/include/c++/4.8/bits/basic_string.h ****       append(const basic_string& __str);
 974:/usr/include/c++/4.8/bits/basic_string.h **** 
 975:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 976:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a substring.
 977:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  The string to append.
 978:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of the first character of str to append.
 979:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  The number of characters to append.
 980:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 981:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range if @a __pos is not a valid index.
GAS LISTING /tmp/ccev5sD5.s 			page 50


 982:/usr/include/c++/4.8/bits/basic_string.h ****        *
 983:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function appends @a __n characters from @a __str
 984:/usr/include/c++/4.8/bits/basic_string.h ****        *  starting at @a __pos to this string.  If @a __n is is larger
 985:/usr/include/c++/4.8/bits/basic_string.h ****        *  than the number of available characters in @a __str, the
 986:/usr/include/c++/4.8/bits/basic_string.h ****        *  remainder of @a __str is appended.
 987:/usr/include/c++/4.8/bits/basic_string.h ****        */
 988:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 989:/usr/include/c++/4.8/bits/basic_string.h ****       append(const basic_string& __str, size_type __pos, size_type __n);
 990:/usr/include/c++/4.8/bits/basic_string.h **** 
 991:/usr/include/c++/4.8/bits/basic_string.h ****       /**
 992:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a C substring.
 993:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to append.
 994:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  The number of characters to append.
 995:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
 996:/usr/include/c++/4.8/bits/basic_string.h ****        */
 997:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
 998:/usr/include/c++/4.8/bits/basic_string.h ****       append(const _CharT* __s, size_type __n);
 999:/usr/include/c++/4.8/bits/basic_string.h **** 
1000:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1001:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a C string.
1002:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to append.
1003:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1004:/usr/include/c++/4.8/bits/basic_string.h ****        */
1005:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1006:/usr/include/c++/4.8/bits/basic_string.h ****       append(const _CharT* __s)
1007:/usr/include/c++/4.8/bits/basic_string.h ****       {
1008:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1009:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->append(__s, traits_type::length(__s));
1010:/usr/include/c++/4.8/bits/basic_string.h ****       }
1011:/usr/include/c++/4.8/bits/basic_string.h **** 
1012:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1013:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append multiple characters.
1014:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  The number of characters to append.
1015:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  The character to use.
1016:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1017:/usr/include/c++/4.8/bits/basic_string.h ****        *
1018:/usr/include/c++/4.8/bits/basic_string.h ****        *  Appends __n copies of __c to this string.
1019:/usr/include/c++/4.8/bits/basic_string.h ****        */
1020:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1021:/usr/include/c++/4.8/bits/basic_string.h ****       append(size_type __n, _CharT __c);
1022:/usr/include/c++/4.8/bits/basic_string.h **** 
1023:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
1024:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1025:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append an initializer_list of characters.
1026:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __l  The initializer_list of characters to append.
1027:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1028:/usr/include/c++/4.8/bits/basic_string.h ****        */
1029:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1030:/usr/include/c++/4.8/bits/basic_string.h ****       append(initializer_list<_CharT> __l)
1031:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->append(__l.begin(), __l.size()); }
1032:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
1033:/usr/include/c++/4.8/bits/basic_string.h **** 
1034:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1035:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a range of characters.
1036:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __first  Iterator referencing the first character to append.
1037:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __last  Iterator marking the end of the range.
1038:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
GAS LISTING /tmp/ccev5sD5.s 			page 51


1039:/usr/include/c++/4.8/bits/basic_string.h ****        *
1040:/usr/include/c++/4.8/bits/basic_string.h ****        *  Appends characters in the range [__first,__last) to this string.
1041:/usr/include/c++/4.8/bits/basic_string.h ****        */
1042:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InputIterator>
1043:/usr/include/c++/4.8/bits/basic_string.h ****         basic_string&
1044:/usr/include/c++/4.8/bits/basic_string.h ****         append(_InputIterator __first, _InputIterator __last)
1045:/usr/include/c++/4.8/bits/basic_string.h ****         { return this->replace(_M_iend(), _M_iend(), __first, __last); }
1046:/usr/include/c++/4.8/bits/basic_string.h **** 
1047:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1048:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Append a single character.
1049:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to append.
1050:/usr/include/c++/4.8/bits/basic_string.h ****        */
1051:/usr/include/c++/4.8/bits/basic_string.h ****       void
1052:/usr/include/c++/4.8/bits/basic_string.h ****       push_back(_CharT __c)
1053:/usr/include/c++/4.8/bits/basic_string.h ****       { 
1054:/usr/include/c++/4.8/bits/basic_string.h **** 	const size_type __len = 1 + this->size();
1055:/usr/include/c++/4.8/bits/basic_string.h **** 	if (__len > this->capacity() || _M_rep()->_M_is_shared())
1056:/usr/include/c++/4.8/bits/basic_string.h **** 	  this->reserve(__len);
1057:/usr/include/c++/4.8/bits/basic_string.h **** 	traits_type::assign(_M_data()[this->size()], __c);
1058:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_rep()->_M_set_length_and_sharable(__len);
1059:/usr/include/c++/4.8/bits/basic_string.h ****       }
1060:/usr/include/c++/4.8/bits/basic_string.h **** 
1061:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1062:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to contents of another string.
1063:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string to use.
1064:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1065:/usr/include/c++/4.8/bits/basic_string.h ****        */
1066:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1067:/usr/include/c++/4.8/bits/basic_string.h ****       assign(const basic_string& __str);
1068:/usr/include/c++/4.8/bits/basic_string.h **** 
1069:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
1070:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1071:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to contents of another string.
1072:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param  __str  Source string to use.
1073:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1074:/usr/include/c++/4.8/bits/basic_string.h ****        *
1075:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function sets this string to the exact contents of @a __str.
1076:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __str is a valid, but unspecified string.
1077:/usr/include/c++/4.8/bits/basic_string.h ****        */
1078:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1079:/usr/include/c++/4.8/bits/basic_string.h ****       assign(basic_string&& __str)
1080:/usr/include/c++/4.8/bits/basic_string.h ****       {
1081:/usr/include/c++/4.8/bits/basic_string.h **** 	this->swap(__str);
1082:/usr/include/c++/4.8/bits/basic_string.h **** 	return *this;
1083:/usr/include/c++/4.8/bits/basic_string.h ****       }
1084:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
1085:/usr/include/c++/4.8/bits/basic_string.h **** 
1086:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1087:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to a substring of a string.
1088:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  The string to use.
1089:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of the first character of str.
1090:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to use.
1091:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1092:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range if @a pos is not a valid index.
1093:/usr/include/c++/4.8/bits/basic_string.h ****        *
1094:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function sets this string to the substring of @a __str
1095:/usr/include/c++/4.8/bits/basic_string.h ****        *  consisting of @a __n characters at @a __pos.  If @a __n is
GAS LISTING /tmp/ccev5sD5.s 			page 52


1096:/usr/include/c++/4.8/bits/basic_string.h ****        *  is larger than the number of available characters in @a
1097:/usr/include/c++/4.8/bits/basic_string.h ****        *  __str, the remainder of @a __str is used.
1098:/usr/include/c++/4.8/bits/basic_string.h ****        */
1099:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1100:/usr/include/c++/4.8/bits/basic_string.h ****       assign(const basic_string& __str, size_type __pos, size_type __n)
1101:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->assign(__str._M_data()
1102:/usr/include/c++/4.8/bits/basic_string.h **** 			    + __str._M_check(__pos, "basic_string::assign"),
1103:/usr/include/c++/4.8/bits/basic_string.h **** 			    __str._M_limit(__pos, __n)); }
1104:/usr/include/c++/4.8/bits/basic_string.h **** 
1105:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1106:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to a C substring.
1107:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to use.
1108:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to use.
1109:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1110:/usr/include/c++/4.8/bits/basic_string.h ****        *
1111:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function sets the value of this string to the first @a __n
1112:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters of @a __s.  If @a __n is is larger than the number of
1113:/usr/include/c++/4.8/bits/basic_string.h ****        *  available characters in @a __s, the remainder of @a __s is used.
1114:/usr/include/c++/4.8/bits/basic_string.h ****        */
1115:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1116:/usr/include/c++/4.8/bits/basic_string.h ****       assign(const _CharT* __s, size_type __n);
1117:/usr/include/c++/4.8/bits/basic_string.h **** 
1118:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1119:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to contents of a C string.
1120:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to use.
1121:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1122:/usr/include/c++/4.8/bits/basic_string.h ****        *
1123:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function sets the value of this string to the value of @a __s.
1124:/usr/include/c++/4.8/bits/basic_string.h ****        *  The data is copied, so there is no dependence on @a __s once the
1125:/usr/include/c++/4.8/bits/basic_string.h ****        *  function returns.
1126:/usr/include/c++/4.8/bits/basic_string.h ****        */
1127:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1128:/usr/include/c++/4.8/bits/basic_string.h ****       assign(const _CharT* __s)
1129:/usr/include/c++/4.8/bits/basic_string.h ****       {
1130:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1131:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->assign(__s, traits_type::length(__s));
1132:/usr/include/c++/4.8/bits/basic_string.h ****       }
1133:/usr/include/c++/4.8/bits/basic_string.h **** 
1134:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1135:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to multiple characters.
1136:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Length of the resulting string.
1137:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  The character to use.
1138:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1139:/usr/include/c++/4.8/bits/basic_string.h ****        *
1140:/usr/include/c++/4.8/bits/basic_string.h ****        *  This function sets the value of this string to @a __n copies of
1141:/usr/include/c++/4.8/bits/basic_string.h ****        *  character @a __c.
1142:/usr/include/c++/4.8/bits/basic_string.h ****        */
1143:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1144:/usr/include/c++/4.8/bits/basic_string.h ****       assign(size_type __n, _CharT __c)
1145:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
1146:/usr/include/c++/4.8/bits/basic_string.h **** 
1147:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1148:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to a range of characters.
1149:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __first  Iterator referencing the first character to append.
1150:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __last  Iterator marking the end of the range.
1151:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1152:/usr/include/c++/4.8/bits/basic_string.h ****        *
GAS LISTING /tmp/ccev5sD5.s 			page 53


1153:/usr/include/c++/4.8/bits/basic_string.h ****        *  Sets value of string to characters in the range [__first,__last).
1154:/usr/include/c++/4.8/bits/basic_string.h ****       */
1155:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InputIterator>
1156:/usr/include/c++/4.8/bits/basic_string.h ****         basic_string&
1157:/usr/include/c++/4.8/bits/basic_string.h ****         assign(_InputIterator __first, _InputIterator __last)
1158:/usr/include/c++/4.8/bits/basic_string.h ****         { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
1159:/usr/include/c++/4.8/bits/basic_string.h **** 
1160:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
1161:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1162:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Set value to an initializer_list of characters.
1163:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __l  The initializer_list of characters to assign.
1164:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1165:/usr/include/c++/4.8/bits/basic_string.h ****        */
1166:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1167:/usr/include/c++/4.8/bits/basic_string.h ****       assign(initializer_list<_CharT> __l)
1168:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->assign(__l.begin(), __l.size()); }
1169:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
1170:/usr/include/c++/4.8/bits/basic_string.h **** 
1171:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1172:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert multiple characters.
1173:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __p  Iterator referencing location in string to insert at.
1174:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to insert
1175:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  The character to insert.
1176:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1177:/usr/include/c++/4.8/bits/basic_string.h ****        *
1178:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts @a __n copies of character @a __c starting at the
1179:/usr/include/c++/4.8/bits/basic_string.h ****        *  position referenced by iterator @a __p.  If adding
1180:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters causes the length to exceed max_size(),
1181:/usr/include/c++/4.8/bits/basic_string.h ****        *  length_error is thrown.  The value of the string doesn't
1182:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1183:/usr/include/c++/4.8/bits/basic_string.h ****       */
1184:/usr/include/c++/4.8/bits/basic_string.h ****       void
1185:/usr/include/c++/4.8/bits/basic_string.h ****       insert(iterator __p, size_type __n, _CharT __c)
1186:/usr/include/c++/4.8/bits/basic_string.h ****       {	this->replace(__p, __p, __n, __c);  }
1187:/usr/include/c++/4.8/bits/basic_string.h **** 
1188:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1189:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert a range of characters.
1190:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __p  Iterator referencing location in string to insert at.
1191:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __beg  Start of range.
1192:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __end  End of range.
1193:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1194:/usr/include/c++/4.8/bits/basic_string.h ****        *
1195:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts characters in range [__beg,__end).  If adding
1196:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters causes the length to exceed max_size(),
1197:/usr/include/c++/4.8/bits/basic_string.h ****        *  length_error is thrown.  The value of the string doesn't
1198:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1199:/usr/include/c++/4.8/bits/basic_string.h ****       */
1200:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InputIterator>
1201:/usr/include/c++/4.8/bits/basic_string.h ****         void
1202:/usr/include/c++/4.8/bits/basic_string.h ****         insert(iterator __p, _InputIterator __beg, _InputIterator __end)
1203:/usr/include/c++/4.8/bits/basic_string.h ****         { this->replace(__p, __p, __beg, __end); }
1204:/usr/include/c++/4.8/bits/basic_string.h **** 
1205:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
1206:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1207:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert an initializer_list of characters.
1208:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __p  Iterator referencing location in string to insert at.
1209:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __l  The initializer_list of characters to insert.
GAS LISTING /tmp/ccev5sD5.s 			page 54


1210:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1211:/usr/include/c++/4.8/bits/basic_string.h ****        */
1212:/usr/include/c++/4.8/bits/basic_string.h ****       void
1213:/usr/include/c++/4.8/bits/basic_string.h ****       insert(iterator __p, initializer_list<_CharT> __l)
1214:/usr/include/c++/4.8/bits/basic_string.h ****       {
1215:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(__p >= _M_ibegin() && __p <= _M_iend());
1216:/usr/include/c++/4.8/bits/basic_string.h **** 	this->insert(__p - _M_ibegin(), __l.begin(), __l.size());
1217:/usr/include/c++/4.8/bits/basic_string.h ****       }
1218:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
1219:/usr/include/c++/4.8/bits/basic_string.h **** 
1220:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1221:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert value of a string.
1222:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos1  Iterator referencing location in string to insert at.
1223:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  The string to insert.
1224:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1225:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1226:/usr/include/c++/4.8/bits/basic_string.h ****        *
1227:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts value of @a __str starting at @a __pos1.  If adding
1228:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters causes the length to exceed max_size(),
1229:/usr/include/c++/4.8/bits/basic_string.h ****        *  length_error is thrown.  The value of the string doesn't
1230:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1231:/usr/include/c++/4.8/bits/basic_string.h ****       */
1232:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1233:/usr/include/c++/4.8/bits/basic_string.h ****       insert(size_type __pos1, const basic_string& __str)
1234:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->insert(__pos1, __str, size_type(0), __str.size()); }
1235:/usr/include/c++/4.8/bits/basic_string.h **** 
1236:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1237:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert a substring.
1238:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos1  Iterator referencing location in string to insert at.
1239:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  The string to insert.
1240:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos2  Start of characters in str to insert.
1241:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to insert.
1242:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1243:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1244:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a pos1 > size() or
1245:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __pos2 > @a str.size().
1246:/usr/include/c++/4.8/bits/basic_string.h ****        *
1247:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting at @a pos1, insert @a __n character of @a __str
1248:/usr/include/c++/4.8/bits/basic_string.h ****        *  beginning with @a __pos2.  If adding characters causes the
1249:/usr/include/c++/4.8/bits/basic_string.h ****        *  length to exceed max_size(), length_error is thrown.  If @a
1250:/usr/include/c++/4.8/bits/basic_string.h ****        *  __pos1 is beyond the end of this string or @a __pos2 is
1251:/usr/include/c++/4.8/bits/basic_string.h ****        *  beyond the end of @a __str, out_of_range is thrown.  The
1252:/usr/include/c++/4.8/bits/basic_string.h ****        *  value of the string doesn't change if an error is thrown.
1253:/usr/include/c++/4.8/bits/basic_string.h ****       */
1254:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1255:/usr/include/c++/4.8/bits/basic_string.h ****       insert(size_type __pos1, const basic_string& __str,
1256:/usr/include/c++/4.8/bits/basic_string.h **** 	     size_type __pos2, size_type __n)
1257:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->insert(__pos1, __str._M_data()
1258:/usr/include/c++/4.8/bits/basic_string.h **** 			    + __str._M_check(__pos2, "basic_string::insert"),
1259:/usr/include/c++/4.8/bits/basic_string.h **** 			    __str._M_limit(__pos2, __n)); }
1260:/usr/include/c++/4.8/bits/basic_string.h **** 
1261:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1262:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert a C substring.
1263:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Iterator referencing location in string to insert at.
1264:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to insert.
1265:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  The number of characters to insert.
1266:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
GAS LISTING /tmp/ccev5sD5.s 			page 55


1267:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1268:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a __pos is beyond the end of this
1269:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.
1270:/usr/include/c++/4.8/bits/basic_string.h ****        *
1271:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts the first @a __n characters of @a __s starting at @a
1272:/usr/include/c++/4.8/bits/basic_string.h ****        *  __pos.  If adding characters causes the length to exceed
1273:/usr/include/c++/4.8/bits/basic_string.h ****        *  max_size(), length_error is thrown.  If @a __pos is beyond
1274:/usr/include/c++/4.8/bits/basic_string.h ****        *  end(), out_of_range is thrown.  The value of the string
1275:/usr/include/c++/4.8/bits/basic_string.h ****        *  doesn't change if an error is thrown.
1276:/usr/include/c++/4.8/bits/basic_string.h ****       */
1277:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1278:/usr/include/c++/4.8/bits/basic_string.h ****       insert(size_type __pos, const _CharT* __s, size_type __n);
1279:/usr/include/c++/4.8/bits/basic_string.h **** 
1280:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1281:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert a C string.
1282:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Iterator referencing location in string to insert at.
1283:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  The C string to insert.
1284:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1285:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1286:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a pos is beyond the end of this
1287:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.
1288:/usr/include/c++/4.8/bits/basic_string.h ****        *
1289:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts the first @a n characters of @a __s starting at @a __pos.  If
1290:/usr/include/c++/4.8/bits/basic_string.h ****        *  adding characters causes the length to exceed max_size(),
1291:/usr/include/c++/4.8/bits/basic_string.h ****        *  length_error is thrown.  If @a __pos is beyond end(), out_of_range is
1292:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.  The value of the string doesn't change if an error is
1293:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.
1294:/usr/include/c++/4.8/bits/basic_string.h ****       */
1295:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1296:/usr/include/c++/4.8/bits/basic_string.h ****       insert(size_type __pos, const _CharT* __s)
1297:/usr/include/c++/4.8/bits/basic_string.h ****       {
1298:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1299:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->insert(__pos, __s, traits_type::length(__s));
1300:/usr/include/c++/4.8/bits/basic_string.h ****       }
1301:/usr/include/c++/4.8/bits/basic_string.h **** 
1302:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1303:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert multiple characters.
1304:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index in string to insert at.
1305:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to insert
1306:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  The character to insert.
1307:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1308:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1309:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a __pos is beyond the end of this
1310:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.
1311:/usr/include/c++/4.8/bits/basic_string.h ****        *
1312:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts @a __n copies of character @a __c starting at index
1313:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __pos.  If adding characters causes the length to exceed
1314:/usr/include/c++/4.8/bits/basic_string.h ****        *  max_size(), length_error is thrown.  If @a __pos > length(),
1315:/usr/include/c++/4.8/bits/basic_string.h ****        *  out_of_range is thrown.  The value of the string doesn't
1316:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1317:/usr/include/c++/4.8/bits/basic_string.h ****       */
1318:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1319:/usr/include/c++/4.8/bits/basic_string.h ****       insert(size_type __pos, size_type __n, _CharT __c)
1320:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
1321:/usr/include/c++/4.8/bits/basic_string.h **** 			      size_type(0), __n, __c); }
1322:/usr/include/c++/4.8/bits/basic_string.h **** 
1323:/usr/include/c++/4.8/bits/basic_string.h ****       /**
GAS LISTING /tmp/ccev5sD5.s 			page 56


1324:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Insert one character.
1325:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __p  Iterator referencing position in string to insert at.
1326:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  The character to insert.
1327:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Iterator referencing newly inserted char.
1328:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1329:/usr/include/c++/4.8/bits/basic_string.h ****        *
1330:/usr/include/c++/4.8/bits/basic_string.h ****        *  Inserts character @a __c at position referenced by @a __p.
1331:/usr/include/c++/4.8/bits/basic_string.h ****        *  If adding character causes the length to exceed max_size(),
1332:/usr/include/c++/4.8/bits/basic_string.h ****        *  length_error is thrown.  If @a __p is beyond end of string,
1333:/usr/include/c++/4.8/bits/basic_string.h ****        *  out_of_range is thrown.  The value of the string doesn't
1334:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1335:/usr/include/c++/4.8/bits/basic_string.h ****       */
1336:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
1337:/usr/include/c++/4.8/bits/basic_string.h ****       insert(iterator __p, _CharT __c)
1338:/usr/include/c++/4.8/bits/basic_string.h ****       {
1339:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(__p >= _M_ibegin() && __p <= _M_iend());
1340:/usr/include/c++/4.8/bits/basic_string.h **** 	const size_type __pos = __p - _M_ibegin();
1341:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_replace_aux(__pos, size_type(0), size_type(1), __c);
1342:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_rep()->_M_set_leaked();
1343:/usr/include/c++/4.8/bits/basic_string.h **** 	return iterator(_M_data() + __pos);
1344:/usr/include/c++/4.8/bits/basic_string.h ****       }
1345:/usr/include/c++/4.8/bits/basic_string.h **** 
1346:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1347:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Remove characters.
1348:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character to remove (default 0).
1349:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to remove (default remainder).
1350:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1351:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a pos is beyond the end of this
1352:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.
1353:/usr/include/c++/4.8/bits/basic_string.h ****        *
1354:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes @a __n characters from this string starting at @a
1355:/usr/include/c++/4.8/bits/basic_string.h ****        *  __pos.  The length of the string is reduced by @a __n.  If
1356:/usr/include/c++/4.8/bits/basic_string.h ****        *  there are < @a __n characters to remove, the remainder of
1357:/usr/include/c++/4.8/bits/basic_string.h ****        *  the string is truncated.  If @a __p is beyond end of string,
1358:/usr/include/c++/4.8/bits/basic_string.h ****        *  out_of_range is thrown.  The value of the string doesn't
1359:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1360:/usr/include/c++/4.8/bits/basic_string.h ****       */
1361:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1362:/usr/include/c++/4.8/bits/basic_string.h ****       erase(size_type __pos = 0, size_type __n = npos)
1363:/usr/include/c++/4.8/bits/basic_string.h ****       { 
1364:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_mutate(_M_check(__pos, "basic_string::erase"),
1365:/usr/include/c++/4.8/bits/basic_string.h **** 		  _M_limit(__pos, __n), size_type(0));
1366:/usr/include/c++/4.8/bits/basic_string.h **** 	return *this;
1367:/usr/include/c++/4.8/bits/basic_string.h ****       }
1368:/usr/include/c++/4.8/bits/basic_string.h **** 
1369:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1370:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Remove one character.
1371:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __position  Iterator referencing the character to remove.
1372:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  iterator referencing same location after removal.
1373:/usr/include/c++/4.8/bits/basic_string.h ****        *
1374:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the character at @a __position from this string. The value
1375:/usr/include/c++/4.8/bits/basic_string.h ****        *  of the string doesn't change if an error is thrown.
1376:/usr/include/c++/4.8/bits/basic_string.h ****       */
1377:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
1378:/usr/include/c++/4.8/bits/basic_string.h ****       erase(iterator __position)
1379:/usr/include/c++/4.8/bits/basic_string.h ****       {
1380:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(__position >= _M_ibegin()
GAS LISTING /tmp/ccev5sD5.s 			page 57


1381:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __position < _M_iend());
1382:/usr/include/c++/4.8/bits/basic_string.h **** 	const size_type __pos = __position - _M_ibegin();
1383:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_mutate(__pos, size_type(1), size_type(0));
1384:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_rep()->_M_set_leaked();
1385:/usr/include/c++/4.8/bits/basic_string.h **** 	return iterator(_M_data() + __pos);
1386:/usr/include/c++/4.8/bits/basic_string.h ****       }
1387:/usr/include/c++/4.8/bits/basic_string.h **** 
1388:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1389:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Remove a range of characters.
1390:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __first  Iterator referencing the first character to remove.
1391:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __last  Iterator referencing the end of the range.
1392:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Iterator referencing location of first after removal.
1393:/usr/include/c++/4.8/bits/basic_string.h ****        *
1394:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [first,last) from this string.
1395:/usr/include/c++/4.8/bits/basic_string.h ****        *  The value of the string doesn't change if an error is thrown.
1396:/usr/include/c++/4.8/bits/basic_string.h ****       */
1397:/usr/include/c++/4.8/bits/basic_string.h ****       iterator
1398:/usr/include/c++/4.8/bits/basic_string.h ****       erase(iterator __first, iterator __last);
1399:/usr/include/c++/4.8/bits/basic_string.h ****  
1400:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
1401:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1402:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Remove the last character.
1403:/usr/include/c++/4.8/bits/basic_string.h ****        *
1404:/usr/include/c++/4.8/bits/basic_string.h ****        *  The string must be non-empty.
1405:/usr/include/c++/4.8/bits/basic_string.h ****        */
1406:/usr/include/c++/4.8/bits/basic_string.h ****       void
1407:/usr/include/c++/4.8/bits/basic_string.h ****       pop_back()
1408:/usr/include/c++/4.8/bits/basic_string.h ****       { erase(size()-1, 1); }
1409:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
1410:/usr/include/c++/4.8/bits/basic_string.h **** 
1411:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1412:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace characters with value from another string.
1413:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character to replace.
1414:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to be replaced.
1415:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to insert.
1416:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1417:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a pos is beyond the end of this
1418:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.
1419:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1420:/usr/include/c++/4.8/bits/basic_string.h ****        *
1421:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__pos,__pos+__n) from
1422:/usr/include/c++/4.8/bits/basic_string.h ****        *  this string.  In place, the value of @a __str is inserted.
1423:/usr/include/c++/4.8/bits/basic_string.h ****        *  If @a __pos is beyond end of string, out_of_range is thrown.
1424:/usr/include/c++/4.8/bits/basic_string.h ****        *  If the length of the result exceeds max_size(), length_error
1425:/usr/include/c++/4.8/bits/basic_string.h ****        *  is thrown.  The value of the string doesn't change if an
1426:/usr/include/c++/4.8/bits/basic_string.h ****        *  error is thrown.
1427:/usr/include/c++/4.8/bits/basic_string.h ****       */
1428:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1429:/usr/include/c++/4.8/bits/basic_string.h ****       replace(size_type __pos, size_type __n, const basic_string& __str)
1430:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
1431:/usr/include/c++/4.8/bits/basic_string.h **** 
1432:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1433:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace characters with value from another string.
1434:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos1  Index of first character to replace.
1435:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters to be replaced.
1436:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to insert.
1437:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos2  Index of first character of str to use.
GAS LISTING /tmp/ccev5sD5.s 			page 58


1438:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n2  Number of characters from str to use.
1439:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1440:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a __pos1 > size() or @a __pos2 >
1441:/usr/include/c++/4.8/bits/basic_string.h ****        *  __str.size().
1442:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1443:/usr/include/c++/4.8/bits/basic_string.h ****        *
1444:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__pos1,__pos1 + n) from this
1445:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.  In place, the value of @a __str is inserted.  If @a __pos is
1446:/usr/include/c++/4.8/bits/basic_string.h ****        *  beyond end of string, out_of_range is thrown.  If the length of the
1447:/usr/include/c++/4.8/bits/basic_string.h ****        *  result exceeds max_size(), length_error is thrown.  The value of the
1448:/usr/include/c++/4.8/bits/basic_string.h ****        *  string doesn't change if an error is thrown.
1449:/usr/include/c++/4.8/bits/basic_string.h ****       */
1450:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1451:/usr/include/c++/4.8/bits/basic_string.h ****       replace(size_type __pos1, size_type __n1, const basic_string& __str,
1452:/usr/include/c++/4.8/bits/basic_string.h **** 	      size_type __pos2, size_type __n2)
1453:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->replace(__pos1, __n1, __str._M_data()
1454:/usr/include/c++/4.8/bits/basic_string.h **** 			     + __str._M_check(__pos2, "basic_string::replace"),
1455:/usr/include/c++/4.8/bits/basic_string.h **** 			     __str._M_limit(__pos2, __n2)); }
1456:/usr/include/c++/4.8/bits/basic_string.h **** 
1457:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1458:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace characters with value of a C substring.
1459:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character to replace.
1460:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters to be replaced.
1461:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to insert.
1462:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n2  Number of characters from @a s to use.
1463:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1464:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a pos1 > size().
1465:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1466:/usr/include/c++/4.8/bits/basic_string.h ****        *
1467:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__pos,__pos + __n1)
1468:/usr/include/c++/4.8/bits/basic_string.h ****        *  from this string.  In place, the first @a __n2 characters of
1469:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __s are inserted, or all of @a __s if @a __n2 is too large.  If
1470:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __pos is beyond end of string, out_of_range is thrown.  If
1471:/usr/include/c++/4.8/bits/basic_string.h ****        *  the length of result exceeds max_size(), length_error is
1472:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.  The value of the string doesn't change if an error
1473:/usr/include/c++/4.8/bits/basic_string.h ****        *  is thrown.
1474:/usr/include/c++/4.8/bits/basic_string.h ****       */
1475:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1476:/usr/include/c++/4.8/bits/basic_string.h ****       replace(size_type __pos, size_type __n1, const _CharT* __s,
1477:/usr/include/c++/4.8/bits/basic_string.h **** 	      size_type __n2);
1478:/usr/include/c++/4.8/bits/basic_string.h **** 
1479:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1480:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace characters with value of a C string.
1481:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character to replace.
1482:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters to be replaced.
1483:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to insert.
1484:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1485:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a pos > size().
1486:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1487:/usr/include/c++/4.8/bits/basic_string.h ****        *
1488:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__pos,__pos + __n1)
1489:/usr/include/c++/4.8/bits/basic_string.h ****        *  from this string.  In place, the characters of @a __s are
1490:/usr/include/c++/4.8/bits/basic_string.h ****        *  inserted.  If @a __pos is beyond end of string, out_of_range
1491:/usr/include/c++/4.8/bits/basic_string.h ****        *  is thrown.  If the length of result exceeds max_size(),
1492:/usr/include/c++/4.8/bits/basic_string.h ****        *  length_error is thrown.  The value of the string doesn't
1493:/usr/include/c++/4.8/bits/basic_string.h ****        *  change if an error is thrown.
1494:/usr/include/c++/4.8/bits/basic_string.h ****       */
GAS LISTING /tmp/ccev5sD5.s 			page 59


1495:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1496:/usr/include/c++/4.8/bits/basic_string.h ****       replace(size_type __pos, size_type __n1, const _CharT* __s)
1497:/usr/include/c++/4.8/bits/basic_string.h ****       {
1498:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1499:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__pos, __n1, __s, traits_type::length(__s));
1500:/usr/include/c++/4.8/bits/basic_string.h ****       }
1501:/usr/include/c++/4.8/bits/basic_string.h **** 
1502:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1503:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace characters with multiple characters.
1504:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character to replace.
1505:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters to be replaced.
1506:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n2  Number of characters to insert.
1507:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to insert.
1508:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1509:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If @a __pos > size().
1510:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1511:/usr/include/c++/4.8/bits/basic_string.h ****        *
1512:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [pos,pos + n1) from this
1513:/usr/include/c++/4.8/bits/basic_string.h ****        *  string.  In place, @a __n2 copies of @a __c are inserted.
1514:/usr/include/c++/4.8/bits/basic_string.h ****        *  If @a __pos is beyond end of string, out_of_range is thrown.
1515:/usr/include/c++/4.8/bits/basic_string.h ****        *  If the length of result exceeds max_size(), length_error is
1516:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.  The value of the string doesn't change if an error
1517:/usr/include/c++/4.8/bits/basic_string.h ****        *  is thrown.
1518:/usr/include/c++/4.8/bits/basic_string.h ****       */
1519:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1520:/usr/include/c++/4.8/bits/basic_string.h ****       replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
1521:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
1522:/usr/include/c++/4.8/bits/basic_string.h **** 			      _M_limit(__pos, __n1), __n2, __c); }
1523:/usr/include/c++/4.8/bits/basic_string.h **** 
1524:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1525:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace range of characters with string.
1526:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i1  Iterator referencing start of range to replace.
1527:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i2  Iterator referencing end of range to replace.
1528:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String value to insert.
1529:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1530:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1531:/usr/include/c++/4.8/bits/basic_string.h ****        *
1532:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__i1,__i2).  In place,
1533:/usr/include/c++/4.8/bits/basic_string.h ****        *  the value of @a __str is inserted.  If the length of result
1534:/usr/include/c++/4.8/bits/basic_string.h ****        *  exceeds max_size(), length_error is thrown.  The value of
1535:/usr/include/c++/4.8/bits/basic_string.h ****        *  the string doesn't change if an error is thrown.
1536:/usr/include/c++/4.8/bits/basic_string.h ****       */
1537:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1538:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const basic_string& __str)
1539:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
1540:/usr/include/c++/4.8/bits/basic_string.h **** 
1541:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1542:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace range of characters with C substring.
1543:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i1  Iterator referencing start of range to replace.
1544:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i2  Iterator referencing end of range to replace.
1545:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string value to insert.
1546:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from s to insert.
1547:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1548:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1549:/usr/include/c++/4.8/bits/basic_string.h ****        *
1550:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__i1,__i2).  In place,
1551:/usr/include/c++/4.8/bits/basic_string.h ****        *  the first @a __n characters of @a __s are inserted.  If the
GAS LISTING /tmp/ccev5sD5.s 			page 60


1552:/usr/include/c++/4.8/bits/basic_string.h ****        *  length of result exceeds max_size(), length_error is thrown.
1553:/usr/include/c++/4.8/bits/basic_string.h ****        *  The value of the string doesn't change if an error is
1554:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.
1555:/usr/include/c++/4.8/bits/basic_string.h ****       */
1556:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1557:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
1558:/usr/include/c++/4.8/bits/basic_string.h ****       {
1559:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1560:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __i2 <= _M_iend());
1561:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
1562:/usr/include/c++/4.8/bits/basic_string.h ****       }
1563:/usr/include/c++/4.8/bits/basic_string.h **** 
1564:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1565:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace range of characters with C string.
1566:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i1  Iterator referencing start of range to replace.
1567:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i2  Iterator referencing end of range to replace.
1568:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string value to insert.
1569:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1570:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1571:/usr/include/c++/4.8/bits/basic_string.h ****        *
1572:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__i1,__i2).  In place,
1573:/usr/include/c++/4.8/bits/basic_string.h ****        *  the characters of @a __s are inserted.  If the length of
1574:/usr/include/c++/4.8/bits/basic_string.h ****        *  result exceeds max_size(), length_error is thrown.  The
1575:/usr/include/c++/4.8/bits/basic_string.h ****        *  value of the string doesn't change if an error is thrown.
1576:/usr/include/c++/4.8/bits/basic_string.h ****       */
1577:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1578:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const _CharT* __s)
1579:/usr/include/c++/4.8/bits/basic_string.h ****       {
1580:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1581:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__i1, __i2, __s, traits_type::length(__s));
1582:/usr/include/c++/4.8/bits/basic_string.h ****       }
1583:/usr/include/c++/4.8/bits/basic_string.h **** 
1584:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1585:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace range of characters with multiple characters
1586:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i1  Iterator referencing start of range to replace.
1587:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i2  Iterator referencing end of range to replace.
1588:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to insert.
1589:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to insert.
1590:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1591:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1592:/usr/include/c++/4.8/bits/basic_string.h ****        *
1593:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__i1,__i2).  In place,
1594:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __n copies of @a __c are inserted.  If the length of
1595:/usr/include/c++/4.8/bits/basic_string.h ****        *  result exceeds max_size(), length_error is thrown.  The
1596:/usr/include/c++/4.8/bits/basic_string.h ****        *  value of the string doesn't change if an error is thrown.
1597:/usr/include/c++/4.8/bits/basic_string.h ****       */
1598:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1599:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
1600:/usr/include/c++/4.8/bits/basic_string.h ****       {
1601:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1602:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __i2 <= _M_iend());
1603:/usr/include/c++/4.8/bits/basic_string.h **** 	return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
1604:/usr/include/c++/4.8/bits/basic_string.h ****       }
1605:/usr/include/c++/4.8/bits/basic_string.h **** 
1606:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1607:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace range of characters with range.
1608:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i1  Iterator referencing start of range to replace.
GAS LISTING /tmp/ccev5sD5.s 			page 61


1609:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i2  Iterator referencing end of range to replace.
1610:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __k1  Iterator referencing start of range to insert.
1611:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __k2  Iterator referencing end of range to insert.
1612:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1613:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1614:/usr/include/c++/4.8/bits/basic_string.h ****        *
1615:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__i1,__i2).  In place,
1616:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters in the range [__k1,__k2) are inserted.  If the
1617:/usr/include/c++/4.8/bits/basic_string.h ****        *  length of result exceeds max_size(), length_error is thrown.
1618:/usr/include/c++/4.8/bits/basic_string.h ****        *  The value of the string doesn't change if an error is
1619:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.
1620:/usr/include/c++/4.8/bits/basic_string.h ****       */
1621:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InputIterator>
1622:/usr/include/c++/4.8/bits/basic_string.h ****         basic_string&
1623:/usr/include/c++/4.8/bits/basic_string.h ****         replace(iterator __i1, iterator __i2,
1624:/usr/include/c++/4.8/bits/basic_string.h **** 		_InputIterator __k1, _InputIterator __k2)
1625:/usr/include/c++/4.8/bits/basic_string.h ****         {
1626:/usr/include/c++/4.8/bits/basic_string.h **** 	  _GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1627:/usr/include/c++/4.8/bits/basic_string.h **** 				   && __i2 <= _M_iend());
1628:/usr/include/c++/4.8/bits/basic_string.h **** 	  __glibcxx_requires_valid_range(__k1, __k2);
1629:/usr/include/c++/4.8/bits/basic_string.h **** 	  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
1630:/usr/include/c++/4.8/bits/basic_string.h **** 	  return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
1631:/usr/include/c++/4.8/bits/basic_string.h **** 	}
1632:/usr/include/c++/4.8/bits/basic_string.h **** 
1633:/usr/include/c++/4.8/bits/basic_string.h ****       // Specializations for the common case of pointer and iterator:
1634:/usr/include/c++/4.8/bits/basic_string.h ****       // useful to avoid the overhead of temporary buffering in _M_replace.
1635:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1636:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
1637:/usr/include/c++/4.8/bits/basic_string.h ****       {
1638:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1639:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __i2 <= _M_iend());
1640:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_valid_range(__k1, __k2);
1641:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
1642:/usr/include/c++/4.8/bits/basic_string.h **** 			     __k1, __k2 - __k1);
1643:/usr/include/c++/4.8/bits/basic_string.h ****       }
1644:/usr/include/c++/4.8/bits/basic_string.h **** 
1645:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1646:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2,
1647:/usr/include/c++/4.8/bits/basic_string.h **** 	      const _CharT* __k1, const _CharT* __k2)
1648:/usr/include/c++/4.8/bits/basic_string.h ****       {
1649:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1650:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __i2 <= _M_iend());
1651:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_valid_range(__k1, __k2);
1652:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
1653:/usr/include/c++/4.8/bits/basic_string.h **** 			     __k1, __k2 - __k1);
1654:/usr/include/c++/4.8/bits/basic_string.h ****       }
1655:/usr/include/c++/4.8/bits/basic_string.h **** 
1656:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1657:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
1658:/usr/include/c++/4.8/bits/basic_string.h ****       {
1659:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1660:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __i2 <= _M_iend());
1661:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_valid_range(__k1, __k2);
1662:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
1663:/usr/include/c++/4.8/bits/basic_string.h **** 			     __k1.base(), __k2 - __k1);
1664:/usr/include/c++/4.8/bits/basic_string.h ****       }
1665:/usr/include/c++/4.8/bits/basic_string.h **** 
GAS LISTING /tmp/ccev5sD5.s 			page 62


1666:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1667:/usr/include/c++/4.8/bits/basic_string.h ****       replace(iterator __i1, iterator __i2,
1668:/usr/include/c++/4.8/bits/basic_string.h **** 	      const_iterator __k1, const_iterator __k2)
1669:/usr/include/c++/4.8/bits/basic_string.h ****       {
1670:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_DEBUG_PEDASSERT(_M_ibegin() <= __i1 && __i1 <= __i2
1671:/usr/include/c++/4.8/bits/basic_string.h **** 				 && __i2 <= _M_iend());
1672:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_valid_range(__k1, __k2);
1673:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
1674:/usr/include/c++/4.8/bits/basic_string.h **** 			     __k1.base(), __k2 - __k1);
1675:/usr/include/c++/4.8/bits/basic_string.h ****       }
1676:/usr/include/c++/4.8/bits/basic_string.h ****       
1677:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
1678:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1679:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Replace range of characters with initializer_list.
1680:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i1  Iterator referencing start of range to replace.
1681:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __i2  Iterator referencing end of range to replace.
1682:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __l  The initializer_list of characters to insert.
1683:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Reference to this string.
1684:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::length_error  If new length exceeds @c max_size().
1685:/usr/include/c++/4.8/bits/basic_string.h ****        *
1686:/usr/include/c++/4.8/bits/basic_string.h ****        *  Removes the characters in the range [__i1,__i2).  In place,
1687:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters in the range [__k1,__k2) are inserted.  If the
1688:/usr/include/c++/4.8/bits/basic_string.h ****        *  length of result exceeds max_size(), length_error is thrown.
1689:/usr/include/c++/4.8/bits/basic_string.h ****        *  The value of the string doesn't change if an error is
1690:/usr/include/c++/4.8/bits/basic_string.h ****        *  thrown.
1691:/usr/include/c++/4.8/bits/basic_string.h ****       */
1692:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string& replace(iterator __i1, iterator __i2,
1693:/usr/include/c++/4.8/bits/basic_string.h **** 			    initializer_list<_CharT> __l)
1694:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->replace(__i1, __i2, __l.begin(), __l.end()); }
1695:/usr/include/c++/4.8/bits/basic_string.h **** #endif // C++11
1696:/usr/include/c++/4.8/bits/basic_string.h **** 
1697:/usr/include/c++/4.8/bits/basic_string.h ****     private:
1698:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _Integer>
1699:/usr/include/c++/4.8/bits/basic_string.h **** 	basic_string&
1700:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
1701:/usr/include/c++/4.8/bits/basic_string.h **** 			    _Integer __val, __true_type)
1702:/usr/include/c++/4.8/bits/basic_string.h ****         { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
1703:/usr/include/c++/4.8/bits/basic_string.h **** 
1704:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InputIterator>
1705:/usr/include/c++/4.8/bits/basic_string.h **** 	basic_string&
1706:/usr/include/c++/4.8/bits/basic_string.h **** 	_M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
1707:/usr/include/c++/4.8/bits/basic_string.h **** 			    _InputIterator __k2, __false_type);
1708:/usr/include/c++/4.8/bits/basic_string.h **** 
1709:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1710:/usr/include/c++/4.8/bits/basic_string.h ****       _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
1711:/usr/include/c++/4.8/bits/basic_string.h **** 		     _CharT __c);
1712:/usr/include/c++/4.8/bits/basic_string.h **** 
1713:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string&
1714:/usr/include/c++/4.8/bits/basic_string.h ****       _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
1715:/usr/include/c++/4.8/bits/basic_string.h **** 		      size_type __n2);
1716:/usr/include/c++/4.8/bits/basic_string.h **** 
1717:/usr/include/c++/4.8/bits/basic_string.h ****       // _S_construct_aux is used to implement the 21.3.1 para 15 which
1718:/usr/include/c++/4.8/bits/basic_string.h ****       // requires special behaviour if _InIter is an integral type
1719:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InIterator>
1720:/usr/include/c++/4.8/bits/basic_string.h ****         static _CharT*
1721:/usr/include/c++/4.8/bits/basic_string.h ****         _S_construct_aux(_InIterator __beg, _InIterator __end,
1722:/usr/include/c++/4.8/bits/basic_string.h **** 			 const _Alloc& __a, __false_type)
GAS LISTING /tmp/ccev5sD5.s 			page 63


1723:/usr/include/c++/4.8/bits/basic_string.h **** 	{
1724:/usr/include/c++/4.8/bits/basic_string.h ****           typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
1725:/usr/include/c++/4.8/bits/basic_string.h ****           return _S_construct(__beg, __end, __a, _Tag());
1726:/usr/include/c++/4.8/bits/basic_string.h **** 	}
1727:/usr/include/c++/4.8/bits/basic_string.h **** 
1728:/usr/include/c++/4.8/bits/basic_string.h ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
1729:/usr/include/c++/4.8/bits/basic_string.h ****       // 438. Ambiguity in the "do the right thing" clause
1730:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _Integer>
1731:/usr/include/c++/4.8/bits/basic_string.h ****         static _CharT*
1732:/usr/include/c++/4.8/bits/basic_string.h ****         _S_construct_aux(_Integer __beg, _Integer __end,
1733:/usr/include/c++/4.8/bits/basic_string.h **** 			 const _Alloc& __a, __true_type)
1734:/usr/include/c++/4.8/bits/basic_string.h ****         { return _S_construct_aux_2(static_cast<size_type>(__beg),
1735:/usr/include/c++/4.8/bits/basic_string.h **** 				    __end, __a); }
1736:/usr/include/c++/4.8/bits/basic_string.h **** 
1737:/usr/include/c++/4.8/bits/basic_string.h ****       static _CharT*
1738:/usr/include/c++/4.8/bits/basic_string.h ****       _S_construct_aux_2(size_type __req, _CharT __c, const _Alloc& __a)
1739:/usr/include/c++/4.8/bits/basic_string.h ****       { return _S_construct(__req, __c, __a); }
1740:/usr/include/c++/4.8/bits/basic_string.h **** 
1741:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InIterator>
1742:/usr/include/c++/4.8/bits/basic_string.h ****         static _CharT*
1743:/usr/include/c++/4.8/bits/basic_string.h ****         _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
1744:/usr/include/c++/4.8/bits/basic_string.h **** 	{
1745:/usr/include/c++/4.8/bits/basic_string.h **** 	  typedef typename std::__is_integer<_InIterator>::__type _Integral;
1746:/usr/include/c++/4.8/bits/basic_string.h **** 	  return _S_construct_aux(__beg, __end, __a, _Integral());
1747:/usr/include/c++/4.8/bits/basic_string.h ****         }
1748:/usr/include/c++/4.8/bits/basic_string.h **** 
1749:/usr/include/c++/4.8/bits/basic_string.h ****       // For Input Iterators, used in istreambuf_iterators, etc.
1750:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _InIterator>
1751:/usr/include/c++/4.8/bits/basic_string.h ****         static _CharT*
1752:/usr/include/c++/4.8/bits/basic_string.h ****          _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
1753:/usr/include/c++/4.8/bits/basic_string.h **** 		      input_iterator_tag);
1754:/usr/include/c++/4.8/bits/basic_string.h **** 
1755:/usr/include/c++/4.8/bits/basic_string.h ****       // For forward_iterators up to random_access_iterators, used for
1756:/usr/include/c++/4.8/bits/basic_string.h ****       // string::iterator, _CharT*, etc.
1757:/usr/include/c++/4.8/bits/basic_string.h ****       template<class _FwdIterator>
1758:/usr/include/c++/4.8/bits/basic_string.h ****         static _CharT*
1759:/usr/include/c++/4.8/bits/basic_string.h ****         _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
1760:/usr/include/c++/4.8/bits/basic_string.h **** 		     forward_iterator_tag);
1761:/usr/include/c++/4.8/bits/basic_string.h **** 
1762:/usr/include/c++/4.8/bits/basic_string.h ****       static _CharT*
1763:/usr/include/c++/4.8/bits/basic_string.h ****       _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
1764:/usr/include/c++/4.8/bits/basic_string.h **** 
1765:/usr/include/c++/4.8/bits/basic_string.h ****     public:
1766:/usr/include/c++/4.8/bits/basic_string.h **** 
1767:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1768:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Copy substring into C string.
1769:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to copy value into.
1770:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters to copy.
1771:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character to copy.
1772:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Number of characters actually copied
1773:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If __pos > size().
1774:/usr/include/c++/4.8/bits/basic_string.h ****        *
1775:/usr/include/c++/4.8/bits/basic_string.h ****        *  Copies up to @a __n characters starting at @a __pos into the
1776:/usr/include/c++/4.8/bits/basic_string.h ****        *  C string @a __s.  If @a __pos is %greater than size(),
1777:/usr/include/c++/4.8/bits/basic_string.h ****        *  out_of_range is thrown.
1778:/usr/include/c++/4.8/bits/basic_string.h ****       */
1779:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
GAS LISTING /tmp/ccev5sD5.s 			page 64


1780:/usr/include/c++/4.8/bits/basic_string.h ****       copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
1781:/usr/include/c++/4.8/bits/basic_string.h **** 
1782:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1783:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Swap contents with another string.
1784:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  String to swap with.
1785:/usr/include/c++/4.8/bits/basic_string.h ****        *
1786:/usr/include/c++/4.8/bits/basic_string.h ****        *  Exchanges the contents of this string with that of @a __s in constant
1787:/usr/include/c++/4.8/bits/basic_string.h ****        *  time.
1788:/usr/include/c++/4.8/bits/basic_string.h ****       */
1789:/usr/include/c++/4.8/bits/basic_string.h ****       void
1790:/usr/include/c++/4.8/bits/basic_string.h ****       swap(basic_string& __s);
1791:/usr/include/c++/4.8/bits/basic_string.h **** 
1792:/usr/include/c++/4.8/bits/basic_string.h ****       // String operations:
1793:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1794:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Return const pointer to null-terminated contents.
1795:/usr/include/c++/4.8/bits/basic_string.h ****        *
1796:/usr/include/c++/4.8/bits/basic_string.h ****        *  This is a handle to internal data.  Do not modify or dire things may
1797:/usr/include/c++/4.8/bits/basic_string.h ****        *  happen.
1798:/usr/include/c++/4.8/bits/basic_string.h ****       */
1799:/usr/include/c++/4.8/bits/basic_string.h ****       const _CharT*
1800:/usr/include/c++/4.8/bits/basic_string.h ****       c_str() const _GLIBCXX_NOEXCEPT
1801:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_data(); }
1802:/usr/include/c++/4.8/bits/basic_string.h **** 
1803:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1804:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Return const pointer to contents.
1805:/usr/include/c++/4.8/bits/basic_string.h ****        *
1806:/usr/include/c++/4.8/bits/basic_string.h ****        *  This is a handle to internal data.  Do not modify or dire things may
1807:/usr/include/c++/4.8/bits/basic_string.h ****        *  happen.
1808:/usr/include/c++/4.8/bits/basic_string.h ****       */
1809:/usr/include/c++/4.8/bits/basic_string.h ****       const _CharT*
1810:/usr/include/c++/4.8/bits/basic_string.h ****       data() const _GLIBCXX_NOEXCEPT
1811:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_data(); }
1812:/usr/include/c++/4.8/bits/basic_string.h **** 
1813:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1814:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Return copy of allocator used to construct this string.
1815:/usr/include/c++/4.8/bits/basic_string.h ****       */
1816:/usr/include/c++/4.8/bits/basic_string.h ****       allocator_type
1817:/usr/include/c++/4.8/bits/basic_string.h ****       get_allocator() const _GLIBCXX_NOEXCEPT
1818:/usr/include/c++/4.8/bits/basic_string.h ****       { return _M_dataplus; }
1819:/usr/include/c++/4.8/bits/basic_string.h **** 
1820:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1821:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a C substring.
1822:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to locate.
1823:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from.
1824:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from @a s to search for.
1825:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of start of first occurrence.
1826:/usr/include/c++/4.8/bits/basic_string.h ****        *
1827:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for the first @a
1828:/usr/include/c++/4.8/bits/basic_string.h ****        *  __n characters in @a __s within this string.  If found,
1829:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns the index where it begins.  If not found, returns
1830:/usr/include/c++/4.8/bits/basic_string.h ****        *  npos.
1831:/usr/include/c++/4.8/bits/basic_string.h ****       */
1832:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1833:/usr/include/c++/4.8/bits/basic_string.h ****       find(const _CharT* __s, size_type __pos, size_type __n) const;
1834:/usr/include/c++/4.8/bits/basic_string.h **** 
1835:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1836:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a string.
GAS LISTING /tmp/ccev5sD5.s 			page 65


1837:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to locate.
1838:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
1839:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of start of first occurrence.
1840:/usr/include/c++/4.8/bits/basic_string.h ****        *
1841:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for value of @a __str within
1842:/usr/include/c++/4.8/bits/basic_string.h ****        *  this string.  If found, returns the index where it begins.  If not
1843:/usr/include/c++/4.8/bits/basic_string.h ****        *  found, returns npos.
1844:/usr/include/c++/4.8/bits/basic_string.h ****       */
1845:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1846:/usr/include/c++/4.8/bits/basic_string.h ****       find(const basic_string& __str, size_type __pos = 0) const
1847:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT
1848:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->find(__str.data(), __pos, __str.size()); }
1849:/usr/include/c++/4.8/bits/basic_string.h **** 
1850:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1851:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a C string.
1852:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to locate.
1853:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
1854:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of start of first occurrence.
1855:/usr/include/c++/4.8/bits/basic_string.h ****        *
1856:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for the value of @a
1857:/usr/include/c++/4.8/bits/basic_string.h ****        *  __s within this string.  If found, returns the index where
1858:/usr/include/c++/4.8/bits/basic_string.h ****        *  it begins.  If not found, returns npos.
1859:/usr/include/c++/4.8/bits/basic_string.h ****       */
1860:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1861:/usr/include/c++/4.8/bits/basic_string.h ****       find(const _CharT* __s, size_type __pos = 0) const
1862:/usr/include/c++/4.8/bits/basic_string.h ****       {
1863:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1864:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->find(__s, __pos, traits_type::length(__s));
1865:/usr/include/c++/4.8/bits/basic_string.h ****       }
1866:/usr/include/c++/4.8/bits/basic_string.h **** 
1867:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1868:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character.
1869:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to locate.
1870:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
1871:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
1872:/usr/include/c++/4.8/bits/basic_string.h ****        *
1873:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for @a __c within
1874:/usr/include/c++/4.8/bits/basic_string.h ****        *  this string.  If found, returns the index where it was
1875:/usr/include/c++/4.8/bits/basic_string.h ****        *  found.  If not found, returns npos.
1876:/usr/include/c++/4.8/bits/basic_string.h ****       */
1877:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1878:/usr/include/c++/4.8/bits/basic_string.h ****       find(_CharT __c, size_type __pos = 0) const _GLIBCXX_NOEXCEPT;
1879:/usr/include/c++/4.8/bits/basic_string.h **** 
1880:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1881:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a string.
1882:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to locate.
1883:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
1884:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of start of last occurrence.
1885:/usr/include/c++/4.8/bits/basic_string.h ****        *
1886:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for value of @a
1887:/usr/include/c++/4.8/bits/basic_string.h ****        *  __str within this string.  If found, returns the index where
1888:/usr/include/c++/4.8/bits/basic_string.h ****        *  it begins.  If not found, returns npos.
1889:/usr/include/c++/4.8/bits/basic_string.h ****       */
1890:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1891:/usr/include/c++/4.8/bits/basic_string.h ****       rfind(const basic_string& __str, size_type __pos = npos) const
1892:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT
1893:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->rfind(__str.data(), __pos, __str.size()); }
GAS LISTING /tmp/ccev5sD5.s 			page 66


1894:/usr/include/c++/4.8/bits/basic_string.h **** 
1895:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1896:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a C substring.
1897:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to locate.
1898:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from.
1899:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from s to search for.
1900:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of start of last occurrence.
1901:/usr/include/c++/4.8/bits/basic_string.h ****        *
1902:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for the first @a
1903:/usr/include/c++/4.8/bits/basic_string.h ****        *  __n characters in @a __s within this string.  If found,
1904:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns the index where it begins.  If not found, returns
1905:/usr/include/c++/4.8/bits/basic_string.h ****        *  npos.
1906:/usr/include/c++/4.8/bits/basic_string.h ****       */
1907:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1908:/usr/include/c++/4.8/bits/basic_string.h ****       rfind(const _CharT* __s, size_type __pos, size_type __n) const;
1909:/usr/include/c++/4.8/bits/basic_string.h **** 
1910:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1911:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a C string.
1912:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to locate.
1913:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to start search at (default end).
1914:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of start of  last occurrence.
1915:/usr/include/c++/4.8/bits/basic_string.h ****        *
1916:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for the value of
1917:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __s within this string.  If found, returns the index
1918:/usr/include/c++/4.8/bits/basic_string.h ****        *  where it begins.  If not found, returns npos.
1919:/usr/include/c++/4.8/bits/basic_string.h ****       */
1920:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1921:/usr/include/c++/4.8/bits/basic_string.h ****       rfind(const _CharT* __s, size_type __pos = npos) const
1922:/usr/include/c++/4.8/bits/basic_string.h ****       {
1923:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1924:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->rfind(__s, __pos, traits_type::length(__s));
1925:/usr/include/c++/4.8/bits/basic_string.h ****       }
1926:/usr/include/c++/4.8/bits/basic_string.h **** 
1927:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1928:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character.
1929:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to locate.
1930:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
1931:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
1932:/usr/include/c++/4.8/bits/basic_string.h ****        *
1933:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for @a __c within
1934:/usr/include/c++/4.8/bits/basic_string.h ****        *  this string.  If found, returns the index where it was
1935:/usr/include/c++/4.8/bits/basic_string.h ****        *  found.  If not found, returns npos.
1936:/usr/include/c++/4.8/bits/basic_string.h ****       */
1937:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1938:/usr/include/c++/4.8/bits/basic_string.h ****       rfind(_CharT __c, size_type __pos = npos) const _GLIBCXX_NOEXCEPT;
1939:/usr/include/c++/4.8/bits/basic_string.h **** 
1940:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1941:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character of string.
1942:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String containing characters to locate.
1943:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
1944:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
1945:/usr/include/c++/4.8/bits/basic_string.h ****        *
1946:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for one of the
1947:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters of @a __str within this string.  If found,
1948:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns the index where it was found.  If not found, returns
1949:/usr/include/c++/4.8/bits/basic_string.h ****        *  npos.
1950:/usr/include/c++/4.8/bits/basic_string.h ****       */
GAS LISTING /tmp/ccev5sD5.s 			page 67


1951:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1952:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_of(const basic_string& __str, size_type __pos = 0) const
1953:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT
1954:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->find_first_of(__str.data(), __pos, __str.size()); }
1955:/usr/include/c++/4.8/bits/basic_string.h **** 
1956:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1957:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character of C substring.
1958:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  String containing characters to locate.
1959:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from.
1960:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from s to search for.
1961:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
1962:/usr/include/c++/4.8/bits/basic_string.h ****        *
1963:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for one of the
1964:/usr/include/c++/4.8/bits/basic_string.h ****        *  first @a __n characters of @a __s within this string.  If
1965:/usr/include/c++/4.8/bits/basic_string.h ****        *  found, returns the index where it was found.  If not found,
1966:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns npos.
1967:/usr/include/c++/4.8/bits/basic_string.h ****       */
1968:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1969:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
1970:/usr/include/c++/4.8/bits/basic_string.h **** 
1971:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1972:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character of C string.
1973:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  String containing characters to locate.
1974:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
1975:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
1976:/usr/include/c++/4.8/bits/basic_string.h ****        *
1977:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for one of the
1978:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters of @a __s within this string.  If found, returns
1979:/usr/include/c++/4.8/bits/basic_string.h ****        *  the index where it was found.  If not found, returns npos.
1980:/usr/include/c++/4.8/bits/basic_string.h ****       */
1981:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
1982:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_of(const _CharT* __s, size_type __pos = 0) const
1983:/usr/include/c++/4.8/bits/basic_string.h ****       {
1984:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
1985:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->find_first_of(__s, __pos, traits_type::length(__s));
1986:/usr/include/c++/4.8/bits/basic_string.h ****       }
1987:/usr/include/c++/4.8/bits/basic_string.h **** 
1988:/usr/include/c++/4.8/bits/basic_string.h ****       /**
1989:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character.
1990:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to locate.
1991:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
1992:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
1993:/usr/include/c++/4.8/bits/basic_string.h ****        *
1994:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for the character
1995:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __c within this string.  If found, returns the index
1996:/usr/include/c++/4.8/bits/basic_string.h ****        *  where it was found.  If not found, returns npos.
1997:/usr/include/c++/4.8/bits/basic_string.h ****        *
1998:/usr/include/c++/4.8/bits/basic_string.h ****        *  Note: equivalent to find(__c, __pos).
1999:/usr/include/c++/4.8/bits/basic_string.h ****       */
2000:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2001:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_of(_CharT __c, size_type __pos = 0) const _GLIBCXX_NOEXCEPT
2002:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->find(__c, __pos); }
2003:/usr/include/c++/4.8/bits/basic_string.h **** 
2004:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2005:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character of string.
2006:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String containing characters to locate.
2007:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
GAS LISTING /tmp/ccev5sD5.s 			page 68


2008:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2009:/usr/include/c++/4.8/bits/basic_string.h ****        *
2010:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for one of the
2011:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters of @a __str within this string.  If found,
2012:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns the index where it was found.  If not found, returns
2013:/usr/include/c++/4.8/bits/basic_string.h ****        *  npos.
2014:/usr/include/c++/4.8/bits/basic_string.h ****       */
2015:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2016:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_of(const basic_string& __str, size_type __pos = npos) const
2017:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT
2018:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->find_last_of(__str.data(), __pos, __str.size()); }
2019:/usr/include/c++/4.8/bits/basic_string.h **** 
2020:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2021:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character of C substring.
2022:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string containing characters to locate.
2023:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from.
2024:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from s to search for.
2025:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2026:/usr/include/c++/4.8/bits/basic_string.h ****        *
2027:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for one of the
2028:/usr/include/c++/4.8/bits/basic_string.h ****        *  first @a __n characters of @a __s within this string.  If
2029:/usr/include/c++/4.8/bits/basic_string.h ****        *  found, returns the index where it was found.  If not found,
2030:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns npos.
2031:/usr/include/c++/4.8/bits/basic_string.h ****       */
2032:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2033:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
2034:/usr/include/c++/4.8/bits/basic_string.h **** 
2035:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2036:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character of C string.
2037:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string containing characters to locate.
2038:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
2039:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2040:/usr/include/c++/4.8/bits/basic_string.h ****        *
2041:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for one of the
2042:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters of @a __s within this string.  If found, returns
2043:/usr/include/c++/4.8/bits/basic_string.h ****        *  the index where it was found.  If not found, returns npos.
2044:/usr/include/c++/4.8/bits/basic_string.h ****       */
2045:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2046:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_of(const _CharT* __s, size_type __pos = npos) const
2047:/usr/include/c++/4.8/bits/basic_string.h ****       {
2048:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
2049:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->find_last_of(__s, __pos, traits_type::length(__s));
2050:/usr/include/c++/4.8/bits/basic_string.h ****       }
2051:/usr/include/c++/4.8/bits/basic_string.h **** 
2052:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2053:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character.
2054:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to locate.
2055:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
2056:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2057:/usr/include/c++/4.8/bits/basic_string.h ****        *
2058:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for @a __c within
2059:/usr/include/c++/4.8/bits/basic_string.h ****        *  this string.  If found, returns the index where it was
2060:/usr/include/c++/4.8/bits/basic_string.h ****        *  found.  If not found, returns npos.
2061:/usr/include/c++/4.8/bits/basic_string.h ****        *
2062:/usr/include/c++/4.8/bits/basic_string.h ****        *  Note: equivalent to rfind(__c, __pos).
2063:/usr/include/c++/4.8/bits/basic_string.h ****       */
2064:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
GAS LISTING /tmp/ccev5sD5.s 			page 69


2065:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_of(_CharT __c, size_type __pos = npos) const _GLIBCXX_NOEXCEPT
2066:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->rfind(__c, __pos); }
2067:/usr/include/c++/4.8/bits/basic_string.h **** 
2068:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2069:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character not in string.
2070:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String containing characters to avoid.
2071:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
2072:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
2073:/usr/include/c++/4.8/bits/basic_string.h ****        *
2074:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for a character not contained
2075:/usr/include/c++/4.8/bits/basic_string.h ****        *  in @a __str within this string.  If found, returns the index where it
2076:/usr/include/c++/4.8/bits/basic_string.h ****        *  was found.  If not found, returns npos.
2077:/usr/include/c++/4.8/bits/basic_string.h ****       */
2078:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2079:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_not_of(const basic_string& __str, size_type __pos = 0) const
2080:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT
2081:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
2082:/usr/include/c++/4.8/bits/basic_string.h **** 
2083:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2084:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character not in C substring.
2085:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string containing characters to avoid.
2086:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from.
2087:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from __s to consider.
2088:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
2089:/usr/include/c++/4.8/bits/basic_string.h ****        *
2090:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for a character not
2091:/usr/include/c++/4.8/bits/basic_string.h ****        *  contained in the first @a __n characters of @a __s within
2092:/usr/include/c++/4.8/bits/basic_string.h ****        *  this string.  If found, returns the index where it was
2093:/usr/include/c++/4.8/bits/basic_string.h ****        *  found.  If not found, returns npos.
2094:/usr/include/c++/4.8/bits/basic_string.h ****       */
2095:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2096:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_not_of(const _CharT* __s, size_type __pos,
2097:/usr/include/c++/4.8/bits/basic_string.h **** 			size_type __n) const;
2098:/usr/include/c++/4.8/bits/basic_string.h **** 
2099:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2100:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a character not in C string.
2101:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string containing characters to avoid.
2102:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
2103:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
2104:/usr/include/c++/4.8/bits/basic_string.h ****        *
2105:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for a character not
2106:/usr/include/c++/4.8/bits/basic_string.h ****        *  contained in @a __s within this string.  If found, returns
2107:/usr/include/c++/4.8/bits/basic_string.h ****        *  the index where it was found.  If not found, returns npos.
2108:/usr/include/c++/4.8/bits/basic_string.h ****       */
2109:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2110:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_not_of(const _CharT* __s, size_type __pos = 0) const
2111:/usr/include/c++/4.8/bits/basic_string.h ****       {
2112:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
2113:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->find_first_not_of(__s, __pos, traits_type::length(__s));
2114:/usr/include/c++/4.8/bits/basic_string.h ****       }
2115:/usr/include/c++/4.8/bits/basic_string.h **** 
2116:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2117:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find position of a different character.
2118:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to avoid.
2119:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search from (default 0).
2120:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of first occurrence.
2121:/usr/include/c++/4.8/bits/basic_string.h ****        *
GAS LISTING /tmp/ccev5sD5.s 			page 70


2122:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches forward for a character
2123:/usr/include/c++/4.8/bits/basic_string.h ****        *  other than @a __c within this string.  If found, returns the
2124:/usr/include/c++/4.8/bits/basic_string.h ****        *  index where it was found.  If not found, returns npos.
2125:/usr/include/c++/4.8/bits/basic_string.h ****       */
2126:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2127:/usr/include/c++/4.8/bits/basic_string.h ****       find_first_not_of(_CharT __c, size_type __pos = 0) const
2128:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT;
2129:/usr/include/c++/4.8/bits/basic_string.h **** 
2130:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2131:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character not in string.
2132:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String containing characters to avoid.
2133:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
2134:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2135:/usr/include/c++/4.8/bits/basic_string.h ****        *
2136:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for a character
2137:/usr/include/c++/4.8/bits/basic_string.h ****        *  not contained in @a __str within this string.  If found,
2138:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns the index where it was found.  If not found, returns
2139:/usr/include/c++/4.8/bits/basic_string.h ****        *  npos.
2140:/usr/include/c++/4.8/bits/basic_string.h ****       */
2141:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2142:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_not_of(const basic_string& __str, size_type __pos = npos) const
2143:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT
2144:/usr/include/c++/4.8/bits/basic_string.h ****       { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
2145:/usr/include/c++/4.8/bits/basic_string.h **** 
2146:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2147:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character not in C substring.
2148:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string containing characters to avoid.
2149:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from.
2150:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters from s to consider.
2151:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2152:/usr/include/c++/4.8/bits/basic_string.h ****        *
2153:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for a character not
2154:/usr/include/c++/4.8/bits/basic_string.h ****        *  contained in the first @a __n characters of @a __s within this string.
2155:/usr/include/c++/4.8/bits/basic_string.h ****        *  If found, returns the index where it was found.  If not found,
2156:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns npos.
2157:/usr/include/c++/4.8/bits/basic_string.h ****       */
2158:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2159:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_not_of(const _CharT* __s, size_type __pos,
2160:/usr/include/c++/4.8/bits/basic_string.h **** 		       size_type __n) const;
2161:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2162:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a character not in C string.
2163:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string containing characters to avoid.
2164:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
2165:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2166:/usr/include/c++/4.8/bits/basic_string.h ****        *
2167:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for a character
2168:/usr/include/c++/4.8/bits/basic_string.h ****        *  not contained in @a __s within this string.  If found,
2169:/usr/include/c++/4.8/bits/basic_string.h ****        *  returns the index where it was found.  If not found, returns
2170:/usr/include/c++/4.8/bits/basic_string.h ****        *  npos.
2171:/usr/include/c++/4.8/bits/basic_string.h ****       */
2172:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2173:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_not_of(const _CharT* __s, size_type __pos = npos) const
2174:/usr/include/c++/4.8/bits/basic_string.h ****       {
2175:/usr/include/c++/4.8/bits/basic_string.h **** 	__glibcxx_requires_string(__s);
2176:/usr/include/c++/4.8/bits/basic_string.h **** 	return this->find_last_not_of(__s, __pos, traits_type::length(__s));
2177:/usr/include/c++/4.8/bits/basic_string.h ****       }
2178:/usr/include/c++/4.8/bits/basic_string.h **** 
GAS LISTING /tmp/ccev5sD5.s 			page 71


2179:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2180:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Find last position of a different character.
2181:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __c  Character to avoid.
2182:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of character to search back from (default end).
2183:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Index of last occurrence.
2184:/usr/include/c++/4.8/bits/basic_string.h ****        *
2185:/usr/include/c++/4.8/bits/basic_string.h ****        *  Starting from @a __pos, searches backward for a character other than
2186:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __c within this string.  If found, returns the index where it was
2187:/usr/include/c++/4.8/bits/basic_string.h ****        *  found.  If not found, returns npos.
2188:/usr/include/c++/4.8/bits/basic_string.h ****       */
2189:/usr/include/c++/4.8/bits/basic_string.h ****       size_type
2190:/usr/include/c++/4.8/bits/basic_string.h ****       find_last_not_of(_CharT __c, size_type __pos = npos) const
2191:/usr/include/c++/4.8/bits/basic_string.h **** 	_GLIBCXX_NOEXCEPT;
2192:/usr/include/c++/4.8/bits/basic_string.h **** 
2193:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2194:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Get a substring.
2195:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character (default 0).
2196:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters in substring (default remainder).
2197:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  The new string.
2198:/usr/include/c++/4.8/bits/basic_string.h ****        *  @throw  std::out_of_range  If __pos > size().
2199:/usr/include/c++/4.8/bits/basic_string.h ****        *
2200:/usr/include/c++/4.8/bits/basic_string.h ****        *  Construct and return a new string using the @a __n
2201:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters starting at @a __pos.  If the string is too
2202:/usr/include/c++/4.8/bits/basic_string.h ****        *  short, use the remainder of the characters.  If @a __pos is
2203:/usr/include/c++/4.8/bits/basic_string.h ****        *  beyond the end of the string, out_of_range is thrown.
2204:/usr/include/c++/4.8/bits/basic_string.h ****       */
2205:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string
2206:/usr/include/c++/4.8/bits/basic_string.h ****       substr(size_type __pos = 0, size_type __n = npos) const
2207:/usr/include/c++/4.8/bits/basic_string.h ****       { return basic_string(*this,
2208:/usr/include/c++/4.8/bits/basic_string.h **** 			    _M_check(__pos, "basic_string::substr"), __n); }
2209:/usr/include/c++/4.8/bits/basic_string.h **** 
2210:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2211:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Compare to a string.
2212:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to compare against.
2213:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Integer < 0, 0, or > 0.
2214:/usr/include/c++/4.8/bits/basic_string.h ****        *
2215:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns an integer < 0 if this string is ordered before @a
2216:/usr/include/c++/4.8/bits/basic_string.h ****        *  __str, 0 if their values are equivalent, or > 0 if this
2217:/usr/include/c++/4.8/bits/basic_string.h ****        *  string is ordered after @a __str.  Determines the effective
2218:/usr/include/c++/4.8/bits/basic_string.h ****        *  length rlen of the strings to compare as the smallest of
2219:/usr/include/c++/4.8/bits/basic_string.h ****        *  size() and str.size().  The function then compares the two
2220:/usr/include/c++/4.8/bits/basic_string.h ****        *  strings by calling traits::compare(data(), str.data(),rlen).
2221:/usr/include/c++/4.8/bits/basic_string.h ****        *  If the result of the comparison is nonzero returns it,
2222:/usr/include/c++/4.8/bits/basic_string.h ****        *  otherwise the shorter one is ordered first.
2223:/usr/include/c++/4.8/bits/basic_string.h ****       */
2224:/usr/include/c++/4.8/bits/basic_string.h ****       int
2225:/usr/include/c++/4.8/bits/basic_string.h ****       compare(const basic_string& __str) const
2226:/usr/include/c++/4.8/bits/basic_string.h ****       {
2227:/usr/include/c++/4.8/bits/basic_string.h **** 	const size_type __size = this->size();
2228:/usr/include/c++/4.8/bits/basic_string.h **** 	const size_type __osize = __str.size();
2229:/usr/include/c++/4.8/bits/basic_string.h **** 	const size_type __len = std::min(__size, __osize);
2230:/usr/include/c++/4.8/bits/basic_string.h **** 
2231:/usr/include/c++/4.8/bits/basic_string.h **** 	int __r = traits_type::compare(_M_data(), __str.data(), __len);
2232:/usr/include/c++/4.8/bits/basic_string.h **** 	if (!__r)
2233:/usr/include/c++/4.8/bits/basic_string.h **** 	  __r = _S_compare(__size, __osize);
2234:/usr/include/c++/4.8/bits/basic_string.h **** 	return __r;
2235:/usr/include/c++/4.8/bits/basic_string.h ****       }
GAS LISTING /tmp/ccev5sD5.s 			page 72


2236:/usr/include/c++/4.8/bits/basic_string.h **** 
2237:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2238:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Compare substring to a string.
2239:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character of substring.
2240:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n  Number of characters in substring.
2241:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to compare against.
2242:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Integer < 0, 0, or > 0.
2243:/usr/include/c++/4.8/bits/basic_string.h ****        *
2244:/usr/include/c++/4.8/bits/basic_string.h ****        *  Form the substring of this string from the @a __n characters
2245:/usr/include/c++/4.8/bits/basic_string.h ****        *  starting at @a __pos.  Returns an integer < 0 if the
2246:/usr/include/c++/4.8/bits/basic_string.h ****        *  substring is ordered before @a __str, 0 if their values are
2247:/usr/include/c++/4.8/bits/basic_string.h ****        *  equivalent, or > 0 if the substring is ordered after @a
2248:/usr/include/c++/4.8/bits/basic_string.h ****        *  __str.  Determines the effective length rlen of the strings
2249:/usr/include/c++/4.8/bits/basic_string.h ****        *  to compare as the smallest of the length of the substring
2250:/usr/include/c++/4.8/bits/basic_string.h ****        *  and @a __str.size().  The function then compares the two
2251:/usr/include/c++/4.8/bits/basic_string.h ****        *  strings by calling
2252:/usr/include/c++/4.8/bits/basic_string.h ****        *  traits::compare(substring.data(),str.data(),rlen).  If the
2253:/usr/include/c++/4.8/bits/basic_string.h ****        *  result of the comparison is nonzero returns it, otherwise
2254:/usr/include/c++/4.8/bits/basic_string.h ****        *  the shorter one is ordered first.
2255:/usr/include/c++/4.8/bits/basic_string.h ****       */
2256:/usr/include/c++/4.8/bits/basic_string.h ****       int
2257:/usr/include/c++/4.8/bits/basic_string.h ****       compare(size_type __pos, size_type __n, const basic_string& __str) const;
2258:/usr/include/c++/4.8/bits/basic_string.h **** 
2259:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2260:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Compare substring to a substring.
2261:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos1  Index of first character of substring.
2262:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters in substring.
2263:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __str  String to compare against.
2264:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos2  Index of first character of substring of str.
2265:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n2  Number of characters in substring of str.
2266:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Integer < 0, 0, or > 0.
2267:/usr/include/c++/4.8/bits/basic_string.h ****        *
2268:/usr/include/c++/4.8/bits/basic_string.h ****        *  Form the substring of this string from the @a __n1
2269:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters starting at @a __pos1.  Form the substring of @a
2270:/usr/include/c++/4.8/bits/basic_string.h ****        *  __str from the @a __n2 characters starting at @a __pos2.
2271:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns an integer < 0 if this substring is ordered before
2272:/usr/include/c++/4.8/bits/basic_string.h ****        *  the substring of @a __str, 0 if their values are equivalent,
2273:/usr/include/c++/4.8/bits/basic_string.h ****        *  or > 0 if this substring is ordered after the substring of
2274:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __str.  Determines the effective length rlen of the
2275:/usr/include/c++/4.8/bits/basic_string.h ****        *  strings to compare as the smallest of the lengths of the
2276:/usr/include/c++/4.8/bits/basic_string.h ****        *  substrings.  The function then compares the two strings by
2277:/usr/include/c++/4.8/bits/basic_string.h ****        *  calling
2278:/usr/include/c++/4.8/bits/basic_string.h ****        *  traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen).
2279:/usr/include/c++/4.8/bits/basic_string.h ****        *  If the result of the comparison is nonzero returns it,
2280:/usr/include/c++/4.8/bits/basic_string.h ****        *  otherwise the shorter one is ordered first.
2281:/usr/include/c++/4.8/bits/basic_string.h ****       */
2282:/usr/include/c++/4.8/bits/basic_string.h ****       int
2283:/usr/include/c++/4.8/bits/basic_string.h ****       compare(size_type __pos1, size_type __n1, const basic_string& __str,
2284:/usr/include/c++/4.8/bits/basic_string.h **** 	      size_type __pos2, size_type __n2) const;
2285:/usr/include/c++/4.8/bits/basic_string.h **** 
2286:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2287:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Compare to a C string.
2288:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to compare against.
2289:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Integer < 0, 0, or > 0.
2290:/usr/include/c++/4.8/bits/basic_string.h ****        *
2291:/usr/include/c++/4.8/bits/basic_string.h ****        *  Returns an integer < 0 if this string is ordered before @a __s, 0 if
2292:/usr/include/c++/4.8/bits/basic_string.h ****        *  their values are equivalent, or > 0 if this string is ordered after
GAS LISTING /tmp/ccev5sD5.s 			page 73


2293:/usr/include/c++/4.8/bits/basic_string.h ****        *  @a __s.  Determines the effective length rlen of the strings to
2294:/usr/include/c++/4.8/bits/basic_string.h ****        *  compare as the smallest of size() and the length of a string
2295:/usr/include/c++/4.8/bits/basic_string.h ****        *  constructed from @a __s.  The function then compares the two strings
2296:/usr/include/c++/4.8/bits/basic_string.h ****        *  by calling traits::compare(data(),s,rlen).  If the result of the
2297:/usr/include/c++/4.8/bits/basic_string.h ****        *  comparison is nonzero returns it, otherwise the shorter one is
2298:/usr/include/c++/4.8/bits/basic_string.h ****        *  ordered first.
2299:/usr/include/c++/4.8/bits/basic_string.h ****       */
2300:/usr/include/c++/4.8/bits/basic_string.h ****       int
2301:/usr/include/c++/4.8/bits/basic_string.h ****       compare(const _CharT* __s) const;
2302:/usr/include/c++/4.8/bits/basic_string.h **** 
2303:/usr/include/c++/4.8/bits/basic_string.h ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
2304:/usr/include/c++/4.8/bits/basic_string.h ****       // 5 String::compare specification questionable
2305:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2306:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Compare substring to a C string.
2307:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character of substring.
2308:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters in substring.
2309:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  C string to compare against.
2310:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Integer < 0, 0, or > 0.
2311:/usr/include/c++/4.8/bits/basic_string.h ****        *
2312:/usr/include/c++/4.8/bits/basic_string.h ****        *  Form the substring of this string from the @a __n1
2313:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters starting at @a pos.  Returns an integer < 0 if
2314:/usr/include/c++/4.8/bits/basic_string.h ****        *  the substring is ordered before @a __s, 0 if their values
2315:/usr/include/c++/4.8/bits/basic_string.h ****        *  are equivalent, or > 0 if the substring is ordered after @a
2316:/usr/include/c++/4.8/bits/basic_string.h ****        *  __s.  Determines the effective length rlen of the strings to
2317:/usr/include/c++/4.8/bits/basic_string.h ****        *  compare as the smallest of the length of the substring and
2318:/usr/include/c++/4.8/bits/basic_string.h ****        *  the length of a string constructed from @a __s.  The
2319:/usr/include/c++/4.8/bits/basic_string.h ****        *  function then compares the two string by calling
2320:/usr/include/c++/4.8/bits/basic_string.h ****        *  traits::compare(substring.data(),__s,rlen).  If the result of
2321:/usr/include/c++/4.8/bits/basic_string.h ****        *  the comparison is nonzero returns it, otherwise the shorter
2322:/usr/include/c++/4.8/bits/basic_string.h ****        *  one is ordered first.
2323:/usr/include/c++/4.8/bits/basic_string.h ****       */
2324:/usr/include/c++/4.8/bits/basic_string.h ****       int
2325:/usr/include/c++/4.8/bits/basic_string.h ****       compare(size_type __pos, size_type __n1, const _CharT* __s) const;
2326:/usr/include/c++/4.8/bits/basic_string.h **** 
2327:/usr/include/c++/4.8/bits/basic_string.h ****       /**
2328:/usr/include/c++/4.8/bits/basic_string.h ****        *  @brief  Compare substring against a character %array.
2329:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __pos  Index of first character of substring.
2330:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n1  Number of characters in substring.
2331:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __s  character %array to compare against.
2332:/usr/include/c++/4.8/bits/basic_string.h ****        *  @param __n2  Number of characters of s.
2333:/usr/include/c++/4.8/bits/basic_string.h ****        *  @return  Integer < 0, 0, or > 0.
2334:/usr/include/c++/4.8/bits/basic_string.h ****        *
2335:/usr/include/c++/4.8/bits/basic_string.h ****        *  Form the substring of this string from the @a __n1
2336:/usr/include/c++/4.8/bits/basic_string.h ****        *  characters starting at @a __pos.  Form a string from the
2337:/usr/include/c++/4.8/bits/basic_string.h ****        *  first @a __n2 characters of @a __s.  Returns an integer < 0
2338:/usr/include/c++/4.8/bits/basic_string.h ****        *  if this substring is ordered before the string from @a __s,
2339:/usr/include/c++/4.8/bits/basic_string.h ****        *  0 if their values are equivalent, or > 0 if this substring
2340:/usr/include/c++/4.8/bits/basic_string.h ****        *  is ordered after the string from @a __s.  Determines the
2341:/usr/include/c++/4.8/bits/basic_string.h ****        *  effective length rlen of the strings to compare as the
2342:/usr/include/c++/4.8/bits/basic_string.h ****        *  smallest of the length of the substring and @a __n2.  The
2343:/usr/include/c++/4.8/bits/basic_string.h ****        *  function then compares the two strings by calling
2344:/usr/include/c++/4.8/bits/basic_string.h ****        *  traits::compare(substring.data(),s,rlen).  If the result of
2345:/usr/include/c++/4.8/bits/basic_string.h ****        *  the comparison is nonzero returns it, otherwise the shorter
2346:/usr/include/c++/4.8/bits/basic_string.h ****        *  one is ordered first.
2347:/usr/include/c++/4.8/bits/basic_string.h ****        *
2348:/usr/include/c++/4.8/bits/basic_string.h ****        *  NB: s must have at least n2 characters, &apos;\\0&apos; has
2349:/usr/include/c++/4.8/bits/basic_string.h ****        *  no special meaning.
GAS LISTING /tmp/ccev5sD5.s 			page 74


2350:/usr/include/c++/4.8/bits/basic_string.h ****       */
2351:/usr/include/c++/4.8/bits/basic_string.h ****       int
2352:/usr/include/c++/4.8/bits/basic_string.h ****       compare(size_type __pos, size_type __n1, const _CharT* __s,
2353:/usr/include/c++/4.8/bits/basic_string.h **** 	      size_type __n2) const;
2354:/usr/include/c++/4.8/bits/basic_string.h ****   };
2355:/usr/include/c++/4.8/bits/basic_string.h **** 
2356:/usr/include/c++/4.8/bits/basic_string.h ****   // operator+
2357:/usr/include/c++/4.8/bits/basic_string.h ****   /**
2358:/usr/include/c++/4.8/bits/basic_string.h ****    *  @brief  Concatenate two strings.
2359:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __lhs  First string.
2360:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __rhs  Last string.
2361:/usr/include/c++/4.8/bits/basic_string.h ****    *  @return  New string with value of @a __lhs followed by @a __rhs.
2362:/usr/include/c++/4.8/bits/basic_string.h ****    */
2363:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2364:/usr/include/c++/4.8/bits/basic_string.h ****     basic_string<_CharT, _Traits, _Alloc>
2365:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
2366:/usr/include/c++/4.8/bits/basic_string.h **** 	      const basic_string<_CharT, _Traits, _Alloc>& __rhs)
2367:/usr/include/c++/4.8/bits/basic_string.h ****     {
2368:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
2369:/usr/include/c++/4.8/bits/basic_string.h ****       __str.append(__rhs);
2370:/usr/include/c++/4.8/bits/basic_string.h ****       return __str;
2371:/usr/include/c++/4.8/bits/basic_string.h ****     }
2372:/usr/include/c++/4.8/bits/basic_string.h **** 
2373:/usr/include/c++/4.8/bits/basic_string.h ****   /**
2374:/usr/include/c++/4.8/bits/basic_string.h ****    *  @brief  Concatenate C string and string.
2375:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __lhs  First string.
2376:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __rhs  Last string.
2377:/usr/include/c++/4.8/bits/basic_string.h ****    *  @return  New string with value of @a __lhs followed by @a __rhs.
2378:/usr/include/c++/4.8/bits/basic_string.h ****    */
2379:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2380:/usr/include/c++/4.8/bits/basic_string.h ****     basic_string<_CharT,_Traits,_Alloc>
2381:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(const _CharT* __lhs,
2382:/usr/include/c++/4.8/bits/basic_string.h **** 	      const basic_string<_CharT,_Traits,_Alloc>& __rhs);
2383:/usr/include/c++/4.8/bits/basic_string.h **** 
2384:/usr/include/c++/4.8/bits/basic_string.h ****   /**
2385:/usr/include/c++/4.8/bits/basic_string.h ****    *  @brief  Concatenate character and string.
2386:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __lhs  First string.
2387:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __rhs  Last string.
2388:/usr/include/c++/4.8/bits/basic_string.h ****    *  @return  New string with @a __lhs followed by @a __rhs.
2389:/usr/include/c++/4.8/bits/basic_string.h ****    */
2390:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2391:/usr/include/c++/4.8/bits/basic_string.h ****     basic_string<_CharT,_Traits,_Alloc>
2392:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
2393:/usr/include/c++/4.8/bits/basic_string.h **** 
2394:/usr/include/c++/4.8/bits/basic_string.h ****   /**
2395:/usr/include/c++/4.8/bits/basic_string.h ****    *  @brief  Concatenate string and C string.
2396:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __lhs  First string.
2397:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __rhs  Last string.
2398:/usr/include/c++/4.8/bits/basic_string.h ****    *  @return  New string with @a __lhs followed by @a __rhs.
2399:/usr/include/c++/4.8/bits/basic_string.h ****    */
2400:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2401:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2402:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
2403:/usr/include/c++/4.8/bits/basic_string.h **** 	     const _CharT* __rhs)
2404:/usr/include/c++/4.8/bits/basic_string.h ****     {
2405:/usr/include/c++/4.8/bits/basic_string.h ****       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
2406:/usr/include/c++/4.8/bits/basic_string.h ****       __str.append(__rhs);
GAS LISTING /tmp/ccev5sD5.s 			page 75


2407:/usr/include/c++/4.8/bits/basic_string.h ****       return __str;
2408:/usr/include/c++/4.8/bits/basic_string.h ****     }
2409:/usr/include/c++/4.8/bits/basic_string.h **** 
2410:/usr/include/c++/4.8/bits/basic_string.h ****   /**
2411:/usr/include/c++/4.8/bits/basic_string.h ****    *  @brief  Concatenate string and character.
2412:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __lhs  First string.
2413:/usr/include/c++/4.8/bits/basic_string.h ****    *  @param __rhs  Last string.
2414:/usr/include/c++/4.8/bits/basic_string.h ****    *  @return  New string with @a __lhs followed by @a __rhs.
2415:/usr/include/c++/4.8/bits/basic_string.h ****    */
2416:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2417:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2418:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
2419:/usr/include/c++/4.8/bits/basic_string.h ****     {
2420:/usr/include/c++/4.8/bits/basic_string.h ****       typedef basic_string<_CharT, _Traits, _Alloc>	__string_type;
2421:/usr/include/c++/4.8/bits/basic_string.h ****       typedef typename __string_type::size_type		__size_type;
2422:/usr/include/c++/4.8/bits/basic_string.h ****       __string_type __str(__lhs);
2423:/usr/include/c++/4.8/bits/basic_string.h ****       __str.append(__size_type(1), __rhs);
2424:/usr/include/c++/4.8/bits/basic_string.h ****       return __str;
2425:/usr/include/c++/4.8/bits/basic_string.h ****     }
2426:/usr/include/c++/4.8/bits/basic_string.h **** 
2427:/usr/include/c++/4.8/bits/basic_string.h **** #if __cplusplus >= 201103L
2428:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2429:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2430:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
2431:/usr/include/c++/4.8/bits/basic_string.h **** 	      const basic_string<_CharT, _Traits, _Alloc>& __rhs)
2432:/usr/include/c++/4.8/bits/basic_string.h ****     { return std::move(__lhs.append(__rhs)); }
2433:/usr/include/c++/4.8/bits/basic_string.h **** 
2434:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2435:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2436:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
2437:/usr/include/c++/4.8/bits/basic_string.h **** 	      basic_string<_CharT, _Traits, _Alloc>&& __rhs)
2438:/usr/include/c++/4.8/bits/basic_string.h ****     { return std::move(__rhs.insert(0, __lhs)); }
2439:/usr/include/c++/4.8/bits/basic_string.h **** 
2440:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2441:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2442:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
2443:/usr/include/c++/4.8/bits/basic_string.h **** 	      basic_string<_CharT, _Traits, _Alloc>&& __rhs)
2444:/usr/include/c++/4.8/bits/basic_string.h ****     {
2445:/usr/include/c++/4.8/bits/basic_string.h ****       const auto __size = __lhs.size() + __rhs.size();
2446:/usr/include/c++/4.8/bits/basic_string.h ****       const bool __cond = (__size > __lhs.capacity()
2447:/usr/include/c++/4.8/bits/basic_string.h **** 			   && __size <= __rhs.capacity());
2448:/usr/include/c++/4.8/bits/basic_string.h ****       return __cond ? std::move(__rhs.insert(0, __lhs))
2449:/usr/include/c++/4.8/bits/basic_string.h **** 	            : std::move(__lhs.append(__rhs));
2450:/usr/include/c++/4.8/bits/basic_string.h ****     }
2451:/usr/include/c++/4.8/bits/basic_string.h **** 
2452:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2453:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2454:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(const _CharT* __lhs,
2455:/usr/include/c++/4.8/bits/basic_string.h **** 	      basic_string<_CharT, _Traits, _Alloc>&& __rhs)
2456:/usr/include/c++/4.8/bits/basic_string.h ****     { return std::move(__rhs.insert(0, __lhs)); }
2457:/usr/include/c++/4.8/bits/basic_string.h **** 
2458:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2459:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2460:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(_CharT __lhs,
2461:/usr/include/c++/4.8/bits/basic_string.h **** 	      basic_string<_CharT, _Traits, _Alloc>&& __rhs)
2462:/usr/include/c++/4.8/bits/basic_string.h ****     { return std::move(__rhs.insert(0, 1, __lhs)); }
2463:/usr/include/c++/4.8/bits/basic_string.h **** 
GAS LISTING /tmp/ccev5sD5.s 			page 76


2464:/usr/include/c++/4.8/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
2465:/usr/include/c++/4.8/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
2466:/usr/include/c++/4.8/bits/basic_string.h ****     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
 516              		.loc 7 2466 0
 517              		.cfi_startproc
 518              	.LVL55:
 519 0000 53       		pushq	%rbx
 520              		.cfi_def_cfa_offset 16
 521              		.cfi_offset 3, -16
 522 0001 4889FB   		movq	%rdi, %rbx
 523 0004 4889F7   		movq	%rsi, %rdi
 524              	.LVL56:
2467:/usr/include/c++/4.8/bits/basic_string.h **** 	      const _CharT* __rhs)
2468:/usr/include/c++/4.8/bits/basic_string.h ****     { return std::move(__lhs.append(__rhs)); }
 525              		.loc 7 2468 0
 526 0007 4889D6   		movq	%rdx, %rsi
 527              	.LVL57:
 528 000a E8000000 		call	_ZNSs6appendEPKc
 528      00
 529              	.LVL58:
 530 000f 4889C7   		movq	%rax, %rdi
 531 0012 E8000000 		call	_ZSt4moveIRSsEONSt16remove_referenceIT_E4typeEOS2_
 531      00
 532              	.LVL59:
 533 0017 4889C6   		movq	%rax, %rsi
 534 001a 4889DF   		movq	%rbx, %rdi
 535 001d E8000000 		call	_ZNSsC1EOSs
 535      00
 536              	.LVL60:
 537 0022 4889D8   		movq	%rbx, %rax
 538 0025 5B       		popq	%rbx
 539              		.cfi_def_cfa_offset 8
 540              	.LVL61:
 541 0026 C3       		ret
 542              		.cfi_endproc
 543              	.LFE1315:
 545              		.section	.rodata.str1.1
 546              	.LC1:
 547 001b 4D794578 		.string	"MyExceptionA("
 547      63657074 
 547      696F6E41 
 547      2800
 548              	.LC2:
 549 0029 2900     		.string	")"
 550              		.text
 551              		.align 2
 552              		.globl	_ZNK12MyExceptionA9as_stringEv
 554              	_ZNK12MyExceptionA9as_stringEv:
 555              	.LFB1251:
  29:hello-exceptions.cpp ****     return "MyExceptionA(" + _what + ")";
 556              		.loc 1 29 0
 557              		.cfi_startproc
 558              		.cfi_personality 0x3,__gxx_personality_v0
 559              		.cfi_lsda 0x3,.LLSDA1251
 560              	.LVL62:
 561 014e 53       		pushq	%rbx
 562              		.cfi_def_cfa_offset 16
GAS LISTING /tmp/ccev5sD5.s 			page 77


 563              		.cfi_offset 3, -16
 564 014f 4883EC10 		subq	$16, %rsp
 565              		.cfi_def_cfa_offset 32
 566 0153 4889FB   		movq	%rdi, %rbx
  30:hello-exceptions.cpp **** }
 567              		.loc 1 30 0
 568 0156 488D5608 		leaq	8(%rsi), %rdx
 569 015a BE000000 		movl	$.LC1, %esi
 569      00
 570              	.LVL63:
 571 015f 4889E7   		movq	%rsp, %rdi
 572              	.LVL64:
 573              	.LEHB7:
 574 0162 E8000000 		call	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 574      00
 575              	.LEHE7:
 576              	.LVL65:
 577 0167 BA000000 		movl	$.LC2, %edx
 577      00
 578 016c 4889E6   		movq	%rsp, %rsi
 579 016f 4889DF   		movq	%rbx, %rdi
 580              	.LEHB8:
 581 0172 E8000000 		call	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_
 581      00
 582              	.LEHE8:
 583              	.LVL66:
 584 0177 EB13     		jmp	.L41
 585              	.L39:
 586 0179 4889C3   		movq	%rax, %rbx
 587              	.LVL67:
 588 017c 4889E7   		movq	%rsp, %rdi
 589 017f E8000000 		call	_ZNSsD1Ev
 589      00
 590              	.LVL68:
 591 0184 4889DF   		movq	%rbx, %rdi
 592              	.LEHB9:
 593 0187 E8000000 		call	_Unwind_Resume
 593      00
 594              	.LEHE9:
 595              	.LVL69:
 596              	.L41:
  30:hello-exceptions.cpp **** }
 597              		.loc 1 30 0 is_stmt 0 discriminator 2
 598 018c 4889E7   		movq	%rsp, %rdi
 599 018f E8000000 		call	_ZNSsD1Ev
 599      00
 600              	.LVL70:
  31:hello-exceptions.cpp **** 
 601              		.loc 1 31 0 is_stmt 1 discriminator 2
 602 0194 4889D8   		movq	%rbx, %rax
 603 0197 4883C410 		addq	$16, %rsp
 604              		.cfi_def_cfa_offset 16
 605 019b 5B       		popq	%rbx
 606              		.cfi_def_cfa_offset 8
 607              	.LVL71:
 608 019c C3       		ret
 609              		.cfi_endproc
GAS LISTING /tmp/ccev5sD5.s 			page 78


 610              	.LFE1251:
 611              		.section	.gcc_except_table
 612              	.LLSDA1251:
 613 0042 FF       		.byte	0xff
 614 0043 FF       		.byte	0xff
 615 0044 01       		.byte	0x1
 616 0045 0C       		.uleb128 .LLSDACSE1251-.LLSDACSB1251
 617              	.LLSDACSB1251:
 618 0046 14       		.uleb128 .LEHB7-.LFB1251
 619 0047 05       		.uleb128 .LEHE7-.LEHB7
 620 0048 00       		.uleb128 0
 621 0049 00       		.uleb128 0
 622 004a 24       		.uleb128 .LEHB8-.LFB1251
 623 004b 05       		.uleb128 .LEHE8-.LEHB8
 624 004c 2B       		.uleb128 .L39-.LFB1251
 625 004d 00       		.uleb128 0
 626 004e 39       		.uleb128 .LEHB9-.LFB1251
 627 004f 05       		.uleb128 .LEHE9-.LEHB9
 628 0050 00       		.uleb128 0
 629 0051 00       		.uleb128 0
 630              	.LLSDACSE1251:
 631              		.text
 633              		.section	.rodata.str1.1
 634              	.LC3:
 635 002b 476F7420 		.string	"Got exception: "
 635      65786365 
 635      7074696F 
 635      6E3A2000 
 636              		.text
 637              		.globl	_Z15helloExceptionsv
 639              	_Z15helloExceptionsv:
 640              	.LFB1259:
  42:hello-exceptions.cpp ****     try {
 641              		.loc 1 42 0
 642              		.cfi_startproc
 643              		.cfi_personality 0x3,__gxx_personality_v0
 644              		.cfi_lsda 0x3,.LLSDA1259
 645 019d 53       		pushq	%rbx
 646              		.cfi_def_cfa_offset 16
 647              		.cfi_offset 3, -16
 648 019e 4883EC10 		subq	$16, %rsp
 649              		.cfi_def_cfa_offset 32
 650              	.LBB6:
  44:hello-exceptions.cpp ****     } catch (MyExceptionA &e) {
 651              		.loc 1 44 0
 652 01a2 BFFEFFFF 		movl	$-2, %edi
 652      FF
 653              	.LEHB10:
 654 01a7 E8000000 		call	_Z9take_halfi
 654      00
 655              	.LEHE10:
 656              	.LVL72:
 657 01ac EB6F     		jmp	.L43
 658              	.LVL73:
 659              	.L52:
 660 01ae 4889C3   		movq	%rax, %rbx
 661              	.LBB7:
GAS LISTING /tmp/ccev5sD5.s 			page 79


  46:hello-exceptions.cpp ****     }
 662              		.loc 1 46 0
 663 01b1 4889E7   		movq	%rsp, %rdi
 664 01b4 E8000000 		call	_ZNSsD1Ev
 664      00
 665              	.LVL74:
 666              		.p2align 4,,2
 667 01b9 EB03     		jmp	.L45
 668              	.L51:
 669 01bb 4889C3   		movq	%rax, %rbx
 670              	.L45:
  45:hello-exceptions.cpp ****         cout << "Got exception: " << e.as_string() << endl;
 671              		.loc 1 45 0
 672 01be E8000000 		call	__cxa_end_catch
 672      00
 673              	.LVL75:
 674 01c3 4889DF   		movq	%rbx, %rdi
 675              	.LEHB11:
 676 01c6 E8000000 		call	_Unwind_Resume
 676      00
 677              	.LVL76:
 678              	.L50:
 679 01cb 4889C7   		movq	%rax, %rdi
 680 01ce 4883FA01 		cmpq	$1, %rdx
 681 01d2 7405     		je	.L48
 682 01d4 E8000000 		call	_Unwind_Resume
 682      00
 683              	.LEHE11:
 684              	.LVL77:
 685              	.L48:
 686 01d9 E8000000 		call	__cxa_begin_catch
 686      00
 687              	.LVL78:
  46:hello-exceptions.cpp ****     }
 688              		.loc 1 46 0
 689 01de 4889C6   		movq	%rax, %rsi
 690 01e1 4889E7   		movq	%rsp, %rdi
 691              	.LEHB12:
 692 01e4 E8000000 		call	_ZNK12MyExceptionA9as_stringEv
 692      00
 693              	.LEHE12:
 694              	.LVL79:
  46:hello-exceptions.cpp ****     }
 695              		.loc 1 46 0 is_stmt 0 discriminator 1
 696 01e9 BE000000 		movl	$.LC3, %esi
 696      00
 697 01ee BF000000 		movl	$_ZSt4cout, %edi
 697      00
 698              	.LEHB13:
 699 01f3 E8000000 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 699      00
 700              	.LVL80:
 701 01f8 4889E6   		movq	%rsp, %rsi
 702 01fb 4889C7   		movq	%rax, %rdi
 703 01fe E8000000 		call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
 703      00
 704              	.LVL81:
GAS LISTING /tmp/ccev5sD5.s 			page 80


 705 0203 BE000000 		movl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_, %esi
 705      00
 706 0208 4889C7   		movq	%rax, %rdi
 707 020b E8000000 		call	_ZNSolsEPFRSoS_E
 707      00
 708              	.LEHE13:
 709              	.LVL82:
 710 0210 4889E7   		movq	%rsp, %rdi
 711 0213 E8000000 		call	_ZNSsD1Ev
 711      00
 712              	.LVL83:
  45:hello-exceptions.cpp ****         cout << "Got exception: " << e.as_string() << endl;
 713              		.loc 1 45 0 is_stmt 1 discriminator 1
 714 0218 E8000000 		call	__cxa_end_catch
 714      00
 715              	.LVL84:
 716              	.L43:
 717              	.LBE7:
 718              	.LBE6:
 719              		.loc 1 48 0
 720 021d 4883C410 		addq	$16, %rsp
 721              		.cfi_def_cfa_offset 16
 722 0221 5B       		popq	%rbx
 723              		.cfi_def_cfa_offset 8
 724 0222 C3       		ret
 725              		.cfi_endproc
 726              	.LFE1259:
 727              		.section	.gcc_except_table
 728 0052 0000     		.align 4
 729              	.LLSDA1259:
 730 0054 FF       		.byte	0xff
 731 0055 03       		.byte	0x3
 732 0056 19       		.uleb128 .LLSDATT1259-.LLSDATTD1259
 733              	.LLSDATTD1259:
 734 0057 01       		.byte	0x1
 735 0058 10       		.uleb128 .LLSDACSE1259-.LLSDACSB1259
 736              	.LLSDACSB1259:
 737 0059 0A       		.uleb128 .LEHB10-.LFB1259
 738 005a 05       		.uleb128 .LEHE10-.LEHB10
 739 005b 2E       		.uleb128 .L50-.LFB1259
 740 005c 01       		.uleb128 0x1
 741 005d 29       		.uleb128 .LEHB11-.LFB1259
 742 005e 13       		.uleb128 .LEHE11-.LEHB11
 743 005f 00       		.uleb128 0
 744 0060 00       		.uleb128 0
 745 0061 47       		.uleb128 .LEHB12-.LFB1259
 746 0062 05       		.uleb128 .LEHE12-.LEHB12
 747 0063 1E       		.uleb128 .L51-.LFB1259
 748 0064 00       		.uleb128 0
 749 0065 56       		.uleb128 .LEHB13-.LFB1259
 750 0066 1D       		.uleb128 .LEHE13-.LEHB13
 751 0067 11       		.uleb128 .L52-.LFB1259
 752 0068 00       		.uleb128 0
 753              	.LLSDACSE1259:
 754 0069 01       		.byte	0x1
 755 006a 00       		.byte	0
 756 006b 00       		.align 4
GAS LISTING /tmp/ccev5sD5.s 			page 81


 757 006c 00000000 		.long	_ZTI12MyExceptionA
 758              	.LLSDATT1259:
 759              		.text
 762              	_GLOBAL__sub_I__ZN12MyExceptionAC2ESs:
 763              	.LFB1424:
 764              		.loc 1 48 0
 765              		.cfi_startproc
 766 0223 4883EC08 		subq	$8, %rsp
 767              		.cfi_def_cfa_offset 16
 768              		.loc 1 48 0
 769 0227 BEFFFF00 		movl	$65535, %esi
 769      00
 770 022c BF010000 		movl	$1, %edi
 770      00
 771 0231 E80DFEFF 		call	_Z41__static_initialization_and_destruction_0ii
 771      FF
 772              	.LVL85:
 773 0236 4883C408 		addq	$8, %rsp
 774              		.cfi_def_cfa_offset 8
 775 023a C3       		ret
 776              		.cfi_endproc
 777              	.LFE1424:
 779              		.section	.init_array,"aw"
 780              		.align 8
 781 0000 00000000 		.quad	_GLOBAL__sub_I__ZN12MyExceptionAC2ESs
 781      00000000 
 782              		.weak	_ZTS12MyExceptionA
 783              		.section	.rodata._ZTS12MyExceptionA,"aG",@progbits,_ZTS12MyExceptionA,comdat
 786              	_ZTS12MyExceptionA:
 787 0000 31324D79 		.string	"12MyExceptionA"
 787      45786365 
 787      7074696F 
 787      6E4100
 788              		.weak	_ZTI12MyExceptionA
 789              		.section	.rodata._ZTI12MyExceptionA,"aG",@progbits,_ZTI12MyExceptionA,comdat
 790              		.align 16
 793              	_ZTI12MyExceptionA:
 794 0000 00000000 		.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
 794      00000000 
 795 0008 00000000 		.quad	_ZTS12MyExceptionA
 795      00000000 
 796 0010 00000000 		.quad	_ZTISt9exception
 796      00000000 
 797              		.weak	_ZTV12MyExceptionA
 798              		.section	.rodata._ZTV12MyExceptionA,"aG",@progbits,_ZTV12MyExceptionA,comdat
 799              		.align 32
 802              	_ZTV12MyExceptionA:
 803 0000 00000000 		.quad	0
 803      00000000 
 804 0008 00000000 		.quad	_ZTI12MyExceptionA
 804      00000000 
 805 0010 00000000 		.quad	_ZN12MyExceptionAD1Ev
 805      00000000 
 806 0018 00000000 		.quad	_ZN12MyExceptionAD0Ev
 806      00000000 
 807 0020 00000000 		.quad	_ZNK12MyExceptionA4whatEv
 807      00000000 
GAS LISTING /tmp/ccev5sD5.s 			page 82


 808              		.local	_ZStL8__ioinit
 809              		.comm	_ZStL8__ioinit,1,1
 810              		.text
 811              	.Letext0:
 812              		.file 8 "/usr/include/c++/4.8/bits/exception_ptr.h"
 813              		.file 9 "/usr/include/c++/4.8/cwchar"
 814              		.file 10 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h"
 815              		.file 11 "/usr/include/c++/4.8/cstdint"
 816              		.file 12 "/usr/include/c++/4.8/bits/allocator.h"
 817              		.file 13 "/usr/include/c++/4.8/clocale"
 818              		.file 14 "/usr/include/c++/4.8/cstdlib"
 819              		.file 15 "/usr/include/c++/4.8/cstdio"
 820              		.file 16 "/usr/include/c++/4.8/initializer_list"
 821              		.file 17 "/usr/include/c++/4.8/bits/stringfwd.h"
 822              		.file 18 "/usr/include/c++/4.8/bits/ios_base.h"
 823              		.file 19 "/usr/include/c++/4.8/cwctype"
 824              		.file 20 "/usr/include/c++/4.8/ostream"
 825              		.file 21 "/usr/include/c++/4.8/type_traits"
 826              		.file 22 "/usr/include/c++/4.8/bits/stl_iterator_base_types.h"
 827              		.file 23 "/usr/include/c++/4.8/iosfwd"
 828              		.file 24 "/usr/include/c++/4.8/ext/new_allocator.h"
 829              		.file 25 "/usr/include/c++/4.8/ext/numeric_traits.h"
 830              		.file 26 "/usr/include/c++/4.8/bits/stl_iterator.h"
 831              		.file 27 "/usr/include/c++/4.8/debug/debug.h"
 832              		.file 28 "/usr/include/stdio.h"
 833              		.file 29 "/usr/include/libio.h"
 834              		.file 30 "<built-in>"
 835              		.file 31 "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h"
 836              		.file 32 "/usr/include/wchar.h"
 837              		.file 33 "/usr/include/x86_64-linux-gnu/bits/wchar2.h"
 838              		.file 34 "/usr/include/time.h"
 839              		.file 35 "/usr/include/stdint.h"
 840              		.file 36 "/usr/include/locale.h"
 841              		.file 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
 842              		.file 38 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/atomic_word.h"
 843              		.file 39 "/usr/include/stdlib.h"
 844              		.file 40 "/usr/include/x86_64-linux-gnu/bits/stdlib.h"
 845              		.file 41 "/usr/include/_G_config.h"
 846              		.file 42 "/usr/include/x86_64-linux-gnu/bits/stdio2.h"
 847              		.file 43 "/usr/include/wctype.h"
 848              		.file 44 "/usr/include/c++/4.8/new"
 849              		.file 45 "/usr/include/c++/4.8/bits/stl_pair.h"
GAS LISTING /tmp/ccev5sD5.s 			page 83


DEFINED SYMBOLS
                            *ABS*:0000000000000000 hello-exceptions.cpp
     /tmp/ccev5sD5.s:7      .text:0000000000000000 _ZNK12MyExceptionA4whatEv
     /tmp/ccev5sD5.s:30     .text:0000000000000012 _ZN12MyExceptionAD2Ev
     /tmp/ccev5sD5.s:802    .rodata._ZTV12MyExceptionA:0000000000000000 _ZTV12MyExceptionA
     /tmp/ccev5sD5.s:30     .text:0000000000000012 _ZN12MyExceptionAD1Ev
     /tmp/ccev5sD5.s:63     .text:0000000000000030 _ZN12MyExceptionAD0Ev
     /tmp/ccev5sD5.s:86     .text:0000000000000043 _Z41__static_initialization_and_destruction_0ii
                             .bss:0000000000000000 _ZStL8__ioinit
     /tmp/ccev5sD5.s:122    .text._ZNSt9exceptionC2Ev:0000000000000000 _ZNSt9exceptionC2Ev
     /tmp/ccev5sD5.s:122    .text._ZNSt9exceptionC2Ev:0000000000000000 _ZNSt9exceptionC1Ev
     /tmp/ccev5sD5.s:141    .text._ZNSt11char_traitsIcE6lengthEPKc:0000000000000000 _ZNSt11char_traitsIcE6lengthEPKc
     /tmp/ccev5sD5.s:162    .text:0000000000000078 _ZN12MyExceptionAC2ESs
     /tmp/ccev5sD5.s:162    .text:0000000000000078 _ZN12MyExceptionAC1ESs
     /tmp/ccev5sD5.s:262    .text:00000000000000c5 _Z9take_halfi
     /tmp/ccev5sD5.s:793    .rodata._ZTI12MyExceptionA:0000000000000000 _ZTI12MyExceptionA
     /tmp/ccev5sD5.s:386    .text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_:0000000000000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
     /tmp/ccev5sD5.s:498    .text._ZSt4moveIRSsEONSt16remove_referenceIT_E4typeEOS2_:0000000000000000 _ZSt4moveIRSsEONSt16remove_referenceIT_E4typeEOS2_
     /tmp/ccev5sD5.s:513    .text._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_:0000000000000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EOS6_PKS3_
     /tmp/ccev5sD5.s:554    .text:000000000000014e _ZNK12MyExceptionA9as_stringEv
     /tmp/ccev5sD5.s:639    .text:000000000000019d _Z15helloExceptionsv
     /tmp/ccev5sD5.s:762    .text:0000000000000223 _GLOBAL__sub_I__ZN12MyExceptionAC2ESs
     /tmp/ccev5sD5.s:786    .rodata._ZTS12MyExceptionA:0000000000000000 _ZTS12MyExceptionA
                           .group:0000000000000000 _ZNSt9exceptionC5Ev

UNDEFINED SYMBOLS
_ZNKSs5c_strEv
_ZNSsD1Ev
_ZNSt9exceptionD2Ev
_ZdlPv
_ZNSt8ios_base4InitC1Ev
__dso_handle
_ZNSt8ios_base4InitD1Ev
__cxa_atexit
_ZTVSt9exception
__gxx_personality_v0
_ZNSsC1ERKSs
_Unwind_Resume
__cxa_call_unexpected
__cxa_allocate_exception
_ZNSsC1EPKcRKSaIcE
__cxa_throw
__cxa_free_exception
_ZNSsC1Ev
_ZNKSs4sizeEv
_ZNSs7reserveEm
_ZNSs6appendEPKcm
_ZNSs6appendERKSs
_ZNSs6appendEPKc
_ZNSsC1EOSs
__cxa_end_catch
__cxa_begin_catch
_ZSt4cout
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
_ZNSolsEPFRSoS_E
GAS LISTING /tmp/ccev5sD5.s 			page 84


_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTISt9exception