GAS LISTING /tmp/ccJ9xNSW.s 			page 1


   1              		.file	"hello-exceptions.cc"
   2              		.file 1 "hello-exceptions.cc"
  10              	.Ltext0:
  11              		.file 2 "/usr/include/xlocale.h"
  12              		.file 3 "/usr/include/gconv.h"
  13              		.file 4 "/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include/stddef.h"
  14              		.file 5 "/usr/include/wchar.h"
  15              		.file 6 "/usr/include/libio.h"
  16              		.file 7 "/usr/include/_G_config.h"
  17              		.file 8 "/usr/include/bits/types.h"
  18              		.file 9 "/usr/include/time.h"
  19              		.file 10 "/usr/include/bits/sched.h"
  20              		.file 11 "/usr/include/bits/pthreadtypes.h"
  21              		.file 12 "/usr/include/pthread.h"
  22              		.file 13 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/c++io.h"
  23              		.file 14 "/usr/include/c++/3.2.2/bits/char_traits.h"
  24              		.file 15 "/usr/include/c++/3.2.2/bits/fpos.h"
  25              		.file 16 "/usr/include/bits/waitstatus.h"
  26              		.file 17 "/usr/include/bits/time.h"
  27              		.file 18 "/usr/include/stdlib.h"
  28              		.file 19 "/usr/include/sys/types.h"
  29              		.file 20 "/usr/include/c++/3.2.2/new"
  30              		.file 21 "/usr/include/c++/3.2.2/bits/type_traits.h"
  31              		.file 22 "/usr/include/c++/3.2.2/bits/stl_iterator_base_types.h"
  32              		.file 23 "/usr/include/c++/3.2.2/bits/stl_threads.h"
  33              		.file 24 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/gthr-default.h"
  34              		.file 25 "/usr/include/c++/3.2.2/bits/stl_alloc.h"
  35              		.file 26 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/atomicity.h"
  36              		.file 27 "/usr/include/c++/3.2.2/bits/stringfwd.h"
  37              		.file 28 "/usr/include/c++/3.2.2/bits/basic_string.h"
  38              		.file 29 "/usr/include/c++/3.2.2/bits/basic_string.tcc"
  39              		.file 30 "/usr/include/locale.h"
  40              		.file 31 "/usr/include/c++/3.2.2/bits/localefwd.h"
  41              		.file 32 "/usr/include/c++/3.2.2/bits/ios_base.h"
  42              		.file 33 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/ctype_base.h"
  43              		.file 34 "/usr/include/c++/3.2.2/bits/codecvt.h"
  44              		.file 35 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/codecvt_specializations.h"
  45              		.file 36 "/usr/include/iconv.h"
  46              		.file 37 "/usr/include/c++/3.2.2/bits/locale_facets.h"
  47              		.file 38 "/usr/include/math.h"
  48              		.file 39 "/usr/include/c++/3.2.2/limits"
  49              		.file 40 "/usr/include/c++/3.2.2/ostream"
  50              		.file 41 "/usr/include/c++/3.2.2/bits/ostream.tcc"
  51              		.file 42 "/usr/include/c++/3.2.2/istream"
  52              		.file 43 "/usr/include/c++/3.2.2/bits/istream.tcc"
  53              		.local	_ZSt8__ioinit
  54              		.comm	_ZSt8__ioinit,1,1
  55              	.globl _Unwind_Resume
  56              		.align 2
  57              	.globl _ZN11MyExceptionC2ESs
  59              	_ZN11MyExceptionC2ESs:
  60              	.LFB1480:
   1:hello-exceptions.cc **** #include <exception>
   2:hello-exceptions.cc **** #include <string>
   3:hello-exceptions.cc **** #include <iostream>
   4:hello-exceptions.cc **** 
   5:hello-exceptions.cc **** using namespace std;
GAS LISTING /tmp/ccJ9xNSW.s 			page 2


   6:hello-exceptions.cc **** 
   7:hello-exceptions.cc **** class MyException : public exception {
   8:hello-exceptions.cc ****   private:
   9:hello-exceptions.cc ****     string _what;
  10:hello-exceptions.cc ****   public:
  11:hello-exceptions.cc ****     MyException(string what) throw ();
  12:hello-exceptions.cc ****     ~MyException() throw ();
  13:hello-exceptions.cc **** 
  14:hello-exceptions.cc ****     virtual const char *what() const throw ();
  15:hello-exceptions.cc ****     string as_string() const;
  16:hello-exceptions.cc **** };
  17:hello-exceptions.cc **** 
  18:hello-exceptions.cc **** MyException::MyException(string what) throw ():
  61              		.loc 1 18 0
  62 0000 55       		pushl	%ebp
  63              	.LCFI0:
  64 0001 89E5     		movl	%esp, %ebp
  65              	.LCFI1:
  66 0003 56       		pushl	%esi
  67              	.LCFI2:
  68 0004 53       		pushl	%ebx
  69              	.LCFI3:
  70 0005 83EC10   		subl	$16, %esp
  71              	.LCFI4:
  72 0008 8B5D0C   		movl	12(%ebp), %ebx
  73              	.LBB2:
  19:hello-exceptions.cc ****     _what(what)
  20:hello-exceptions.cc **** {}
  74              		.loc 1 20 0
  75 000b 83EC0C   		subl	$12, %esp
  76 000e FF7508   		pushl	8(%ebp)
  77              	.LCFI5:
  78 0011 E8FCFFFF 		call	_ZNSt9exceptionC2Ev
  78      FF
  79 0016 83C410   		addl	$16, %esp
  80 0019 8B4508   		movl	8(%ebp), %eax
  81 001c C7000800 		movl	$_ZTV11MyException+8, (%eax)
  81      0000
  82 0022 83EC08   		subl	$8, %esp
  83 0025 53       		pushl	%ebx
  84 0026 8B4508   		movl	8(%ebp), %eax
  85 0029 83C004   		addl	$4, %eax
  86 002c 50       		pushl	%eax
  87              	.LEHB0:
  88 002d E8FCFFFF 		call	_ZNSsC1ERKSs
  88      FF
  89              	.LEHE0:
  90 0032 83C410   		addl	$16, %esp
  91              	.LBE2:
  92 0035 EB3C     		jmp	.L1
  93              	.L13:
  94 0037 8945F4   		movl	%eax, -12(%ebp)
  95 003a 8955F0   		movl	%edx, -16(%ebp)
  96 003d 8B5DF4   		movl	-12(%ebp), %ebx
  97 0040 8B75F0   		movl	-16(%ebp), %esi
  98 0043 83EC0C   		subl	$12, %esp
  99 0046 FF7508   		pushl	8(%ebp)
GAS LISTING /tmp/ccJ9xNSW.s 			page 3


 100 0049 E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 100      FF
 101 004e 83C410   		addl	$16, %esp
 102 0051 895DF4   		movl	%ebx, -12(%ebp)
 103 0054 8975F0   		movl	%esi, -16(%ebp)
 104              	.L14:
 105 0057 837DF0FF 		cmpl	$-1, -16(%ebp)
 106 005b 740B     		je	.L10
 107 005d 83EC0C   		subl	$12, %esp
 108 0060 FF75F4   		pushl	-12(%ebp)
 109              	.LEHB1:
 110 0063 E8FCFFFF 		call	_Unwind_Resume
 110      FF
 111              	.L10:
 112 0068 83EC0C   		subl	$12, %esp
 113 006b FF75F4   		pushl	-12(%ebp)
 114 006e E8FCFFFF 		call	__cxa_call_unexpected
 114      FF
 115              	.LEHE1:
 116              	.L1:
 117 0073 8D65F8   		leal	-8(%ebp), %esp
 118 0076 5B       		popl	%ebx
 119 0077 5E       		popl	%esi
 120 0078 C9       		leave
 121 0079 C3       		ret
 122              	.LFE1480:
 123              	.Lfe1:
 125              		.section	.gcc_except_table,"a",@progbits
 126              		.align 4
 127              	.LLSDA1480:
 128 0000 FF       		.byte	0xff
 129 0001 00       		.byte	0x0
 130 0002 11       		.uleb128 .LLSDATT1480-.LLSDATTD1480
 131              	.LLSDATTD1480:
 132 0003 01       		.byte	0x1
 133 0004 08       		.uleb128 .LLSDACSE1480-.LLSDACSB1480
 134              	.LLSDACSB1480:
 135 0005 2D       		.uleb128 .LEHB0-.LFB1480
 136 0006 05       		.uleb128 .LEHE0-.LEHB0
 137 0007 37       		.uleb128 .L13-.LFB1480
 138 0008 03       		.uleb128 0x3
 139 0009 63       		.uleb128 .LEHB1-.LFB1480
 140 000a 10       		.uleb128 .LEHE1-.LEHB1
 141 000b 00       		.uleb128 0x0
 142 000c 00       		.uleb128 0x0
 143              	.LLSDACSE1480:
 144 000d 7F       		.byte	0x7f
 145 000e 00       		.byte	0x0
 146 000f 00       		.byte	0x0
 147 0010 7D       		.byte	0x7d
 148 0011 000000   		.align 4
 149              	.LLSDATT1480:
 150 0014 00       		.byte	0x0
 151              		.text
 152              		.align 2
 153              	.globl _ZN11MyExceptionC1ESs
 155              	_ZN11MyExceptionC1ESs:
GAS LISTING /tmp/ccJ9xNSW.s 			page 4


 156              	.LFB1482:
 157              		.loc 1 18 0
 158 007a 55       		pushl	%ebp
 159              	.LCFI6:
 160 007b 89E5     		movl	%esp, %ebp
 161              	.LCFI7:
 162 007d 56       		pushl	%esi
 163              	.LCFI8:
 164 007e 53       		pushl	%ebx
 165              	.LCFI9:
 166 007f 83EC10   		subl	$16, %esp
 167              	.LCFI10:
 168 0082 8B5D0C   		movl	12(%ebp), %ebx
 169              	.LBB3:
 170              		.loc 1 20 0
 171 0085 83EC0C   		subl	$12, %esp
 172 0088 FF7508   		pushl	8(%ebp)
 173              	.LCFI11:
 174 008b E8FCFFFF 		call	_ZNSt9exceptionC2Ev
 174      FF
 175 0090 83C410   		addl	$16, %esp
 176 0093 8B4508   		movl	8(%ebp), %eax
 177 0096 C7000800 		movl	$_ZTV11MyException+8, (%eax)
 177      0000
 178 009c 83EC08   		subl	$8, %esp
 179 009f 53       		pushl	%ebx
 180 00a0 8B4508   		movl	8(%ebp), %eax
 181 00a3 83C004   		addl	$4, %eax
 182 00a6 50       		pushl	%eax
 183              	.LEHB2:
 184 00a7 E8FCFFFF 		call	_ZNSsC1ERKSs
 184      FF
 185              	.LEHE2:
 186 00ac 83C410   		addl	$16, %esp
 187              	.LBE3:
 188 00af EB3C     		jmp	.L15
 189              	.L27:
 190 00b1 8945F4   		movl	%eax, -12(%ebp)
 191 00b4 8955F0   		movl	%edx, -16(%ebp)
 192 00b7 8B5DF4   		movl	-12(%ebp), %ebx
 193 00ba 8B75F0   		movl	-16(%ebp), %esi
 194 00bd 83EC0C   		subl	$12, %esp
 195 00c0 FF7508   		pushl	8(%ebp)
 196 00c3 E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 196      FF
 197 00c8 83C410   		addl	$16, %esp
 198 00cb 895DF4   		movl	%ebx, -12(%ebp)
 199 00ce 8975F0   		movl	%esi, -16(%ebp)
 200              	.L28:
 201 00d1 837DF0FF 		cmpl	$-1, -16(%ebp)
 202 00d5 740B     		je	.L24
 203 00d7 83EC0C   		subl	$12, %esp
 204 00da FF75F4   		pushl	-12(%ebp)
 205              	.LEHB3:
 206 00dd E8FCFFFF 		call	_Unwind_Resume
 206      FF
 207              	.L24:
GAS LISTING /tmp/ccJ9xNSW.s 			page 5


 208 00e2 83EC0C   		subl	$12, %esp
 209 00e5 FF75F4   		pushl	-12(%ebp)
 210 00e8 E8FCFFFF 		call	__cxa_call_unexpected
 210      FF
 211              	.LEHE3:
 212              	.L15:
 213 00ed 8D65F8   		leal	-8(%ebp), %esp
 214 00f0 5B       		popl	%ebx
 215 00f1 5E       		popl	%esi
 216 00f2 C9       		leave
 217 00f3 C3       		ret
 218              	.LFE1482:
 219              	.Lfe2:
 221              		.section	.gcc_except_table
 222 0015 000000   		.align 4
 223              	.LLSDA1482:
 224 0018 FF       		.byte	0xff
 225 0019 00       		.byte	0x0
 226 001a 11       		.uleb128 .LLSDATT1482-.LLSDATTD1482
 227              	.LLSDATTD1482:
 228 001b 01       		.byte	0x1
 229 001c 08       		.uleb128 .LLSDACSE1482-.LLSDACSB1482
 230              	.LLSDACSB1482:
 231 001d 2D       		.uleb128 .LEHB2-.LFB1482
 232 001e 05       		.uleb128 .LEHE2-.LEHB2
 233 001f 37       		.uleb128 .L27-.LFB1482
 234 0020 03       		.uleb128 0x3
 235 0021 63       		.uleb128 .LEHB3-.LFB1482
 236 0022 10       		.uleb128 .LEHE3-.LEHB3
 237 0023 00       		.uleb128 0x0
 238 0024 00       		.uleb128 0x0
 239              	.LLSDACSE1482:
 240 0025 7F       		.byte	0x7f
 241 0026 00       		.byte	0x0
 242 0027 00       		.byte	0x0
 243 0028 7D       		.byte	0x7d
 244 0029 000000   		.align 4
 245              	.LLSDATT1482:
 246 002c 00       		.byte	0x0
 247              		.text
 248              		.align 2
 249              	.globl _ZN11MyExceptionD2Ev
 251              	_ZN11MyExceptionD2Ev:
 252              	.LFB1485:
  21:hello-exceptions.cc **** 
  22:hello-exceptions.cc **** MyException::~MyException() throw () {
 253              		.loc 1 22 0
 254              	.LBB4:
 255 00f4 55       		pushl	%ebp
 256              	.LCFI12:
 257 00f5 89E5     		movl	%esp, %ebp
 258              	.LCFI13:
 259 00f7 83EC08   		subl	$8, %esp
 260              	.LCFI14:
 261              		.loc 1 22 0
 262 00fa 8B4508   		movl	8(%ebp), %eax
 263 00fd C7000800 		movl	$_ZTV11MyException+8, (%eax)
GAS LISTING /tmp/ccJ9xNSW.s 			page 6


 263      0000
 264              	.LBE4:
  23:hello-exceptions.cc **** }
 265              		.loc 1 23 0
 266 0103 83EC0C   		subl	$12, %esp
 267 0106 8B4508   		movl	8(%ebp), %eax
 268 0109 83C004   		addl	$4, %eax
 269 010c 50       		pushl	%eax
 270              	.LEHB4:
 271              	.LCFI15:
 272 010d E8FCFFFF 		call	_ZNSsD1Ev
 272      FF
 273              	.LEHE4:
 274 0112 83C410   		addl	$16, %esp
 275 0115 83EC0C   		subl	$12, %esp
 276 0118 FF7508   		pushl	8(%ebp)
 277 011b E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 277      FF
 278 0120 83C410   		addl	$16, %esp
 279 0123 B8010000 		movl	$1, %eax
 279      00
 280 0128 83E000   		andl	$0, %eax
 281 012b 84C0     		testb	%al, %al
 282 012d 742E     		je	.L29
 283 012f 83EC0C   		subl	$12, %esp
 284 0132 FF7508   		pushl	8(%ebp)
 285 0135 E8FCFFFF 		call	_ZdlPv
 285      FF
 286 013a 83C410   		addl	$16, %esp
 287 013d EB1E     		jmp	.L29
 288              	.L36:
 289 013f 8945FC   		movl	%eax, -4(%ebp)
 290 0142 83FAFF   		cmpl	$-1, %edx
 291 0145 740B     		je	.L33
 292 0147 83EC0C   		subl	$12, %esp
 293 014a FF75FC   		pushl	-4(%ebp)
 294              	.LEHB5:
 295 014d E8FCFFFF 		call	_Unwind_Resume
 295      FF
 296              	.L33:
 297 0152 83EC0C   		subl	$12, %esp
 298 0155 FF75FC   		pushl	-4(%ebp)
 299 0158 E8FCFFFF 		call	__cxa_call_unexpected
 299      FF
 300              	.LEHE5:
 301              	.L29:
 302 015d C9       		leave
 303 015e C3       		ret
 304              	.LFE1485:
 305              	.Lfe3:
 307              		.section	.gcc_except_table
 308 002d 000000   		.align 4
 309              	.LLSDA1485:
 310 0030 FF       		.byte	0xff
 311 0031 00       		.byte	0x0
 312 0032 0D       		.uleb128 .LLSDATT1485-.LLSDATTD1485
 313              	.LLSDATTD1485:
GAS LISTING /tmp/ccJ9xNSW.s 			page 7


 314 0033 01       		.byte	0x1
 315 0034 08       		.uleb128 .LLSDACSE1485-.LLSDACSB1485
 316              	.LLSDACSB1485:
 317 0035 19       		.uleb128 .LEHB4-.LFB1485
 318 0036 05       		.uleb128 .LEHE4-.LEHB4
 319 0037 4B       		.uleb128 .L36-.LFB1485
 320 0038 01       		.uleb128 0x1
 321 0039 59       		.uleb128 .LEHB5-.LFB1485
 322 003a 10       		.uleb128 .LEHE5-.LEHB5
 323 003b 00       		.uleb128 0x0
 324 003c 00       		.uleb128 0x0
 325              	.LLSDACSE1485:
 326 003d 7F       		.byte	0x7f
 327 003e 00       		.byte	0x0
 328 003f 00       		.align 4
 329              	.LLSDATT1485:
 330 0040 00       		.byte	0x0
 331              		.text
 332 015f 90       		.align 2
 333              	.globl _ZN11MyExceptionD1Ev
 335              	_ZN11MyExceptionD1Ev:
 336              	.LFB1487:
 337              		.loc 1 22 0
 338              	.LBB5:
 339 0160 55       		pushl	%ebp
 340              	.LCFI16:
 341 0161 89E5     		movl	%esp, %ebp
 342              	.LCFI17:
 343 0163 83EC08   		subl	$8, %esp
 344              	.LCFI18:
 345              		.loc 1 22 0
 346 0166 8B4508   		movl	8(%ebp), %eax
 347 0169 C7000800 		movl	$_ZTV11MyException+8, (%eax)
 347      0000
 348              	.LBE5:
 349              		.loc 1 23 0
 350 016f 83EC0C   		subl	$12, %esp
 351 0172 8B4508   		movl	8(%ebp), %eax
 352 0175 83C004   		addl	$4, %eax
 353 0178 50       		pushl	%eax
 354              	.LEHB6:
 355              	.LCFI19:
 356 0179 E8FCFFFF 		call	_ZNSsD1Ev
 356      FF
 357              	.LEHE6:
 358 017e 83C410   		addl	$16, %esp
 359 0181 83EC0C   		subl	$12, %esp
 360 0184 FF7508   		pushl	8(%ebp)
 361 0187 E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 361      FF
 362 018c 83C410   		addl	$16, %esp
 363 018f B8010000 		movl	$1, %eax
 363      00
 364 0194 83E002   		andl	$2, %eax
 365 0197 84C0     		testb	%al, %al
 366 0199 742E     		je	.L37
 367 019b 83EC0C   		subl	$12, %esp
GAS LISTING /tmp/ccJ9xNSW.s 			page 8


 368 019e FF7508   		pushl	8(%ebp)
 369 01a1 E8FCFFFF 		call	_ZdlPv
 369      FF
 370 01a6 83C410   		addl	$16, %esp
 371 01a9 EB1E     		jmp	.L37
 372              	.L44:
 373 01ab 8945FC   		movl	%eax, -4(%ebp)
 374 01ae 83FAFF   		cmpl	$-1, %edx
 375 01b1 740B     		je	.L41
 376 01b3 83EC0C   		subl	$12, %esp
 377 01b6 FF75FC   		pushl	-4(%ebp)
 378              	.LEHB7:
 379 01b9 E8FCFFFF 		call	_Unwind_Resume
 379      FF
 380              	.L41:
 381 01be 83EC0C   		subl	$12, %esp
 382 01c1 FF75FC   		pushl	-4(%ebp)
 383 01c4 E8FCFFFF 		call	__cxa_call_unexpected
 383      FF
 384              	.LEHE7:
 385              	.L37:
 386 01c9 C9       		leave
 387 01ca C3       		ret
 388              	.LFE1487:
 389              	.Lfe4:
 391              		.section	.gcc_except_table
 392 0041 000000   		.align 4
 393              	.LLSDA1487:
 394 0044 FF       		.byte	0xff
 395 0045 00       		.byte	0x0
 396 0046 0D       		.uleb128 .LLSDATT1487-.LLSDATTD1487
 397              	.LLSDATTD1487:
 398 0047 01       		.byte	0x1
 399 0048 08       		.uleb128 .LLSDACSE1487-.LLSDACSB1487
 400              	.LLSDACSB1487:
 401 0049 19       		.uleb128 .LEHB6-.LFB1487
 402 004a 05       		.uleb128 .LEHE6-.LEHB6
 403 004b 4B       		.uleb128 .L44-.LFB1487
 404 004c 01       		.uleb128 0x1
 405 004d 59       		.uleb128 .LEHB7-.LFB1487
 406 004e 10       		.uleb128 .LEHE7-.LEHB7
 407 004f 00       		.uleb128 0x0
 408 0050 00       		.uleb128 0x0
 409              	.LLSDACSE1487:
 410 0051 7F       		.byte	0x7f
 411 0052 00       		.byte	0x0
 412 0053 00       		.align 4
 413              	.LLSDATT1487:
 414 0054 00       		.byte	0x0
 415              		.text
 416 01cb 90       		.align 2
 417              	.globl _ZN11MyExceptionD0Ev
 419              	_ZN11MyExceptionD0Ev:
 420              	.LFB1489:
 421              		.loc 1 22 0
 422              	.LBB6:
 423 01cc 55       		pushl	%ebp
GAS LISTING /tmp/ccJ9xNSW.s 			page 9


 424              	.LCFI20:
 425 01cd 89E5     		movl	%esp, %ebp
 426              	.LCFI21:
 427 01cf 83EC08   		subl	$8, %esp
 428              	.LCFI22:
 429              		.loc 1 22 0
 430 01d2 8B4508   		movl	8(%ebp), %eax
 431 01d5 C7000800 		movl	$_ZTV11MyException+8, (%eax)
 431      0000
 432              	.LBE6:
 433              		.loc 1 23 0
 434 01db 83EC0C   		subl	$12, %esp
 435 01de 8B4508   		movl	8(%ebp), %eax
 436 01e1 83C004   		addl	$4, %eax
 437 01e4 50       		pushl	%eax
 438              	.LEHB8:
 439              	.LCFI23:
 440 01e5 E8FCFFFF 		call	_ZNSsD1Ev
 440      FF
 441              	.LEHE8:
 442 01ea 83C410   		addl	$16, %esp
 443 01ed 83EC0C   		subl	$12, %esp
 444 01f0 FF7508   		pushl	8(%ebp)
 445 01f3 E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 445      FF
 446 01f8 83C410   		addl	$16, %esp
 447 01fb B8010000 		movl	$1, %eax
 447      00
 448 0200 83E003   		andl	$3, %eax
 449 0203 84C0     		testb	%al, %al
 450 0205 742E     		je	.L45
 451 0207 83EC0C   		subl	$12, %esp
 452 020a FF7508   		pushl	8(%ebp)
 453 020d E8FCFFFF 		call	_ZdlPv
 453      FF
 454 0212 83C410   		addl	$16, %esp
 455 0215 EB1E     		jmp	.L45
 456              	.L52:
 457 0217 8945FC   		movl	%eax, -4(%ebp)
 458 021a 83FAFF   		cmpl	$-1, %edx
 459 021d 740B     		je	.L49
 460 021f 83EC0C   		subl	$12, %esp
 461 0222 FF75FC   		pushl	-4(%ebp)
 462              	.LEHB9:
 463 0225 E8FCFFFF 		call	_Unwind_Resume
 463      FF
 464              	.L49:
 465 022a 83EC0C   		subl	$12, %esp
 466 022d FF75FC   		pushl	-4(%ebp)
 467 0230 E8FCFFFF 		call	__cxa_call_unexpected
 467      FF
 468              	.LEHE9:
 469              	.L45:
 470 0235 C9       		leave
 471 0236 C3       		ret
 472              	.LFE1489:
 473              	.Lfe5:
GAS LISTING /tmp/ccJ9xNSW.s 			page 10


 475              		.section	.gcc_except_table
 476 0055 000000   		.align 4
 477              	.LLSDA1489:
 478 0058 FF       		.byte	0xff
 479 0059 00       		.byte	0x0
 480 005a 0D       		.uleb128 .LLSDATT1489-.LLSDATTD1489
 481              	.LLSDATTD1489:
 482 005b 01       		.byte	0x1
 483 005c 08       		.uleb128 .LLSDACSE1489-.LLSDACSB1489
 484              	.LLSDACSB1489:
 485 005d 19       		.uleb128 .LEHB8-.LFB1489
 486 005e 05       		.uleb128 .LEHE8-.LEHB8
 487 005f 4B       		.uleb128 .L52-.LFB1489
 488 0060 01       		.uleb128 0x1
 489 0061 59       		.uleb128 .LEHB9-.LFB1489
 490 0062 10       		.uleb128 .LEHE9-.LEHB9
 491 0063 00       		.uleb128 0x0
 492 0064 00       		.uleb128 0x0
 493              	.LLSDACSE1489:
 494 0065 7F       		.byte	0x7f
 495 0066 00       		.byte	0x0
 496 0067 00       		.align 4
 497              	.LLSDATT1489:
 498 0068 00       		.byte	0x0
 499              		.text
 500 0237 90       		.align 2
 501              	.globl _ZNK11MyException4whatEv
 503              	_ZNK11MyException4whatEv:
 504              	.LFB1491:
  24:hello-exceptions.cc **** 
  25:hello-exceptions.cc **** const char *MyException::what() const throw () {
 505              		.loc 1 25 0
 506              	.LBB7:
 507 0238 55       		pushl	%ebp
 508              	.LCFI24:
 509 0239 89E5     		movl	%esp, %ebp
 510              	.LCFI25:
 511 023b 83EC08   		subl	$8, %esp
 512              	.LCFI26:
  26:hello-exceptions.cc ****     return _what.c_str();
 513              		.loc 1 26 0
 514 023e 83EC0C   		subl	$12, %esp
 515 0241 8B4508   		movl	8(%ebp), %eax
 516 0244 83C004   		addl	$4, %eax
 517 0247 50       		pushl	%eax
 518              	.LEHB10:
 519              	.LCFI27:
 520 0248 E8FCFFFF 		call	_ZNKSs5c_strEv
 520      FF
 521              	.LEHE10:
 522 024d 83C410   		addl	$16, %esp
 523 0250 8945FC   		movl	%eax, -4(%ebp)
 524 0253 EB1E     		jmp	.L53
 525              	.LBE7:
 526              	.L57:
 527 0255 8945F8   		movl	%eax, -8(%ebp)
 528 0258 83FAFF   		cmpl	$-1, %edx
GAS LISTING /tmp/ccJ9xNSW.s 			page 11


 529 025b 740B     		je	.L54
 530 025d 83EC0C   		subl	$12, %esp
 531 0260 FF75F8   		pushl	-8(%ebp)
 532              	.LEHB11:
 533 0263 E8FCFFFF 		call	_Unwind_Resume
 533      FF
 534              	.L54:
 535 0268 83EC0C   		subl	$12, %esp
 536 026b FF75F8   		pushl	-8(%ebp)
 537 026e E8FCFFFF 		call	__cxa_call_unexpected
 537      FF
 538              	.LEHE11:
  27:hello-exceptions.cc **** }
 539              		.loc 1 27 0
 540              	.L53:
 541 0273 8B45FC   		movl	-4(%ebp), %eax
 542 0276 C9       		leave
 543 0277 C3       		ret
 544              	.LFE1491:
 545              	.Lfe6:
 547              		.section	.gcc_except_table
 548 0069 000000   		.align 4
 549              	.LLSDA1491:
 550 006c FF       		.byte	0xff
 551 006d 00       		.byte	0x0
 552 006e 0D       		.uleb128 .LLSDATT1491-.LLSDATTD1491
 553              	.LLSDATTD1491:
 554 006f 01       		.byte	0x1
 555 0070 08       		.uleb128 .LLSDACSE1491-.LLSDACSB1491
 556              	.LLSDACSB1491:
 557 0071 10       		.uleb128 .LEHB10-.LFB1491
 558 0072 05       		.uleb128 .LEHE10-.LEHB10
 559 0073 1D       		.uleb128 .L57-.LFB1491
 560 0074 01       		.uleb128 0x1
 561 0075 2B       		.uleb128 .LEHB11-.LFB1491
 562 0076 10       		.uleb128 .LEHE11-.LEHB11
 563 0077 00       		.uleb128 0x0
 564 0078 00       		.uleb128 0x0
 565              	.LLSDACSE1491:
 566 0079 7F       		.byte	0x7f
 567 007a 00       		.byte	0x0
 568 007b 00       		.align 4
 569              	.LLSDATT1491:
 570 007c 00       		.byte	0x0
 571              		.text
 572              		.section	.rodata
 573              	.LC0:
 574 0000 2900     		.string	")"
 575              	.LC1:
 576 0002 4D794578 		.string	"MyException("
 576      63657074 
 576      696F6E28 
 576      00
 577              		.text
 578              		.align 2
 579              	.globl _ZNK11MyException9as_stringEv
 581              	_ZNK11MyException9as_stringEv:
GAS LISTING /tmp/ccJ9xNSW.s 			page 12


 582              	.LFB1493:
  28:hello-exceptions.cc **** 
  29:hello-exceptions.cc **** string MyException::as_string() const {
 583              		.loc 1 29 0
 584 0278 55       		pushl	%ebp
 585              	.LCFI28:
 586 0279 89E5     		movl	%esp, %ebp
 587              	.LCFI29:
 588 027b 53       		pushl	%ebx
 589              	.LCFI30:
 590 027c 83EC24   		subl	$36, %esp
 591              	.LCFI31:
 592              	.LBB8:
  30:hello-exceptions.cc ****     return "MyException(" + _what + ")";
 593              		.loc 1 30 0
 594 027f 83EC04   		subl	$4, %esp
 595 0282 68000000 		pushl	$.LC0
 595      00
 596 0287 8D45E8   		leal	-24(%ebp), %eax
 597 028a 83EC0C   		subl	$12, %esp
 598 028d 8B550C   		movl	12(%ebp), %edx
 599 0290 83C204   		addl	$4, %edx
 600 0293 52       		pushl	%edx
 601 0294 68020000 		pushl	$.LC1
 601      00
 602 0299 50       		pushl	%eax
 603              	.LEHB12:
 604              	.LCFI32:
 605 029a E8FCFFFF 		call	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 605      FF
 606              	.LEHE12:
 607 029f 83C414   		addl	$20, %esp
 608 02a2 8D45E8   		leal	-24(%ebp), %eax
 609 02a5 50       		pushl	%eax
 610 02a6 FF7508   		pushl	8(%ebp)
 611              	.LEHB13:
 612              	.LCFI33:
 613 02a9 E8FCFFFF 		call	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
 613      FF
 614              	.LEHE13:
 615 02ae 83C40C   		addl	$12, %esp
 616              	.LBB9:
 617 02b1 83EC0C   		subl	$12, %esp
 618 02b4 8D45E8   		leal	-24(%ebp), %eax
 619 02b7 50       		pushl	%eax
 620              	.LEHB14:
 621 02b8 E8FCFFFF 		call	_ZNSsD1Ev
 621      FF
 622              	.LEHE14:
 623 02bd 83C410   		addl	$16, %esp
 624              	.LBE9:
 625 02c0 EB23     		jmp	.L58
 626              	.L63:
 627 02c2 8945E4   		movl	%eax, -28(%ebp)
 628 02c5 8B5DE4   		movl	-28(%ebp), %ebx
 629 02c8 83EC0C   		subl	$12, %esp
 630 02cb 8D45E8   		leal	-24(%ebp), %eax
GAS LISTING /tmp/ccJ9xNSW.s 			page 13


 631 02ce 50       		pushl	%eax
 632 02cf E8FCFFFF 		call	_ZNSsD1Ev
 632      FF
 633 02d4 83C410   		addl	$16, %esp
 634 02d7 895DE4   		movl	%ebx, -28(%ebp)
 635 02da 83EC0C   		subl	$12, %esp
 636 02dd FF75E4   		pushl	-28(%ebp)
 637              	.LEHB15:
 638 02e0 E8FCFFFF 		call	_Unwind_Resume
 638      FF
 639              	.LEHE15:
 640              	.LBE8:
  31:hello-exceptions.cc **** }
 641              		.loc 1 31 0
 642              	.L58:
 643 02e5 8B4508   		movl	8(%ebp), %eax
 644 02e8 8B5DFC   		movl	-4(%ebp), %ebx
 645 02eb C9       		leave
 646 02ec C20400   		ret	$4
 647              	.LFE1493:
 648              	.Lfe7:
 650              		.section	.gcc_except_table
 651              	.LLSDA1493:
 652 007d FF       		.byte	0xff
 653 007e FF       		.byte	0xff
 654 007f 01       		.byte	0x1
 655 0080 10       		.uleb128 .LLSDACSE1493-.LLSDACSB1493
 656              	.LLSDACSB1493:
 657 0081 22       		.uleb128 .LEHB12-.LFB1493
 658 0082 05       		.uleb128 .LEHE12-.LEHB12
 659 0083 00       		.uleb128 0x0
 660 0084 00       		.uleb128 0x0
 661 0085 31       		.uleb128 .LEHB13-.LFB1493
 662 0086 05       		.uleb128 .LEHE13-.LEHB13
 663 0087 4A       		.uleb128 .L63-.LFB1493
 664 0088 00       		.uleb128 0x0
 665 0089 40       		.uleb128 .LEHB14-.LFB1493
 666 008a 05       		.uleb128 .LEHE14-.LEHB14
 667 008b 00       		.uleb128 0x0
 668 008c 00       		.uleb128 0x0
 669 008d 68       		.uleb128 .LEHB15-.LFB1493
 670 008e 05       		.uleb128 .LEHE15-.LEHB15
 671 008f 00       		.uleb128 0x0
 672 0090 00       		.uleb128 0x0
 673              	.LLSDACSE1493:
 674              		.text
 675              		.section	.rodata
 676              	.LC2:
 677 000f 61726720 		.string	"arg is not greater than 0."
 677      6973206E 
 677      6F742067 
 677      72656174 
 677      65722074 
 678              		.text
 679 02ef 90       		.align 2
 680              	.globl _Z9take_halfi
 682              	_Z9take_halfi:
GAS LISTING /tmp/ccJ9xNSW.s 			page 14


 683              	.LFB1501:
  32:hello-exceptions.cc **** 
  33:hello-exceptions.cc **** 
  34:hello-exceptions.cc **** // arg must be greater than 0. Returns half arg, rounded down.
  35:hello-exceptions.cc **** int take_half(int arg) throw (MyException) {
 684              		.loc 1 35 0
 685              	.LBB10:
 686 02f0 55       		pushl	%ebp
 687              	.LCFI34:
 688 02f1 89E5     		movl	%esp, %ebp
 689              	.LCFI35:
 690 02f3 56       		pushl	%esi
 691              	.LCFI36:
 692 02f4 53       		pushl	%ebx
 693              	.LCFI37:
 694 02f5 83EC40   		subl	$64, %esp
 695              	.LCFI38:
  36:hello-exceptions.cc ****     if (arg <= 0) {
 696              		.loc 1 36 0
 697 02f8 837D0800 		cmpl	$0, 8(%ebp)
 698 02fc 0F8FD200 		jg	.L65
 698      0000
  37:hello-exceptions.cc ****         throw MyException("arg is not greater than 0.");
 699              		.loc 1 37 0
 700 0302 83EC08   		subl	$8, %esp
 701 0305 83EC0C   		subl	$12, %esp
 702 0308 83EC08   		subl	$8, %esp
 703 030b 8D45C8   		leal	-56(%ebp), %eax
 704 030e 50       		pushl	%eax
 705              	.LCFI39:
 706 030f E8FCFFFF 		call	_ZNSaIcEC1Ev
 706      FF
 707 0314 83C40C   		addl	$12, %esp
 708 0317 8D45C8   		leal	-56(%ebp), %eax
 709 031a 50       		pushl	%eax
 710 031b 680F0000 		pushl	$.LC2
 710      00
 711 0320 8D45D8   		leal	-40(%ebp), %eax
 712 0323 50       		pushl	%eax
 713              	.LEHB16:
 714              	.LCFI40:
 715 0324 E8FCFFFF 		call	_ZNSsC1EPKcRKSaIcE
 715      FF
 716 0329 83C418   		addl	$24, %esp
 717 032c 8D45D8   		leal	-40(%ebp), %eax
 718 032f 50       		pushl	%eax
 719 0330 8D45E8   		leal	-24(%ebp), %eax
 720 0333 50       		pushl	%eax
 721              	.LCFI41:
 722 0334 E8FCFFFF 		call	_ZN11MyExceptionC1ESs
 722      FF
 723 0339 83C410   		addl	$16, %esp
 724 033c 83EC0C   		subl	$12, %esp
 725 033f 8D45D8   		leal	-40(%ebp), %eax
 726 0342 50       		pushl	%eax
 727 0343 E8FCFFFF 		call	_ZNSsD1Ev
 727      FF
GAS LISTING /tmp/ccJ9xNSW.s 			page 15


 728              	.LEHE16:
 729 0348 83C410   		addl	$16, %esp
 730 034b EB23     		jmp	.L71
 731              	.L84:
 732 034d 8945C0   		movl	%eax, -64(%ebp)
 733 0350 8955BC   		movl	%edx, -68(%ebp)
 734 0353 8B5DC0   		movl	-64(%ebp), %ebx
 735 0356 8B75BC   		movl	-68(%ebp), %esi
 736 0359 83EC0C   		subl	$12, %esp
 737 035c 8D45C8   		leal	-56(%ebp), %eax
 738 035f 50       		pushl	%eax
 739 0360 E8FCFFFF 		call	_ZNSaIcED1Ev
 739      FF
 740 0365 83C410   		addl	$16, %esp
 741 0368 895DC0   		movl	%ebx, -64(%ebp)
 742 036b 8975BC   		movl	%esi, -68(%ebp)
 743 036e EB79     		jmp	.L82
 744              	.L71:
 745 0370 83EC0C   		subl	$12, %esp
 746 0373 8D45C8   		leal	-56(%ebp), %eax
 747 0376 50       		pushl	%eax
 748 0377 E8FCFFFF 		call	_ZNSaIcED1Ev
 748      FF
 749 037c 83C410   		addl	$16, %esp
 750 037f 83EC0C   		subl	$12, %esp
 751 0382 6A08     		pushl	$8
 752 0384 E8FCFFFF 		call	__cxa_allocate_exception
 752      FF
 753 0389 83C410   		addl	$16, %esp
 754 038c 89C3     		movl	%eax, %ebx
 755 038e 83EC08   		subl	$8, %esp
 756 0391 8D45E8   		leal	-24(%ebp), %eax
 757 0394 50       		pushl	%eax
 758 0395 53       		pushl	%ebx
 759 0396 E8FCFFFF 		call	_ZN11MyExceptionC1ERKS_
 759      FF
 760 039b 83C410   		addl	$16, %esp
 761 039e 83EC04   		subl	$4, %esp
 762 03a1 68000000 		pushl	$_ZN11MyExceptionD1Ev
 762      00
 763 03a6 68000000 		pushl	$_ZTI11MyException
 763      00
 764 03ab 53       		pushl	%ebx
 765              	.LEHB17:
 766 03ac E8FCFFFF 		call	__cxa_throw
 766      FF
 767              	.LEHE17:
 768              	.L83:
 769 03b1 8945C0   		movl	%eax, -64(%ebp)
 770 03b4 8955BC   		movl	%edx, -68(%ebp)
 771 03b7 8B5DC0   		movl	-64(%ebp), %ebx
 772 03ba 8B75BC   		movl	-68(%ebp), %esi
 773 03bd 83EC0C   		subl	$12, %esp
 774 03c0 8D45E8   		leal	-24(%ebp), %eax
 775 03c3 50       		pushl	%eax
 776 03c4 E8FCFFFF 		call	_ZN11MyExceptionD1Ev
 776      FF
GAS LISTING /tmp/ccJ9xNSW.s 			page 16


 777 03c9 83C410   		addl	$16, %esp
 778 03cc 895DC0   		movl	%ebx, -64(%ebp)
 779 03cf 8975BC   		movl	%esi, -68(%ebp)
 780 03d2 EB15     		jmp	.L82
 781              	.L65:
  38:hello-exceptions.cc ****     }
  39:hello-exceptions.cc ****     return arg / 2;
 782              		.loc 1 39 0
 783 03d4 8B5508   		movl	8(%ebp), %edx
 784 03d7 89D0     		movl	%edx, %eax
 785 03d9 C1F81F   		sarl	$31, %eax
 786 03dc C1E81F   		shrl	$31, %eax
 787 03df 8D0410   		leal	(%eax,%edx), %eax
 788 03e2 D1F8     		sarl	$1, %eax
 789 03e4 8945C4   		movl	%eax, -60(%ebp)
 790 03e7 EB1C     		jmp	.L64
 791              	.LBE10:
 792              	.L85:
 793              	.L82:
 794 03e9 837DBCFF 		cmpl	$-1, -68(%ebp)
 795 03ed 740B     		je	.L80
 796 03ef 83EC0C   		subl	$12, %esp
 797 03f2 FF75C0   		pushl	-64(%ebp)
 798              	.LEHB18:
 799 03f5 E8FCFFFF 		call	_Unwind_Resume
 799      FF
 800              	.L80:
 801 03fa 83EC0C   		subl	$12, %esp
 802 03fd FF75C0   		pushl	-64(%ebp)
 803 0400 E8FCFFFF 		call	__cxa_call_unexpected
 803      FF
 804              	.LEHE18:
  40:hello-exceptions.cc **** }
 805              		.loc 1 40 0
 806              	.L64:
 807 0405 8B45C4   		movl	-60(%ebp), %eax
 808 0408 8D65F8   		leal	-8(%ebp), %esp
 809 040b 5B       		popl	%ebx
 810 040c 5E       		popl	%esi
 811 040d C9       		leave
 812 040e C3       		ret
 813              	.LFE1501:
 814              	.Lfe8:
 816              		.section	.gcc_except_table
 817 0091 000000   		.align 4
 818              	.LLSDA1501:
 819 0094 FF       		.byte	0xff
 820 0095 00       		.byte	0x0
 821 0096 19       		.uleb128 .LLSDATT1501-.LLSDATTD1501
 822              	.LLSDATTD1501:
 823 0097 01       		.byte	0x1
 824 0098 0F       		.uleb128 .LLSDACSE1501-.LLSDACSB1501
 825              	.LLSDACSB1501:
 826 0099 34       		.uleb128 .LEHB16-.LFB1501
 827 009a 24       		.uleb128 .LEHE16-.LEHB16
 828 009b 5D       		.uleb128 .L84-.LFB1501
 829 009c 03       		.uleb128 0x3
GAS LISTING /tmp/ccJ9xNSW.s 			page 17


 830 009d BC01     		.uleb128 .LEHB17-.LFB1501
 831 009f 05       		.uleb128 .LEHE17-.LEHB17
 832 00a0 C101     		.uleb128 .L83-.LFB1501
 833 00a2 03       		.uleb128 0x3
 834 00a3 8502     		.uleb128 .LEHB18-.LFB1501
 835 00a5 10       		.uleb128 .LEHE18-.LEHB18
 836 00a6 00       		.uleb128 0x0
 837 00a7 00       		.uleb128 0x0
 838              	.LLSDACSE1501:
 839 00a8 7F       		.byte	0x7f
 840 00a9 00       		.byte	0x0
 841 00aa 00       		.byte	0x0
 842 00ab 7D       		.byte	0x7d
 843              		.align 4
 844 00ac 00000000 		.long	_ZTI11MyException
 845              	.LLSDATT1501:
 846 00b0 01       		.byte	0x1
 847 00b1 00       		.byte	0x0
 848              		.text
 849              		.section	.rodata
 850              	.LC3:
 851 002a 476F7420 		.string	"Got exception: "
 851      65786365 
 851      7074696F 
 851      6E3A2000 
 852              		.text
 853 040f 90       		.align 2
 854              	.globl main
 856              	main:
 857              	.LFB1503:
  41:hello-exceptions.cc **** 
  42:hello-exceptions.cc **** int main(int argc, char **argv) {
 858              		.loc 1 42 0
 859 0410 55       		pushl	%ebp
 860              	.LCFI42:
 861 0411 89E5     		movl	%esp, %ebp
 862              	.LCFI43:
 863 0413 53       		pushl	%ebx
 864              	.LCFI44:
 865 0414 83EC34   		subl	$52, %esp
 866              	.LCFI45:
 867 0417 83E4F0   		andl	$-16, %esp
 868 041a B8000000 		movl	$0, %eax
 868      00
 869 041f 29C4     		subl	%eax, %esp
 870              	.LBB11:
  43:hello-exceptions.cc ****     try {
 871              		.loc 1 43 0
 872              	.LBB12:
  44:hello-exceptions.cc ****         int i = take_half(-2);
 873              		.loc 1 44 0
 874 0421 83EC0C   		subl	$12, %esp
 875 0424 6AFE     		pushl	$-2
 876              	.LEHB19:
 877              	.LCFI46:
 878 0426 E8FCFFFF 		call	_Z9take_halfi
 878      FF
GAS LISTING /tmp/ccJ9xNSW.s 			page 18


 879              	.LEHE19:
 880 042b 83C410   		addl	$16, %esp
 881 042e 8945F4   		movl	%eax, -12(%ebp)
 882              	.LBE12:
 883 0431 E9B40000 		jmp	.L87
 883      00
  45:hello-exceptions.cc ****     } catch (MyException &e) {
 884              		.loc 1 45 0
 885              	.L100:
 886 0436 8945D4   		movl	%eax, -44(%ebp)
 887 0439 83FA01   		cmpl	$1, %edx
 888 043c 740B     		je	.L88
 889 043e 83EC0C   		subl	$12, %esp
 890 0441 FF75D4   		pushl	-44(%ebp)
 891              	.LEHB20:
 892 0444 E8FCFFFF 		call	_Unwind_Resume
 892      FF
 893              	.LEHE20:
 894              	.L88:
 895              	.LBB13:
 896 0449 83EC0C   		subl	$12, %esp
 897 044c FF75D4   		pushl	-44(%ebp)
 898 044f E8FCFFFF 		call	__cxa_begin_catch
 898      FF
 899 0454 83C410   		addl	$16, %esp
 900 0457 8945F4   		movl	%eax, -12(%ebp)
  46:hello-exceptions.cc ****         cout << "Got exception: " << e.as_string() << endl;
 901              		.loc 1 46 0
 902 045a 83EC08   		subl	$8, %esp
 903 045d 68000000 		pushl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
 903      00
 904 0462 83EC0C   		subl	$12, %esp
 905 0465 8D45D8   		leal	-40(%ebp), %eax
 906 0468 FF75F4   		pushl	-12(%ebp)
 907 046b 50       		pushl	%eax
 908              	.LEHB21:
 909              	.LCFI47:
 910 046c E8FCFFFF 		call	_ZNK11MyException9as_stringEv
 910      FF
 911              	.LEHE21:
 912 0471 83C404   		addl	$4, %esp
 913 0474 8D45D8   		leal	-40(%ebp), %eax
 914 0477 50       		pushl	%eax
 915 0478 83EC0C   		subl	$12, %esp
 916 047b 682A0000 		pushl	$.LC3
 916      00
 917 0480 68000000 		pushl	$_ZSt4cout
 917      00
 918              	.LEHB22:
 919              	.LCFI48:
 920 0485 E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 920      FF
 921 048a 83C414   		addl	$20, %esp
 922 048d 50       		pushl	%eax
 923 048e E8FCFFFF 		call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
 923      FF
 924 0493 83C414   		addl	$20, %esp
GAS LISTING /tmp/ccJ9xNSW.s 			page 19


 925 0496 50       		pushl	%eax
 926              	.LCFI49:
 927 0497 E8FCFFFF 		call	_ZNSolsEPFRSoS_E
 927      FF
 928              	.LEHE22:
 929 049c 83C410   		addl	$16, %esp
 930 049f EB1A     		jmp	.L90
 931              	.L98:
 932 04a1 8945D4   		movl	%eax, -44(%ebp)
 933 04a4 8B5DD4   		movl	-44(%ebp), %ebx
 934 04a7 83EC0C   		subl	$12, %esp
 935 04aa 8D45D8   		leal	-40(%ebp), %eax
 936 04ad 50       		pushl	%eax
 937 04ae E8FCFFFF 		call	_ZNSsD1Ev
 937      FF
 938 04b3 83C410   		addl	$16, %esp
 939 04b6 895DD4   		movl	%ebx, -44(%ebp)
 940 04b9 EB14     		jmp	.L93
 941              	.L90:
 942 04bb 83EC0C   		subl	$12, %esp
 943 04be 8D45D8   		leal	-40(%ebp), %eax
 944 04c1 50       		pushl	%eax
 945              	.LEHB23:
 946 04c2 E8FCFFFF 		call	_ZNSsD1Ev
 946      FF
 947              	.LEHE23:
 948 04c7 83C410   		addl	$16, %esp
 949 04ca EB19     		jmp	.L94
 950              	.L99:
 951 04cc 8945D4   		movl	%eax, -44(%ebp)
 952              	.L93:
 953 04cf 8B5DD4   		movl	-44(%ebp), %ebx
 954              	.LCFI50:
 955 04d2 E8FCFFFF 		call	__cxa_end_catch
 955      FF
 956 04d7 895DD4   		movl	%ebx, -44(%ebp)
 957 04da 83EC0C   		subl	$12, %esp
 958 04dd FF75D4   		pushl	-44(%ebp)
 959              	.LEHB24:
 960              	.LCFI51:
 961 04e0 E8FCFFFF 		call	_Unwind_Resume
 961      FF
 962              	.LEHE24:
 963              	.L94:
 964              	.LCFI52:
 965 04e5 E8FCFFFF 		call	__cxa_end_catch
 965      FF
 966              	.LBE13:
 967              	.L87:
 968              	.LBE11:
  47:hello-exceptions.cc ****     }
  48:hello-exceptions.cc **** }
 969              		.loc 1 48 0
 970 04ea B8000000 		movl	$0, %eax
 970      00
 971 04ef 8B5DFC   		movl	-4(%ebp), %ebx
 972 04f2 C9       		leave
GAS LISTING /tmp/ccJ9xNSW.s 			page 20


 973 04f3 C3       		ret
 974              	.LFE1503:
 975              	.Lfe9:
 977              		.section	.gcc_except_table
 978 00b2 0000     		.align 4
 979              	.LLSDA1503:
 980 00b4 FF       		.byte	0xff
 981 00b5 00       		.byte	0x0
 982 00b6 25       		.uleb128 .LLSDATT1503-.LLSDATTD1503
 983              	.LLSDATTD1503:
 984 00b7 01       		.byte	0x1
 985 00b8 1D       		.uleb128 .LLSDACSE1503-.LLSDACSB1503
 986              	.LLSDACSB1503:
 987 00b9 16       		.uleb128 .LEHB19-.LFB1503
 988 00ba 05       		.uleb128 .LEHE19-.LEHB19
 989 00bb 26       		.uleb128 .L100-.LFB1503
 990 00bc 01       		.uleb128 0x1
 991 00bd 34       		.uleb128 .LEHB20-.LFB1503
 992 00be 05       		.uleb128 .LEHE20-.LEHB20
 993 00bf 00       		.uleb128 0x0
 994 00c0 00       		.uleb128 0x0
 995 00c1 5C       		.uleb128 .LEHB21-.LFB1503
 996 00c2 05       		.uleb128 .LEHE21-.LEHB21
 997 00c3 BC01     		.uleb128 .L99-.LFB1503
 998 00c5 00       		.uleb128 0x0
 999 00c6 75       		.uleb128 .LEHB22-.LFB1503
 1000 00c7 17       		.uleb128 .LEHE22-.LEHB22
 1001 00c8 9101     		.uleb128 .L98-.LFB1503
 1002 00ca 00       		.uleb128 0x0
 1003 00cb B201     		.uleb128 .LEHB23-.LFB1503
 1004 00cd 05       		.uleb128 .LEHE23-.LEHB23
 1005 00ce BC01     		.uleb128 .L99-.LFB1503
 1006 00d0 00       		.uleb128 0x0
 1007 00d1 D001     		.uleb128 .LEHB24-.LFB1503
 1008 00d3 05       		.uleb128 .LEHE24-.LEHB24
 1009 00d4 00       		.uleb128 0x0
 1010 00d5 00       		.uleb128 0x0
 1011              	.LLSDACSE1503:
 1012 00d6 01       		.byte	0x1
 1013 00d7 00       		.byte	0x0
 1014              		.align 4
 1015 00d8 00000000 		.long	_ZTI11MyException
 1016              	.LLSDATT1503:
 1017              		.text
 1018              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_,"ax",@progbits
 1019              		.align 2
 1020              		.weak	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 1022              	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_:
 1023              	.LFB1517:
   1:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // Components for manipulating sequences of characters -*- C++ -*-
   2:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
   3:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
   4:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // Free Software Foundation, Inc.
   5:/usr/include/c++/3.2.2/bits/basic_string.tcc **** //
   6:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // This file is part of the GNU ISO C++ Library.  This library is free
   7:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // software; you can redistribute it and/or modify it under the
   8:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // terms of the GNU General Public License as published by the
GAS LISTING /tmp/ccJ9xNSW.s 			page 21


   9:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // Free Software Foundation; either version 2, or (at your option)
  10:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // any later version.
  11:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  12:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // This library is distributed in the hope that it will be useful,
  13:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // GNU General Public License for more details.
  16:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  17:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // You should have received a copy of the GNU General Public License along
  18:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // with this library; see the file COPYING.  If not, write to the Free
  19:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  20:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // USA.
  21:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  22:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // As a special exception, you may use this file as part of a free software
  23:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // library without restriction.  Specifically, if other files instantiate
  24:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // templates or use macros or inline functions from this file, or you compile
  25:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // this file and link it with other files to produce an executable, this
  26:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // file does not by itself cause the resulting executable to be covered by
  27:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // the GNU General Public License.  This exception does not however
  28:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // invalidate any other reasons why the executable file might be covered by
  29:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // the GNU General Public License.
  30:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  31:/usr/include/c++/3.2.2/bits/basic_string.tcc **** //
  32:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // ISO C++ 14882: 21  Strings library
  33:/usr/include/c++/3.2.2/bits/basic_string.tcc **** //
  34:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  35:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // This file is included by <string>.  It is not meant to be included
  36:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // separately.
  37:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  38:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // Written by Jason Merrill based upon the specification by Takanori Adachi
  39:/usr/include/c++/3.2.2/bits/basic_string.tcc **** // in ANSI X3J16/94-0013R2.  Rewritten by Nathan Myers to ISO-14882.
  40:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  41:/usr/include/c++/3.2.2/bits/basic_string.tcc **** #ifndef _CPP_BITS_STRING_TCC
  42:/usr/include/c++/3.2.2/bits/basic_string.tcc **** #define _CPP_BITS_STRING_TCC 1
  43:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  44:/usr/include/c++/3.2.2/bits/basic_string.tcc **** #pragma GCC system_header
  45:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  46:/usr/include/c++/3.2.2/bits/basic_string.tcc **** namespace std
  47:/usr/include/c++/3.2.2/bits/basic_string.tcc **** {
  48:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  49:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     const typename basic_string<_CharT, _Traits, _Alloc>::size_type 
  50:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
  51:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _Rep::_S_max_size = (((npos - sizeof(_Rep))/sizeof(_CharT)) - 1) / 4;
  52:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  53:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  54:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     const _CharT 
  55:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
  56:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _Rep::_S_terminal = _CharT();
  57:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  58:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  59:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
  60:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::npos;
  61:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  62:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // Linker sets _S_empty_rep_storage to all 0s (one reference, empty string)
  63:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // at static init time (before static ctors are run).
  64:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  65:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     typename basic_string<_CharT, _Traits, _Alloc>::size_type
GAS LISTING /tmp/ccJ9xNSW.s 			page 22


  66:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_S_empty_rep_storage[
  67:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     (sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)/sizeof(size_type)];
  68:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
  69:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // NB: This is the special case for Input Iterators, used in
  70:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // istreambuf_iterators, etc.
  71:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // Input Iterators have a cost structure very different from
  72:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // pointers, calling for a different coding style.
  73:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
  74:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     template<typename _InIter>
  75:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _CharT*
  76:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
  77:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
  78:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		   input_iterator_tag)
  79:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       {
  80:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	if (__beg == __end && __a == _Alloc())
  81:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  return _S_empty_rep()._M_refcopy();
  82:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	// Avoid reallocation for common case.
  83:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	_CharT __buf[100];
  84:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	size_type __i = 0;
  85:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	while (__beg != __end && __i < sizeof(__buf) / sizeof(_CharT))
  86:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  { 
  87:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __buf[__i++] = *__beg; 
  88:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    ++__beg; 
  89:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  }
  90:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	_Rep* __r = _Rep::_S_create(__i, __a);
  91:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	traits_type::copy(__r->_M_refdata(), __buf, __i);
  92:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__r->_M_length = __i;
  93:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	try 
  94:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  {
  95:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    // NB: this loop looks precisely this way because
  96:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    // it avoids comparing __beg != __end any more
  97:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    // than strictly necessary; != might be expensive!
  98:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    for (;;)
  99:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      {
 100:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		_CharT* __p = __r->_M_refdata() + __r->_M_length;
 101:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		_CharT* __last = __r->_M_refdata() + __r->_M_capacity;
 102:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		for (;;)
 103:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		  {
 104:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		    if (__beg == __end)
 105:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		      {
 106:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			__r->_M_length = __p - __r->_M_refdata();
 107:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			*__p = _Rep::_S_terminal;       // grrr.
 108:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			return __r->_M_refdata();
 109:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		      }
 110:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		    if (__p == __last)
 111:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		      break;
 112:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		    *__p++ = *__beg; 
 113:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		    ++__beg;
 114:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		  }
 115:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		// Allocate more space.
 116:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		size_type __len = __p - __r->_M_refdata();
 117:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		_Rep* __another = _Rep::_S_create(__len + 1, __a);
 118:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		traits_type::copy(__another->_M_refdata(), 
 119:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 				  __r->_M_refdata(), __len);
 120:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		__r->_M_destroy(__a);
 121:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		__r = __another;
 122:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		__r->_M_length = __len;
GAS LISTING /tmp/ccJ9xNSW.s 			page 23


 123:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      }
 124:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  }
 125:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	catch(...) 
 126:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  {
 127:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __r->_M_destroy(__a); 
 128:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __throw_exception_again;
 129:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  }
 130:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	return 0;
 131:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       }
 132:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   
 133:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 134:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     template <class _InIter>
 135:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _CharT*
 136:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
 137:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a, 
 138:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		   forward_iterator_tag)
 139:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       {
 140:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	size_type __dnew = static_cast<size_type>(distance(__beg, __end));
 141:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 142:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	if (__beg == __end && __a == _Alloc())
 143:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  return _S_empty_rep()._M_refcopy();
 144:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 145:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	// NB: Not required, but considered best practice.
 146:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	if (__builtin_expect(__beg == _InIter(), 0))
 147:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __throw_logic_error("attempt to create string with null pointer");
 148:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	
 149:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	// Check for out_of_range and length_error exceptions.
 150:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	_Rep* __r = _Rep::_S_create(__dnew, __a);
 151:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	try 
 152:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
 153:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	catch(...) 
 154:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  { 
 155:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __r->_M_destroy(__a); 
 156:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __throw_exception_again;
 157:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  }
 158:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__r->_M_length = __dnew;
 159:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 160:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__r->_M_refdata()[__dnew] = _Rep::_S_terminal;  // grrr.
 161:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	return __r->_M_refdata();
 162:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       }
 163:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 164:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 165:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _CharT*
 166:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 167:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
 168:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 169:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__n == 0 && __a == _Alloc())
 170:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	return _S_empty_rep()._M_refcopy();
 171:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 172:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // Check for out_of_range and length_error exceptions.
 173:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _Rep* __r = _Rep::_S_create(__n, __a);
 174:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       try 
 175:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{ 
 176:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  if (__n) 
 177:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    traits_type::assign(__r->_M_refdata(), __n, __c); 
 178:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 179:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       catch(...) 
GAS LISTING /tmp/ccJ9xNSW.s 			page 24


 180:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{ 
 181:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __r->_M_destroy(__a); 
 182:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __throw_exception_again;
 183:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 184:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __r->_M_length = __n;
 185:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __r->_M_refdata()[__n] = _Rep::_S_terminal;  // grrr
 186:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return __r->_M_refdata();
 187:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 188:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 189:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 190:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 191:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(const basic_string& __str)
 192:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(), __str.get_allocator()),
 193:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		 __str.get_allocator())
 194:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 195:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 196:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 197:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 198:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(const _Alloc& __a)
 199:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
 200:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 201:/usr/include/c++/3.2.2/bits/basic_string.tcc ****  
 202:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 203:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 204:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(const basic_string& __str, size_type __pos, size_type __n)
 205:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__str._M_check(__pos), 
 206:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			       __str._M_fold(__pos, __n), _Alloc()), _Alloc())
 207:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 208:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 209:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 210:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 211:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(const basic_string& __str, size_type __pos,
 212:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		 size_type __n, const _Alloc& __a)
 213:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__str._M_check(__pos), 
 214:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			       __str._M_fold(__pos, __n), __a), __a)
 215:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 216:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 217:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 218:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 219:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
 220:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
 221:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 222:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 223:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 224:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 225:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(const _CharT* __s, const _Alloc& __a)
 226:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
 227:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			       __s + npos, __a), __a)
 228:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 229:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 230:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 231:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 232:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(size_type __n, _CharT __c, const _Alloc& __a)
 233:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__n, __c, __a), __a)
 234:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 235:/usr/include/c++/3.2.2/bits/basic_string.tcc ****  
 236:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
GAS LISTING /tmp/ccJ9xNSW.s 			page 25


 237:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     template<typename _InputIter>
 238:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 239:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a)
 240:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     : _M_dataplus(_S_construct(__beg, __end, __a), __a)
 241:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     { }
 242:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 243:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 244:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 245:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::assign(const basic_string& __str)
 246:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 247:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (_M_rep() != __str._M_rep())
 248:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 249:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // XXX MT
 250:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  allocator_type __a = this->get_allocator();
 251:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
 252:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_rep()->_M_dispose(__a);
 253:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_data(__tmp);
 254:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 255:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return *this;
 256:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 257:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   
 258:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 259:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     void
 260:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::
 261:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _M_destroy(const _Alloc& __a) throw ()
 262:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 263:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __size = sizeof(_Rep) + (_M_capacity + 1) * sizeof(_CharT);
 264:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
 265:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 266:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 267:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 268:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     void
 269:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard()
 270:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 271:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (_M_rep()->_M_is_shared()) 
 272:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	_M_mutate(0, 0, 0);
 273:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _M_rep()->_M_set_leaked();
 274:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 275:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 276:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // _M_mutate and, below, _M_clone, include, in the same form, an exponential
 277:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // growth policy, necessary to meet amortized linear time requirements of
 278:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // the library: see http://gcc.gnu.org/ml/libstdc++/2001-07/msg00085.html.
 279:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // The policy is active for allocations requiring an amount of memory above
 280:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // system pagesize. This is consistent with the requirements of the standard:
 281:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // see, f.i., http://gcc.gnu.org/ml/libstdc++/2001-07/msg00130.html
 282:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 283:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     void
 284:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 285:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _M_mutate(size_type __pos, size_type __len1, size_type __len2)
 286:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 287:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type       __old_size = this->size();
 288:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __new_size = __old_size + __len2 - __len1;
 289:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const _CharT*        __src = _M_data()  + __pos + __len1;
 290:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __how_much = __old_size - __pos - __len1;
 291:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       
 292:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (_M_rep()->_M_is_shared() || __new_size > capacity())
 293:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
GAS LISTING /tmp/ccJ9xNSW.s 			page 26


 294:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // Must reallocate.
 295:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  allocator_type __a = get_allocator();
 296:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // See below (_S_create) for the meaning and value of these
 297:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // constants.
 298:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  const size_type __pagesize = 4096;
 299:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  const size_type __malloc_header_size = 4 * sizeof (void*);
 300:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // The biggest string which fits in a memory page
 301:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  const size_type __page_capacity = (__pagesize - __malloc_header_size
 302:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 					     - sizeof(_Rep) - sizeof(_CharT)) 
 303:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    				     / sizeof(_CharT);
 304:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _Rep* __r;
 305:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  if (__new_size > capacity() && __new_size > __page_capacity)
 306:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    // Growing exponentially.
 307:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __r = _Rep::_S_create(__new_size > 2*capacity() ?
 308:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 				  __new_size : 2*capacity(), __a);
 309:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  else
 310:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __r = _Rep::_S_create(__new_size, __a);
 311:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  try 
 312:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    {
 313:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      if (__pos)
 314:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		traits_type::copy(__r->_M_refdata(), _M_data(), __pos);
 315:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      if (__how_much)
 316:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		traits_type::copy(__r->_M_refdata() + __pos + __len2, 
 317:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 				  __src, __how_much);
 318:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    }
 319:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  catch(...) 
 320:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    { 
 321:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      __r->_M_dispose(get_allocator()); 
 322:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      __throw_exception_again;
 323:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    }
 324:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_rep()->_M_dispose(__a);
 325:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_data(__r->_M_refdata());
 326:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       }
 327:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       else if (__how_much && __len1 != __len2)
 328:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 329:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // Work in-place
 330:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  traits_type::move(_M_data() + __pos + __len2, __src, __how_much);
 331:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 332:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _M_rep()->_M_set_sharable();
 333:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _M_rep()->_M_length = __new_size;
 334:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _M_data()[__new_size] = _Rep::_S_terminal; // grrr. (per 21.3.4)
 335:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     // You cannot leave those LWG people alone for a second.
 336:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 337:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   
 338:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 339:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     void
 340:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)
 341:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 342:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__res > this->capacity() || _M_rep()->_M_is_shared())
 343:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         {
 344:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  if (__res > this->max_size())
 345:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __throw_length_error("basic_string::reserve");
 346:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  // Make sure we don't shrink below the current size
 347:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  if (__res < this->size())
 348:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    __res = this->size();
 349:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  allocator_type __a = get_allocator();
 350:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
GAS LISTING /tmp/ccJ9xNSW.s 			page 27


 351:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_rep()->_M_dispose(__a);
 352:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_data(__tmp);
 353:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         }
 354:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 355:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   
 356:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 357:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s)
 358:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 359:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (_M_rep()->_M_is_leaked()) 
 360:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	_M_rep()->_M_set_sharable();
 361:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__s._M_rep()->_M_is_leaked()) 
 362:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__s._M_rep()->_M_set_sharable();
 363:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (this->get_allocator() == __s.get_allocator())
 364:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 365:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _CharT* __tmp = _M_data();
 366:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _M_data(__s._M_data());
 367:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __s._M_data(__tmp);
 368:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 369:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // The code below can usually be optimized away.
 370:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       else 
 371:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 372:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  basic_string __tmp1(_M_ibegin(), _M_iend(), __s.get_allocator());
 373:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), 
 374:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			      this->get_allocator());
 375:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  *this = __tmp2;
 376:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __s = __tmp1;
 377:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 378:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 379:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 380:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 381:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
 382:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::
 383:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _S_create(size_t __capacity, const _Alloc& __alloc)
 384:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 385:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
 386:/usr/include/c++/3.2.2/bits/basic_string.tcc **** #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
 387:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // 83.  String::npos vs. string::max_size()
 388:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__capacity > _S_max_size)
 389:/usr/include/c++/3.2.2/bits/basic_string.tcc **** #else
 390:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__capacity == npos)
 391:/usr/include/c++/3.2.2/bits/basic_string.tcc **** #endif
 392:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__throw_length_error("basic_string::_S_create");
 393:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 394:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // NB: Need an array of char_type[__capacity], plus a
 395:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // terminating null char_type() element, plus enough for the
 396:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // _Rep data structure. Whew. Seemingly so needy, yet so elemental.
 397:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_t __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
 398:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 399:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // The standard places no restriction on allocating more memory
 400:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // than is strictly needed within this layer at the moment or as
 401:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // requested by an explicit application call to reserve().  Many
 402:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // malloc implementations perform quite poorly when an
 403:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // application attempts to allocate memory in a stepwise fashion
 404:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // growing each allocation size by only 1 char.  Additionally,
 405:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // it makes little sense to allocate less linear memory than the
 406:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // natural blocking size of the malloc implementation.
 407:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // Unfortunately, we would need a somewhat low-level calculation
GAS LISTING /tmp/ccJ9xNSW.s 			page 28


 408:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // with tuned parameters to get this perfect for any particular
 409:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // malloc implementation.  Fortunately, generalizations about
 410:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // common features seen among implementations seems to suffice.
 411:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 412:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // __pagesize need not match the actual VM page size for good
 413:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // results in practice, thus we pick a common value on the low
 414:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // side.  __malloc_header_size is an estimate of the amount of
 415:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // overhead per memory allocation (in practice seen N * sizeof
 416:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // (void*) where N is 0, 2 or 4).  According to folklore,
 417:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // picking this value on the high side is better than
 418:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // low-balling it (especially when this algorithm is used with
 419:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // malloc implementations that allocate memory blocks rounded up
 420:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // to a size which is a power of 2).
 421:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_t __pagesize = 4096; // must be 2^i * __subpagesize
 422:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_t __subpagesize = 128; // should be >> __malloc_header_size
 423:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_t __malloc_header_size = 4 * sizeof (void*);
 424:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if ((__size + __malloc_header_size) > __pagesize)
 425:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 426:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  size_t __extra =
 427:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    (__pagesize - ((__size + __malloc_header_size) % __pagesize))
 428:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    % __pagesize;
 429:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __capacity += __extra / sizeof(_CharT);
 430:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
 431:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 432:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       else if (__size > __subpagesize)
 433:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 434:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  size_t __extra =
 435:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    (__subpagesize - ((__size + __malloc_header_size) % __subpagesize))
 436:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    % __subpagesize;
 437:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __capacity += __extra / sizeof(_CharT);
 438:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
 439:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 440:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 441:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // NB: Might throw, but no worries about a leak, mate: _Rep()
 442:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // does not throw.
 443:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
 444:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _Rep *__p = new (__place) _Rep;
 445:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __p->_M_capacity = __capacity;
 446:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __p->_M_set_sharable();  // One reference.
 447:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __p->_M_length = 0;
 448:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return __p;
 449:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 450:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 451:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 452:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _CharT*
 453:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::_Rep::
 454:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     _M_clone(const _Alloc& __alloc, size_type __res)
 455:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 456:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // Requested capacity of the clone.
 457:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __requested_cap = _M_length + __res;
 458:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // See above (_S_create) for the meaning and value of these constants.
 459:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __pagesize = 4096;
 460:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __malloc_header_size = 4 * sizeof (void*);
 461:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // The biggest string which fits in a memory page.
 462:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __page_capacity =
 463:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         (__pagesize - __malloc_header_size - sizeof(_Rep) - sizeof(_CharT))
 464:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         / sizeof(_CharT);
GAS LISTING /tmp/ccJ9xNSW.s 			page 29


 465:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _Rep* __r;
 466:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__requested_cap > _M_capacity && __requested_cap > __page_capacity)
 467:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         // Growing exponentially.
 468:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         __r = _Rep::_S_create(__requested_cap > 2*_M_capacity ?
 469:/usr/include/c++/3.2.2/bits/basic_string.tcc ****                               __requested_cap : 2*_M_capacity, __alloc);
 470:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       else
 471:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         __r = _Rep::_S_create(__requested_cap, __alloc);
 472:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       
 473:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (_M_length)
 474:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	{
 475:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  try 
 476:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    { traits_type::copy(__r->_M_refdata(), _M_refdata(), _M_length); }
 477:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  catch(...)  
 478:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    { 
 479:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      __r->_M_destroy(__alloc); 
 480:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      __throw_exception_again;
 481:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    }
 482:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	}
 483:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __r->_M_length = _M_length;
 484:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return __r->_M_refdata();
 485:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 486:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   
 487:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 488:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     void
 489:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT __c)
 490:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 491:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__n > max_size())
 492:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__throw_length_error("basic_string::resize");
 493:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __size = this->size();
 494:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__size < __n)
 495:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	this->append(__n - __size, __c);
 496:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       else if (__n < __size)
 497:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	this->erase(__n);
 498:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // else nothing (in particular, avoid calling _M_mutate() unnecessarily.)
 499:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 500:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 501:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // This is the general replace helper, which currently gets instantiated both
 502:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // for input iterators and reverse iterators. It buffers internally and then
 503:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // calls _M_replace_safe.
 504:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 505:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     template<typename _InputIter>
 506:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>&
 507:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
 508:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _M_replace(iterator __i1, iterator __i2, _InputIter __k1, 
 509:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		 _InputIter __k2, input_iterator_tag)
 510:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       {
 511:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	// Save concerned source string data in a temporary.
 512:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	basic_string __s(__k1, __k2);
 513:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	return _M_replace_safe(__i1, __i2, __s._M_ibegin(), __s._M_iend());
 514:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       }
 515:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 516:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // This is a special replace helper, which does not buffer internally
 517:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // and can be used in "safe" situations involving forward iterators,
 518:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   // i.e., when source and destination ranges are known to not overlap.
 519:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 520:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     template<typename _ForwardIter>
 521:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>&
GAS LISTING /tmp/ccJ9xNSW.s 			page 30


 522:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       basic_string<_CharT, _Traits, _Alloc>::
 523:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       _M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1, 
 524:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 		      _ForwardIter __k2)
 525:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       {
 526:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	size_type __dnew = static_cast<size_type>(distance(__k1, __k2));
 527:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	size_type __dold = __i2 - __i1;
 528:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	size_type __dmax = this->max_size();
 529:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 530:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	if (__dmax <= __dnew)
 531:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  __throw_length_error("basic_string::_M_replace");
 532:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	size_type __off = __i1 - _M_ibegin();
 533:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	_M_mutate(__off, __dold, __dnew);
 534:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 535:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	// Invalidated __i1, __i2
 536:/usr/include/c++/3.2.2/bits/basic_string.tcc ****         if (__dnew)
 537:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	  _S_copy_chars(_M_data() + __off, __k1, __k2);
 538:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 539:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	return *this;
 540:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       }
 541:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 542:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 543:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 544:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 545:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     replace(size_type __pos1, size_type __n1, const basic_string& __str,
 546:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	    size_type __pos2, size_type __n2)
 547:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 548:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __strsize = __str.size();
 549:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__pos2 > __strsize)
 550:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	__throw_out_of_range("basic_string::replace");
 551:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const bool __testn2 = __n2 < __strsize - __pos2;
 552:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       const size_type __foldn2 = __testn2 ? __n2 : __strsize - __pos2;
 553:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return this->replace(__pos1, __n1,
 554:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			   __str._M_data() + __pos2, __foldn2);      
 555:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 556:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 557:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 558:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 559:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 560:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     append(const basic_string& __str)
 561:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 562:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // Iff appending itself, string needs to pre-reserve the
 563:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // correct size so that _M_mutate does not clobber the
 564:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // iterators formed here.
 565:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __size = __str.size();
 566:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __len = __size + this->size();
 567:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__len > this->capacity())
 568:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	this->reserve(__len);
 569:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return _M_replace_safe(_M_iend(), _M_iend(), __str._M_ibegin(),
 570:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			     __str._M_iend());
 571:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 572:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 573:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 574:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 575:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 576:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     append(const basic_string& __str, size_type __pos, size_type __n)
 577:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 578:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // Iff appending itself, string needs to pre-reserve the
GAS LISTING /tmp/ccJ9xNSW.s 			page 31


 579:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // correct size so that _M_mutate does not clobber the
 580:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       // iterators formed here.
 581:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __len = min(__str.size() - __pos, __n) + this->size();
 582:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__len > this->capacity())
 583:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	this->reserve(__len);
 584:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos),
 585:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 			     __str._M_fold(__pos, __n));
 586:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 587:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 588:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 589:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 590:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 591:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     append(const _CharT* __s, size_type __n)
 592:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 593:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __len = __n + this->size();
 594:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__len > this->capacity())
 595:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	this->reserve(__len);
 596:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return _M_replace_safe(_M_iend(), _M_iend(), __s, __s + __n);
 597:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 598:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 599:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 600:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>&
 601:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>::
 602:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     append(size_type __n, _CharT __c)
 603:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 604:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       size_type __len = __n + this->size();
 605:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       if (__len > this->capacity())
 606:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	this->reserve(__len);
 607:/usr/include/c++/3.2.2/bits/basic_string.tcc ****        return this->replace(_M_iend(), _M_iend(), __n, __c);
 608:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     }
 609:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 
 610:/usr/include/c++/3.2.2/bits/basic_string.tcc ****   template<typename _CharT, typename _Traits, typename _Alloc>
 611:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     basic_string<_CharT, _Traits, _Alloc>
 612:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     operator+(const _CharT* __lhs,
 613:/usr/include/c++/3.2.2/bits/basic_string.tcc **** 	      const basic_string<_CharT, _Traits, _Alloc>& __rhs)
 614:/usr/include/c++/3.2.2/bits/basic_string.tcc ****     {
 1024              		.loc 29 614 0
 1025 0000 55       		pushl	%ebp
 1026              	.LCFI53:
 1027 0001 89E5     		movl	%esp, %ebp
 1028              	.LCFI54:
 1029 0003 53       		pushl	%ebx
 1030              	.LCFI55:
 1031 0004 83EC14   		subl	$20, %esp
 1032              	.LCFI56:
 1033              	.LBB14:
 615:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
 616:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       typedef typename __string_type::size_type	  __size_type;
 617:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __size_type __len = _Traits::length(__lhs);
 1034              		.loc 29 617 0
 1035 0007 83EC0C   		subl	$12, %esp
 1036 000a FF750C   		pushl	12(%ebp)
 1037              	.LEHB25:
 1038              	.LCFI57:
 1039 000d E8FCFFFF 		call	_ZNSt11char_traitsIcE6lengthEPKc
 1039      FF
 1040 0012 83C410   		addl	$16, %esp
GAS LISTING /tmp/ccJ9xNSW.s 			page 32


 1041 0015 8945F8   		movl	%eax, -8(%ebp)
 618:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __string_type __str;
 1042              		.loc 29 618 0
 1043 0018 83EC0C   		subl	$12, %esp
 1044 001b FF7508   		pushl	8(%ebp)
 1045 001e E8FCFFFF 		call	_ZNSsC1Ev
 1045      FF
 1046              	.LEHE25:
 1047 0023 83C410   		addl	$16, %esp
 619:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __str.reserve(__len + __rhs.size());
 1048              		.loc 29 619 0
 1049 0026 83EC08   		subl	$8, %esp
 1050 0029 83EC04   		subl	$4, %esp
 1051 002c FF7510   		pushl	16(%ebp)
 1052              	.LEHB26:
 1053              	.LCFI58:
 1054 002f E8FCFFFF 		call	_ZNKSs4sizeEv
 1054      FF
 1055 0034 83C408   		addl	$8, %esp
 1056 0037 0345F8   		addl	-8(%ebp), %eax
 1057 003a 50       		pushl	%eax
 1058 003b FF7508   		pushl	8(%ebp)
 1059              	.LCFI59:
 1060 003e E8FCFFFF 		call	_ZNSs7reserveEj
 1060      FF
 1061 0043 83C410   		addl	$16, %esp
 620:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __str.append(__lhs, __lhs + __len);
 1062              		.loc 29 620 0
 1063 0046 83EC04   		subl	$4, %esp
 1064 0049 8B45F8   		movl	-8(%ebp), %eax
 1065 004c 03450C   		addl	12(%ebp), %eax
 1066 004f 50       		pushl	%eax
 1067 0050 FF750C   		pushl	12(%ebp)
 1068 0053 FF7508   		pushl	8(%ebp)
 1069 0056 E8FCFFFF 		call	_ZNSs6appendIPKcEERSsT_S3_
 1069      FF
 1070 005b 83C410   		addl	$16, %esp
 621:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __str.append(__rhs);
 1071              		.loc 29 621 0
 1072 005e 83EC08   		subl	$8, %esp
 1073 0061 FF7510   		pushl	16(%ebp)
 1074 0064 FF7508   		pushl	8(%ebp)
 1075 0067 E8FCFFFF 		call	_ZNSs6appendERKSs
 1075      FF
 1076              	.LEHE26:
 1077 006c 83C410   		addl	$16, %esp
 622:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return __str;
 1078              		.loc 29 622 0
 1079 006f EB22     		jmp	.L101
 1080              	.L106:
 1081 0071 8945F4   		movl	%eax, -12(%ebp)
 1082 0074 8B5DF4   		movl	-12(%ebp), %ebx
 1083 0077 83EC0C   		subl	$12, %esp
 1084 007a FF7508   		pushl	8(%ebp)
 1085 007d E8FCFFFF 		call	_ZNSsD1Ev
 1085      FF
 1086 0082 83C410   		addl	$16, %esp
GAS LISTING /tmp/ccJ9xNSW.s 			page 33


 1087 0085 895DF4   		movl	%ebx, -12(%ebp)
 1088 0088 83EC0C   		subl	$12, %esp
 1089 008b FF75F4   		pushl	-12(%ebp)
 1090              	.LEHB27:
 1091 008e E8FCFFFF 		call	_Unwind_Resume
 1091      FF
 1092              	.LEHE27:
 1093              	.LBE14:
 1094              	.L101:
 1095 0093 8B4508   		movl	8(%ebp), %eax
 1096 0096 8B5DFC   		movl	-4(%ebp), %ebx
 1097 0099 C9       		leave
 1098 009a C20400   		ret	$4
 1099              	.LFE1517:
 1100              	.Lfe10:
 1102              		.section	.gcc_except_table
 1103              	.LLSDA1517:
 1104 00dc FF       		.byte	0xff
 1105 00dd FF       		.byte	0xff
 1106 00de 01       		.byte	0x1
 1107 00df 0D       		.uleb128 .LLSDACSE1517-.LLSDACSB1517
 1108              	.LLSDACSB1517:
 1109 00e0 0D       		.uleb128 .LEHB25-.LFB1517
 1110 00e1 16       		.uleb128 .LEHE25-.LEHB25
 1111 00e2 00       		.uleb128 0x0
 1112 00e3 00       		.uleb128 0x0
 1113 00e4 2F       		.uleb128 .LEHB26-.LFB1517
 1114 00e5 3D       		.uleb128 .LEHE26-.LEHB26
 1115 00e6 71       		.uleb128 .L106-.LFB1517
 1116 00e7 00       		.uleb128 0x0
 1117 00e8 8E01     		.uleb128 .LEHB27-.LFB1517
 1118 00ea 05       		.uleb128 .LEHE27-.LEHB27
 1119 00eb 00       		.uleb128 0x0
 1120 00ec 00       		.uleb128 0x0
 1121              	.LLSDACSE1517:
 1122              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 1123              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_,"ax",@progbits
 1124              		.align 2
 1125              		.weak	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
 1127              	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_:
 1128              	.LFB1519:
   1:/usr/include/c++/3.2.2/bits/basic_string.h **** // Components for manipulating sequences of characters -*- C++ -*-
   2:/usr/include/c++/3.2.2/bits/basic_string.h **** 
   3:/usr/include/c++/3.2.2/bits/basic_string.h **** // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
   4:/usr/include/c++/3.2.2/bits/basic_string.h **** // Free Software Foundation, Inc.
   5:/usr/include/c++/3.2.2/bits/basic_string.h **** //
   6:/usr/include/c++/3.2.2/bits/basic_string.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   7:/usr/include/c++/3.2.2/bits/basic_string.h **** // software; you can redistribute it and/or modify it under the
   8:/usr/include/c++/3.2.2/bits/basic_string.h **** // terms of the GNU General Public License as published by the
   9:/usr/include/c++/3.2.2/bits/basic_string.h **** // Free Software Foundation; either version 2, or (at your option)
  10:/usr/include/c++/3.2.2/bits/basic_string.h **** // any later version.
  11:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  12:/usr/include/c++/3.2.2/bits/basic_string.h **** // This library is distributed in the hope that it will be useful,
  13:/usr/include/c++/3.2.2/bits/basic_string.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/usr/include/c++/3.2.2/bits/basic_string.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15:/usr/include/c++/3.2.2/bits/basic_string.h **** // GNU General Public License for more details.
  16:/usr/include/c++/3.2.2/bits/basic_string.h **** 
GAS LISTING /tmp/ccJ9xNSW.s 			page 34


  17:/usr/include/c++/3.2.2/bits/basic_string.h **** // You should have received a copy of the GNU General Public License along
  18:/usr/include/c++/3.2.2/bits/basic_string.h **** // with this library; see the file COPYING.  If not, write to the Free
  19:/usr/include/c++/3.2.2/bits/basic_string.h **** // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  20:/usr/include/c++/3.2.2/bits/basic_string.h **** // USA.
  21:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  22:/usr/include/c++/3.2.2/bits/basic_string.h **** // As a special exception, you may use this file as part of a free software
  23:/usr/include/c++/3.2.2/bits/basic_string.h **** // library without restriction.  Specifically, if other files instantiate
  24:/usr/include/c++/3.2.2/bits/basic_string.h **** // templates or use macros or inline functions from this file, or you compile
  25:/usr/include/c++/3.2.2/bits/basic_string.h **** // this file and link it with other files to produce an executable, this
  26:/usr/include/c++/3.2.2/bits/basic_string.h **** // file does not by itself cause the resulting executable to be covered by
  27:/usr/include/c++/3.2.2/bits/basic_string.h **** // the GNU General Public License.  This exception does not however
  28:/usr/include/c++/3.2.2/bits/basic_string.h **** // invalidate any other reasons why the executable file might be covered by
  29:/usr/include/c++/3.2.2/bits/basic_string.h **** // the GNU General Public License.
  30:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  31:/usr/include/c++/3.2.2/bits/basic_string.h **** //
  32:/usr/include/c++/3.2.2/bits/basic_string.h **** // ISO C++ 14882: 21 Strings library
  33:/usr/include/c++/3.2.2/bits/basic_string.h **** //
  34:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  35:/usr/include/c++/3.2.2/bits/basic_string.h **** /** @file basic_string.h
  36:/usr/include/c++/3.2.2/bits/basic_string.h ****  *  This is an internal header file, included by other library headers.
  37:/usr/include/c++/3.2.2/bits/basic_string.h ****  *  You should not attempt to use it directly.
  38:/usr/include/c++/3.2.2/bits/basic_string.h ****  */
  39:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  40:/usr/include/c++/3.2.2/bits/basic_string.h **** #ifndef _CPP_BITS_STRING_H
  41:/usr/include/c++/3.2.2/bits/basic_string.h **** #define _CPP_BITS_STRING_H	1
  42:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  43:/usr/include/c++/3.2.2/bits/basic_string.h **** #pragma GCC system_header
  44:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  45:/usr/include/c++/3.2.2/bits/basic_string.h **** #include <bits/atomicity.h>
  46:/usr/include/c++/3.2.2/bits/basic_string.h **** 
  47:/usr/include/c++/3.2.2/bits/basic_string.h **** namespace std
  48:/usr/include/c++/3.2.2/bits/basic_string.h **** {
  49:/usr/include/c++/3.2.2/bits/basic_string.h ****   // Documentation?  What's that? 
  50:/usr/include/c++/3.2.2/bits/basic_string.h ****   // Nathan Myers <ncm@cantrip.org>.
  51:/usr/include/c++/3.2.2/bits/basic_string.h ****   //
  52:/usr/include/c++/3.2.2/bits/basic_string.h ****   // A string looks like this:
  53:/usr/include/c++/3.2.2/bits/basic_string.h ****   //
  54:/usr/include/c++/3.2.2/bits/basic_string.h ****   //                               	[_Rep]
  55:/usr/include/c++/3.2.2/bits/basic_string.h ****   //                               	_M_length
  56:/usr/include/c++/3.2.2/bits/basic_string.h ****   //  [basic_string<char_type>]		_M_capacity
  57:/usr/include/c++/3.2.2/bits/basic_string.h ****   //  _M_dataplus                	_M_state
  58:/usr/include/c++/3.2.2/bits/basic_string.h ****   //  _M_p ---------------->   		unnamed array of char_type
  59:/usr/include/c++/3.2.2/bits/basic_string.h ****   
  60:/usr/include/c++/3.2.2/bits/basic_string.h ****   // Where the _M_p points to the first character in the string, and
  61:/usr/include/c++/3.2.2/bits/basic_string.h ****   // you cast it to a pointer-to-_Rep and subtract 1 to get a
  62:/usr/include/c++/3.2.2/bits/basic_string.h ****   // pointer to the header.
  63:/usr/include/c++/3.2.2/bits/basic_string.h ****   
  64:/usr/include/c++/3.2.2/bits/basic_string.h ****   // This approach has the enormous advantage that a string object
  65:/usr/include/c++/3.2.2/bits/basic_string.h ****   // requires only one allocation.  All the ugliness is confined
  66:/usr/include/c++/3.2.2/bits/basic_string.h ****   // within a single pair of inline functions, which each compile to
  67:/usr/include/c++/3.2.2/bits/basic_string.h ****   // a single "add" instruction: _Rep::_M_data(), and
  68:/usr/include/c++/3.2.2/bits/basic_string.h ****   // string::_M_rep(); and the allocation function which gets a
  69:/usr/include/c++/3.2.2/bits/basic_string.h ****   // block of raw bytes and with room enough and constructs a _Rep
  70:/usr/include/c++/3.2.2/bits/basic_string.h ****   // object at the front.
  71:/usr/include/c++/3.2.2/bits/basic_string.h ****   
  72:/usr/include/c++/3.2.2/bits/basic_string.h ****   // The reason you want _M_data pointing to the character array and
  73:/usr/include/c++/3.2.2/bits/basic_string.h ****   // not the _Rep is so that the debugger can see the string
GAS LISTING /tmp/ccJ9xNSW.s 			page 35


  74:/usr/include/c++/3.2.2/bits/basic_string.h ****   // contents. (Probably we should add a non-inline member to get
  75:/usr/include/c++/3.2.2/bits/basic_string.h ****   // the _Rep for the debugger to use, so users can check the actual
  76:/usr/include/c++/3.2.2/bits/basic_string.h ****   // string length.)
  77:/usr/include/c++/3.2.2/bits/basic_string.h ****   
  78:/usr/include/c++/3.2.2/bits/basic_string.h ****   // Note that the _Rep object is a POD so that you can have a
  79:/usr/include/c++/3.2.2/bits/basic_string.h ****   // static "empty string" _Rep object already "constructed" before
  80:/usr/include/c++/3.2.2/bits/basic_string.h ****   // static constructors have run.  The reference-count encoding is
  81:/usr/include/c++/3.2.2/bits/basic_string.h ****   // chosen so that a 0 indicates one reference, so you never try to
  82:/usr/include/c++/3.2.2/bits/basic_string.h ****   // destroy the empty-string _Rep object.
  83:/usr/include/c++/3.2.2/bits/basic_string.h ****   
  84:/usr/include/c++/3.2.2/bits/basic_string.h ****   // All but the last paragraph is considered pretty conventional
  85:/usr/include/c++/3.2.2/bits/basic_string.h ****   // for a C++ string implementation.
  86:/usr/include/c++/3.2.2/bits/basic_string.h ****   
  87:/usr/include/c++/3.2.2/bits/basic_string.h ****   // 21.3  Template class basic_string
  88:/usr/include/c++/3.2.2/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
  89:/usr/include/c++/3.2.2/bits/basic_string.h ****     class basic_string
  90:/usr/include/c++/3.2.2/bits/basic_string.h ****     {
  91:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Types:
  92:/usr/include/c++/3.2.2/bits/basic_string.h ****     public:
  93:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef _Traits 					    traits_type;
  94:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Traits::char_type 		    value_type;
  95:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef _Alloc 					    allocator_type;
  96:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Alloc::size_type 		    size_type;
  97:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Alloc::difference_type 		    difference_type;
  98:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Alloc::reference 		    reference;
  99:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Alloc::const_reference 		    const_reference;
 100:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Alloc::pointer 			    pointer;
 101:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef typename _Alloc::const_pointer 	   	    const_pointer;
 102:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef __gnu_cxx::__normal_iterator<pointer, basic_string>  iterator;
 103:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
 104:/usr/include/c++/3.2.2/bits/basic_string.h ****                                                             const_iterator;
 105:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef reverse_iterator<const_iterator> 	const_reverse_iterator;
 106:/usr/include/c++/3.2.2/bits/basic_string.h ****       typedef reverse_iterator<iterator> 		    reverse_iterator;
 107:/usr/include/c++/3.2.2/bits/basic_string.h ****     
 108:/usr/include/c++/3.2.2/bits/basic_string.h ****     private:
 109:/usr/include/c++/3.2.2/bits/basic_string.h ****       // _Rep: string representation
 110:/usr/include/c++/3.2.2/bits/basic_string.h ****       //   Invariants:
 111:/usr/include/c++/3.2.2/bits/basic_string.h ****       //   1. String really contains _M_length + 1 characters; last is set
 112:/usr/include/c++/3.2.2/bits/basic_string.h ****       //      to 0 only on call to c_str().  We avoid instantiating
 113:/usr/include/c++/3.2.2/bits/basic_string.h ****       //      _CharT() where the interface does not require it.
 114:/usr/include/c++/3.2.2/bits/basic_string.h ****       //   2. _M_capacity >= _M_length
 115:/usr/include/c++/3.2.2/bits/basic_string.h ****       //      Allocated memory is always _M_capacity + (1 * sizeof(_CharT)).
 116:/usr/include/c++/3.2.2/bits/basic_string.h ****       //   3. _M_references has three states:
 117:/usr/include/c++/3.2.2/bits/basic_string.h ****       //      -1: leaked, one reference, no ref-copies allowed, non-const.
 118:/usr/include/c++/3.2.2/bits/basic_string.h ****       //       0: one reference, non-const.
 119:/usr/include/c++/3.2.2/bits/basic_string.h ****       //     n>0: n + 1 references, operations require a lock, const.
 120:/usr/include/c++/3.2.2/bits/basic_string.h ****       //   4. All fields==0 is an empty string, given the extra storage
 121:/usr/include/c++/3.2.2/bits/basic_string.h ****       //      beyond-the-end for a null terminator; thus, the shared
 122:/usr/include/c++/3.2.2/bits/basic_string.h ****       //      empty string representation needs no constructor.
 123:/usr/include/c++/3.2.2/bits/basic_string.h ****       struct _Rep
 124:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 125:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// Types:
 126:/usr/include/c++/3.2.2/bits/basic_string.h **** 	typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
 127:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 128:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// (Public) Data members: 
 129:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 130:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// The maximum number of individual char_type elements of an
GAS LISTING /tmp/ccJ9xNSW.s 			page 36


 131:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// individual string is determined by _S_max_size. This is the
 132:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// value that will be returned by max_size().  (Whereas npos
 133:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// is the maximum number of bytes the allocator can allocate.)
 134:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// If one was to divvy up the theoretical largest size string,
 135:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// with a terminating character and m _CharT elements, it'd
 136:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// look like this: 
 137:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// npos = sizeof(_Rep) + (m * sizeof(_CharT)) + sizeof(_CharT)
 138:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// Solving for m:
 139:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// m = ((npos - sizeof(_Rep))/sizeof(CharT)) - 1 
 140:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// In addition, this implementation quarters this ammount.
 141:/usr/include/c++/3.2.2/bits/basic_string.h **** 	static const size_type 	_S_max_size;
 142:/usr/include/c++/3.2.2/bits/basic_string.h **** 	static const _CharT 	_S_terminal;
 143:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 144:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type 		_M_length;
 145:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type 		_M_capacity;
 146:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_Atomic_word		_M_references;
 147:/usr/include/c++/3.2.2/bits/basic_string.h **** 	
 148:/usr/include/c++/3.2.2/bits/basic_string.h ****         bool
 149:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_is_leaked() const
 150:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return _M_references < 0; }
 151:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 152:/usr/include/c++/3.2.2/bits/basic_string.h ****         bool
 153:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_is_shared() const
 154:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return _M_references > 0; }
 155:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 156:/usr/include/c++/3.2.2/bits/basic_string.h ****         void
 157:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_set_leaked() 
 158:/usr/include/c++/3.2.2/bits/basic_string.h ****         { _M_references = -1; }
 159:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 160:/usr/include/c++/3.2.2/bits/basic_string.h ****         void
 161:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_set_sharable() 
 162:/usr/include/c++/3.2.2/bits/basic_string.h ****         { _M_references = 0; }
 163:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 164:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_CharT* 
 165:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_refdata() throw()
 166:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{ return reinterpret_cast<_CharT*>(this + 1); }
 167:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 168:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_CharT& 
 169:/usr/include/c++/3.2.2/bits/basic_string.h **** 	operator[](size_t __s) throw()
 170:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{ return _M_refdata() [__s]; }
 171:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 172:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_CharT* 
 173:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
 174:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{ 
 175:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return (!_M_is_leaked() && __alloc1 == __alloc2) 
 176:/usr/include/c++/3.2.2/bits/basic_string.h **** 	          ? _M_refcopy() : _M_clone(__alloc1);  
 177:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}
 178:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 179:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// Create & Destroy
 180:/usr/include/c++/3.2.2/bits/basic_string.h **** 	static _Rep* 
 181:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_S_create(size_t, const _Alloc&);
 182:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 183:/usr/include/c++/3.2.2/bits/basic_string.h **** 	void 
 184:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_dispose(const _Alloc& __a)
 185:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{ 
 186:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  if (__exchange_and_add(&_M_references, -1) <= 0)  
 187:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    _M_destroy(__a); 
GAS LISTING /tmp/ccJ9xNSW.s 			page 37


 188:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}  // XXX MT
 189:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 190:/usr/include/c++/3.2.2/bits/basic_string.h **** 	void 
 191:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_destroy(const _Alloc&) throw();
 192:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 193:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_CharT* 
 194:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_refcopy() throw()
 195:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{ 
 196:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __atomic_add(&_M_references, 1); 
 197:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return _M_refdata(); 
 198:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}  // XXX MT
 199:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 200:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_CharT* 
 201:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_clone(const _Alloc&, size_type __res = 0);
 202:/usr/include/c++/3.2.2/bits/basic_string.h ****       };
 203:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 204:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Use empty-base optimization: http://www.cantrip.org/emptyopt.html
 205:/usr/include/c++/3.2.2/bits/basic_string.h ****       struct _Alloc_hider : _Alloc
 206:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 207:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_Alloc_hider(_CharT* __dat, const _Alloc& __a)
 208:/usr/include/c++/3.2.2/bits/basic_string.h **** 	: _Alloc(__a), _M_p(__dat) { }
 209:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 210:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_CharT* _M_p; // The actual data.
 211:/usr/include/c++/3.2.2/bits/basic_string.h ****       };
 212:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 213:/usr/include/c++/3.2.2/bits/basic_string.h ****     public:
 214:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Data Members (public):
 215:/usr/include/c++/3.2.2/bits/basic_string.h ****       // NB: This is an unsigned type, and thus represents the maximum
 216:/usr/include/c++/3.2.2/bits/basic_string.h ****       // size that the allocator can hold.
 217:/usr/include/c++/3.2.2/bits/basic_string.h ****       static const size_type 	npos = static_cast<size_type>(-1);
 218:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 219:/usr/include/c++/3.2.2/bits/basic_string.h ****     private:
 220:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Data Members (private):
 221:/usr/include/c++/3.2.2/bits/basic_string.h ****       mutable _Alloc_hider 	_M_dataplus;
 222:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 223:/usr/include/c++/3.2.2/bits/basic_string.h ****       // The following storage is init'd to 0 by the linker, resulting
 224:/usr/include/c++/3.2.2/bits/basic_string.h ****       // (carefully) in an empty string with one reference.
 225:/usr/include/c++/3.2.2/bits/basic_string.h ****       static size_type _S_empty_rep_storage[(sizeof(_Rep) + sizeof(_CharT) + sizeof(size_type) - 1)
 226:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 227:/usr/include/c++/3.2.2/bits/basic_string.h ****       _CharT* 
 228:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_data() const 
 229:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return  _M_dataplus._M_p; }
 230:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 231:/usr/include/c++/3.2.2/bits/basic_string.h ****       _CharT* 
 232:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_data(_CharT* __p) 
 233:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return (_M_dataplus._M_p = __p); }
 234:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 235:/usr/include/c++/3.2.2/bits/basic_string.h ****       _Rep* 
 236:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_rep() const
 237:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
 238:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 239:/usr/include/c++/3.2.2/bits/basic_string.h ****       // For the internal use we have functions similar to `begin'/`end'
 240:/usr/include/c++/3.2.2/bits/basic_string.h ****       // but they do not call _M_leak.
 241:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 242:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_ibegin() const { return iterator(_M_data()); }
 243:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 244:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
GAS LISTING /tmp/ccJ9xNSW.s 			page 38


 245:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_iend() const { return iterator(_M_data() + this->size()); }
 246:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 247:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 248:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_leak()    // for use in begin() & non-const op[]
 249:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 250:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (!_M_rep()->_M_is_leaked()) 
 251:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  _M_leak_hard(); 
 252:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 253:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 254:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 255:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_check(size_type __pos) const
 256:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 257:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__pos > this->size())
 258:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::_M_check"); 
 259:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return _M_ibegin() + __pos; 
 260:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 261:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 262:/usr/include/c++/3.2.2/bits/basic_string.h ****       // NB: _M_fold doesn't check for a bad __pos1 value.
 263:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 264:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_fold(size_type __pos, size_type __off) const
 265:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 266:/usr/include/c++/3.2.2/bits/basic_string.h **** 	bool __testoff =  __off < this->size() - __pos;
 267:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __newoff = __testoff ? __off : this->size() - __pos;
 268:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return (_M_ibegin() + __pos + __newoff);
 269:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 270:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 271:/usr/include/c++/3.2.2/bits/basic_string.h ****       // _S_copy_chars is a separate template to permit specialization
 272:/usr/include/c++/3.2.2/bits/basic_string.h ****       // to optimize for the common case of pointers as iterators.
 273:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _Iterator>
 274:/usr/include/c++/3.2.2/bits/basic_string.h ****         static void
 275:/usr/include/c++/3.2.2/bits/basic_string.h ****         _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
 276:/usr/include/c++/3.2.2/bits/basic_string.h ****         { 
 277:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  for (; __k1 != __k2; ++__k1, ++__p) 
 278:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    traits_type::assign(*__p, *__k1); // These types are off.
 279:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}
 280:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 281:/usr/include/c++/3.2.2/bits/basic_string.h ****       static void
 282:/usr/include/c++/3.2.2/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
 283:/usr/include/c++/3.2.2/bits/basic_string.h ****       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
 284:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 285:/usr/include/c++/3.2.2/bits/basic_string.h ****       static void
 286:/usr/include/c++/3.2.2/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
 287:/usr/include/c++/3.2.2/bits/basic_string.h ****       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
 288:/usr/include/c++/3.2.2/bits/basic_string.h ****  
 289:/usr/include/c++/3.2.2/bits/basic_string.h ****       static void
 290:/usr/include/c++/3.2.2/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
 291:/usr/include/c++/3.2.2/bits/basic_string.h ****       { traits_type::copy(__p, __k1, __k2 - __k1); }
 292:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 293:/usr/include/c++/3.2.2/bits/basic_string.h ****       static void
 294:/usr/include/c++/3.2.2/bits/basic_string.h ****       _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
 295:/usr/include/c++/3.2.2/bits/basic_string.h ****       { traits_type::copy(__p, __k1, __k2 - __k1); }
 296:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 297:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 298:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_mutate(size_type __pos, size_type __len1, size_type __len2);
 299:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 300:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 301:/usr/include/c++/3.2.2/bits/basic_string.h ****       _M_leak_hard();
GAS LISTING /tmp/ccJ9xNSW.s 			page 39


 302:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 303:/usr/include/c++/3.2.2/bits/basic_string.h ****       static _Rep& 
 304:/usr/include/c++/3.2.2/bits/basic_string.h ****       _S_empty_rep()
 305:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); }
 306:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 307:/usr/include/c++/3.2.2/bits/basic_string.h ****     public:
 308:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Construct/copy/destroy:
 309:/usr/include/c++/3.2.2/bits/basic_string.h ****       // NB: We overload ctors in some cases instead of using default
 310:/usr/include/c++/3.2.2/bits/basic_string.h ****       // arguments, per 17.4.4.4 para. 2 item 2.
 311:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 312:/usr/include/c++/3.2.2/bits/basic_string.h ****       inline 
 313:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string();
 314:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 315:/usr/include/c++/3.2.2/bits/basic_string.h ****       explicit 
 316:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(const _Alloc& __a);
 317:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 318:/usr/include/c++/3.2.2/bits/basic_string.h ****       // NB: per LWG issue 42, semantics different from IS:
 319:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(const basic_string& __str);
 320:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(const basic_string& __str, size_type __pos,
 321:/usr/include/c++/3.2.2/bits/basic_string.h **** 		   size_type __n = npos);
 322:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(const basic_string& __str, size_type __pos,
 323:/usr/include/c++/3.2.2/bits/basic_string.h **** 		   size_type __n, const _Alloc& __a);
 324:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 325:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(const _CharT* __s, size_type __n,
 326:/usr/include/c++/3.2.2/bits/basic_string.h **** 		   const _Alloc& __a = _Alloc());
 327:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
 328:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
 329:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 330:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InputIterator>
 331:/usr/include/c++/3.2.2/bits/basic_string.h ****         basic_string(_InputIterator __beg, _InputIterator __end,
 332:/usr/include/c++/3.2.2/bits/basic_string.h **** 		     const _Alloc& __a = _Alloc());
 333:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 334:/usr/include/c++/3.2.2/bits/basic_string.h ****       ~basic_string() 
 335:/usr/include/c++/3.2.2/bits/basic_string.h ****       { _M_rep()->_M_dispose(this->get_allocator()); }
 336:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 337:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 338:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator=(const basic_string& __str) { return this->assign(__str); }
 339:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 340:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 341:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator=(const _CharT* __s) { return this->assign(__s); }
 342:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 343:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 344:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator=(_CharT __c) { return this->assign(1, __c); }
 345:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 346:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Iterators:
 347:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 348:/usr/include/c++/3.2.2/bits/basic_string.h ****       begin() 
 349:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 350:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_leak(); 
 351:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return iterator(_M_data());
 352:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 353:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 354:/usr/include/c++/3.2.2/bits/basic_string.h ****       const_iterator 
 355:/usr/include/c++/3.2.2/bits/basic_string.h ****       begin() const 
 356:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return const_iterator(_M_data()); }
 357:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 358:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
GAS LISTING /tmp/ccJ9xNSW.s 			page 40


 359:/usr/include/c++/3.2.2/bits/basic_string.h ****       end()
 360:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 361:/usr/include/c++/3.2.2/bits/basic_string.h ****          _M_leak();
 362:/usr/include/c++/3.2.2/bits/basic_string.h **** 	 return iterator(_M_data() + this->size());
 363:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 364:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 365:/usr/include/c++/3.2.2/bits/basic_string.h ****       const_iterator 
 366:/usr/include/c++/3.2.2/bits/basic_string.h ****       end() const
 367:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return const_iterator(_M_data() + this->size()); }
 368:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 369:/usr/include/c++/3.2.2/bits/basic_string.h ****       reverse_iterator 
 370:/usr/include/c++/3.2.2/bits/basic_string.h ****       rbegin() 
 371:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return reverse_iterator(this->end()); }
 372:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 373:/usr/include/c++/3.2.2/bits/basic_string.h ****       const_reverse_iterator 
 374:/usr/include/c++/3.2.2/bits/basic_string.h ****       rbegin() const 
 375:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return const_reverse_iterator(this->end()); }
 376:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 377:/usr/include/c++/3.2.2/bits/basic_string.h ****       reverse_iterator 
 378:/usr/include/c++/3.2.2/bits/basic_string.h ****       rend() 
 379:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return reverse_iterator(this->begin()); }
 380:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 381:/usr/include/c++/3.2.2/bits/basic_string.h ****       const_reverse_iterator 
 382:/usr/include/c++/3.2.2/bits/basic_string.h ****       rend() const 
 383:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return const_reverse_iterator(this->begin()); }
 384:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 385:/usr/include/c++/3.2.2/bits/basic_string.h ****     public:
 386:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Capacity:
 387:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 388:/usr/include/c++/3.2.2/bits/basic_string.h ****       size() const { return _M_rep()->_M_length; }
 389:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 390:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 391:/usr/include/c++/3.2.2/bits/basic_string.h ****       length() const { return _M_rep()->_M_length; }
 392:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 393:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 394:/usr/include/c++/3.2.2/bits/basic_string.h ****       max_size() const { return _Rep::_S_max_size; }
 395:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 396:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 397:/usr/include/c++/3.2.2/bits/basic_string.h ****       resize(size_type __n, _CharT __c);
 398:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 399:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 400:/usr/include/c++/3.2.2/bits/basic_string.h ****       resize(size_type __n) { this->resize(__n, _CharT()); }
 401:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 402:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 403:/usr/include/c++/3.2.2/bits/basic_string.h ****       capacity() const { return _M_rep()->_M_capacity; }
 404:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 405:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 406:/usr/include/c++/3.2.2/bits/basic_string.h ****       reserve(size_type __res_arg = 0);
 407:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 408:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 409:/usr/include/c++/3.2.2/bits/basic_string.h ****       clear() { _M_mutate(0, this->size(), 0); }
 410:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 411:/usr/include/c++/3.2.2/bits/basic_string.h ****       bool 
 412:/usr/include/c++/3.2.2/bits/basic_string.h ****       empty() const { return this->size() == 0; }
 413:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 414:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Element access:
 415:/usr/include/c++/3.2.2/bits/basic_string.h ****       const_reference 
GAS LISTING /tmp/ccJ9xNSW.s 			page 41


 416:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator[] (size_type __pos) const 
 417:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return _M_data()[__pos]; }
 418:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 419:/usr/include/c++/3.2.2/bits/basic_string.h ****       reference 
 420:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator[](size_type __pos) 
 421:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 422:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_leak(); 
 423:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return _M_data()[__pos]; 
 424:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 425:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 426:/usr/include/c++/3.2.2/bits/basic_string.h ****       const_reference 
 427:/usr/include/c++/3.2.2/bits/basic_string.h ****       at(size_type __n) const
 428:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 429:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__n >= this->size())
 430:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::at");
 431:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return _M_data()[__n]; 
 432:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 433:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 434:/usr/include/c++/3.2.2/bits/basic_string.h ****       reference 
 435:/usr/include/c++/3.2.2/bits/basic_string.h ****       at(size_type __n)
 436:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 437:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__n >= size())
 438:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::at");
 439:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_leak(); 
 440:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return _M_data()[__n]; 
 441:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 442:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 443:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Modifiers:
 444:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 445:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator+=(const basic_string& __str) { return this->append(__str); }
 446:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 447:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 448:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator+=(const _CharT* __s) { return this->append(__s); }
 449:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 450:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 451:/usr/include/c++/3.2.2/bits/basic_string.h ****       operator+=(_CharT __c) { return this->append(size_type(1), __c); }
 452:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 453:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 454:/usr/include/c++/3.2.2/bits/basic_string.h ****       append(const basic_string& __str);
 455:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 456:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 457:/usr/include/c++/3.2.2/bits/basic_string.h ****       append(const basic_string& __str, size_type __pos, size_type __n);
 458:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 459:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 460:/usr/include/c++/3.2.2/bits/basic_string.h ****       append(const _CharT* __s, size_type __n);
 461:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 462:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 463:/usr/include/c++/3.2.2/bits/basic_string.h ****       append(const _CharT* __s)
 464:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->append(__s, traits_type::length(__s)); }
 465:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 466:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 467:/usr/include/c++/3.2.2/bits/basic_string.h ****       append(size_type __n, _CharT __c);
 468:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 469:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InputIterator>
 470:/usr/include/c++/3.2.2/bits/basic_string.h ****         basic_string& 
 471:/usr/include/c++/3.2.2/bits/basic_string.h ****         append(_InputIterator __first, _InputIterator __last)
 472:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return this->replace(_M_iend(), _M_iend(), __first, __last); }
GAS LISTING /tmp/ccJ9xNSW.s 			page 42


 473:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 474:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 475:/usr/include/c++/3.2.2/bits/basic_string.h ****       push_back(_CharT __c)
 476:/usr/include/c++/3.2.2/bits/basic_string.h ****       { this->replace(_M_iend(), _M_iend(), 1, __c); }
 477:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 478:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 479:/usr/include/c++/3.2.2/bits/basic_string.h ****       assign(const basic_string& __str);
 480:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 481:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 482:/usr/include/c++/3.2.2/bits/basic_string.h ****       assign(const basic_string& __str, size_type __pos, size_type __n)
 483:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 484:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __strsize = __str.size();
 485:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__pos > __strsize)
 486:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::assign");
 487:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const bool __testn = __n < __strsize - __pos;
 488:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __newsize = __testn ? __n : __strsize - __pos;
 489:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return this->assign(__str._M_data() + __pos, __newsize);
 490:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 491:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 492:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 493:/usr/include/c++/3.2.2/bits/basic_string.h ****       assign(const _CharT* __s, size_type __n)
 494:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 495:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__n > this->max_size())
 496:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_length_error("basic_string::assign");
 497:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
 498:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    || less<const _CharT*>()(_M_data() + this->size(), __s))
 499:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);
 500:/usr/include/c++/3.2.2/bits/basic_string.h **** 	else
 501:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  {
 502:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    // Work in-place
 503:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    const size_type __pos = __s - _M_data();
 504:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    if (__pos >= __n)
 505:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      traits_type::copy(_M_data(), __s, __n);
 506:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    else if (__pos)
 507:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      traits_type::move(_M_data(), __s, __n);
 508:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    _M_rep()->_M_length = __n;
 509:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    _M_data()[__n] = _Rep::_S_terminal;
 510:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    return *this;
 511:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  }
 512:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 513:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 514:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 515:/usr/include/c++/3.2.2/bits/basic_string.h ****       assign(const _CharT* __s)
 516:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->assign(__s, traits_type::length(__s)); }
 517:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 518:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 519:/usr/include/c++/3.2.2/bits/basic_string.h ****       assign(size_type __n, _CharT __c)
 520:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(_M_ibegin(), _M_iend(), __n, __c); }
 521:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 522:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InputIterator>
 523:/usr/include/c++/3.2.2/bits/basic_string.h ****         basic_string& 
 524:/usr/include/c++/3.2.2/bits/basic_string.h ****         assign(_InputIterator __first, _InputIterator __last)
 525:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
 526:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 527:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 528:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(iterator __p, size_type __n, _CharT __c)
 529:/usr/include/c++/3.2.2/bits/basic_string.h ****       {	this->replace(__p, __p, __n, __c);  }
GAS LISTING /tmp/ccJ9xNSW.s 			page 43


 530:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 531:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InputIterator>
 532:/usr/include/c++/3.2.2/bits/basic_string.h ****         void insert(iterator __p, _InputIterator __beg, _InputIterator __end)
 533:/usr/include/c++/3.2.2/bits/basic_string.h ****         { this->replace(__p, __p, __beg, __end); }
 534:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 535:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 536:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(size_type __pos1, const basic_string& __str)
 537:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->insert(__pos1, __str, 0, __str.size()); }
 538:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 539:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 540:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(size_type __pos1, const basic_string& __str,
 541:/usr/include/c++/3.2.2/bits/basic_string.h **** 	     size_type __pos2, size_type __n)
 542:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 543:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __strsize = __str.size();
 544:/usr/include/c++/3.2.2/bits/basic_string.h ****  	if (__pos2 > __strsize)
 545:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::insert");
 546:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const bool __testn = __n < __strsize - __pos2;
 547:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __newsize = __testn ? __n : __strsize - __pos2;
 548:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return this->insert(__pos1, __str._M_data() + __pos2, __newsize); 
 549:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 550:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 551:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 552:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(size_type __pos, const _CharT* __s, size_type __n)
 553:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 554:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __size = this->size();
 555:/usr/include/c++/3.2.2/bits/basic_string.h ****  	if (__pos > __size)
 556:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::insert");
 557:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__size > this->max_size() - __n)
 558:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_length_error("basic_string::insert");
 559:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
 560:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    || less<const _CharT*>()(_M_data() + __size, __s))
 561:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos,
 562:/usr/include/c++/3.2.2/bits/basic_string.h **** 				 __s, __s + __n);
 563:/usr/include/c++/3.2.2/bits/basic_string.h **** 	else
 564:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  {
 565:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    // Work in-place. If _M_mutate reallocates the string, __s
 566:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    // does not point anymore to valid data, therefore we save its
 567:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    // offset, then we restore it.
 568:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    const size_type __off = __s - _M_data();
 569:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    _M_mutate(__pos, 0, __n);
 570:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    __s = _M_data() + __off;
 571:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    _CharT* __p = _M_data() + __pos;
 572:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    if (__s  + __n <= __p)
 573:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      traits_type::copy(__p, __s, __n);
 574:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    else if (__s >= __p)
 575:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      traits_type::copy(__p, __s + __n, __n);
 576:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    else
 577:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      {
 578:/usr/include/c++/3.2.2/bits/basic_string.h **** 		traits_type::copy(__p, __s, __p - __s);
 579:/usr/include/c++/3.2.2/bits/basic_string.h **** 		traits_type::copy(__p + (__p - __s), __p + __n, __n - (__p - __s));
 580:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      }
 581:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    return *this;
 582:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  }
 583:/usr/include/c++/3.2.2/bits/basic_string.h ****        }
 584:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 585:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string&  
 586:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(size_type __pos, const _CharT* __s)
GAS LISTING /tmp/ccJ9xNSW.s 			page 44


 587:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->insert(__pos, __s, traits_type::length(__s)); }
 588:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 589:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 590:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(size_type __pos, size_type __n, _CharT __c)
 591:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 592:/usr/include/c++/3.2.2/bits/basic_string.h **** 	this->insert(_M_check(__pos), __n, __c); 
 593:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return *this; 
 594:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 595:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 596:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 597:/usr/include/c++/3.2.2/bits/basic_string.h ****       insert(iterator __p, _CharT __c = _CharT())
 598:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 599:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __pos = __p - _M_ibegin();
 600:/usr/include/c++/3.2.2/bits/basic_string.h **** 	this->insert(_M_check(__pos), size_type(1), __c);
 601:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_rep()->_M_set_leaked(); 
 602:/usr/include/c++/3.2.2/bits/basic_string.h ****  	return this->_M_ibegin() + __pos; 
 603:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 604:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 605:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 606:/usr/include/c++/3.2.2/bits/basic_string.h ****       erase(size_type __pos = 0, size_type __n = npos)
 607:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 608:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return this->replace(_M_check(__pos), _M_fold(__pos, __n),
 609:/usr/include/c++/3.2.2/bits/basic_string.h **** 			     _M_data(), _M_data()); 
 610:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 611:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 612:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 613:/usr/include/c++/3.2.2/bits/basic_string.h ****       erase(iterator __position)
 614:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 615:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __i = __position - _M_ibegin();
 616:/usr/include/c++/3.2.2/bits/basic_string.h ****         this->replace(__position, __position + 1, _M_data(), _M_data());
 617:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_rep()->_M_set_leaked(); 
 618:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return _M_ibegin() + __i;
 619:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 620:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 621:/usr/include/c++/3.2.2/bits/basic_string.h ****       iterator 
 622:/usr/include/c++/3.2.2/bits/basic_string.h ****       erase(iterator __first, iterator __last)
 623:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 624:/usr/include/c++/3.2.2/bits/basic_string.h ****         size_type __i = __first - _M_ibegin();
 625:/usr/include/c++/3.2.2/bits/basic_string.h **** 	this->replace(__first, __last, _M_data(), _M_data());
 626:/usr/include/c++/3.2.2/bits/basic_string.h **** 	_M_rep()->_M_set_leaked();
 627:/usr/include/c++/3.2.2/bits/basic_string.h ****        return _M_ibegin() + __i;
 628:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 629:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 630:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 631:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(size_type __pos, size_type __n, const basic_string& __str)
 632:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
 633:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 634:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 635:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(size_type __pos1, size_type __n1, const basic_string& __str,
 636:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      size_type __pos2, size_type __n2);
 637:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 638:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 639:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(size_type __pos, size_type __n1, const _CharT* __s,
 640:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      size_type __n2)
 641:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 642:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __size = this->size();
 643:/usr/include/c++/3.2.2/bits/basic_string.h ****  	if (__pos > __size)
GAS LISTING /tmp/ccJ9xNSW.s 			page 45


 644:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::replace");
 645:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const bool __testn1 = __n1 < __size - __pos;
 646:/usr/include/c++/3.2.2/bits/basic_string.h **** 	const size_type __foldn1 = __testn1 ? __n1 : __size - __pos;
 647:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__size - __foldn1 > this->max_size() - __n2)
 648:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_length_error("basic_string::replace");
 649:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
 650:/usr/include/c++/3.2.2/bits/basic_string.h **** 	    || less<const _CharT*>()(_M_data() + __size, __s))
 651:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return _M_replace_safe(_M_ibegin() + __pos,
 652:/usr/include/c++/3.2.2/bits/basic_string.h **** 				 _M_ibegin() + __pos + __foldn1, __s, __s + __n2);	
 653:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// Todo: optimized in-place replace.
 654:/usr/include/c++/3.2.2/bits/basic_string.h **** 	else return
 655:/usr/include/c++/3.2.2/bits/basic_string.h **** 	       _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1,
 656:/usr/include/c++/3.2.2/bits/basic_string.h **** 			  __s, __s + __n2,
 657:/usr/include/c++/3.2.2/bits/basic_string.h **** 			  typename iterator_traits<const _CharT*>::iterator_category());
 658:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 659:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 660:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 661:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(size_type __pos, size_type __n1, const _CharT* __s)
 662:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(__pos, __n1, __s, traits_type::length(__s)); }
 663:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 664:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 665:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
 666:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(_M_check(__pos), _M_fold(__pos, __n1), __n2, __c); }
 667:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 668:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 669:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const basic_string& __str)
 670:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
 671:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 672:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 673:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2,
 674:/usr/include/c++/3.2.2/bits/basic_string.h ****                            const _CharT* __s, size_type __n)
 675:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); }
 676:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 677:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 678:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const _CharT* __s)
 679:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->replace(__i1, __i2, __s, traits_type::length(__s)); }
 680:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 681:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 682:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, size_type __n, _CharT __c);
 683:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 684:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InputIterator>
 685:/usr/include/c++/3.2.2/bits/basic_string.h ****         basic_string& 
 686:/usr/include/c++/3.2.2/bits/basic_string.h ****         replace(iterator __i1, iterator __i2,
 687:/usr/include/c++/3.2.2/bits/basic_string.h **** 		_InputIterator __k1, _InputIterator __k2)
 688:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return _M_replace(__i1, __i2, __k1, __k2,
 689:/usr/include/c++/3.2.2/bits/basic_string.h **** 	     typename iterator_traits<_InputIterator>::iterator_category()); }
 690:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 691:/usr/include/c++/3.2.2/bits/basic_string.h ****       // Specializations for the common case of pointer and iterator:
 692:/usr/include/c++/3.2.2/bits/basic_string.h ****       // useful to avoid the overhead of temporary buffering in _M_replace.
 693:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 694:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
 695:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
 696:/usr/include/c++/3.2.2/bits/basic_string.h **** 			       __k1, __k2 - __k1); }
 697:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 698:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 699:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2)
 700:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
GAS LISTING /tmp/ccJ9xNSW.s 			page 46


 701:/usr/include/c++/3.2.2/bits/basic_string.h **** 			       __k1, __k2 - __k1); }
 702:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 703:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 704:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
 705:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
 706:/usr/include/c++/3.2.2/bits/basic_string.h **** 			       __k1.base(), __k2 - __k1);
 707:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}
 708:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 709:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string& 
 710:/usr/include/c++/3.2.2/bits/basic_string.h ****       replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2)
 711:/usr/include/c++/3.2.2/bits/basic_string.h ****         { return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
 712:/usr/include/c++/3.2.2/bits/basic_string.h **** 			       __k1.base(), __k2 - __k1);
 713:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}
 714:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 715:/usr/include/c++/3.2.2/bits/basic_string.h ****     private:
 716:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InputIterator>
 717:/usr/include/c++/3.2.2/bits/basic_string.h ****         basic_string& 
 718:/usr/include/c++/3.2.2/bits/basic_string.h ****         _M_replace(iterator __i1, iterator __i2, _InputIterator __k1, 
 719:/usr/include/c++/3.2.2/bits/basic_string.h **** 		   _InputIterator __k2, input_iterator_tag);
 720:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 721:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _ForwardIterator>
 722:/usr/include/c++/3.2.2/bits/basic_string.h ****         basic_string& 
 723:/usr/include/c++/3.2.2/bits/basic_string.h ****         _M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1, 
 724:/usr/include/c++/3.2.2/bits/basic_string.h **** 		   _ForwardIterator __k2);
 725:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 726:/usr/include/c++/3.2.2/bits/basic_string.h ****       // _S_construct_aux is used to implement the 21.3.1 para 15 which
 727:/usr/include/c++/3.2.2/bits/basic_string.h ****       // requires special behaviour if _InIter is an integral type
 728:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InIter>
 729:/usr/include/c++/3.2.2/bits/basic_string.h ****         static _CharT*
 730:/usr/include/c++/3.2.2/bits/basic_string.h ****         _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,
 731:/usr/include/c++/3.2.2/bits/basic_string.h **** 			 __false_type)
 732:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{
 733:/usr/include/c++/3.2.2/bits/basic_string.h ****           typedef typename iterator_traits<_InIter>::iterator_category _Tag;
 734:/usr/include/c++/3.2.2/bits/basic_string.h ****           return _S_construct(__beg, __end, __a, _Tag());
 735:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}
 736:/usr/include/c++/3.2.2/bits/basic_string.h ****  
 737:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InIter>
 738:/usr/include/c++/3.2.2/bits/basic_string.h ****         static _CharT*
 739:/usr/include/c++/3.2.2/bits/basic_string.h ****         _S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,
 740:/usr/include/c++/3.2.2/bits/basic_string.h **** 			 __true_type)
 741:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{
 742:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return _S_construct(static_cast<size_type>(__beg),
 743:/usr/include/c++/3.2.2/bits/basic_string.h **** 			      static_cast<value_type>(__end), __a);
 744:/usr/include/c++/3.2.2/bits/basic_string.h **** 	}
 745:/usr/include/c++/3.2.2/bits/basic_string.h ****  
 746:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InIter>
 747:/usr/include/c++/3.2.2/bits/basic_string.h ****         static _CharT*
 748:/usr/include/c++/3.2.2/bits/basic_string.h ****         _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a)
 749:/usr/include/c++/3.2.2/bits/basic_string.h **** 	{
 750:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  typedef typename _Is_integer<_InIter>::_Integral _Integral;
 751:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  return _S_construct_aux(__beg, __end, __a, _Integral());
 752:/usr/include/c++/3.2.2/bits/basic_string.h ****         }
 753:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 754:/usr/include/c++/3.2.2/bits/basic_string.h ****       // For Input Iterators, used in istreambuf_iterators, etc.
 755:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _InIter>
 756:/usr/include/c++/3.2.2/bits/basic_string.h ****         static _CharT*
 757:/usr/include/c++/3.2.2/bits/basic_string.h ****          _S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
GAS LISTING /tmp/ccJ9xNSW.s 			page 47


 758:/usr/include/c++/3.2.2/bits/basic_string.h **** 		      input_iterator_tag);
 759:/usr/include/c++/3.2.2/bits/basic_string.h ****       
 760:/usr/include/c++/3.2.2/bits/basic_string.h ****       // For forward_iterators up to random_access_iterators, used for
 761:/usr/include/c++/3.2.2/bits/basic_string.h ****       // string::iterator, _CharT*, etc.
 762:/usr/include/c++/3.2.2/bits/basic_string.h ****       template<class _FwdIter>
 763:/usr/include/c++/3.2.2/bits/basic_string.h ****         static _CharT*
 764:/usr/include/c++/3.2.2/bits/basic_string.h ****         _S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a,
 765:/usr/include/c++/3.2.2/bits/basic_string.h **** 		     forward_iterator_tag);
 766:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 767:/usr/include/c++/3.2.2/bits/basic_string.h ****       static _CharT* 
 768:/usr/include/c++/3.2.2/bits/basic_string.h ****       _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
 769:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 770:/usr/include/c++/3.2.2/bits/basic_string.h ****     public:
 771:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 772:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 773:/usr/include/c++/3.2.2/bits/basic_string.h ****       copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
 774:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 775:/usr/include/c++/3.2.2/bits/basic_string.h ****       void 
 776:/usr/include/c++/3.2.2/bits/basic_string.h ****       swap(basic_string<_CharT, _Traits, _Alloc>& __s);
 777:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 778:/usr/include/c++/3.2.2/bits/basic_string.h ****       // String operations:
 779:/usr/include/c++/3.2.2/bits/basic_string.h ****       const _CharT* 
 780:/usr/include/c++/3.2.2/bits/basic_string.h ****       c_str() const
 781:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 782:/usr/include/c++/3.2.2/bits/basic_string.h **** 	// MT: This assumes concurrent writes are OK.
 783:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __n = this->size();
 784:/usr/include/c++/3.2.2/bits/basic_string.h **** 	traits_type::assign(_M_data()[__n], _Rep::_S_terminal);
 785:/usr/include/c++/3.2.2/bits/basic_string.h ****         return _M_data();
 786:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 787:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 788:/usr/include/c++/3.2.2/bits/basic_string.h ****       const _CharT* 
 789:/usr/include/c++/3.2.2/bits/basic_string.h ****       data() const { return _M_data(); }
 790:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 791:/usr/include/c++/3.2.2/bits/basic_string.h ****       allocator_type 
 792:/usr/include/c++/3.2.2/bits/basic_string.h ****       get_allocator() const { return _M_dataplus; }
 793:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 794:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 795:/usr/include/c++/3.2.2/bits/basic_string.h ****       find(const _CharT* __s, size_type __pos, size_type __n) const;
 796:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 797:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 798:/usr/include/c++/3.2.2/bits/basic_string.h ****       find(const basic_string& __str, size_type __pos = 0) const
 799:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find(__str.data(), __pos, __str.size()); }
 800:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 801:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 802:/usr/include/c++/3.2.2/bits/basic_string.h ****       find(const _CharT* __s, size_type __pos = 0) const
 803:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find(__s, __pos, traits_type::length(__s)); }
 804:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 805:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 806:/usr/include/c++/3.2.2/bits/basic_string.h ****       find(_CharT __c, size_type __pos = 0) const;
 807:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 808:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 809:/usr/include/c++/3.2.2/bits/basic_string.h ****       rfind(const basic_string& __str, size_type __pos = npos) const
 810:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->rfind(__str.data(), __pos, __str.size()); }
 811:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 812:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 813:/usr/include/c++/3.2.2/bits/basic_string.h ****       rfind(const _CharT* __s, size_type __pos, size_type __n) const;
 814:/usr/include/c++/3.2.2/bits/basic_string.h **** 
GAS LISTING /tmp/ccJ9xNSW.s 			page 48


 815:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 816:/usr/include/c++/3.2.2/bits/basic_string.h ****       rfind(const _CharT* __s, size_type __pos = npos) const
 817:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->rfind(__s, __pos, traits_type::length(__s)); }
 818:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 819:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 820:/usr/include/c++/3.2.2/bits/basic_string.h ****       rfind(_CharT __c, size_type __pos = npos) const;
 821:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 822:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 823:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_of(const basic_string& __str, size_type __pos = 0) const
 824:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_first_of(__str.data(), __pos, __str.size()); }
 825:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 826:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 827:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
 828:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 829:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 830:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_of(const _CharT* __s, size_type __pos = 0) const
 831:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_first_of(__s, __pos, traits_type::length(__s)); }
 832:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 833:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 834:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_of(_CharT __c, size_type __pos = 0) const
 835:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find(__c, __pos); }
 836:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 837:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 838:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_of(const basic_string& __str, size_type __pos = npos) const
 839:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_last_of(__str.data(), __pos, __str.size()); }
 840:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 841:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 842:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
 843:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 844:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 845:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_of(const _CharT* __s, size_type __pos = npos) const
 846:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_last_of(__s, __pos, traits_type::length(__s)); }
 847:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 848:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 849:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_of(_CharT __c, size_type __pos = npos) const
 850:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->rfind(__c, __pos); }
 851:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 852:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 853:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_not_of(const basic_string& __str, size_type __pos = 0) const
 854:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
 855:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 856:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 857:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_not_of(const _CharT* __s, size_type __pos, 
 858:/usr/include/c++/3.2.2/bits/basic_string.h **** 			size_type __n) const;
 859:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 860:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 861:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_not_of(const _CharT* __s, size_type __pos = 0) const
 862:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_first_not_of(__s, __pos, traits_type::length(__s)); }
 863:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 864:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 865:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_first_not_of(_CharT __c, size_type __pos = 0) const;
 866:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 867:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 868:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_not_of(const basic_string& __str, size_type __pos = npos) const
 869:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
 870:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 871:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
GAS LISTING /tmp/ccJ9xNSW.s 			page 49


 872:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_not_of(const _CharT* __s, size_type __pos, 
 873:/usr/include/c++/3.2.2/bits/basic_string.h **** 		       size_type __n) const;
 874:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 875:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_not_of(const _CharT* __s, size_type __pos = npos) const
 876:/usr/include/c++/3.2.2/bits/basic_string.h ****       { return this->find_last_not_of(__s, __pos, traits_type::length(__s)); }
 877:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 878:/usr/include/c++/3.2.2/bits/basic_string.h ****       size_type 
 879:/usr/include/c++/3.2.2/bits/basic_string.h ****       find_last_not_of(_CharT __c, size_type __pos = npos) const;
 880:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 881:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string 
 882:/usr/include/c++/3.2.2/bits/basic_string.h ****       substr(size_type __pos = 0, size_type __n = npos) const
 883:/usr/include/c++/3.2.2/bits/basic_string.h ****       { 
 884:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (__pos > this->size())
 885:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __throw_out_of_range("basic_string::substr");
 886:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return basic_string(*this, __pos, __n); 
 887:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 888:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 889:/usr/include/c++/3.2.2/bits/basic_string.h ****       int 
 890:/usr/include/c++/3.2.2/bits/basic_string.h ****       compare(const basic_string& __str) const
 891:/usr/include/c++/3.2.2/bits/basic_string.h ****       {
 892:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __size = this->size();
 893:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __osize = __str.size();
 894:/usr/include/c++/3.2.2/bits/basic_string.h **** 	size_type __len = min(__size, __osize);
 895:/usr/include/c++/3.2.2/bits/basic_string.h ****       
 896:/usr/include/c++/3.2.2/bits/basic_string.h **** 	int __r = traits_type::compare(_M_data(), __str.data(), __len);
 897:/usr/include/c++/3.2.2/bits/basic_string.h **** 	if (!__r)
 898:/usr/include/c++/3.2.2/bits/basic_string.h **** 	  __r =  __size - __osize;
 899:/usr/include/c++/3.2.2/bits/basic_string.h **** 	return __r;
 900:/usr/include/c++/3.2.2/bits/basic_string.h ****       }
 901:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 902:/usr/include/c++/3.2.2/bits/basic_string.h ****       int 
 903:/usr/include/c++/3.2.2/bits/basic_string.h ****       compare(size_type __pos, size_type __n, const basic_string& __str) const;
 904:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 905:/usr/include/c++/3.2.2/bits/basic_string.h ****       int 
 906:/usr/include/c++/3.2.2/bits/basic_string.h ****       compare(size_type __pos1, size_type __n1, const basic_string& __str,
 907:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      size_type __pos2, size_type __n2) const;
 908:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 909:/usr/include/c++/3.2.2/bits/basic_string.h ****       int 
 910:/usr/include/c++/3.2.2/bits/basic_string.h ****       compare(const _CharT* __s) const;
 911:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 912:/usr/include/c++/3.2.2/bits/basic_string.h ****       // _GLIBCPP_RESOLVE_LIB_DEFECTS
 913:/usr/include/c++/3.2.2/bits/basic_string.h ****       // 5. String::compare specification questionable
 914:/usr/include/c++/3.2.2/bits/basic_string.h ****       int 
 915:/usr/include/c++/3.2.2/bits/basic_string.h ****       compare(size_type __pos, size_type __n1, const _CharT* __s) const;
 916:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 917:/usr/include/c++/3.2.2/bits/basic_string.h ****       int 
 918:/usr/include/c++/3.2.2/bits/basic_string.h ****       compare(size_type __pos, size_type __n1, const _CharT* __s, 
 919:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      size_type __n2) const;
 920:/usr/include/c++/3.2.2/bits/basic_string.h ****   };
 921:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 922:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 923:/usr/include/c++/3.2.2/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
 924:/usr/include/c++/3.2.2/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>::
 925:/usr/include/c++/3.2.2/bits/basic_string.h ****     basic_string()
 926:/usr/include/c++/3.2.2/bits/basic_string.h ****     : _M_dataplus(_S_empty_rep()._M_refcopy(), _Alloc()) { }
 927:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 928:/usr/include/c++/3.2.2/bits/basic_string.h ****   // operator+
GAS LISTING /tmp/ccJ9xNSW.s 			page 50


 929:/usr/include/c++/3.2.2/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
 930:/usr/include/c++/3.2.2/bits/basic_string.h ****     basic_string<_CharT, _Traits, _Alloc>
 931:/usr/include/c++/3.2.2/bits/basic_string.h ****     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
 932:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      const basic_string<_CharT, _Traits, _Alloc>& __rhs)
 933:/usr/include/c++/3.2.2/bits/basic_string.h ****     {
 934:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
 935:/usr/include/c++/3.2.2/bits/basic_string.h ****       __str.append(__rhs);
 936:/usr/include/c++/3.2.2/bits/basic_string.h ****       return __str;
 937:/usr/include/c++/3.2.2/bits/basic_string.h ****     }
 938:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 939:/usr/include/c++/3.2.2/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
 940:/usr/include/c++/3.2.2/bits/basic_string.h ****     basic_string<_CharT,_Traits,_Alloc>
 941:/usr/include/c++/3.2.2/bits/basic_string.h ****     operator+(const _CharT* __lhs,
 942:/usr/include/c++/3.2.2/bits/basic_string.h **** 	      const basic_string<_CharT,_Traits,_Alloc>& __rhs);
 943:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 944:/usr/include/c++/3.2.2/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
 945:/usr/include/c++/3.2.2/bits/basic_string.h ****     basic_string<_CharT,_Traits,_Alloc>
 946:/usr/include/c++/3.2.2/bits/basic_string.h ****     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
 947:/usr/include/c++/3.2.2/bits/basic_string.h **** 
 948:/usr/include/c++/3.2.2/bits/basic_string.h ****   template<typename _CharT, typename _Traits, typename _Alloc>
 949:/usr/include/c++/3.2.2/bits/basic_string.h ****     inline basic_string<_CharT, _Traits, _Alloc>
 950:/usr/include/c++/3.2.2/bits/basic_string.h ****     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
 951:/usr/include/c++/3.2.2/bits/basic_string.h **** 	     const _CharT* __rhs)
 952:/usr/include/c++/3.2.2/bits/basic_string.h ****     {
 1129              		.loc 28 952 0
 1130 0000 55       		pushl	%ebp
 1131              	.LCFI60:
 1132 0001 89E5     		movl	%esp, %ebp
 1133              	.LCFI61:
 1134 0003 53       		pushl	%ebx
 1135              	.LCFI62:
 1136 0004 83EC04   		subl	$4, %esp
 1137              	.LCFI63:
 1138              	.LBB15:
 953:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
 1139              		.loc 28 953 0
 1140 0007 83EC08   		subl	$8, %esp
 1141 000a FF750C   		pushl	12(%ebp)
 1142 000d FF7508   		pushl	8(%ebp)
 1143              	.LEHB28:
 1144              	.LCFI64:
 1145 0010 E8FCFFFF 		call	_ZNSsC1ERKSs
 1145      FF
 1146              	.LEHE28:
 1147 0015 83C410   		addl	$16, %esp
 954:/usr/include/c++/3.2.2/bits/basic_string.h ****       __str.append(__rhs);
 1148              		.loc 28 954 0
 1149 0018 83EC08   		subl	$8, %esp
 1150 001b FF7510   		pushl	16(%ebp)
 1151 001e FF7508   		pushl	8(%ebp)
 1152              	.LEHB29:
 1153 0021 E8FCFFFF 		call	_ZNSs6appendEPKc
 1153      FF
 1154              	.LEHE29:
 1155 0026 83C410   		addl	$16, %esp
 955:/usr/include/c++/3.2.2/bits/basic_string.h ****       return __str;
 1156              		.loc 28 955 0
GAS LISTING /tmp/ccJ9xNSW.s 			page 51


 1157 0029 EB22     		jmp	.L107
 1158              	.L112:
 1159 002b 8945F8   		movl	%eax, -8(%ebp)
 1160 002e 8B5DF8   		movl	-8(%ebp), %ebx
 1161 0031 83EC0C   		subl	$12, %esp
 1162 0034 FF7508   		pushl	8(%ebp)
 1163 0037 E8FCFFFF 		call	_ZNSsD1Ev
 1163      FF
 1164 003c 83C410   		addl	$16, %esp
 1165 003f 895DF8   		movl	%ebx, -8(%ebp)
 1166 0042 83EC0C   		subl	$12, %esp
 1167 0045 FF75F8   		pushl	-8(%ebp)
 1168              	.LEHB30:
 1169 0048 E8FCFFFF 		call	_Unwind_Resume
 1169      FF
 1170              	.LEHE30:
 1171              	.LBE15:
 1172              	.L107:
 1173 004d 8B4508   		movl	8(%ebp), %eax
 1174 0050 8B5DFC   		movl	-4(%ebp), %ebx
 1175 0053 C9       		leave
 1176 0054 C20400   		ret	$4
 1177              	.LFE1519:
 1178              	.Lfe11:
 1180              		.section	.gcc_except_table
 1181              	.LLSDA1519:
 1182 00ed FF       		.byte	0xff
 1183 00ee FF       		.byte	0xff
 1184 00ef 01       		.byte	0x1
 1185 00f0 0C       		.uleb128 .LLSDACSE1519-.LLSDACSB1519
 1186              	.LLSDACSB1519:
 1187 00f1 10       		.uleb128 .LEHB28-.LFB1519
 1188 00f2 05       		.uleb128 .LEHE28-.LEHB28
 1189 00f3 00       		.uleb128 0x0
 1190 00f4 00       		.uleb128 0x0
 1191 00f5 21       		.uleb128 .LEHB29-.LFB1519
 1192 00f6 05       		.uleb128 .LEHE29-.LEHB29
 1193 00f7 2B       		.uleb128 .L112-.LFB1519
 1194 00f8 00       		.uleb128 0x0
 1195 00f9 48       		.uleb128 .LEHB30-.LFB1519
 1196 00fa 05       		.uleb128 .LEHE30-.LEHB30
 1197 00fb 00       		.uleb128 0x0
 1198 00fc 00       		.uleb128 0x0
 1199              	.LLSDACSE1519:
 1200              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
 1201              		.file 44 "/usr/include/c++/3.2.2/bits/stl_iterator.h"
 1202              		.section	.gnu.linkonce.t._ZNSs6appendIPKcEERSsT_S3_,"ax",@progbits
 1203              		.align 2
 1204              		.weak	_ZNSs6appendIPKcEERSsT_S3_
 1206              	_ZNSs6appendIPKcEERSsT_S3_:
 1207              	.LFB1538:
 1208              		.loc 28 472 0
 1209              	.LBB16:
 1210 0000 55       		pushl	%ebp
 1211              	.LCFI65:
 1212 0001 89E5     		movl	%esp, %ebp
 1213              	.LCFI66:
GAS LISTING /tmp/ccJ9xNSW.s 			page 52


 1214 0003 83EC08   		subl	$8, %esp
 1215              	.LCFI67:
 1216              		.loc 28 472 0
 1217 0006 83EC0C   		subl	$12, %esp
 1218 0009 FF7510   		pushl	16(%ebp)
 1219 000c FF750C   		pushl	12(%ebp)
 1220 000f 8D45FC   		leal	-4(%ebp), %eax
 1221 0012 83EC04   		subl	$4, %esp
 1222 0015 FF7508   		pushl	8(%ebp)
 1223 0018 50       		pushl	%eax
 1224              	.LCFI68:
 1225 0019 E8FCFFFF 		call	_ZNKSs7_M_iendEv
 1225      FF
 1226 001e 83C408   		addl	$8, %esp
 1227 0021 FF75FC   		pushl	-4(%ebp)
 1228 0024 8D45F8   		leal	-8(%ebp), %eax
 1229 0027 FF7508   		pushl	8(%ebp)
 1230 002a 50       		pushl	%eax
 1231              	.LCFI69:
 1232 002b E8FCFFFF 		call	_ZNKSs7_M_iendEv
 1232      FF
 1233 0030 83C404   		addl	$4, %esp
 1234 0033 FF75F8   		pushl	-8(%ebp)
 1235 0036 FF7508   		pushl	8(%ebp)
 1236              	.LCFI70:
 1237 0039 E8FCFFFF 		call	_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_
 1237      FF
 1238 003e 83C420   		addl	$32, %esp
 1239              	.LBE16:
 1240 0041 C9       		leave
 1241 0042 C3       		ret
 1242              	.LFE1538:
 1243              	.Lfe12:
 1245              		.file 45 "/usr/include/c++/3.2.2/bits/stl_function.h"
 1246              		.weak	_ZTV11MyException
 1247              		.section	.gnu.linkonce.d._ZTV11MyException,"aw",@progbits
 1248              		.align 8
 1251              	_ZTV11MyException:
 1252 0000 00000000 		.long	0
 1253 0004 00000000 		.long	_ZTI11MyException
 1254 0008 00000000 		.long	_ZN11MyExceptionD1Ev
 1255 000c 00000000 		.long	_ZN11MyExceptionD0Ev
 1256 0010 00000000 		.long	_ZNK11MyException4whatEv
 1257              		.text
 1258              		.align 2
 1260              	_Z41__static_initialization_and_destruction_0ii:
 1261              	.LFB1583:
 1262              		.file 46 "/usr/include/c++/3.2.2/streambuf"
   1:/usr/include/c++/3.2.2/streambuf **** // Stream buffer classes -*- C++ -*-
   2:/usr/include/c++/3.2.2/streambuf **** 
   3:/usr/include/c++/3.2.2/streambuf **** // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
   4:/usr/include/c++/3.2.2/streambuf **** // Free Software Foundation, Inc.
   5:/usr/include/c++/3.2.2/streambuf **** //
   6:/usr/include/c++/3.2.2/streambuf **** // This file is part of the GNU ISO C++ Library.  This library is free
   7:/usr/include/c++/3.2.2/streambuf **** // software; you can redistribute it and/or modify it under the
   8:/usr/include/c++/3.2.2/streambuf **** // terms of the GNU General Public License as published by the
   9:/usr/include/c++/3.2.2/streambuf **** // Free Software Foundation; either version 2, or (at your option)
GAS LISTING /tmp/ccJ9xNSW.s 			page 53


  10:/usr/include/c++/3.2.2/streambuf **** // any later version.
  11:/usr/include/c++/3.2.2/streambuf **** 
  12:/usr/include/c++/3.2.2/streambuf **** // This library is distributed in the hope that it will be useful,
  13:/usr/include/c++/3.2.2/streambuf **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/usr/include/c++/3.2.2/streambuf **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15:/usr/include/c++/3.2.2/streambuf **** // GNU General Public License for more details.
  16:/usr/include/c++/3.2.2/streambuf **** 
  17:/usr/include/c++/3.2.2/streambuf **** // You should have received a copy of the GNU General Public License along
  18:/usr/include/c++/3.2.2/streambuf **** // with this library; see the file COPYING.  If not, write to the Free
  19:/usr/include/c++/3.2.2/streambuf **** // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  20:/usr/include/c++/3.2.2/streambuf **** // USA.
  21:/usr/include/c++/3.2.2/streambuf **** 
  22:/usr/include/c++/3.2.2/streambuf **** // As a special exception, you may use this file as part of a free software
  23:/usr/include/c++/3.2.2/streambuf **** // library without restriction.  Specifically, if other files instantiate
  24:/usr/include/c++/3.2.2/streambuf **** // templates or use macros or inline functions from this file, or you compile
  25:/usr/include/c++/3.2.2/streambuf **** // this file and link it with other files to produce an executable, this
  26:/usr/include/c++/3.2.2/streambuf **** // file does not by itself cause the resulting executable to be covered by
  27:/usr/include/c++/3.2.2/streambuf **** // the GNU General Public License.  This exception does not however
  28:/usr/include/c++/3.2.2/streambuf **** // invalidate any other reasons why the executable file might be covered by
  29:/usr/include/c++/3.2.2/streambuf **** // the GNU General Public License.
  30:/usr/include/c++/3.2.2/streambuf **** 
  31:/usr/include/c++/3.2.2/streambuf **** //
  32:/usr/include/c++/3.2.2/streambuf **** // ISO C++ 14882: 27.5  Stream buffers
  33:/usr/include/c++/3.2.2/streambuf **** //
  34:/usr/include/c++/3.2.2/streambuf **** 
  35:/usr/include/c++/3.2.2/streambuf **** /** @file streambuf
  36:/usr/include/c++/3.2.2/streambuf ****  *  This is a Standard C++ Library header.  You should @c #include this header
  37:/usr/include/c++/3.2.2/streambuf ****  *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  38:/usr/include/c++/3.2.2/streambuf ****  */
  39:/usr/include/c++/3.2.2/streambuf **** 
  40:/usr/include/c++/3.2.2/streambuf **** #ifndef _CPP_STREAMBUF
  41:/usr/include/c++/3.2.2/streambuf **** #define _CPP_STREAMBUF	1
  42:/usr/include/c++/3.2.2/streambuf **** 
  43:/usr/include/c++/3.2.2/streambuf **** #pragma GCC system_header
  44:/usr/include/c++/3.2.2/streambuf **** 
  45:/usr/include/c++/3.2.2/streambuf **** #include <bits/c++config.h>
  46:/usr/include/c++/3.2.2/streambuf **** #include <iosfwd>
  47:/usr/include/c++/3.2.2/streambuf **** #include <cstdio> 	// For SEEK_SET, SEEK_CUR, SEEK_END
  48:/usr/include/c++/3.2.2/streambuf **** #include <bits/localefwd.h>
  49:/usr/include/c++/3.2.2/streambuf **** #include <bits/ios_base.h>
  50:/usr/include/c++/3.2.2/streambuf **** 
  51:/usr/include/c++/3.2.2/streambuf **** namespace std
  52:/usr/include/c++/3.2.2/streambuf **** {
  53:/usr/include/c++/3.2.2/streambuf ****   template<typename _CharT, typename _Traits>
  54:/usr/include/c++/3.2.2/streambuf ****     streamsize
  55:/usr/include/c++/3.2.2/streambuf ****     __copy_streambufs(basic_ios<_CharT, _Traits>& _ios,
  56:/usr/include/c++/3.2.2/streambuf **** 		      basic_streambuf<_CharT, _Traits>* __sbin,
  57:/usr/include/c++/3.2.2/streambuf **** 		      basic_streambuf<_CharT, _Traits>* __sbout);
  58:/usr/include/c++/3.2.2/streambuf ****   
  59:/usr/include/c++/3.2.2/streambuf ****   // 27.5.2 Template class basic_streambuf<_CharT, _Traits>
  60:/usr/include/c++/3.2.2/streambuf ****   template<typename _CharT, typename _Traits>
  61:/usr/include/c++/3.2.2/streambuf ****     class basic_streambuf 
  62:/usr/include/c++/3.2.2/streambuf ****     {
  63:/usr/include/c++/3.2.2/streambuf ****     public:
  64:/usr/include/c++/3.2.2/streambuf ****       // Types:
  65:/usr/include/c++/3.2.2/streambuf ****       typedef _CharT 					char_type;
  66:/usr/include/c++/3.2.2/streambuf ****       typedef _Traits 					traits_type;
GAS LISTING /tmp/ccJ9xNSW.s 			page 54


  67:/usr/include/c++/3.2.2/streambuf ****       typedef typename traits_type::int_type 		int_type;
  68:/usr/include/c++/3.2.2/streambuf ****       typedef typename traits_type::pos_type 		pos_type;
  69:/usr/include/c++/3.2.2/streambuf ****       typedef typename traits_type::off_type 		off_type;
  70:/usr/include/c++/3.2.2/streambuf **** 
  71:/usr/include/c++/3.2.2/streambuf ****       // Non-standard Types:
  72:/usr/include/c++/3.2.2/streambuf ****       typedef ctype<char_type>           		__ctype_type;
  73:/usr/include/c++/3.2.2/streambuf ****       typedef basic_streambuf<char_type, traits_type>  	__streambuf_type;
  74:/usr/include/c++/3.2.2/streambuf ****       typedef typename traits_type::state_type 		__state_type;
  75:/usr/include/c++/3.2.2/streambuf ****       
  76:/usr/include/c++/3.2.2/streambuf ****       friend class basic_ios<char_type, traits_type>;
  77:/usr/include/c++/3.2.2/streambuf ****       friend class basic_istream<char_type, traits_type>;
  78:/usr/include/c++/3.2.2/streambuf ****       friend class basic_ostream<char_type, traits_type>;
  79:/usr/include/c++/3.2.2/streambuf ****       friend class istreambuf_iterator<char_type, traits_type>;
  80:/usr/include/c++/3.2.2/streambuf ****       friend class ostreambuf_iterator<char_type, traits_type>;
  81:/usr/include/c++/3.2.2/streambuf **** 
  82:/usr/include/c++/3.2.2/streambuf ****       friend streamsize
  83:/usr/include/c++/3.2.2/streambuf ****       __copy_streambufs<>(basic_ios<char_type, traits_type>& __ios,
  84:/usr/include/c++/3.2.2/streambuf **** 			  __streambuf_type* __sbin,__streambuf_type* __sbout);
  85:/usr/include/c++/3.2.2/streambuf ****       
  86:/usr/include/c++/3.2.2/streambuf ****     protected:
  87:/usr/include/c++/3.2.2/streambuf ****       // Pointer to the beginning of internally-allocated
  88:/usr/include/c++/3.2.2/streambuf ****       // space. Filebuf manually allocates/deallocates this, whereas
  89:/usr/include/c++/3.2.2/streambuf ****       // stringstreams attempt to use the built-in intelligence of the
  90:/usr/include/c++/3.2.2/streambuf ****       // string class. If you are managing memory, set this. If not,
  91:/usr/include/c++/3.2.2/streambuf ****       // leave it NULL.
  92:/usr/include/c++/3.2.2/streambuf ****       char_type*		_M_buf; 	
  93:/usr/include/c++/3.2.2/streambuf **** 
  94:/usr/include/c++/3.2.2/streambuf ****       // Actual size of allocated internal buffer, in bytes.
  95:/usr/include/c++/3.2.2/streambuf ****       size_t			_M_buf_size;
  96:/usr/include/c++/3.2.2/streambuf **** 
  97:/usr/include/c++/3.2.2/streambuf ****       // Optimal or preferred size of internal buffer, in bytes.
  98:/usr/include/c++/3.2.2/streambuf ****       size_t			_M_buf_size_opt;
  99:/usr/include/c++/3.2.2/streambuf **** 
 100:/usr/include/c++/3.2.2/streambuf ****       // True iff _M_in_* and _M_out_* buffers should always point to
 101:/usr/include/c++/3.2.2/streambuf ****       // the same place.  True for fstreams, false for sstreams.
 102:/usr/include/c++/3.2.2/streambuf ****       bool 			_M_buf_unified;	
 103:/usr/include/c++/3.2.2/streambuf **** 
 104:/usr/include/c++/3.2.2/streambuf ****       // This is based on _IO_FILE, just reordered to be more
 105:/usr/include/c++/3.2.2/streambuf ****       // consistent, and is intended to be the most minimal abstraction
 106:/usr/include/c++/3.2.2/streambuf ****       // for an internal buffer.
 107:/usr/include/c++/3.2.2/streambuf ****       // get == input == read
 108:/usr/include/c++/3.2.2/streambuf ****       // put == output == write
 109:/usr/include/c++/3.2.2/streambuf ****       char_type* 		_M_in_beg;  	// Start of get area. 
 110:/usr/include/c++/3.2.2/streambuf ****       char_type* 		_M_in_cur;	// Current read area. 
 111:/usr/include/c++/3.2.2/streambuf ****       char_type* 		_M_in_end;	// End of get area. 
 112:/usr/include/c++/3.2.2/streambuf ****       char_type* 		_M_out_beg; 	// Start of put area. 
 113:/usr/include/c++/3.2.2/streambuf ****       char_type* 		_M_out_cur;  	// Current put area. 
 114:/usr/include/c++/3.2.2/streambuf ****       char_type* 		_M_out_end;  	// End of put area. 
 115:/usr/include/c++/3.2.2/streambuf **** 
 116:/usr/include/c++/3.2.2/streambuf ****       // Place to stash in || out || in | out settings for current streambuf.
 117:/usr/include/c++/3.2.2/streambuf ****       ios_base::openmode 	_M_mode;	
 118:/usr/include/c++/3.2.2/streambuf **** 
 119:/usr/include/c++/3.2.2/streambuf ****       // Current locale setting.
 120:/usr/include/c++/3.2.2/streambuf ****       locale 			_M_buf_locale;	
 121:/usr/include/c++/3.2.2/streambuf **** 
 122:/usr/include/c++/3.2.2/streambuf ****       // True iff locale is initialized.
 123:/usr/include/c++/3.2.2/streambuf ****       bool 			_M_buf_locale_init;
GAS LISTING /tmp/ccJ9xNSW.s 			page 55


 124:/usr/include/c++/3.2.2/streambuf **** 
 125:/usr/include/c++/3.2.2/streambuf ****       // Necessary bits for putback buffer management. Only used in
 126:/usr/include/c++/3.2.2/streambuf ****       // the basic_filebuf class, as necessary for the standard
 127:/usr/include/c++/3.2.2/streambuf ****       // requirements. The only basic_streambuf member function that
 128:/usr/include/c++/3.2.2/streambuf ****       // needs access to these data members is in_avail...
 129:/usr/include/c++/3.2.2/streambuf ****       // NB: pbacks of over one character are not currently supported.
 130:/usr/include/c++/3.2.2/streambuf ****       static const size_t   	_S_pback_size = 1; 
 131:/usr/include/c++/3.2.2/streambuf ****       char_type			_M_pback[_S_pback_size]; 
 1263              		.loc 46 131 0
 1264 04f4 55       		pushl	%ebp
 1265              	.LCFI71:
 1266 04f5 89E5     		movl	%esp, %ebp
 1267              	.LCFI72:
 1268 04f7 83EC08   		subl	$8, %esp
 1269              	.LCFI73:
 1270              		.file 47 "/usr/include/c++/3.2.2/iostream"
   1:/usr/include/c++/3.2.2/iostream **** // Standard iostream objects -*- C++ -*-
   2:/usr/include/c++/3.2.2/iostream **** 
   3:/usr/include/c++/3.2.2/iostream **** // Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
   4:/usr/include/c++/3.2.2/iostream **** //
   5:/usr/include/c++/3.2.2/iostream **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/3.2.2/iostream **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/3.2.2/iostream **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/3.2.2/iostream **** // Free Software Foundation; either version 2, or (at your option)
   9:/usr/include/c++/3.2.2/iostream **** // any later version.
  10:/usr/include/c++/3.2.2/iostream **** 
  11:/usr/include/c++/3.2.2/iostream **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/3.2.2/iostream **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/3.2.2/iostream **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/3.2.2/iostream **** // GNU General Public License for more details.
  15:/usr/include/c++/3.2.2/iostream **** 
  16:/usr/include/c++/3.2.2/iostream **** // You should have received a copy of the GNU General Public License along
  17:/usr/include/c++/3.2.2/iostream **** // with this library; see the file COPYING.  If not, write to the Free
  18:/usr/include/c++/3.2.2/iostream **** // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  19:/usr/include/c++/3.2.2/iostream **** // USA.
  20:/usr/include/c++/3.2.2/iostream **** 
  21:/usr/include/c++/3.2.2/iostream **** // As a special exception, you may use this file as part of a free software
  22:/usr/include/c++/3.2.2/iostream **** // library without restriction.  Specifically, if other files instantiate
  23:/usr/include/c++/3.2.2/iostream **** // templates or use macros or inline functions from this file, or you compile
  24:/usr/include/c++/3.2.2/iostream **** // this file and link it with other files to produce an executable, this
  25:/usr/include/c++/3.2.2/iostream **** // file does not by itself cause the resulting executable to be covered by
  26:/usr/include/c++/3.2.2/iostream **** // the GNU General Public License.  This exception does not however
  27:/usr/include/c++/3.2.2/iostream **** // invalidate any other reasons why the executable file might be covered by
  28:/usr/include/c++/3.2.2/iostream **** // the GNU General Public License.
  29:/usr/include/c++/3.2.2/iostream **** 
  30:/usr/include/c++/3.2.2/iostream **** //
  31:/usr/include/c++/3.2.2/iostream **** // ISO C++ 14882: 27.3  Standard iostream objects
  32:/usr/include/c++/3.2.2/iostream **** //
  33:/usr/include/c++/3.2.2/iostream **** 
  34:/usr/include/c++/3.2.2/iostream **** /** @file iostream
  35:/usr/include/c++/3.2.2/iostream ****  *  This is a Standard C++ Library header.  You should @c #include this header
  36:/usr/include/c++/3.2.2/iostream ****  *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  37:/usr/include/c++/3.2.2/iostream ****  */
  38:/usr/include/c++/3.2.2/iostream **** 
  39:/usr/include/c++/3.2.2/iostream **** #ifndef _CPP_IOSTREAM
  40:/usr/include/c++/3.2.2/iostream **** #define _CPP_IOSTREAM	1
  41:/usr/include/c++/3.2.2/iostream **** 
GAS LISTING /tmp/ccJ9xNSW.s 			page 56


  42:/usr/include/c++/3.2.2/iostream **** #pragma GCC system_header
  43:/usr/include/c++/3.2.2/iostream **** 
  44:/usr/include/c++/3.2.2/iostream **** #include <bits/c++config.h>
  45:/usr/include/c++/3.2.2/iostream **** #include <ostream>
  46:/usr/include/c++/3.2.2/iostream **** #include <istream>
  47:/usr/include/c++/3.2.2/iostream **** 
  48:/usr/include/c++/3.2.2/iostream **** namespace std 
  49:/usr/include/c++/3.2.2/iostream **** {
  50:/usr/include/c++/3.2.2/iostream ****   extern istream cin;
  51:/usr/include/c++/3.2.2/iostream ****   extern ostream cout;
  52:/usr/include/c++/3.2.2/iostream ****   extern ostream cerr;
  53:/usr/include/c++/3.2.2/iostream ****   extern ostream clog;
  54:/usr/include/c++/3.2.2/iostream **** 
  55:/usr/include/c++/3.2.2/iostream **** #ifdef _GLIBCPP_USE_WCHAR_T
  56:/usr/include/c++/3.2.2/iostream ****   extern wistream wcin;
  57:/usr/include/c++/3.2.2/iostream ****   extern wostream wcout;
  58:/usr/include/c++/3.2.2/iostream ****   extern wostream wcerr;
  59:/usr/include/c++/3.2.2/iostream ****   extern wostream wclog;
  60:/usr/include/c++/3.2.2/iostream **** #endif
  61:/usr/include/c++/3.2.2/iostream **** 
  62:/usr/include/c++/3.2.2/iostream ****   // For construction of filebuffers for cout, cin, cerr, clog et. al.
  63:/usr/include/c++/3.2.2/iostream ****   static ios_base::Init __ioinit;
 1271              		.loc 47 63 0
 1272 04fa 817D0CFF 		cmpl	$65535, 12(%ebp)
 1272      FF0000
 1273 0501 752D     		jne	.L114
 1274 0503 837D0801 		cmpl	$1, 8(%ebp)
 1275 0507 7527     		jne	.L114
 1276 0509 83EC0C   		subl	$12, %esp
 1277 050c 68000000 		pushl	$_ZSt8__ioinit
 1277      00
 1278              	.LCFI74:
 1279 0511 E8FCFFFF 		call	_ZNSt8ios_base4InitC1Ev
 1279      FF
 1280 0516 83C410   		addl	$16, %esp
 1281 0519 83EC04   		subl	$4, %esp
 1282 051c 68000000 		pushl	$__dso_handle
 1282      00
 1283 0521 6A00     		pushl	$0
 1284 0523 68320500 		pushl	$__tcf_0
 1284      00
 1285 0528 E8FCFFFF 		call	__cxa_atexit
 1285      FF
 1286 052d 83C410   		addl	$16, %esp
 1287              	.L114:
 1288 0530 C9       		leave
 1289 0531 C3       		ret
 1290              	.LFE1583:
 1291              	.Lfe13:
 1293              		.file 48 "/usr/include/c++/3.2.2/exception"
 1294              		.section	.gnu.linkonce.t._ZNSt9exceptionC2Ev,"ax",@progbits
 1295              		.align 2
 1296              		.weak	_ZNSt9exceptionC2Ev
 1298              	_ZNSt9exceptionC2Ev:
 1299              	.LFB1584:
   1:/usr/include/c++/3.2.2/exception **** // Exception Handling support header for -*- C++ -*-
   2:/usr/include/c++/3.2.2/exception **** 
GAS LISTING /tmp/ccJ9xNSW.s 			page 57


   3:/usr/include/c++/3.2.2/exception **** // Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002
   4:/usr/include/c++/3.2.2/exception **** // Free Software Foundation
   5:/usr/include/c++/3.2.2/exception **** //
   6:/usr/include/c++/3.2.2/exception **** // This file is part of GNU CC.
   7:/usr/include/c++/3.2.2/exception **** //
   8:/usr/include/c++/3.2.2/exception **** // GNU CC is free software; you can redistribute it and/or modify
   9:/usr/include/c++/3.2.2/exception **** // it under the terms of the GNU General Public License as published by
  10:/usr/include/c++/3.2.2/exception **** // the Free Software Foundation; either version 2, or (at your option)
  11:/usr/include/c++/3.2.2/exception **** // any later version.
  12:/usr/include/c++/3.2.2/exception **** // 
  13:/usr/include/c++/3.2.2/exception **** // GNU CC is distributed in the hope that it will be useful,
  14:/usr/include/c++/3.2.2/exception **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  15:/usr/include/c++/3.2.2/exception **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16:/usr/include/c++/3.2.2/exception **** // GNU General Public License for more details.
  17:/usr/include/c++/3.2.2/exception **** // 
  18:/usr/include/c++/3.2.2/exception **** // You should have received a copy of the GNU General Public License
  19:/usr/include/c++/3.2.2/exception **** // along with GNU CC; see the file COPYING.  If not, write to
  20:/usr/include/c++/3.2.2/exception **** // the Free Software Foundation, 59 Temple Place - Suite 330,
  21:/usr/include/c++/3.2.2/exception **** // Boston, MA 02111-1307, USA.
  22:/usr/include/c++/3.2.2/exception **** 
  23:/usr/include/c++/3.2.2/exception **** // As a special exception, you may use this file as part of a free software
  24:/usr/include/c++/3.2.2/exception **** // library without restriction.  Specifically, if other files instantiate
  25:/usr/include/c++/3.2.2/exception **** // templates or use macros or inline functions from this file, or you compile
  26:/usr/include/c++/3.2.2/exception **** // this file and link it with other files to produce an executable, this
  27:/usr/include/c++/3.2.2/exception **** // file does not by itself cause the resulting executable to be covered by
  28:/usr/include/c++/3.2.2/exception **** // the GNU General Public License.  This exception does not however
  29:/usr/include/c++/3.2.2/exception **** // invalidate any other reasons why the executable file might be covered by
  30:/usr/include/c++/3.2.2/exception **** // the GNU General Public License.
  31:/usr/include/c++/3.2.2/exception **** 
  32:/usr/include/c++/3.2.2/exception **** /** @file exception
  33:/usr/include/c++/3.2.2/exception ****  *  This header defines several types and functions relating to the
  34:/usr/include/c++/3.2.2/exception ****  *  handling of exceptions in a C++ program.
  35:/usr/include/c++/3.2.2/exception ****  */
  36:/usr/include/c++/3.2.2/exception **** 
  37:/usr/include/c++/3.2.2/exception **** #ifndef __EXCEPTION__
  38:/usr/include/c++/3.2.2/exception **** #define __EXCEPTION__
  39:/usr/include/c++/3.2.2/exception **** 
  40:/usr/include/c++/3.2.2/exception **** extern "C++" {
  41:/usr/include/c++/3.2.2/exception **** 
  42:/usr/include/c++/3.2.2/exception **** namespace std 
  43:/usr/include/c++/3.2.2/exception **** {
  44:/usr/include/c++/3.2.2/exception ****   /** This is the base class for all exceptions thrown by the standard
  45:/usr/include/c++/3.2.2/exception ****    *  library, and by certain language expressions.  You are free to derive
  46:/usr/include/c++/3.2.2/exception ****    *  your own %exception classes, or use a different hierarchy, or to
  47:/usr/include/c++/3.2.2/exception ****    *  throw non-class data (e.g., fundamental types).
  48:/usr/include/c++/3.2.2/exception ****    *  @brief Base class for all library exceptions.
  49:/usr/include/c++/3.2.2/exception ****    */
  50:/usr/include/c++/3.2.2/exception ****   class exception 
  51:/usr/include/c++/3.2.2/exception ****   {
  52:/usr/include/c++/3.2.2/exception ****   public:
  53:/usr/include/c++/3.2.2/exception ****     exception() throw() { }
 1300              		.loc 48 53 0
 1301              	.LBB17:
 1302 0000 55       		pushl	%ebp
 1303              	.LCFI75:
 1304 0001 89E5     		movl	%esp, %ebp
 1305              	.LCFI76:
GAS LISTING /tmp/ccJ9xNSW.s 			page 58


 1306              		.loc 48 53 0
 1307 0003 8B4508   		movl	8(%ebp), %eax
 1308 0006 C7000800 		movl	$_ZTVSt9exception+8, (%eax)
 1308      0000
 1309 000c C9       		leave
 1310 000d C3       		ret
 1311              	.LBE17:
 1312              	.LFE1584:
 1313              	.Lfe14:
 1315              		.section	.gnu.linkonce.t._ZNSt11char_traitsIcE6lengthEPKc,"ax",@progbits
 1316              		.align 2
 1317              		.weak	_ZNSt11char_traitsIcE6lengthEPKc
 1319              	_ZNSt11char_traitsIcE6lengthEPKc:
 1320              	.LFB1585:
   1:/usr/include/c++/3.2.2/bits/char_traits.h **** // Character Traits for use by standard string and iostream -*- C++ -*-
   2:/usr/include/c++/3.2.2/bits/char_traits.h **** 
   3:/usr/include/c++/3.2.2/bits/char_traits.h **** // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
   4:/usr/include/c++/3.2.2/bits/char_traits.h **** // Free Software Foundation, Inc.
   5:/usr/include/c++/3.2.2/bits/char_traits.h **** //
   6:/usr/include/c++/3.2.2/bits/char_traits.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   7:/usr/include/c++/3.2.2/bits/char_traits.h **** // software; you can redistribute it and/or modify it under the
   8:/usr/include/c++/3.2.2/bits/char_traits.h **** // terms of the GNU General Public License as published by the
   9:/usr/include/c++/3.2.2/bits/char_traits.h **** // Free Software Foundation; either version 2, or (at your option)
  10:/usr/include/c++/3.2.2/bits/char_traits.h **** // any later version.
  11:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  12:/usr/include/c++/3.2.2/bits/char_traits.h **** // This library is distributed in the hope that it will be useful,
  13:/usr/include/c++/3.2.2/bits/char_traits.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/usr/include/c++/3.2.2/bits/char_traits.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15:/usr/include/c++/3.2.2/bits/char_traits.h **** // GNU General Public License for more details.
  16:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  17:/usr/include/c++/3.2.2/bits/char_traits.h **** // You should have received a copy of the GNU General Public License along
  18:/usr/include/c++/3.2.2/bits/char_traits.h **** // with this library; see the file COPYING.  If not, write to the Free
  19:/usr/include/c++/3.2.2/bits/char_traits.h **** // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  20:/usr/include/c++/3.2.2/bits/char_traits.h **** // USA.
  21:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  22:/usr/include/c++/3.2.2/bits/char_traits.h **** // As a special exception, you may use this file as part of a free software
  23:/usr/include/c++/3.2.2/bits/char_traits.h **** // library without restriction.  Specifically, if other files instantiate
  24:/usr/include/c++/3.2.2/bits/char_traits.h **** // templates or use macros or inline functions from this file, or you compile
  25:/usr/include/c++/3.2.2/bits/char_traits.h **** // this file and link it with other files to produce an executable, this
  26:/usr/include/c++/3.2.2/bits/char_traits.h **** // file does not by itself cause the resulting executable to be covered by
  27:/usr/include/c++/3.2.2/bits/char_traits.h **** // the GNU General Public License.  This exception does not however
  28:/usr/include/c++/3.2.2/bits/char_traits.h **** // invalidate any other reasons why the executable file might be covered by
  29:/usr/include/c++/3.2.2/bits/char_traits.h **** // the GNU General Public License.
  30:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  31:/usr/include/c++/3.2.2/bits/char_traits.h **** //
  32:/usr/include/c++/3.2.2/bits/char_traits.h **** // ISO C++ 14882: 21  Strings library
  33:/usr/include/c++/3.2.2/bits/char_traits.h **** //
  34:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  35:/usr/include/c++/3.2.2/bits/char_traits.h **** /** @file char_traits.h
  36:/usr/include/c++/3.2.2/bits/char_traits.h ****  *  This is an internal header file, included by other library headers.
  37:/usr/include/c++/3.2.2/bits/char_traits.h ****  *  You should not attempt to use it directly.
  38:/usr/include/c++/3.2.2/bits/char_traits.h ****  */
  39:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  40:/usr/include/c++/3.2.2/bits/char_traits.h **** #ifndef _CPP_BITS_CHAR_TRAITS_H
  41:/usr/include/c++/3.2.2/bits/char_traits.h **** #define _CPP_BITS_CHAR_TRAITS_H 1
  42:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  43:/usr/include/c++/3.2.2/bits/char_traits.h **** #pragma GCC system_header
GAS LISTING /tmp/ccJ9xNSW.s 			page 59


  44:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  45:/usr/include/c++/3.2.2/bits/char_traits.h **** #include <cstring> 	// For memmove, memset, memchr
  46:/usr/include/c++/3.2.2/bits/char_traits.h **** #include <bits/fpos.h> 		// For streampos
  47:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  48:/usr/include/c++/3.2.2/bits/char_traits.h **** namespace std 
  49:/usr/include/c++/3.2.2/bits/char_traits.h **** {
  50:/usr/include/c++/3.2.2/bits/char_traits.h ****   /// 21.1.2 Basis for explicit _Traits specialization 
  51:/usr/include/c++/3.2.2/bits/char_traits.h ****   /// NB: That for any given actual character type this definition is
  52:/usr/include/c++/3.2.2/bits/char_traits.h ****   /// probably wrong.
  53:/usr/include/c++/3.2.2/bits/char_traits.h ****   template<class _CharT>
  54:/usr/include/c++/3.2.2/bits/char_traits.h ****     struct char_traits
  55:/usr/include/c++/3.2.2/bits/char_traits.h ****     {
  56:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef _CharT 		char_type;
  57:/usr/include/c++/3.2.2/bits/char_traits.h ****       // Unsigned as wint_t is unsigned.
  58:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef unsigned long  	int_type;
  59:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef streampos 	pos_type;
  60:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef streamoff 	off_type;
  61:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef mbstate_t 	state_type;
  62:/usr/include/c++/3.2.2/bits/char_traits.h ****       
  63:/usr/include/c++/3.2.2/bits/char_traits.h ****       static void 
  64:/usr/include/c++/3.2.2/bits/char_traits.h ****       assign(char_type& __c1, const char_type& __c2);
  65:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  66:/usr/include/c++/3.2.2/bits/char_traits.h ****       static bool 
  67:/usr/include/c++/3.2.2/bits/char_traits.h ****       eq(const char_type& __c1, const char_type& __c2);
  68:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  69:/usr/include/c++/3.2.2/bits/char_traits.h ****       static bool 
  70:/usr/include/c++/3.2.2/bits/char_traits.h ****       lt(const char_type& __c1, const char_type& __c2);
  71:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  72:/usr/include/c++/3.2.2/bits/char_traits.h ****       static int 
  73:/usr/include/c++/3.2.2/bits/char_traits.h ****       compare(const char_type* __s1, const char_type* __s2, size_t __n);
  74:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  75:/usr/include/c++/3.2.2/bits/char_traits.h ****       static size_t
  76:/usr/include/c++/3.2.2/bits/char_traits.h ****       length(const char_type* __s);
  77:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  78:/usr/include/c++/3.2.2/bits/char_traits.h ****       static const char_type* 
  79:/usr/include/c++/3.2.2/bits/char_traits.h ****       find(const char_type* __s, size_t __n, const char_type& __a);
  80:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  81:/usr/include/c++/3.2.2/bits/char_traits.h ****       static char_type* 
  82:/usr/include/c++/3.2.2/bits/char_traits.h ****       move(char_type* __s1, const char_type* __s2, size_t __n);
  83:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  84:/usr/include/c++/3.2.2/bits/char_traits.h ****       static char_type* 
  85:/usr/include/c++/3.2.2/bits/char_traits.h ****       copy(char_type* __s1, const char_type* __s2, size_t __n);
  86:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  87:/usr/include/c++/3.2.2/bits/char_traits.h ****       static char_type* 
  88:/usr/include/c++/3.2.2/bits/char_traits.h ****       assign(char_type* __s, size_t __n, char_type __a);
  89:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  90:/usr/include/c++/3.2.2/bits/char_traits.h ****       static char_type 
  91:/usr/include/c++/3.2.2/bits/char_traits.h ****       to_char_type(const int_type& __c);
  92:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  93:/usr/include/c++/3.2.2/bits/char_traits.h ****       static int_type 
  94:/usr/include/c++/3.2.2/bits/char_traits.h ****       to_int_type(const char_type& __c);
  95:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  96:/usr/include/c++/3.2.2/bits/char_traits.h ****       static bool 
  97:/usr/include/c++/3.2.2/bits/char_traits.h ****       eq_int_type(const int_type& __c1, const int_type& __c2);
  98:/usr/include/c++/3.2.2/bits/char_traits.h **** 
  99:/usr/include/c++/3.2.2/bits/char_traits.h ****       static int_type 
 100:/usr/include/c++/3.2.2/bits/char_traits.h ****       eof(); 
GAS LISTING /tmp/ccJ9xNSW.s 			page 60


 101:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 102:/usr/include/c++/3.2.2/bits/char_traits.h ****       static int_type 
 103:/usr/include/c++/3.2.2/bits/char_traits.h ****       not_eof(const int_type& __c);
 104:/usr/include/c++/3.2.2/bits/char_traits.h ****     };
 105:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 106:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 107:/usr/include/c++/3.2.2/bits/char_traits.h ****   /// 21.1.4  char_traits specializations
 108:/usr/include/c++/3.2.2/bits/char_traits.h ****   template<>
 109:/usr/include/c++/3.2.2/bits/char_traits.h ****     struct char_traits<char>
 110:/usr/include/c++/3.2.2/bits/char_traits.h ****     {
 111:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef char 		char_type;
 112:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef int 	        int_type;
 113:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef streampos 	pos_type;
 114:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef streamoff 	off_type;
 115:/usr/include/c++/3.2.2/bits/char_traits.h ****       typedef mbstate_t 	state_type;
 116:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 117:/usr/include/c++/3.2.2/bits/char_traits.h ****       static void 
 118:/usr/include/c++/3.2.2/bits/char_traits.h ****       assign(char_type& __c1, const char_type& __c2)
 119:/usr/include/c++/3.2.2/bits/char_traits.h ****       { __c1 = __c2; }
 120:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 121:/usr/include/c++/3.2.2/bits/char_traits.h ****       static bool 
 122:/usr/include/c++/3.2.2/bits/char_traits.h ****       eq(const char_type& __c1, const char_type& __c2)
 123:/usr/include/c++/3.2.2/bits/char_traits.h ****       { return __c1 == __c2; }
 124:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 125:/usr/include/c++/3.2.2/bits/char_traits.h ****       static bool 
 126:/usr/include/c++/3.2.2/bits/char_traits.h ****       lt(const char_type& __c1, const char_type& __c2)
 127:/usr/include/c++/3.2.2/bits/char_traits.h ****       { return __c1 < __c2; }
 128:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 129:/usr/include/c++/3.2.2/bits/char_traits.h ****       static int 
 130:/usr/include/c++/3.2.2/bits/char_traits.h ****       compare(const char_type* __s1, const char_type* __s2, size_t __n)
 131:/usr/include/c++/3.2.2/bits/char_traits.h ****       { return memcmp(__s1, __s2, __n); }
 132:/usr/include/c++/3.2.2/bits/char_traits.h **** 
 133:/usr/include/c++/3.2.2/bits/char_traits.h ****       static size_t
 134:/usr/include/c++/3.2.2/bits/char_traits.h ****       length(const char_type* __s)
 135:/usr/include/c++/3.2.2/bits/char_traits.h ****       { return strlen(__s); }
 1321              		.loc 14 135 0
 1322              	.LBB18:
 1323 0000 55       		pushl	%ebp
 1324              	.LCFI77:
 1325 0001 89E5     		movl	%esp, %ebp
 1326              	.LCFI78:
 1327 0003 83EC08   		subl	$8, %esp
 1328              	.LCFI79:
 1329              		.loc 14 135 0
 1330 0006 83EC0C   		subl	$12, %esp
 1331 0009 FF7508   		pushl	8(%ebp)
 1332              	.LCFI80:
 1333 000c E8FCFFFF 		call	strlen
 1333      FF
 1334 0011 83C410   		addl	$16, %esp
 1335              	.LBE18:
 1336 0014 C9       		leave
 1337 0015 C3       		ret
 1338              	.LFE1585:
 1339              	.Lfe15:
 1341              		.section	.gnu.linkonce.t._ZN11MyExceptionC1ERKS_,"ax",@progbits
 1342              		.align 2
GAS LISTING /tmp/ccJ9xNSW.s 			page 61


 1343              		.weak	_ZN11MyExceptionC1ERKS_
 1345              	_ZN11MyExceptionC1ERKS_:
 1346              	.LFB1586:
 1347              		.loc 1 37 0
 1348              	.LBB19:
 1349 0000 55       		pushl	%ebp
 1350              	.LCFI81:
 1351 0001 89E5     		movl	%esp, %ebp
 1352              	.LCFI82:
 1353 0003 53       		pushl	%ebx
 1354              	.LCFI83:
 1355 0004 83EC04   		subl	$4, %esp
 1356              	.LCFI84:
 1357              		.loc 1 37 0
 1358 0007 83EC08   		subl	$8, %esp
 1359 000a FF750C   		pushl	12(%ebp)
 1360 000d FF7508   		pushl	8(%ebp)
 1361              	.LCFI85:
 1362 0010 E8FCFFFF 		call	_ZNSt9exceptionC2ERKS_
 1362      FF
 1363 0015 83C410   		addl	$16, %esp
 1364 0018 8B4508   		movl	8(%ebp), %eax
 1365 001b C7000800 		movl	$_ZTV11MyException+8, (%eax)
 1365      0000
 1366 0021 83EC08   		subl	$8, %esp
 1367 0024 8B450C   		movl	12(%ebp), %eax
 1368 0027 83C004   		addl	$4, %eax
 1369 002a 50       		pushl	%eax
 1370 002b 8B4508   		movl	8(%ebp), %eax
 1371 002e 83C004   		addl	$4, %eax
 1372 0031 50       		pushl	%eax
 1373              	.LEHB31:
 1374 0032 E8FCFFFF 		call	_ZNSsC1ERKSs
 1374      FF
 1375              	.LEHE31:
 1376 0037 83C410   		addl	$16, %esp
 1377              	.LBE19:
 1378 003a EB22     		jmp	.L120
 1379              	.L129:
 1380 003c 8945F8   		movl	%eax, -8(%ebp)
 1381 003f 8B5DF8   		movl	-8(%ebp), %ebx
 1382 0042 83EC0C   		subl	$12, %esp
 1383 0045 FF7508   		pushl	8(%ebp)
 1384 0048 E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 1384      FF
 1385 004d 83C410   		addl	$16, %esp
 1386 0050 895DF8   		movl	%ebx, -8(%ebp)
 1387 0053 83EC0C   		subl	$12, %esp
 1388 0056 FF75F8   		pushl	-8(%ebp)
 1389              	.LEHB32:
 1390 0059 E8FCFFFF 		call	_Unwind_Resume
 1390      FF
 1391              	.LEHE32:
 1392              	.L120:
 1393 005e 8B5DFC   		movl	-4(%ebp), %ebx
 1394 0061 C9       		leave
 1395 0062 C3       		ret
GAS LISTING /tmp/ccJ9xNSW.s 			page 62


 1396              	.LFE1586:
 1397              	.Lfe16:
 1399              		.section	.gcc_except_table
 1400              	.LLSDA1586:
 1401 00fd FF       		.byte	0xff
 1402 00fe FF       		.byte	0xff
 1403 00ff 01       		.byte	0x1
 1404 0100 08       		.uleb128 .LLSDACSE1586-.LLSDACSB1586
 1405              	.LLSDACSB1586:
 1406 0101 32       		.uleb128 .LEHB31-.LFB1586
 1407 0102 05       		.uleb128 .LEHE31-.LEHB31
 1408 0103 3C       		.uleb128 .L129-.LFB1586
 1409 0104 00       		.uleb128 0x0
 1410 0105 59       		.uleb128 .LEHB32-.LFB1586
 1411 0106 05       		.uleb128 .LEHE32-.LEHB32
 1412 0107 00       		.uleb128 0x0
 1413 0108 00       		.uleb128 0x0
 1414              	.LLSDACSE1586:
 1415              		.section	.gnu.linkonce.t._ZN11MyExceptionC1ERKS_
 1416              		.text
 1417              		.align 2
 1419              	__tcf_0:
 1420              	.LFB1587:
 1421              		.loc 47 63 0
 1422 0532 55       		pushl	%ebp
 1423              	.LCFI86:
 1424 0533 89E5     		movl	%esp, %ebp
 1425              	.LCFI87:
 1426 0535 83EC08   		subl	$8, %esp
 1427              	.LCFI88:
 1428              		.loc 47 63 0
 1429 0538 83EC0C   		subl	$12, %esp
 1430 053b 68000000 		pushl	$_ZSt8__ioinit
 1430      00
 1431              	.LCFI89:
 1432 0540 E8FCFFFF 		call	_ZNSt8ios_base4InitD1Ev
 1432      FF
 1433 0545 83C410   		addl	$16, %esp
 1434 0548 C9       		leave
 1435 0549 C3       		ret
 1436              	.LFE1587:
 1437              	.Lfe17:
 1439              		.weak	_ZTI11MyException
 1440              		.section	.gnu.linkonce.d._ZTI11MyException,"aw",@progbits
 1441              		.align 4
 1444              	_ZTI11MyException:
 1445 0000 08000000 		.long	_ZTVN10__cxxabiv120__si_class_type_infoE+8
 1446 0004 00000000 		.long	_ZTS11MyException
 1447 0008 00000000 		.long	_ZTISt9exception
 1448              		.weak	_ZTS11MyException
 1449              		.section	.gnu.linkonce.r._ZTS11MyException,"a",@progbits
 1452              	_ZTS11MyException:
 1453 0000 31314D79 		.string	"11MyException"
 1453      45786365 
 1453      7074696F 
 1453      6E00
 1454              		.section	.gnu.linkonce.t._ZNSt9exceptionC2ERKS_,"ax",@progbits
GAS LISTING /tmp/ccJ9xNSW.s 			page 63


 1455              		.align 2
 1456              		.weak	_ZNSt9exceptionC2ERKS_
 1458              	_ZNSt9exceptionC2ERKS_:
 1459              	.LFB1588:
 1460              		.loc 1 37 0
 1461              	.LBB20:
 1462 0000 55       		pushl	%ebp
 1463              	.LCFI90:
 1464 0001 89E5     		movl	%esp, %ebp
 1465              	.LCFI91:
 1466              		.loc 1 37 0
 1467 0003 8B4508   		movl	8(%ebp), %eax
 1468 0006 C7000800 		movl	$_ZTVSt9exception+8, (%eax)
 1468      0000
 1469 000c C9       		leave
 1470 000d C3       		ret
 1471              	.LBE20:
 1472              	.LFE1588:
 1473              	.Lfe18:
 1475              		.text
 1476              		.align 2
 1478              	_GLOBAL__I__ZN11MyExceptionC2ESs:
 1479              	.LFB1590:
 1480              		.loc 46 131 0
 1481 054a 55       		pushl	%ebp
 1482              	.LCFI92:
 1483 054b 89E5     		movl	%esp, %ebp
 1484              	.LCFI93:
 1485 054d 83EC08   		subl	$8, %esp
 1486              	.LCFI94:
 1487              		.loc 46 131 0
 1488 0550 83EC08   		subl	$8, %esp
 1489 0553 68FFFF00 		pushl	$65535
 1489      00
 1490 0558 6A01     		pushl	$1
 1491              	.LCFI95:
 1492 055a E895FFFF 		call	_Z41__static_initialization_and_destruction_0ii
 1492      FF
 1493 055f 83C410   		addl	$16, %esp
 1494 0562 C9       		leave
 1495 0563 C3       		ret
 1496              	.LFE1590:
 1497              	.Lfe19:
 1499              		.section	.ctors,"aw",@progbits
 1500              		.align 4
 1501 0000 4A050000 		.long	_GLOBAL__I__ZN11MyExceptionC2ESs
 1502              		.file 49 "/usr/include/stdio.h"
 1503              		.file 50 "/usr/include/c++/3.2.2/iosfwd"
 1504              		.file 51 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/c++locale.h"
 1505              		.file 52 "/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include/stdarg.h"
 1506              		.file 53 "/usr/include/bits/sigset.h"
 1507              		.file 54 "/usr/include/signal.h"
 1508              		.file 55 "/usr/include/sys/select.h"
 1509              		.file 56 "/usr/include/nl_types.h"
 1510              		.file 57 "/usr/include/wctype.h"
 1511              		.file 58 "/usr/include/errno.h"
 1512              		.file 59 "/usr/include/bits/mathdef.h"
GAS LISTING /tmp/ccJ9xNSW.s 			page 64


 1513              		.weak	pthread_mutex_unlock
 1514              		.weak	pthread_mutex_trylock
 1515              		.weak	pthread_mutex_lock
 1516              		.weak	pthread_create
 1517              		.weak	pthread_setspecific
 1518              		.weak	pthread_getspecific
 1519              		.weak	pthread_key_delete
 1520              		.weak	pthread_key_create
 1521              		.weak	pthread_once
 2040              	.Lframe1:
 2041 0000 18000000 		.long	.LECIE1-.LSCIE1
 2042              	.LSCIE1:
 2043 0004 00000000 		.long	0x0
 2044 0008 01       		.byte	0x1
 2045 0009 7A504C00 		.string	"zPL"
 2046 000d 01       		.uleb128 0x1
 2047 000e 7C       		.sleb128 -4
 2048 000f 08       		.byte	0x8
 2049 0010 06       		.uleb128 0x6
 2050 0011 00       		.byte	0x0
 2051 0012 00000000 		.long	__gxx_personality_v0
 2052 0016 00       		.byte	0x0
 2053 0017 0C       		.byte	0xc
 2054 0018 04       		.uleb128 0x4
 2055 0019 04       		.uleb128 0x4
 2056 001a 88       		.byte	0x88
 2057 001b 01       		.uleb128 0x1
 2058              		.align 4
 2059              	.LECIE1:
 2060              	.LSFDE1:
 2061 001c 24000000 		.long	.LEFDE1-.LASFDE1
 2062              	.LASFDE1:
 2063 0020 20000000 		.long	.LASFDE1-.Lframe1
 2064 0024 00000000 		.long	.LFB1480
 2065 0028 7A000000 		.long	.LFE1480-.LFB1480
 2066 002c 04       		.uleb128 0x4
 2067 002d 00000000 		.long	.LLSDA1480
 2068 0031 41       		.byte	0x4
 2069              		.long	.LCFI0-.LFB1480
 2070 0032 0E       		.byte	0xe
 2071 0033 08       		.uleb128 0x8
 2072 0034 85       		.byte	0x85
 2073 0035 02       		.uleb128 0x2
 2074 0036 42       		.byte	0x4
 2075              		.long	.LCFI1-.LCFI0
 2076 0037 0D       		.byte	0xd
 2077 0038 05       		.uleb128 0x5
 2078 0039 45       		.byte	0x4
 2079              		.long	.LCFI4-.LCFI1
 2080 003a 83       		.byte	0x83
 2081 003b 04       		.uleb128 0x4
 2082 003c 86       		.byte	0x86
 2083 003d 03       		.uleb128 0x3
 2084 003e 49       		.byte	0x4
 2085              		.long	.LCFI5-.LCFI4
 2086 003f 2E       		.byte	0x2e
 2087 0040 10       		.uleb128 0x10
GAS LISTING /tmp/ccJ9xNSW.s 			page 65


 2088 0041 000000   		.align 4
 2089              	.LEFDE1:
 2090              	.LSFDE3:
 2091 0044 24000000 		.long	.LEFDE3-.LASFDE3
 2092              	.LASFDE3:
 2093 0048 48000000 		.long	.LASFDE3-.Lframe1
 2094 004c 7A000000 		.long	.LFB1482
 2095 0050 7A000000 		.long	.LFE1482-.LFB1482
 2096 0054 04       		.uleb128 0x4
 2097 0055 18000000 		.long	.LLSDA1482
 2098 0059 41       		.byte	0x4
 2099              		.long	.LCFI6-.LFB1482
 2100 005a 0E       		.byte	0xe
 2101 005b 08       		.uleb128 0x8
 2102 005c 85       		.byte	0x85
 2103 005d 02       		.uleb128 0x2
 2104 005e 42       		.byte	0x4
 2105              		.long	.LCFI7-.LCFI6
 2106 005f 0D       		.byte	0xd
 2107 0060 05       		.uleb128 0x5
 2108 0061 45       		.byte	0x4
 2109              		.long	.LCFI10-.LCFI7
 2110 0062 83       		.byte	0x83
 2111 0063 04       		.uleb128 0x4
 2112 0064 86       		.byte	0x86
 2113 0065 03       		.uleb128 0x3
 2114 0066 49       		.byte	0x4
 2115              		.long	.LCFI11-.LCFI10
 2116 0067 2E       		.byte	0x2e
 2117 0068 10       		.uleb128 0x10
 2118 0069 000000   		.align 4
 2119              	.LEFDE3:
 2120              	.LSFDE5:
 2121 006c 1C000000 		.long	.LEFDE5-.LASFDE5
 2122              	.LASFDE5:
 2123 0070 70000000 		.long	.LASFDE5-.Lframe1
 2124 0074 F4000000 		.long	.LFB1485
 2125 0078 6B000000 		.long	.LFE1485-.LFB1485
 2126 007c 04       		.uleb128 0x4
 2127 007d 30000000 		.long	.LLSDA1485
 2128 0081 41       		.byte	0x4
 2129              		.long	.LCFI12-.LFB1485
 2130 0082 0E       		.byte	0xe
 2131 0083 08       		.uleb128 0x8
 2132 0084 85       		.byte	0x85
 2133 0085 02       		.uleb128 0x2
 2134 0086 42       		.byte	0x4
 2135              		.long	.LCFI13-.LCFI12
 2136 0087 0D       		.byte	0xd
 2137 0088 05       		.uleb128 0x5
 2138 0089 56       		.byte	0x4
 2139              		.long	.LCFI15-.LCFI13
 2140 008a 2E       		.byte	0x2e
 2141 008b 10       		.uleb128 0x10
 2142              		.align 4
 2143              	.LEFDE5:
 2144              	.LSFDE7:
GAS LISTING /tmp/ccJ9xNSW.s 			page 66


 2145 008c 1C000000 		.long	.LEFDE7-.LASFDE7
 2146              	.LASFDE7:
 2147 0090 90000000 		.long	.LASFDE7-.Lframe1
 2148 0094 60010000 		.long	.LFB1487
 2149 0098 6B000000 		.long	.LFE1487-.LFB1487
 2150 009c 04       		.uleb128 0x4
 2151 009d 44000000 		.long	.LLSDA1487
 2152 00a1 41       		.byte	0x4
 2153              		.long	.LCFI16-.LFB1487
 2154 00a2 0E       		.byte	0xe
 2155 00a3 08       		.uleb128 0x8
 2156 00a4 85       		.byte	0x85
 2157 00a5 02       		.uleb128 0x2
 2158 00a6 42       		.byte	0x4
 2159              		.long	.LCFI17-.LCFI16
 2160 00a7 0D       		.byte	0xd
 2161 00a8 05       		.uleb128 0x5
 2162 00a9 56       		.byte	0x4
 2163              		.long	.LCFI19-.LCFI17
 2164 00aa 2E       		.byte	0x2e
 2165 00ab 10       		.uleb128 0x10
 2166              		.align 4
 2167              	.LEFDE7:
 2168              	.LSFDE9:
 2169 00ac 1C000000 		.long	.LEFDE9-.LASFDE9
 2170              	.LASFDE9:
 2171 00b0 B0000000 		.long	.LASFDE9-.Lframe1
 2172 00b4 CC010000 		.long	.LFB1489
 2173 00b8 6B000000 		.long	.LFE1489-.LFB1489
 2174 00bc 04       		.uleb128 0x4
 2175 00bd 58000000 		.long	.LLSDA1489
 2176 00c1 41       		.byte	0x4
 2177              		.long	.LCFI20-.LFB1489
 2178 00c2 0E       		.byte	0xe
 2179 00c3 08       		.uleb128 0x8
 2180 00c4 85       		.byte	0x85
 2181 00c5 02       		.uleb128 0x2
 2182 00c6 42       		.byte	0x4
 2183              		.long	.LCFI21-.LCFI20
 2184 00c7 0D       		.byte	0xd
 2185 00c8 05       		.uleb128 0x5
 2186 00c9 56       		.byte	0x4
 2187              		.long	.LCFI23-.LCFI21
 2188 00ca 2E       		.byte	0x2e
 2189 00cb 10       		.uleb128 0x10
 2190              		.align 4
 2191              	.LEFDE9:
 2192              	.LSFDE11:
 2193 00cc 1C000000 		.long	.LEFDE11-.LASFDE11
 2194              	.LASFDE11:
 2195 00d0 D0000000 		.long	.LASFDE11-.Lframe1
 2196 00d4 38020000 		.long	.LFB1491
 2197 00d8 40000000 		.long	.LFE1491-.LFB1491
 2198 00dc 04       		.uleb128 0x4
 2199 00dd 6C000000 		.long	.LLSDA1491
 2200 00e1 41       		.byte	0x4
 2201              		.long	.LCFI24-.LFB1491
GAS LISTING /tmp/ccJ9xNSW.s 			page 67


 2202 00e2 0E       		.byte	0xe
 2203 00e3 08       		.uleb128 0x8
 2204 00e4 85       		.byte	0x85
 2205 00e5 02       		.uleb128 0x2
 2206 00e6 42       		.byte	0x4
 2207              		.long	.LCFI25-.LCFI24
 2208 00e7 0D       		.byte	0xd
 2209 00e8 05       		.uleb128 0x5
 2210 00e9 4D       		.byte	0x4
 2211              		.long	.LCFI27-.LCFI25
 2212 00ea 2E       		.byte	0x2e
 2213 00eb 10       		.uleb128 0x10
 2214              		.align 4
 2215              	.LEFDE11:
 2216              	.LSFDE13:
 2217 00ec 24000000 		.long	.LEFDE13-.LASFDE13
 2218              	.LASFDE13:
 2219 00f0 F0000000 		.long	.LASFDE13-.Lframe1
 2220 00f4 78020000 		.long	.LFB1493
 2221 00f8 77000000 		.long	.LFE1493-.LFB1493
 2222 00fc 04       		.uleb128 0x4
 2223 00fd 7D000000 		.long	.LLSDA1493
 2224 0101 41       		.byte	0x4
 2225              		.long	.LCFI28-.LFB1493
 2226 0102 0E       		.byte	0xe
 2227 0103 08       		.uleb128 0x8
 2228 0104 85       		.byte	0x85
 2229 0105 02       		.uleb128 0x2
 2230 0106 42       		.byte	0x4
 2231              		.long	.LCFI29-.LCFI28
 2232 0107 0D       		.byte	0xd
 2233 0108 05       		.uleb128 0x5
 2234 0109 44       		.byte	0x4
 2235              		.long	.LCFI31-.LCFI29
 2236 010a 83       		.byte	0x83
 2237 010b 03       		.uleb128 0x3
 2238 010c 5B       		.byte	0x4
 2239              		.long	.LCFI32-.LCFI31
 2240 010d 2E       		.byte	0x2e
 2241 010e 18       		.uleb128 0x18
 2242 010f 4F       		.byte	0x4
 2243              		.long	.LCFI33-.LCFI32
 2244 0110 2E       		.byte	0x2e
 2245 0111 10       		.uleb128 0x10
 2246 0112 0000     		.align 4
 2247              	.LEFDE13:
 2248              	.LSFDE15:
 2249 0114 28000000 		.long	.LEFDE15-.LASFDE15
 2250              	.LASFDE15:
 2251 0118 18010000 		.long	.LASFDE15-.Lframe1
 2252 011c F0020000 		.long	.LFB1501
 2253 0120 1F010000 		.long	.LFE1501-.LFB1501
 2254 0124 04       		.uleb128 0x4
 2255 0125 94000000 		.long	.LLSDA1501
 2256 0129 41       		.byte	0x4
 2257              		.long	.LCFI34-.LFB1501
 2258 012a 0E       		.byte	0xe
GAS LISTING /tmp/ccJ9xNSW.s 			page 68


 2259 012b 08       		.uleb128 0x8
 2260 012c 85       		.byte	0x85
 2261 012d 02       		.uleb128 0x2
 2262 012e 42       		.byte	0x4
 2263              		.long	.LCFI35-.LCFI34
 2264 012f 0D       		.byte	0xd
 2265 0130 05       		.uleb128 0x5
 2266 0131 45       		.byte	0x4
 2267              		.long	.LCFI38-.LCFI35
 2268 0132 83       		.byte	0x83
 2269 0133 04       		.uleb128 0x4
 2270 0134 86       		.byte	0x86
 2271 0135 03       		.uleb128 0x3
 2272 0136 57       		.byte	0x4
 2273              		.long	.LCFI39-.LCFI38
 2274 0137 2E       		.byte	0x2e
 2275 0138 0C       		.uleb128 0xc
 2276 0139 55       		.byte	0x4
 2277              		.long	.LCFI40-.LCFI39
 2278 013a 2E       		.byte	0x2e
 2279 013b 18       		.uleb128 0x18
 2280 013c 50       		.byte	0x4
 2281              		.long	.LCFI41-.LCFI40
 2282 013d 2E       		.byte	0x2e
 2283 013e 10       		.uleb128 0x10
 2284 013f 00       		.align 4
 2285              	.LEFDE15:
 2286              	.LSFDE17:
 2287 0140 34000000 		.long	.LEFDE17-.LASFDE17
 2288              	.LASFDE17:
 2289 0144 44010000 		.long	.LASFDE17-.Lframe1
 2290 0148 10040000 		.long	.LFB1503
 2291 014c E4000000 		.long	.LFE1503-.LFB1503
 2292 0150 04       		.uleb128 0x4
 2293 0151 B4000000 		.long	.LLSDA1503
 2294 0155 41       		.byte	0x4
 2295              		.long	.LCFI42-.LFB1503
 2296 0156 0E       		.byte	0xe
 2297 0157 08       		.uleb128 0x8
 2298 0158 85       		.byte	0x85
 2299 0159 02       		.uleb128 0x2
 2300 015a 42       		.byte	0x4
 2301              		.long	.LCFI43-.LCFI42
 2302 015b 0D       		.byte	0xd
 2303 015c 05       		.uleb128 0x5
 2304 015d 44       		.byte	0x4
 2305              		.long	.LCFI45-.LCFI43
 2306 015e 83       		.byte	0x83
 2307 015f 03       		.uleb128 0x3
 2308 0160 4F       		.byte	0x4
 2309              		.long	.LCFI46-.LCFI45
 2310 0161 2E       		.byte	0x2e
 2311 0162 10       		.uleb128 0x10
 2312 0163 02       		.byte	0x4
 2313 0164 46       		.long	.LCFI47-.LCFI46
 2314 0165 2E       		.byte	0x2e
 2315 0166 08       		.uleb128 0x8
GAS LISTING /tmp/ccJ9xNSW.s 			page 69


 2316 0167 59       		.byte	0x4
 2317              		.long	.LCFI48-.LCFI47
 2318 0168 2E       		.byte	0x2e
 2319 0169 14       		.uleb128 0x14
 2320 016a 52       		.byte	0x4
 2321              		.long	.LCFI49-.LCFI48
 2322 016b 2E       		.byte	0x2e
 2323 016c 10       		.uleb128 0x10
 2324 016d 7B       		.byte	0x4
 2325              		.long	.LCFI50-.LCFI49
 2326 016e 2E       		.byte	0x2e
 2327 016f 00       		.uleb128 0x0
 2328 0170 4E       		.byte	0x4
 2329              		.long	.LCFI51-.LCFI50
 2330 0171 2E       		.byte	0x2e
 2331 0172 10       		.uleb128 0x10
 2332 0173 45       		.byte	0x4
 2333              		.long	.LCFI52-.LCFI51
 2334 0174 2E       		.byte	0x2e
 2335 0175 00       		.uleb128 0x0
 2336 0176 0000     		.align 4
 2337              	.LEFDE17:
 2338              	.LSFDE19:
 2339 0178 28000000 		.long	.LEFDE19-.LASFDE19
 2340              	.LASFDE19:
 2341 017c 7C010000 		.long	.LASFDE19-.Lframe1
 2342 0180 00000000 		.long	.LFB1517
 2343 0184 9D000000 		.long	.LFE1517-.LFB1517
 2344 0188 04       		.uleb128 0x4
 2345 0189 DC000000 		.long	.LLSDA1517
 2346 018d 41       		.byte	0x4
 2347              		.long	.LCFI53-.LFB1517
 2348 018e 0E       		.byte	0xe
 2349 018f 08       		.uleb128 0x8
 2350 0190 85       		.byte	0x85
 2351 0191 02       		.uleb128 0x2
 2352 0192 42       		.byte	0x4
 2353              		.long	.LCFI54-.LCFI53
 2354 0193 0D       		.byte	0xd
 2355 0194 05       		.uleb128 0x5
 2356 0195 44       		.byte	0x4
 2357              		.long	.LCFI56-.LCFI54
 2358 0196 83       		.byte	0x83
 2359 0197 03       		.uleb128 0x3
 2360 0198 46       		.byte	0x4
 2361              		.long	.LCFI57-.LCFI56
 2362 0199 2E       		.byte	0x2e
 2363 019a 10       		.uleb128 0x10
 2364 019b 62       		.byte	0x4
 2365              		.long	.LCFI58-.LCFI57
 2366 019c 2E       		.byte	0x2e
 2367 019d 08       		.uleb128 0x8
 2368 019e 4F       		.byte	0x4
 2369              		.long	.LCFI59-.LCFI58
 2370 019f 2E       		.byte	0x2e
 2371 01a0 10       		.uleb128 0x10
 2372 01a1 000000   		.align 4
GAS LISTING /tmp/ccJ9xNSW.s 			page 70


 2373              	.LEFDE19:
 2374              	.LSFDE21:
 2375 01a4 20000000 		.long	.LEFDE21-.LASFDE21
 2376              	.LASFDE21:
 2377 01a8 A8010000 		.long	.LASFDE21-.Lframe1
 2378 01ac 00000000 		.long	.LFB1519
 2379 01b0 57000000 		.long	.LFE1519-.LFB1519
 2380 01b4 04       		.uleb128 0x4
 2381 01b5 ED000000 		.long	.LLSDA1519
 2382 01b9 41       		.byte	0x4
 2383              		.long	.LCFI60-.LFB1519
 2384 01ba 0E       		.byte	0xe
 2385 01bb 08       		.uleb128 0x8
 2386 01bc 85       		.byte	0x85
 2387 01bd 02       		.uleb128 0x2
 2388 01be 42       		.byte	0x4
 2389              		.long	.LCFI61-.LCFI60
 2390 01bf 0D       		.byte	0xd
 2391 01c0 05       		.uleb128 0x5
 2392 01c1 44       		.byte	0x4
 2393              		.long	.LCFI63-.LCFI61
 2394 01c2 83       		.byte	0x83
 2395 01c3 03       		.uleb128 0x3
 2396 01c4 49       		.byte	0x4
 2397              		.long	.LCFI64-.LCFI63
 2398 01c5 2E       		.byte	0x2e
 2399 01c6 10       		.uleb128 0x10
 2400 01c7 00       		.align 4
 2401              	.LEFDE21:
 2402              	.LSFDE23:
 2403 01c8 24000000 		.long	.LEFDE23-.LASFDE23
 2404              	.LASFDE23:
 2405 01cc CC010000 		.long	.LASFDE23-.Lframe1
 2406 01d0 00000000 		.long	.LFB1538
 2407 01d4 43000000 		.long	.LFE1538-.LFB1538
 2408 01d8 04       		.uleb128 0x4
 2409 01d9 00000000 		.long	0x0
 2410 01dd 41       		.byte	0x4
 2411              		.long	.LCFI65-.LFB1538
 2412 01de 0E       		.byte	0xe
 2413 01df 08       		.uleb128 0x8
 2414 01e0 85       		.byte	0x85
 2415 01e1 02       		.uleb128 0x2
 2416 01e2 42       		.byte	0x4
 2417              		.long	.LCFI66-.LCFI65
 2418 01e3 0D       		.byte	0xd
 2419 01e4 05       		.uleb128 0x5
 2420 01e5 56       		.byte	0x4
 2421              		.long	.LCFI68-.LCFI66
 2422 01e6 2E       		.byte	0x2e
 2423 01e7 0C       		.uleb128 0xc
 2424 01e8 52       		.byte	0x4
 2425              		.long	.LCFI69-.LCFI68
 2426 01e9 2E       		.byte	0x2e
 2427 01ea 08       		.uleb128 0x8
 2428 01eb 4E       		.byte	0x4
 2429              		.long	.LCFI70-.LCFI69
GAS LISTING /tmp/ccJ9xNSW.s 			page 71


 2430 01ec 2E       		.byte	0x2e
 2431 01ed 20       		.uleb128 0x20
 2432 01ee 0000     		.align 4
 2433              	.LEFDE23:
 2434              	.LSFDE25:
 2435 01f0 1C000000 		.long	.LEFDE25-.LASFDE25
 2436              	.LASFDE25:
 2437 01f4 F4010000 		.long	.LASFDE25-.Lframe1
 2438 01f8 F4040000 		.long	.LFB1583
 2439 01fc 3E000000 		.long	.LFE1583-.LFB1583
 2440 0200 04       		.uleb128 0x4
 2441 0201 00000000 		.long	0x0
 2442 0205 41       		.byte	0x4
 2443              		.long	.LCFI71-.LFB1583
 2444 0206 0E       		.byte	0xe
 2445 0207 08       		.uleb128 0x8
 2446 0208 85       		.byte	0x85
 2447 0209 02       		.uleb128 0x2
 2448 020a 42       		.byte	0x4
 2449              		.long	.LCFI72-.LCFI71
 2450 020b 0D       		.byte	0xd
 2451 020c 05       		.uleb128 0x5
 2452 020d 5A       		.byte	0x4
 2453              		.long	.LCFI74-.LCFI72
 2454 020e 2E       		.byte	0x2e
 2455 020f 10       		.uleb128 0x10
 2456              		.align 4
 2457              	.LEFDE25:
 2458              	.LSFDE31:
 2459 0210 20000000 		.long	.LEFDE31-.LASFDE31
 2460              	.LASFDE31:
 2461 0214 14020000 		.long	.LASFDE31-.Lframe1
 2462 0218 00000000 		.long	.LFB1586
 2463 021c 63000000 		.long	.LFE1586-.LFB1586
 2464 0220 04       		.uleb128 0x4
 2465 0221 FD000000 		.long	.LLSDA1586
 2466 0225 41       		.byte	0x4
 2467              		.long	.LCFI81-.LFB1586
 2468 0226 0E       		.byte	0xe
 2469 0227 08       		.uleb128 0x8
 2470 0228 85       		.byte	0x85
 2471 0229 02       		.uleb128 0x2
 2472 022a 42       		.byte	0x4
 2473              		.long	.LCFI82-.LCFI81
 2474 022b 0D       		.byte	0xd
 2475 022c 05       		.uleb128 0x5
 2476 022d 44       		.byte	0x4
 2477              		.long	.LCFI84-.LCFI82
 2478 022e 83       		.byte	0x83
 2479 022f 03       		.uleb128 0x3
 2480 0230 49       		.byte	0x4
 2481              		.long	.LCFI85-.LCFI84
 2482 0231 2E       		.byte	0x2e
 2483 0232 10       		.uleb128 0x10
 2484 0233 00       		.align 4
 2485              	.LEFDE31:
 2486              	.LSFDE33:
GAS LISTING /tmp/ccJ9xNSW.s 			page 72


 2487 0234 1C000000 		.long	.LEFDE33-.LASFDE33
 2488              	.LASFDE33:
 2489 0238 38020000 		.long	.LASFDE33-.Lframe1
 2490 023c 32050000 		.long	.LFB1587
 2491 0240 18000000 		.long	.LFE1587-.LFB1587
 2492 0244 04       		.uleb128 0x4
 2493 0245 00000000 		.long	0x0
 2494 0249 41       		.byte	0x4
 2495              		.long	.LCFI86-.LFB1587
 2496 024a 0E       		.byte	0xe
 2497 024b 08       		.uleb128 0x8
 2498 024c 85       		.byte	0x85
 2499 024d 02       		.uleb128 0x2
 2500 024e 42       		.byte	0x4
 2501              		.long	.LCFI87-.LCFI86
 2502 024f 0D       		.byte	0xd
 2503 0250 05       		.uleb128 0x5
 2504 0251 4B       		.byte	0x4
 2505              		.long	.LCFI89-.LCFI87
 2506 0252 2E       		.byte	0x2e
 2507 0253 10       		.uleb128 0x10
 2508              		.align 4
 2509              	.LEFDE33:
 2510              	.LSFDE37:
 2511 0254 1C000000 		.long	.LEFDE37-.LASFDE37
 2512              	.LASFDE37:
 2513 0258 58020000 		.long	.LASFDE37-.Lframe1
 2514 025c 4A050000 		.long	.LFB1590
 2515 0260 1A000000 		.long	.LFE1590-.LFB1590
 2516 0264 04       		.uleb128 0x4
 2517 0265 00000000 		.long	0x0
 2518 0269 41       		.byte	0x4
 2519              		.long	.LCFI92-.LFB1590
 2520 026a 0E       		.byte	0xe
 2521 026b 08       		.uleb128 0x8
 2522 026c 85       		.byte	0x85
 2523 026d 02       		.uleb128 0x2
 2524 026e 42       		.byte	0x4
 2525              		.long	.LCFI93-.LCFI92
 2526 026f 0D       		.byte	0xd
 2527 0270 05       		.uleb128 0x5
 2528 0271 4D       		.byte	0x4
 2529              		.long	.LCFI95-.LCFI93
 2530 0272 2E       		.byte	0x2e
 2531 0273 10       		.uleb128 0x10
 2532              		.align 4
 2533              	.LEFDE37:
 2534              		.text
 2535              	.Letext0:
GAS LISTING /tmp/ccJ9xNSW.s 			page 73


DEFINED SYMBOLS
                            *ABS*:00000000 hello-exceptions.cc
                             .bss:00000000 _ZSt8__ioinit
     /tmp/ccJ9xNSW.s:59     .text:00000000 _ZN11MyExceptionC2ESs
     /tmp/ccJ9xNSW.s:1298   .gnu.linkonce.t._ZNSt9exceptionC2Ev:00000000 _ZNSt9exceptionC2Ev
     /tmp/ccJ9xNSW.s:1251   .gnu.linkonce.d._ZTV11MyException:00000000 _ZTV11MyException
     /tmp/ccJ9xNSW.s:155    .text:0000007a _ZN11MyExceptionC1ESs
     /tmp/ccJ9xNSW.s:251    .text:000000f4 _ZN11MyExceptionD2Ev
     /tmp/ccJ9xNSW.s:335    .text:00000160 _ZN11MyExceptionD1Ev
     /tmp/ccJ9xNSW.s:419    .text:000001cc _ZN11MyExceptionD0Ev
     /tmp/ccJ9xNSW.s:503    .text:00000238 _ZNK11MyException4whatEv
     /tmp/ccJ9xNSW.s:581    .text:00000278 _ZNK11MyException9as_stringEv
     /tmp/ccJ9xNSW.s:1022   .gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_:00000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
     /tmp/ccJ9xNSW.s:1127   .gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_:00000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
     /tmp/ccJ9xNSW.s:682    .text:000002f0 _Z9take_halfi
     /tmp/ccJ9xNSW.s:1345   .gnu.linkonce.t._ZN11MyExceptionC1ERKS_:00000000 _ZN11MyExceptionC1ERKS_
     /tmp/ccJ9xNSW.s:1444   .gnu.linkonce.d._ZTI11MyException:00000000 _ZTI11MyException
     /tmp/ccJ9xNSW.s:856    .text:00000410 main
     /tmp/ccJ9xNSW.s:1319   .gnu.linkonce.t._ZNSt11char_traitsIcE6lengthEPKc:00000000 _ZNSt11char_traitsIcE6lengthEPKc
     /tmp/ccJ9xNSW.s:1206   .gnu.linkonce.t._ZNSs6appendIPKcEERSsT_S3_:00000000 _ZNSs6appendIPKcEERSsT_S3_
     /tmp/ccJ9xNSW.s:1260   .text:000004f4 _Z41__static_initialization_and_destruction_0ii
     /tmp/ccJ9xNSW.s:1419   .text:00000532 __tcf_0
     /tmp/ccJ9xNSW.s:1458   .gnu.linkonce.t._ZNSt9exceptionC2ERKS_:00000000 _ZNSt9exceptionC2ERKS_
     /tmp/ccJ9xNSW.s:1452   .gnu.linkonce.r._ZTS11MyException:00000000 _ZTS11MyException
     /tmp/ccJ9xNSW.s:1478   .text:0000054a _GLOBAL__I__ZN11MyExceptionC2ESs

UNDEFINED SYMBOLS
_Unwind_Resume
_ZNSsC1ERKSs
_ZNSt9exceptionD2Ev
__cxa_call_unexpected
_ZNSsD1Ev
_ZdlPv
_ZNKSs5c_strEv
_ZNSaIcEC1Ev
_ZNSsC1EPKcRKSaIcE
_ZNSaIcED1Ev
__cxa_allocate_exception
__cxa_throw
__cxa_begin_catch
_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
_ZSt4cout
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
_ZNSolsEPFRSoS_E
__cxa_end_catch
_ZNSsC1Ev
_ZNKSs4sizeEv
_ZNSs7reserveEj
_ZNSs6appendERKSs
_ZNSs6appendEPKc
_ZNKSs7_M_iendEv
_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_
_ZNSt8ios_base4InitC1Ev
__dso_handle
__cxa_atexit
_ZTVSt9exception
GAS LISTING /tmp/ccJ9xNSW.s 			page 74


strlen
_ZNSt8ios_base4InitD1Ev
_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTISt9exception
__gxx_personality_v0
