GAS LISTING /tmp/ccJDTatA.s 			page 1


   1              		.file	"rethrow.cc"
   2              		.file 1 "rethrow.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:rethrow.cc    **** #include <exception>
   2:rethrow.cc    **** #include <string>
   3:rethrow.cc    **** #include <iostream>
   4:rethrow.cc    **** 
   5:rethrow.cc    **** using namespace std;
GAS LISTING /tmp/ccJDTatA.s 			page 2


   6:rethrow.cc    **** 
   7:rethrow.cc    **** class MyException : public exception {
   8:rethrow.cc    ****   private:
   9:rethrow.cc    ****     string _what;
  10:rethrow.cc    ****   public:
  11:rethrow.cc    ****     MyException(string what) throw ();
  12:rethrow.cc    ****     ~MyException() throw ();
  13:rethrow.cc    **** 
  14:rethrow.cc    ****     virtual const char *what() const throw ();
  15:rethrow.cc    ****     string as_string() const;
  16:rethrow.cc    **** };
  17:rethrow.cc    **** 
  18:rethrow.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:rethrow.cc    ****     _what(what)
  20:rethrow.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/ccJDTatA.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/ccJDTatA.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/ccJDTatA.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:rethrow.cc    **** 
  22:rethrow.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/ccJDTatA.s 			page 6


 263      0000
 264              	.LBE4:
  23:rethrow.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/ccJDTatA.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/ccJDTatA.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/ccJDTatA.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/ccJDTatA.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:rethrow.cc    **** 
  25:rethrow.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:rethrow.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/ccJDTatA.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:rethrow.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/ccJDTatA.s 			page 12


 582              	.LFB1493:
  28:rethrow.cc    **** 
  29:rethrow.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:rethrow.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/ccJDTatA.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:rethrow.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 02ef 90       		.align 2
 676              	.globl _Z17throw_MyExceptionSs
 678              	_Z17throw_MyExceptionSs:
 679              	.LFB1501:
  32:rethrow.cc    **** 
  33:rethrow.cc    **** 
  34:rethrow.cc    **** void throw_MyException(string message) throw (MyException) {
 680              		.loc 1 34 0
 681 02f0 55       		pushl	%ebp
 682              	.LCFI34:
 683 02f1 89E5     		movl	%esp, %ebp
GAS LISTING /tmp/ccJDTatA.s 			page 14


 684              	.LCFI35:
 685 02f3 56       		pushl	%esi
 686              	.LCFI36:
 687 02f4 53       		pushl	%ebx
 688              	.LCFI37:
 689 02f5 83EC30   		subl	$48, %esp
 690              	.LCFI38:
 691 02f8 8B4508   		movl	8(%ebp), %eax
 692              	.LBB10:
  35:rethrow.cc    ****     throw MyException(message);
 693              		.loc 1 35 0
 694 02fb 83EC08   		subl	$8, %esp
 695 02fe 50       		pushl	%eax
 696 02ff 8D45D8   		leal	-40(%ebp), %eax
 697 0302 50       		pushl	%eax
 698              	.LEHB16:
 699              	.LCFI39:
 700 0303 E8FCFFFF 		call	_ZNSsC1ERKSs
 700      FF
 701 0308 83C408   		addl	$8, %esp
 702 030b 8D45D8   		leal	-40(%ebp), %eax
 703 030e 50       		pushl	%eax
 704 030f 8D45E8   		leal	-24(%ebp), %eax
 705 0312 50       		pushl	%eax
 706              	.LCFI40:
 707 0313 E8FCFFFF 		call	_ZN11MyExceptionC1ESs
 707      FF
 708 0318 83C410   		addl	$16, %esp
 709 031b 83EC0C   		subl	$12, %esp
 710 031e 8D45D8   		leal	-40(%ebp), %eax
 711 0321 50       		pushl	%eax
 712 0322 E8FCFFFF 		call	_ZNSsD1Ev
 712      FF
 713              	.LEHE16:
 714 0327 83C410   		addl	$16, %esp
 715 032a 83EC0C   		subl	$12, %esp
 716 032d 6A08     		pushl	$8
 717 032f E8FCFFFF 		call	__cxa_allocate_exception
 717      FF
 718 0334 83C410   		addl	$16, %esp
 719 0337 89C3     		movl	%eax, %ebx
 720 0339 83EC08   		subl	$8, %esp
 721 033c 8D45E8   		leal	-24(%ebp), %eax
 722 033f 50       		pushl	%eax
 723 0340 53       		pushl	%ebx
 724 0341 E8FCFFFF 		call	_ZN11MyExceptionC1ERKS_
 724      FF
 725 0346 83C410   		addl	$16, %esp
 726 0349 83EC04   		subl	$4, %esp
 727 034c 68000000 		pushl	$_ZN11MyExceptionD1Ev
 727      00
 728 0351 68000000 		pushl	$_ZTI11MyException
 728      00
 729 0356 53       		pushl	%ebx
 730              	.LEHB17:
 731 0357 E8FCFFFF 		call	__cxa_throw
 731      FF
GAS LISTING /tmp/ccJDTatA.s 			page 15


 732              	.LEHE17:
 733              	.L78:
 734 035c 8945D4   		movl	%eax, -44(%ebp)
 735 035f 8955D0   		movl	%edx, -48(%ebp)
 736 0362 8B5DD4   		movl	-44(%ebp), %ebx
 737 0365 8B75D0   		movl	-48(%ebp), %esi
 738 0368 83EC0C   		subl	$12, %esp
 739 036b 8D45E8   		leal	-24(%ebp), %eax
 740 036e 50       		pushl	%eax
 741 036f E8FCFFFF 		call	_ZN11MyExceptionD1Ev
 741      FF
 742 0374 83C410   		addl	$16, %esp
 743 0377 895DD4   		movl	%ebx, -44(%ebp)
 744 037a 8975D0   		movl	%esi, -48(%ebp)
 745 037d EB06     		jmp	.L77
 746              	.LBE10:
 747              	.L79:
 748 037f 8945D4   		movl	%eax, -44(%ebp)
 749 0382 8955D0   		movl	%edx, -48(%ebp)
 750              	.L77:
 751 0385 837DD0FF 		cmpl	$-1, -48(%ebp)
 752 0389 740B     		je	.L75
 753 038b 83EC0C   		subl	$12, %esp
 754 038e FF75D4   		pushl	-44(%ebp)
 755              	.LEHB18:
 756 0391 E8FCFFFF 		call	_Unwind_Resume
 756      FF
 757              	.L75:
 758 0396 83EC0C   		subl	$12, %esp
 759 0399 FF75D4   		pushl	-44(%ebp)
 760 039c E8FCFFFF 		call	__cxa_call_unexpected
 760      FF
 761              	.LEHE18:
  36:rethrow.cc    **** }
 762              		.loc 1 36 0
 763              	.LFE1501:
 764              	.Lfe8:
 766              		.section	.gcc_except_table
 767 0091 000000   		.align 4
 768              	.LLSDA1501:
 769 0094 FF       		.byte	0xff
 770 0095 00       		.byte	0x0
 771 0096 19       		.uleb128 .LLSDATT1501-.LLSDATTD1501
 772              	.LLSDATTD1501:
 773 0097 01       		.byte	0x1
 774 0098 0E       		.uleb128 .LLSDACSE1501-.LLSDACSB1501
 775              	.LLSDACSB1501:
 776 0099 13       		.uleb128 .LEHB16-.LFB1501
 777 009a 24       		.uleb128 .LEHE16-.LEHB16
 778 009b 8F01     		.uleb128 .L79-.LFB1501
 779 009d 01       		.uleb128 0x1
 780 009e 67       		.uleb128 .LEHB17-.LFB1501
 781 009f 05       		.uleb128 .LEHE17-.LEHB17
 782 00a0 6C       		.uleb128 .L78-.LFB1501
 783 00a1 03       		.uleb128 0x3
 784 00a2 A101     		.uleb128 .LEHB18-.LFB1501
 785 00a4 10       		.uleb128 .LEHE18-.LEHB18
GAS LISTING /tmp/ccJDTatA.s 			page 16


 786 00a5 00       		.uleb128 0x0
 787 00a6 00       		.uleb128 0x0
 788              	.LLSDACSE1501:
 789 00a7 7F       		.byte	0x7f
 790 00a8 00       		.byte	0x0
 791 00a9 00       		.byte	0x0
 792 00aa 7D       		.byte	0x7d
 793 00ab 00       		.align 4
 794 00ac 00000000 		.long	_ZTI11MyException
 795              	.LLSDATT1501:
 796 00b0 01       		.byte	0x1
 797 00b1 00       		.byte	0x0
 798              		.text
 799              		.section	.rodata
 800              	.LC2:
 801 000f 466F6F00 		.string	"Foo"
 802              	.LC3:
 803 0013 20726574 		.string	" rethrowing..."
 803      68726F77 
 803      696E672E 
 803      2E2E00
 804              	.LC4:
 805 0022 476F7420 		.string	"Got exception:"
 805      65786365 
 805      7074696F 
 805      6E3A00
 806              		.text
 807 03a1 90       		.align 2
 808              	.globl _Z17catch_and_rethrowv
 810              	_Z17catch_and_rethrowv:
 811              	.LFB1503:
  37:rethrow.cc    **** 
  38:rethrow.cc    **** void catch_and_rethrow() throw (MyException) {
 812              		.loc 1 38 0
 813              	.LBB11:
 814 03a2 55       		pushl	%ebp
 815              	.LCFI41:
 816 03a3 89E5     		movl	%esp, %ebp
 817              	.LCFI42:
 818 03a5 56       		pushl	%esi
 819              	.LCFI43:
 820 03a6 53       		pushl	%ebx
 821              	.LCFI44:
 822 03a7 83EC30   		subl	$48, %esp
 823              	.LCFI45:
  39:rethrow.cc    ****     try {
  40:rethrow.cc    ****         throw_MyException("Foo");
 824              		.loc 1 40 0
 825 03aa 83EC0C   		subl	$12, %esp
 826 03ad 83EC08   		subl	$8, %esp
 827 03b0 83EC08   		subl	$8, %esp
 828 03b3 8D45D8   		leal	-40(%ebp), %eax
 829 03b6 50       		pushl	%eax
 830              	.LCFI46:
 831 03b7 E8FCFFFF 		call	_ZNSaIcEC1Ev
 831      FF
 832 03bc 83C40C   		addl	$12, %esp
GAS LISTING /tmp/ccJDTatA.s 			page 17


 833 03bf 8D45D8   		leal	-40(%ebp), %eax
 834 03c2 50       		pushl	%eax
 835 03c3 680F0000 		pushl	$.LC2
 835      00
 836 03c8 8D45E8   		leal	-24(%ebp), %eax
 837 03cb 50       		pushl	%eax
 838              	.LEHB19:
 839              	.LCFI47:
 840 03cc E8FCFFFF 		call	_ZNSsC1EPKcRKSaIcE
 840      FF
 841              	.LEHE19:
 842 03d1 83C414   		addl	$20, %esp
 843 03d4 8D45E8   		leal	-24(%ebp), %eax
 844 03d7 50       		pushl	%eax
 845              	.LEHB20:
 846              	.LCFI48:
 847 03d8 E8FCFFFF 		call	_Z17throw_MyExceptionSs
 847      FF
 848              	.LEHE20:
 849 03dd 83C410   		addl	$16, %esp
 850 03e0 EB23     		jmp	.L82
 851              	.L105:
 852 03e2 8945D0   		movl	%eax, -48(%ebp)
 853 03e5 8955CC   		movl	%edx, -52(%ebp)
 854 03e8 8B5DD0   		movl	-48(%ebp), %ebx
 855 03eb 8B75CC   		movl	-52(%ebp), %esi
 856 03ee 83EC0C   		subl	$12, %esp
 857 03f1 8D45E8   		leal	-24(%ebp), %eax
 858 03f4 50       		pushl	%eax
 859 03f5 E8FCFFFF 		call	_ZNSsD1Ev
 859      FF
 860 03fa 83C410   		addl	$16, %esp
 861 03fd 895DD0   		movl	%ebx, -48(%ebp)
 862 0400 8975CC   		movl	%esi, -52(%ebp)
 863 0403 EB17     		jmp	.L85
 864              	.L82:
 865 0405 83EC0C   		subl	$12, %esp
 866 0408 8D45E8   		leal	-24(%ebp), %eax
 867 040b 50       		pushl	%eax
 868              	.LEHB21:
 869 040c E8FCFFFF 		call	_ZNSsD1Ev
 869      FF
 870              	.LEHE21:
 871 0411 83C410   		addl	$16, %esp
 872 0414 EB23     		jmp	.L86
 873              	.L106:
 874 0416 8945D0   		movl	%eax, -48(%ebp)
 875 0419 8955CC   		movl	%edx, -52(%ebp)
 876              	.L85:
 877 041c 8B5DD0   		movl	-48(%ebp), %ebx
 878 041f 8B75CC   		movl	-52(%ebp), %esi
 879 0422 83EC0C   		subl	$12, %esp
 880 0425 8D45D8   		leal	-40(%ebp), %eax
 881 0428 50       		pushl	%eax
 882 0429 E8FCFFFF 		call	_ZNSaIcED1Ev
 882      FF
 883 042e 83C410   		addl	$16, %esp
GAS LISTING /tmp/ccJDTatA.s 			page 18


 884 0431 895DD0   		movl	%ebx, -48(%ebp)
 885 0434 8975CC   		movl	%esi, -52(%ebp)
 886 0437 EB14     		jmp	.L101
 887              	.L86:
 888 0439 83EC0C   		subl	$12, %esp
 889 043c 8D45D8   		leal	-40(%ebp), %eax
 890 043f 50       		pushl	%eax
 891 0440 E8FCFFFF 		call	_ZNSaIcED1Ev
 891      FF
 892 0445 83C410   		addl	$16, %esp
 893 0448 E9DE0000 		jmp	.L80
 893      00
  41:rethrow.cc    ****     } catch (MyException &e) {
 894              		.loc 1 41 0
 895              	.L107:
 896              	.L101:
 897 044d 837DCC01 		cmpl	$1, -52(%ebp)
 898 0451 7405     		je	.L90
 899 0453 E9B70000 		jmp	.L102
 899      00
 900              	.L90:
 901              	.LBB12:
 902 0458 83EC0C   		subl	$12, %esp
 903 045b FF75D0   		pushl	-48(%ebp)
 904 045e E8FCFFFF 		call	__cxa_begin_catch
 904      FF
 905 0463 83C410   		addl	$16, %esp
 906 0466 8945D4   		movl	%eax, -44(%ebp)
  42:rethrow.cc    ****         cout << "Got exception:" << e.as_string() << " rethrowing..." << endl;
 907              		.loc 1 42 0
 908 0469 83EC08   		subl	$8, %esp
 909 046c 68000000 		pushl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
 909      00
 910 0471 83EC0C   		subl	$12, %esp
 911 0474 68130000 		pushl	$.LC3
 911      00
 912 0479 83EC0C   		subl	$12, %esp
 913 047c 8D45D8   		leal	-40(%ebp), %eax
 914 047f FF75D4   		pushl	-44(%ebp)
 915 0482 50       		pushl	%eax
 916              	.LEHB22:
 917              	.LCFI49:
 918 0483 E8FCFFFF 		call	_ZNK11MyException9as_stringEv
 918      FF
 919              	.LEHE22:
 920 0488 83C404   		addl	$4, %esp
 921 048b 8D45D8   		leal	-40(%ebp), %eax
 922 048e 50       		pushl	%eax
 923 048f 83EC0C   		subl	$12, %esp
 924 0492 68220000 		pushl	$.LC4
 924      00
 925 0497 68000000 		pushl	$_ZSt4cout
 925      00
 926              	.LEHB23:
 927              	.LCFI50:
 928 049c E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 928      FF
GAS LISTING /tmp/ccJDTatA.s 			page 19


 929 04a1 83C414   		addl	$20, %esp
 930 04a4 50       		pushl	%eax
 931 04a5 E8FCFFFF 		call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
 931      FF
 932 04aa 83C414   		addl	$20, %esp
 933 04ad 50       		pushl	%eax
 934 04ae E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 934      FF
 935 04b3 83C414   		addl	$20, %esp
 936 04b6 50       		pushl	%eax
 937              	.LCFI51:
 938 04b7 E8FCFFFF 		call	_ZNSolsEPFRSoS_E
 938      FF
 939              	.LEHE23:
 940 04bc 83C410   		addl	$16, %esp
 941 04bf EB23     		jmp	.L92
 942              	.L103:
 943 04c1 8945D0   		movl	%eax, -48(%ebp)
 944 04c4 8955CC   		movl	%edx, -52(%ebp)
 945 04c7 8B5DD0   		movl	-48(%ebp), %ebx
 946 04ca 8B75CC   		movl	-52(%ebp), %esi
 947 04cd 83EC0C   		subl	$12, %esp
 948 04d0 8D45D8   		leal	-40(%ebp), %eax
 949 04d3 50       		pushl	%eax
 950 04d4 E8FCFFFF 		call	_ZNSsD1Ev
 950      FF
 951 04d9 83C410   		addl	$16, %esp
 952 04dc 895DD0   		movl	%ebx, -48(%ebp)
 953 04df 8975CC   		movl	%esi, -52(%ebp)
 954 04e2 EB1A     		jmp	.L95
 955              	.L92:
 956 04e4 83EC0C   		subl	$12, %esp
 957 04e7 8D45D8   		leal	-40(%ebp), %eax
 958 04ea 50       		pushl	%eax
 959              	.LEHB24:
 960 04eb E8FCFFFF 		call	_ZNSsD1Ev
 960      FF
 961 04f0 83C410   		addl	$16, %esp
  43:rethrow.cc    ****         throw;
 962              		.loc 1 43 0
 963              	.LCFI52:
 964 04f3 E8FCFFFF 		call	__cxa_rethrow
 964      FF
 965              	.LEHE24:
 966              	.L104:
 967 04f8 8945D0   		movl	%eax, -48(%ebp)
 968 04fb 8955CC   		movl	%edx, -52(%ebp)
 969              	.L95:
 970 04fe 8B5DD0   		movl	-48(%ebp), %ebx
 971 0501 8B75CC   		movl	-52(%ebp), %esi
 972 0504 E8FCFFFF 		call	__cxa_end_catch
 972      FF
 973 0509 895DD0   		movl	%ebx, -48(%ebp)
 974 050c 8975CC   		movl	%esi, -52(%ebp)
 975              	.LBE12:
 976              	.LBE11:
 977              	.L108:
GAS LISTING /tmp/ccJDTatA.s 			page 20


 978              	.L102:
 979 050f 837DCCFF 		cmpl	$-1, -52(%ebp)
 980 0513 740B     		je	.L99
 981 0515 83EC0C   		subl	$12, %esp
 982 0518 FF75D0   		pushl	-48(%ebp)
 983              	.LEHB25:
 984              	.LCFI53:
 985 051b E8FCFFFF 		call	_Unwind_Resume
 985      FF
 986              	.L99:
 987 0520 83EC0C   		subl	$12, %esp
 988 0523 FF75D0   		pushl	-48(%ebp)
 989 0526 E8FCFFFF 		call	__cxa_call_unexpected
 989      FF
 990              	.LEHE25:
  44:rethrow.cc    ****     }
  45:rethrow.cc    **** }
 991              		.loc 1 45 0
 992              	.L80:
 993 052b 8D65F8   		leal	-8(%ebp), %esp
 994 052e 5B       		popl	%ebx
 995 052f 5E       		popl	%esi
 996 0530 C9       		leave
 997 0531 C3       		ret
 998              	.LFE1503:
 999              	.Lfe9:
 1001              		.section	.gcc_except_table
 1002 00b2 0000     		.align 4
 1003              	.LLSDA1503:
 1004 00b4 FF       		.byte	0xff
 1005 00b5 00       		.byte	0x0
 1006 00b6 31       		.uleb128 .LLSDATT1503-.LLSDATTD1503
 1007              	.LLSDATTD1503:
 1008 00b7 01       		.byte	0x1
 1009 00b8 23       		.uleb128 .LLSDACSE1503-.LLSDACSB1503
 1010              	.LLSDACSB1503:
 1011 00b9 2A       		.uleb128 .LEHB19-.LFB1503
 1012 00ba 05       		.uleb128 .LEHE19-.LEHB19
 1013 00bb 74       		.uleb128 .L106-.LFB1503
 1014 00bc 05       		.uleb128 0x5
 1015 00bd 36       		.uleb128 .LEHB20-.LFB1503
 1016 00be 05       		.uleb128 .LEHE20-.LEHB20
 1017 00bf 40       		.uleb128 .L105-.LFB1503
 1018 00c0 05       		.uleb128 0x5
 1019 00c1 6A       		.uleb128 .LEHB21-.LFB1503
 1020 00c2 05       		.uleb128 .LEHE21-.LEHB21
 1021 00c3 74       		.uleb128 .L106-.LFB1503
 1022 00c4 05       		.uleb128 0x5
 1023 00c5 E101     		.uleb128 .LEHB22-.LFB1503
 1024 00c7 05       		.uleb128 .LEHE22-.LEHB22
 1025 00c8 D602     		.uleb128 .L104-.LFB1503
 1026 00ca 07       		.uleb128 0x7
 1027 00cb FA01     		.uleb128 .LEHB23-.LFB1503
 1028 00cd 20       		.uleb128 .LEHE23-.LEHB23
 1029 00ce 9F02     		.uleb128 .L103-.LFB1503
 1030 00d0 07       		.uleb128 0x7
 1031 00d1 C902     		.uleb128 .LEHB24-.LFB1503
GAS LISTING /tmp/ccJDTatA.s 			page 21


 1032 00d3 0D       		.uleb128 .LEHE24-.LEHB24
 1033 00d4 D602     		.uleb128 .L104-.LFB1503
 1034 00d6 07       		.uleb128 0x7
 1035 00d7 F902     		.uleb128 .LEHB25-.LFB1503
 1036 00d9 10       		.uleb128 .LEHE25-.LEHB25
 1037 00da 00       		.uleb128 0x0
 1038 00db 00       		.uleb128 0x0
 1039              	.LLSDACSE1503:
 1040 00dc 7F       		.byte	0x7f
 1041 00dd 00       		.byte	0x0
 1042 00de 01       		.byte	0x1
 1043 00df 7D       		.byte	0x7d
 1044 00e0 00       		.byte	0x0
 1045 00e1 7D       		.byte	0x7d
 1046 00e2 00       		.byte	0x0
 1047 00e3 79       		.byte	0x79
 1048              		.align 4
 1049 00e4 00000000 		.long	_ZTI11MyException
 1050              	.LLSDATT1503:
 1051 00e8 01       		.byte	0x1
 1052 00e9 00       		.byte	0x0
 1053              		.text
 1054              		.section	.rodata
 1055              	.LC5:
 1056 0031 42617A00 		.string	"Baz"
 1057              	.LC6:
 1058 0035 20746872 		.string	" throwing another..."
 1058      6F77696E 
 1058      6720616E 
 1058      6F746865 
 1058      722E2E2E 
 1059              		.text
 1060              		.align 2
 1061              	.globl _Z23catch_and_throw_anotherv
 1063              	_Z23catch_and_throw_anotherv:
 1064              	.LFB1505:
  46:rethrow.cc    **** 
  47:rethrow.cc    **** void catch_and_throw_another() throw (MyException) {
 1065              		.loc 1 47 0
 1066              	.LBB13:
 1067 0532 55       		pushl	%ebp
 1068              	.LCFI54:
 1069 0533 89E5     		movl	%esp, %ebp
 1070              	.LCFI55:
 1071 0535 56       		pushl	%esi
 1072              	.LCFI56:
 1073 0536 53       		pushl	%ebx
 1074              	.LCFI57:
 1075 0537 83EC30   		subl	$48, %esp
 1076              	.LCFI58:
  48:rethrow.cc    ****     try {
  49:rethrow.cc    ****         throw_MyException("Baz");
 1077              		.loc 1 49 0
 1078 053a 83EC0C   		subl	$12, %esp
 1079 053d 83EC08   		subl	$8, %esp
 1080 0540 83EC08   		subl	$8, %esp
 1081 0543 8D45D8   		leal	-40(%ebp), %eax
GAS LISTING /tmp/ccJDTatA.s 			page 22


 1082 0546 50       		pushl	%eax
 1083              	.LCFI59:
 1084 0547 E8FCFFFF 		call	_ZNSaIcEC1Ev
 1084      FF
 1085 054c 83C40C   		addl	$12, %esp
 1086 054f 8D45D8   		leal	-40(%ebp), %eax
 1087 0552 50       		pushl	%eax
 1088 0553 68310000 		pushl	$.LC5
 1088      00
 1089 0558 8D45E8   		leal	-24(%ebp), %eax
 1090 055b 50       		pushl	%eax
 1091              	.LEHB26:
 1092              	.LCFI60:
 1093 055c E8FCFFFF 		call	_ZNSsC1EPKcRKSaIcE
 1093      FF
 1094              	.LEHE26:
 1095 0561 83C414   		addl	$20, %esp
 1096 0564 8D45E8   		leal	-24(%ebp), %eax
 1097 0567 50       		pushl	%eax
 1098              	.LEHB27:
 1099              	.LCFI61:
 1100 0568 E8FCFFFF 		call	_Z17throw_MyExceptionSs
 1100      FF
 1101              	.LEHE27:
 1102 056d 83C410   		addl	$16, %esp
 1103 0570 EB23     		jmp	.L111
 1104              	.L145:
 1105 0572 8945D0   		movl	%eax, -48(%ebp)
 1106 0575 8955CC   		movl	%edx, -52(%ebp)
 1107 0578 8B5DD0   		movl	-48(%ebp), %ebx
 1108 057b 8B75CC   		movl	-52(%ebp), %esi
 1109 057e 83EC0C   		subl	$12, %esp
 1110 0581 8D45E8   		leal	-24(%ebp), %eax
 1111 0584 50       		pushl	%eax
 1112 0585 E8FCFFFF 		call	_ZNSsD1Ev
 1112      FF
 1113 058a 83C410   		addl	$16, %esp
 1114 058d 895DD0   		movl	%ebx, -48(%ebp)
 1115 0590 8975CC   		movl	%esi, -52(%ebp)
 1116 0593 EB17     		jmp	.L114
 1117              	.L111:
 1118 0595 83EC0C   		subl	$12, %esp
 1119 0598 8D45E8   		leal	-24(%ebp), %eax
 1120 059b 50       		pushl	%eax
 1121              	.LEHB28:
 1122 059c E8FCFFFF 		call	_ZNSsD1Ev
 1122      FF
 1123              	.LEHE28:
 1124 05a1 83C410   		addl	$16, %esp
 1125 05a4 EB23     		jmp	.L115
 1126              	.L146:
 1127 05a6 8945D0   		movl	%eax, -48(%ebp)
 1128 05a9 8955CC   		movl	%edx, -52(%ebp)
 1129              	.L114:
 1130 05ac 8B5DD0   		movl	-48(%ebp), %ebx
 1131 05af 8B75CC   		movl	-52(%ebp), %esi
 1132 05b2 83EC0C   		subl	$12, %esp
GAS LISTING /tmp/ccJDTatA.s 			page 23


 1133 05b5 8D45D8   		leal	-40(%ebp), %eax
 1134 05b8 50       		pushl	%eax
 1135 05b9 E8FCFFFF 		call	_ZNSaIcED1Ev
 1135      FF
 1136 05be 83C410   		addl	$16, %esp
 1137 05c1 895DD0   		movl	%ebx, -48(%ebp)
 1138 05c4 8975CC   		movl	%esi, -52(%ebp)
 1139 05c7 EB14     		jmp	.L140
 1140              	.L115:
 1141 05c9 83EC0C   		subl	$12, %esp
 1142 05cc 8D45D8   		leal	-40(%ebp), %eax
 1143 05cf 50       		pushl	%eax
 1144 05d0 E8FCFFFF 		call	_ZNSaIcED1Ev
 1144      FF
 1145 05d5 83C410   		addl	$16, %esp
 1146 05d8 E9620100 		jmp	.L109
 1146      00
  50:rethrow.cc    ****     } catch (MyException &e) {
 1147              		.loc 1 50 0
 1148              	.L147:
 1149              	.L140:
 1150 05dd 837DCC01 		cmpl	$1, -52(%ebp)
 1151 05e1 7405     		je	.L119
 1152 05e3 E93B0100 		jmp	.L141
 1152      00
 1153              	.L119:
 1154              	.LBB14:
 1155 05e8 83EC0C   		subl	$12, %esp
 1156 05eb FF75D0   		pushl	-48(%ebp)
 1157 05ee E8FCFFFF 		call	__cxa_begin_catch
 1157      FF
 1158 05f3 83C410   		addl	$16, %esp
 1159 05f6 8945D4   		movl	%eax, -44(%ebp)
  51:rethrow.cc    ****         cout << "Got exception:" << e.as_string() << " throwing another..." << endl;
 1160              		.loc 1 51 0
 1161 05f9 83EC08   		subl	$8, %esp
 1162 05fc 68000000 		pushl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
 1162      00
 1163 0601 83EC0C   		subl	$12, %esp
 1164 0604 68350000 		pushl	$.LC6
 1164      00
 1165 0609 83EC0C   		subl	$12, %esp
 1166 060c 8D45D8   		leal	-40(%ebp), %eax
 1167 060f FF75D4   		pushl	-44(%ebp)
 1168 0612 50       		pushl	%eax
 1169              	.LEHB29:
 1170              	.LCFI62:
 1171 0613 E8FCFFFF 		call	_ZNK11MyException9as_stringEv
 1171      FF
 1172              	.LEHE29:
 1173 0618 83C404   		addl	$4, %esp
 1174 061b 8D45D8   		leal	-40(%ebp), %eax
 1175 061e 50       		pushl	%eax
 1176 061f 83EC0C   		subl	$12, %esp
 1177 0622 68220000 		pushl	$.LC4
 1177      00
 1178 0627 68000000 		pushl	$_ZSt4cout
GAS LISTING /tmp/ccJDTatA.s 			page 24


 1178      00
 1179              	.LEHB30:
 1180              	.LCFI63:
 1181 062c E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 1181      FF
 1182 0631 83C414   		addl	$20, %esp
 1183 0634 50       		pushl	%eax
 1184 0635 E8FCFFFF 		call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
 1184      FF
 1185 063a 83C414   		addl	$20, %esp
 1186 063d 50       		pushl	%eax
 1187 063e E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 1187      FF
 1188 0643 83C414   		addl	$20, %esp
 1189 0646 50       		pushl	%eax
 1190              	.LCFI64:
 1191 0647 E8FCFFFF 		call	_ZNSolsEPFRSoS_E
 1191      FF
 1192              	.LEHE30:
 1193 064c 83C410   		addl	$16, %esp
 1194 064f EB26     		jmp	.L121
 1195              	.L143:
 1196 0651 8945D0   		movl	%eax, -48(%ebp)
 1197 0654 8955CC   		movl	%edx, -52(%ebp)
 1198 0657 8B5DD0   		movl	-48(%ebp), %ebx
 1199 065a 8B75CC   		movl	-52(%ebp), %esi
 1200 065d 83EC0C   		subl	$12, %esp
 1201 0660 8D45D8   		leal	-40(%ebp), %eax
 1202 0663 50       		pushl	%eax
 1203 0664 E8FCFFFF 		call	_ZNSsD1Ev
 1203      FF
 1204 0669 83C410   		addl	$16, %esp
 1205 066c 895DD0   		movl	%ebx, -48(%ebp)
 1206 066f 8975CC   		movl	%esi, -52(%ebp)
 1207 0672 E99B0000 		jmp	.L134
 1207      00
 1208              	.L121:
 1209 0677 83EC0C   		subl	$12, %esp
 1210 067a 8D45D8   		leal	-40(%ebp), %eax
 1211 067d 50       		pushl	%eax
 1212              	.LEHB31:
 1213 067e E8FCFFFF 		call	_ZNSsD1Ev
 1213      FF
 1214 0683 83C410   		addl	$16, %esp
  52:rethrow.cc    ****         throw MyException(e.as_string());
 1215              		.loc 1 52 0
 1216 0686 83EC08   		subl	$8, %esp
 1217 0689 8D45E8   		leal	-24(%ebp), %eax
 1218 068c FF75D4   		pushl	-44(%ebp)
 1219 068f 50       		pushl	%eax
 1220              	.LCFI65:
 1221 0690 E8FCFFFF 		call	_ZNK11MyException9as_stringEv
 1221      FF
 1222 0695 83C404   		addl	$4, %esp
 1223 0698 8D45E8   		leal	-24(%ebp), %eax
 1224 069b 50       		pushl	%eax
 1225 069c 8D45D8   		leal	-40(%ebp), %eax
GAS LISTING /tmp/ccJDTatA.s 			page 25


 1226 069f 50       		pushl	%eax
 1227              	.LCFI66:
 1228 06a0 E8FCFFFF 		call	_ZN11MyExceptionC1ESs
 1228      FF
 1229 06a5 83C410   		addl	$16, %esp
 1230 06a8 83EC0C   		subl	$12, %esp
 1231 06ab 8D45E8   		leal	-24(%ebp), %eax
 1232 06ae 50       		pushl	%eax
 1233 06af E8FCFFFF 		call	_ZNSsD1Ev
 1233      FF
 1234              	.LEHE31:
 1235 06b4 83C410   		addl	$16, %esp
 1236 06b7 83EC0C   		subl	$12, %esp
 1237 06ba 6A08     		pushl	$8
 1238 06bc E8FCFFFF 		call	__cxa_allocate_exception
 1238      FF
 1239 06c1 83C410   		addl	$16, %esp
 1240 06c4 89C3     		movl	%eax, %ebx
 1241 06c6 83EC08   		subl	$8, %esp
 1242 06c9 8D45D8   		leal	-40(%ebp), %eax
 1243 06cc 50       		pushl	%eax
 1244 06cd 53       		pushl	%ebx
 1245 06ce E8FCFFFF 		call	_ZN11MyExceptionC1ERKS_
 1245      FF
 1246 06d3 83C410   		addl	$16, %esp
 1247 06d6 83EC04   		subl	$4, %esp
 1248 06d9 68000000 		pushl	$_ZN11MyExceptionD1Ev
 1248      00
 1249 06de 68000000 		pushl	$_ZTI11MyException
 1249      00
 1250 06e3 53       		pushl	%ebx
 1251              	.LEHB32:
 1252 06e4 E8FCFFFF 		call	__cxa_throw
 1252      FF
 1253              	.LEHE32:
 1254              	.L142:
 1255 06e9 8945D0   		movl	%eax, -48(%ebp)
 1256 06ec 8955CC   		movl	%edx, -52(%ebp)
 1257 06ef 8B5DD0   		movl	-48(%ebp), %ebx
 1258 06f2 8B75CC   		movl	-52(%ebp), %esi
 1259 06f5 83EC0C   		subl	$12, %esp
 1260 06f8 8D45D8   		leal	-40(%ebp), %eax
 1261 06fb 50       		pushl	%eax
 1262 06fc E8FCFFFF 		call	_ZN11MyExceptionD1Ev
 1262      FF
 1263 0701 83C410   		addl	$16, %esp
 1264 0704 895DD0   		movl	%ebx, -48(%ebp)
 1265 0707 8975CC   		movl	%esi, -52(%ebp)
 1266 070a EB06     		jmp	.L134
 1267              	.L144:
 1268 070c 8945D0   		movl	%eax, -48(%ebp)
 1269 070f 8955CC   		movl	%edx, -52(%ebp)
 1270              	.L134:
 1271 0712 8B5DD0   		movl	-48(%ebp), %ebx
 1272 0715 8B75CC   		movl	-52(%ebp), %esi
 1273              	.LCFI67:
 1274 0718 E8FCFFFF 		call	__cxa_end_catch
GAS LISTING /tmp/ccJDTatA.s 			page 26


 1274      FF
 1275 071d 895DD0   		movl	%ebx, -48(%ebp)
 1276 0720 8975CC   		movl	%esi, -52(%ebp)
 1277              	.LBE14:
 1278              	.LBE13:
 1279              	.L148:
 1280              	.L141:
 1281 0723 837DCCFF 		cmpl	$-1, -52(%ebp)
 1282 0727 740B     		je	.L138
 1283 0729 83EC0C   		subl	$12, %esp
 1284 072c FF75D0   		pushl	-48(%ebp)
 1285              	.LEHB33:
 1286              	.LCFI68:
 1287 072f E8FCFFFF 		call	_Unwind_Resume
 1287      FF
 1288              	.L138:
 1289 0734 83EC0C   		subl	$12, %esp
 1290 0737 FF75D0   		pushl	-48(%ebp)
 1291 073a E8FCFFFF 		call	__cxa_call_unexpected
 1291      FF
 1292              	.LEHE33:
  53:rethrow.cc    ****     }
  54:rethrow.cc    **** }
 1293              		.loc 1 54 0
 1294              	.L109:
 1295 073f 8D65F8   		leal	-8(%ebp), %esp
 1296 0742 5B       		popl	%ebx
 1297 0743 5E       		popl	%esi
 1298 0744 C9       		leave
 1299 0745 C3       		ret
 1300              	.LFE1505:
 1301              	.Lfe10:
 1303              		.section	.gcc_except_table
 1304 00ea 0000     		.align 4
 1305              	.LLSDA1505:
 1306 00ec FF       		.byte	0xff
 1307 00ed 00       		.byte	0x0
 1308 00ee 39       		.uleb128 .LLSDATT1505-.LLSDATTD1505
 1309              	.LLSDATTD1505:
 1310 00ef 01       		.byte	0x1
 1311 00f0 29       		.uleb128 .LLSDACSE1505-.LLSDACSB1505
 1312              	.LLSDACSB1505:
 1313 00f1 2A       		.uleb128 .LEHB26-.LFB1505
 1314 00f2 05       		.uleb128 .LEHE26-.LEHB26
 1315 00f3 74       		.uleb128 .L146-.LFB1505
 1316 00f4 05       		.uleb128 0x5
 1317 00f5 36       		.uleb128 .LEHB27-.LFB1505
 1318 00f6 05       		.uleb128 .LEHE27-.LEHB27
 1319 00f7 40       		.uleb128 .L145-.LFB1505
 1320 00f8 05       		.uleb128 0x5
 1321 00f9 6A       		.uleb128 .LEHB28-.LFB1505
 1322 00fa 05       		.uleb128 .LEHE28-.LEHB28
 1323 00fb 74       		.uleb128 .L146-.LFB1505
 1324 00fc 05       		.uleb128 0x5
 1325 00fd E101     		.uleb128 .LEHB29-.LFB1505
 1326 00ff 05       		.uleb128 .LEHE29-.LEHB29
 1327 0100 DA03     		.uleb128 .L144-.LFB1505
GAS LISTING /tmp/ccJDTatA.s 			page 27


 1328 0102 07       		.uleb128 0x7
 1329 0103 FA01     		.uleb128 .LEHB30-.LFB1505
 1330 0105 20       		.uleb128 .LEHE30-.LEHB30
 1331 0106 9F02     		.uleb128 .L143-.LFB1505
 1332 0108 07       		.uleb128 0x7
 1333 0109 CC02     		.uleb128 .LEHB31-.LFB1505
 1334 010b 36       		.uleb128 .LEHE31-.LEHB31
 1335 010c DA03     		.uleb128 .L144-.LFB1505
 1336 010e 07       		.uleb128 0x7
 1337 010f B203     		.uleb128 .LEHB32-.LFB1505
 1338 0111 05       		.uleb128 .LEHE32-.LEHB32
 1339 0112 B703     		.uleb128 .L142-.LFB1505
 1340 0114 07       		.uleb128 0x7
 1341 0115 FD03     		.uleb128 .LEHB33-.LFB1505
 1342 0117 10       		.uleb128 .LEHE33-.LEHB33
 1343 0118 00       		.uleb128 0x0
 1344 0119 00       		.uleb128 0x0
 1345              	.LLSDACSE1505:
 1346 011a 7F       		.byte	0x7f
 1347 011b 00       		.byte	0x0
 1348 011c 01       		.byte	0x1
 1349 011d 7D       		.byte	0x7d
 1350 011e 00       		.byte	0x0
 1351 011f 7D       		.byte	0x7d
 1352 0120 00       		.byte	0x0
 1353 0121 79       		.byte	0x79
 1354 0122 0000     		.align 4
 1355 0124 00000000 		.long	_ZTI11MyException
 1356              	.LLSDATT1505:
 1357 0128 01       		.byte	0x1
 1358 0129 00       		.byte	0x0
 1359              		.text
 1360              		.section	.rodata
 1361              	.LC7:
 1362 004a 42617200 		.string	"Bar"
 1363              		.text
 1364              		.align 2
 1365              	.globl _Z12doesnt_throwv
 1367              	_Z12doesnt_throwv:
 1368              	.LFB1507:
  55:rethrow.cc    **** 
  56:rethrow.cc    **** void doesnt_throw() throw () {
 1369              		.loc 1 56 0
 1370              	.LBB15:
 1371 0746 55       		pushl	%ebp
 1372              	.LCFI69:
 1373 0747 89E5     		movl	%esp, %ebp
 1374              	.LCFI70:
 1375 0749 56       		pushl	%esi
 1376              	.LCFI71:
 1377 074a 53       		pushl	%ebx
 1378              	.LCFI72:
 1379 074b 83EC30   		subl	$48, %esp
 1380              	.LCFI73:
  57:rethrow.cc    ****     throw_MyException("Bar");
 1381              		.loc 1 57 0
 1382 074e 83EC0C   		subl	$12, %esp
GAS LISTING /tmp/ccJDTatA.s 			page 28


 1383 0751 83EC08   		subl	$8, %esp
 1384 0754 83EC08   		subl	$8, %esp
 1385 0757 8D45D8   		leal	-40(%ebp), %eax
 1386 075a 50       		pushl	%eax
 1387              	.LCFI74:
 1388 075b E8FCFFFF 		call	_ZNSaIcEC1Ev
 1388      FF
 1389 0760 83C40C   		addl	$12, %esp
 1390 0763 8D45D8   		leal	-40(%ebp), %eax
 1391 0766 50       		pushl	%eax
 1392 0767 684A0000 		pushl	$.LC7
 1392      00
 1393 076c 8D45E8   		leal	-24(%ebp), %eax
 1394 076f 50       		pushl	%eax
 1395              	.LEHB34:
 1396              	.LCFI75:
 1397 0770 E8FCFFFF 		call	_ZNSsC1EPKcRKSaIcE
 1397      FF
 1398              	.LEHE34:
 1399 0775 83C414   		addl	$20, %esp
 1400 0778 8D45E8   		leal	-24(%ebp), %eax
 1401 077b 50       		pushl	%eax
 1402              	.LEHB35:
 1403              	.LCFI76:
 1404 077c E8FCFFFF 		call	_Z17throw_MyExceptionSs
 1404      FF
 1405              	.LEHE35:
 1406 0781 83C410   		addl	$16, %esp
 1407 0784 EB23     		jmp	.L151
 1408              	.L161:
 1409 0786 8945D4   		movl	%eax, -44(%ebp)
 1410 0789 8955D0   		movl	%edx, -48(%ebp)
 1411 078c 8B5DD4   		movl	-44(%ebp), %ebx
 1412 078f 8B75D0   		movl	-48(%ebp), %esi
 1413 0792 83EC0C   		subl	$12, %esp
 1414 0795 8D45E8   		leal	-24(%ebp), %eax
 1415 0798 50       		pushl	%eax
 1416 0799 E8FCFFFF 		call	_ZNSsD1Ev
 1416      FF
 1417 079e 83C410   		addl	$16, %esp
 1418 07a1 895DD4   		movl	%ebx, -44(%ebp)
 1419 07a4 8975D0   		movl	%esi, -48(%ebp)
 1420 07a7 EB17     		jmp	.L154
 1421              	.L151:
 1422 07a9 83EC0C   		subl	$12, %esp
 1423 07ac 8D45E8   		leal	-24(%ebp), %eax
 1424 07af 50       		pushl	%eax
 1425              	.LEHB36:
 1426 07b0 E8FCFFFF 		call	_ZNSsD1Ev
 1426      FF
 1427              	.LEHE36:
 1428 07b5 83C410   		addl	$16, %esp
 1429 07b8 EB23     		jmp	.L155
 1430              	.L162:
 1431 07ba 8945D4   		movl	%eax, -44(%ebp)
 1432 07bd 8955D0   		movl	%edx, -48(%ebp)
 1433              	.L154:
GAS LISTING /tmp/ccJDTatA.s 			page 29


 1434 07c0 8B5DD4   		movl	-44(%ebp), %ebx
 1435 07c3 8B75D0   		movl	-48(%ebp), %esi
 1436 07c6 83EC0C   		subl	$12, %esp
 1437 07c9 8D45D8   		leal	-40(%ebp), %eax
 1438 07cc 50       		pushl	%eax
 1439 07cd E8FCFFFF 		call	_ZNSaIcED1Ev
 1439      FF
 1440 07d2 83C410   		addl	$16, %esp
 1441 07d5 895DD4   		movl	%ebx, -44(%ebp)
 1442 07d8 8975D0   		movl	%esi, -48(%ebp)
 1443 07db EB11     		jmp	.L160
 1444              	.L155:
 1445 07dd 83EC0C   		subl	$12, %esp
 1446 07e0 8D45D8   		leal	-40(%ebp), %eax
 1447 07e3 50       		pushl	%eax
 1448 07e4 E8FCFFFF 		call	_ZNSaIcED1Ev
 1448      FF
 1449 07e9 83C410   		addl	$16, %esp
 1450              	.LBE15:
 1451 07ec EB1C     		jmp	.L149
 1452              	.L163:
 1453              	.L160:
 1454 07ee 837DD0FF 		cmpl	$-1, -48(%ebp)
 1455 07f2 740B     		je	.L158
 1456 07f4 83EC0C   		subl	$12, %esp
 1457 07f7 FF75D4   		pushl	-44(%ebp)
 1458              	.LEHB37:
 1459 07fa E8FCFFFF 		call	_Unwind_Resume
 1459      FF
 1460              	.L158:
 1461 07ff 83EC0C   		subl	$12, %esp
 1462 0802 FF75D4   		pushl	-44(%ebp)
 1463 0805 E8FCFFFF 		call	__cxa_call_unexpected
 1463      FF
 1464              	.LEHE37:
  58:rethrow.cc    **** }
 1465              		.loc 1 58 0
 1466              	.L149:
 1467 080a 8D65F8   		leal	-8(%ebp), %esp
 1468 080d 5B       		popl	%ebx
 1469 080e 5E       		popl	%esi
 1470 080f C9       		leave
 1471 0810 C3       		ret
 1472              	.LFE1507:
 1473              	.Lfe11:
 1475              		.section	.gcc_except_table
 1476 012a 0000     		.align 4
 1477              	.LLSDA1507:
 1478 012c FF       		.byte	0xff
 1479 012d 00       		.byte	0x0
 1480 012e 19       		.uleb128 .LLSDATT1507-.LLSDATTD1507
 1481              	.LLSDATTD1507:
 1482 012f 01       		.byte	0x1
 1483 0130 11       		.uleb128 .LLSDACSE1507-.LLSDACSB1507
 1484              	.LLSDACSB1507:
 1485 0131 2A       		.uleb128 .LEHB34-.LFB1507
 1486 0132 05       		.uleb128 .LEHE34-.LEHB34
GAS LISTING /tmp/ccJDTatA.s 			page 30


 1487 0133 74       		.uleb128 .L162-.LFB1507
 1488 0134 03       		.uleb128 0x3
 1489 0135 36       		.uleb128 .LEHB35-.LFB1507
 1490 0136 05       		.uleb128 .LEHE35-.LEHB35
 1491 0137 40       		.uleb128 .L161-.LFB1507
 1492 0138 03       		.uleb128 0x3
 1493 0139 6A       		.uleb128 .LEHB36-.LFB1507
 1494 013a 05       		.uleb128 .LEHE36-.LEHB36
 1495 013b 74       		.uleb128 .L162-.LFB1507
 1496 013c 03       		.uleb128 0x3
 1497 013d B401     		.uleb128 .LEHB37-.LFB1507
 1498 013f 10       		.uleb128 .LEHE37-.LEHB37
 1499 0140 00       		.uleb128 0x0
 1500 0141 00       		.uleb128 0x0
 1501              	.LLSDACSE1507:
 1502 0142 7F       		.byte	0x7f
 1503 0143 00       		.byte	0x0
 1504 0144 00       		.byte	0x0
 1505 0145 7D       		.byte	0x7d
 1506 0146 0000     		.align 4
 1507              	.LLSDATT1507:
 1508 0148 00       		.byte	0x0
 1509              		.text
 1510              		.section	.rodata
 1511              	.LC8:
 1512 004e 4D61696E 		.string	"Main got exception: "
 1512      20676F74 
 1512      20657863 
 1512      65707469 
 1512      6F6E3A20 
 1513              		.text
 1514 0811 90       		.align 2
 1515              	.globl main
 1517              	main:
 1518              	.LFB1509:
  59:rethrow.cc    **** 
  60:rethrow.cc    **** int main(int argc, char **argv) {
 1519              		.loc 1 60 0
 1520 0812 55       		pushl	%ebp
 1521              	.LCFI77:
 1522 0813 89E5     		movl	%esp, %ebp
 1523              	.LCFI78:
 1524 0815 53       		pushl	%ebx
 1525              	.LCFI79:
 1526 0816 83EC34   		subl	$52, %esp
 1527              	.LCFI80:
 1528 0819 83E4F0   		andl	$-16, %esp
 1529 081c B8000000 		movl	$0, %eax
 1529      00
 1530 0821 29C4     		subl	%eax, %esp
 1531              	.LBB16:
  61:rethrow.cc    ****     try {
  62:rethrow.cc    ****         catch_and_rethrow();
 1532              		.loc 1 62 0
 1533              	.LEHB38:
 1534 0823 E8FCFFFF 		call	_Z17catch_and_rethrowv
 1534      FF
GAS LISTING /tmp/ccJDTatA.s 			page 31


 1535              	.LEHE38:
 1536 0828 E9B80000 		jmp	.L165
 1536      00
  63:rethrow.cc    ****     } catch (MyException &e) {
 1537              		.loc 1 63 0
 1538              	.L202:
 1539 082d 8945D4   		movl	%eax, -44(%ebp)
 1540 0830 8955D0   		movl	%edx, -48(%ebp)
 1541 0833 837DD001 		cmpl	$1, -48(%ebp)
 1542 0837 740B     		je	.L166
 1543 0839 83EC0C   		subl	$12, %esp
 1544 083c FF75D4   		pushl	-44(%ebp)
 1545              	.LEHB39:
 1546              	.LCFI81:
 1547 083f E8FCFFFF 		call	_Unwind_Resume
 1547      FF
 1548              	.LEHE39:
 1549              	.L166:
 1550              	.LBB17:
 1551 0844 83EC0C   		subl	$12, %esp
 1552 0847 FF75D4   		pushl	-44(%ebp)
 1553 084a E8FCFFFF 		call	__cxa_begin_catch
 1553      FF
 1554 084f 83C410   		addl	$16, %esp
 1555 0852 8945F4   		movl	%eax, -12(%ebp)
  64:rethrow.cc    ****         cout << "Main got exception: " << e.as_string() << endl;
 1556              		.loc 1 64 0
 1557 0855 83EC08   		subl	$8, %esp
 1558 0858 68000000 		pushl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
 1558      00
 1559 085d 83EC0C   		subl	$12, %esp
 1560 0860 8D45D8   		leal	-40(%ebp), %eax
 1561 0863 FF75F4   		pushl	-12(%ebp)
 1562 0866 50       		pushl	%eax
 1563              	.LEHB40:
 1564              	.LCFI82:
 1565 0867 E8FCFFFF 		call	_ZNK11MyException9as_stringEv
 1565      FF
 1566              	.LEHE40:
 1567 086c 83C404   		addl	$4, %esp
 1568 086f 8D45D8   		leal	-40(%ebp), %eax
 1569 0872 50       		pushl	%eax
 1570 0873 83EC0C   		subl	$12, %esp
 1571 0876 684E0000 		pushl	$.LC8
 1571      00
 1572 087b 68000000 		pushl	$_ZSt4cout
 1572      00
 1573              	.LEHB41:
 1574              	.LCFI83:
 1575 0880 E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 1575      FF
 1576 0885 83C414   		addl	$20, %esp
 1577 0888 50       		pushl	%eax
 1578 0889 E8FCFFFF 		call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
 1578      FF
 1579 088e 83C414   		addl	$20, %esp
 1580 0891 50       		pushl	%eax
GAS LISTING /tmp/ccJDTatA.s 			page 32


 1581              	.LCFI84:
 1582 0892 E8FCFFFF 		call	_ZNSolsEPFRSoS_E
 1582      FF
 1583              	.LEHE41:
 1584 0897 83C410   		addl	$16, %esp
 1585 089a EB1A     		jmp	.L168
 1586              	.L200:
 1587 089c 8945D4   		movl	%eax, -44(%ebp)
 1588 089f 8B5DD4   		movl	-44(%ebp), %ebx
 1589 08a2 83EC0C   		subl	$12, %esp
 1590 08a5 8D45D8   		leal	-40(%ebp), %eax
 1591 08a8 50       		pushl	%eax
 1592 08a9 E8FCFFFF 		call	_ZNSsD1Ev
 1592      FF
 1593 08ae 83C410   		addl	$16, %esp
 1594 08b1 895DD4   		movl	%ebx, -44(%ebp)
 1595 08b4 EB14     		jmp	.L171
 1596              	.L168:
 1597 08b6 83EC0C   		subl	$12, %esp
 1598 08b9 8D45D8   		leal	-40(%ebp), %eax
 1599 08bc 50       		pushl	%eax
 1600              	.LEHB42:
 1601 08bd E8FCFFFF 		call	_ZNSsD1Ev
 1601      FF
 1602              	.LEHE42:
 1603 08c2 83C410   		addl	$16, %esp
 1604 08c5 EB19     		jmp	.L172
 1605              	.L201:
 1606 08c7 8945D4   		movl	%eax, -44(%ebp)
 1607              	.L171:
 1608 08ca 8B5DD4   		movl	-44(%ebp), %ebx
 1609              	.LCFI85:
 1610 08cd E8FCFFFF 		call	__cxa_end_catch
 1610      FF
 1611 08d2 895DD4   		movl	%ebx, -44(%ebp)
 1612 08d5 83EC0C   		subl	$12, %esp
 1613 08d8 FF75D4   		pushl	-44(%ebp)
 1614              	.LEHB43:
 1615              	.LCFI86:
 1616 08db E8FCFFFF 		call	_Unwind_Resume
 1616      FF
 1617              	.LEHE43:
 1618              	.L172:
 1619              	.LCFI87:
 1620 08e0 E8FCFFFF 		call	__cxa_end_catch
 1620      FF
 1621              	.LBE17:
 1622              	.L165:
  65:rethrow.cc    ****     }
  66:rethrow.cc    **** 
  67:rethrow.cc    ****     try {
  68:rethrow.cc    ****         catch_and_throw_another();
 1623              		.loc 1 68 0
 1624              	.LEHB44:
 1625 08e5 E8FCFFFF 		call	_Z23catch_and_throw_anotherv
 1625      FF
 1626              	.LEHE44:
GAS LISTING /tmp/ccJDTatA.s 			page 33


 1627 08ea E9B80000 		jmp	.L175
 1627      00
  69:rethrow.cc    ****     } catch (MyException &e) {
 1628              		.loc 1 69 0
 1629              	.L199:
 1630 08ef 8945D4   		movl	%eax, -44(%ebp)
 1631 08f2 8955D0   		movl	%edx, -48(%ebp)
 1632 08f5 837DD001 		cmpl	$1, -48(%ebp)
 1633 08f9 740B     		je	.L176
 1634 08fb 83EC0C   		subl	$12, %esp
 1635 08fe FF75D4   		pushl	-44(%ebp)
 1636              	.LEHB45:
 1637              	.LCFI88:
 1638 0901 E8FCFFFF 		call	_Unwind_Resume
 1638      FF
 1639              	.LEHE45:
 1640              	.L176:
 1641              	.LBB18:
 1642 0906 83EC0C   		subl	$12, %esp
 1643 0909 FF75D4   		pushl	-44(%ebp)
 1644 090c E8FCFFFF 		call	__cxa_begin_catch
 1644      FF
 1645 0911 83C410   		addl	$16, %esp
 1646 0914 8945F4   		movl	%eax, -12(%ebp)
  70:rethrow.cc    ****         cout << "Main got exception: " << e.as_string() << endl;
 1647              		.loc 1 70 0
 1648 0917 83EC08   		subl	$8, %esp
 1649 091a 68000000 		pushl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
 1649      00
 1650 091f 83EC0C   		subl	$12, %esp
 1651 0922 8D45D8   		leal	-40(%ebp), %eax
 1652 0925 FF75F4   		pushl	-12(%ebp)
 1653 0928 50       		pushl	%eax
 1654              	.LEHB46:
 1655              	.LCFI89:
 1656 0929 E8FCFFFF 		call	_ZNK11MyException9as_stringEv
 1656      FF
 1657              	.LEHE46:
 1658 092e 83C404   		addl	$4, %esp
 1659 0931 8D45D8   		leal	-40(%ebp), %eax
 1660 0934 50       		pushl	%eax
 1661 0935 83EC0C   		subl	$12, %esp
 1662 0938 684E0000 		pushl	$.LC8
 1662      00
 1663 093d 68000000 		pushl	$_ZSt4cout
 1663      00
 1664              	.LEHB47:
 1665              	.LCFI90:
 1666 0942 E8FCFFFF 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 1666      FF
 1667 0947 83C414   		addl	$20, %esp
 1668 094a 50       		pushl	%eax
 1669 094b E8FCFFFF 		call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E
 1669      FF
 1670 0950 83C414   		addl	$20, %esp
 1671 0953 50       		pushl	%eax
 1672              	.LCFI91:
GAS LISTING /tmp/ccJDTatA.s 			page 34


 1673 0954 E8FCFFFF 		call	_ZNSolsEPFRSoS_E
 1673      FF
 1674              	.LEHE47:
 1675 0959 83C410   		addl	$16, %esp
 1676 095c EB1A     		jmp	.L178
 1677              	.L197:
 1678 095e 8945D4   		movl	%eax, -44(%ebp)
 1679 0961 8B5DD4   		movl	-44(%ebp), %ebx
 1680 0964 83EC0C   		subl	$12, %esp
 1681 0967 8D45D8   		leal	-40(%ebp), %eax
 1682 096a 50       		pushl	%eax
 1683 096b E8FCFFFF 		call	_ZNSsD1Ev
 1683      FF
 1684 0970 83C410   		addl	$16, %esp
 1685 0973 895DD4   		movl	%ebx, -44(%ebp)
 1686 0976 EB14     		jmp	.L181
 1687              	.L178:
 1688 0978 83EC0C   		subl	$12, %esp
 1689 097b 8D45D8   		leal	-40(%ebp), %eax
 1690 097e 50       		pushl	%eax
 1691              	.LEHB48:
 1692 097f E8FCFFFF 		call	_ZNSsD1Ev
 1692      FF
 1693              	.LEHE48:
 1694 0984 83C410   		addl	$16, %esp
 1695 0987 EB19     		jmp	.L182
 1696              	.L198:
 1697 0989 8945D4   		movl	%eax, -44(%ebp)
 1698              	.L181:
 1699 098c 8B5DD4   		movl	-44(%ebp), %ebx
 1700              	.LCFI92:
 1701 098f E8FCFFFF 		call	__cxa_end_catch
 1701      FF
 1702 0994 895DD4   		movl	%ebx, -44(%ebp)
 1703 0997 83EC0C   		subl	$12, %esp
 1704 099a FF75D4   		pushl	-44(%ebp)
 1705              	.LEHB49:
 1706              	.LCFI93:
 1707 099d E8FCFFFF 		call	_Unwind_Resume
 1707      FF
 1708              	.LEHE49:
 1709              	.L182:
 1710              	.LCFI94:
 1711 09a2 E8FCFFFF 		call	__cxa_end_catch
 1711      FF
 1712              	.LBE18:
 1713              	.L175:
  71:rethrow.cc    ****     }
  72:rethrow.cc    **** 
  73:rethrow.cc    ****     try {
  74:rethrow.cc    ****         doesnt_throw();
 1714              		.loc 1 74 0
 1715 09a7 E8FCFFFF 		call	_Z12doesnt_throwv
 1715      FF
  75:rethrow.cc    ****     } catch (MyException &e) {
  76:rethrow.cc    ****         cout << "Main got exception: " << e.as_string() << endl;
 1716              		.loc 1 76 0
GAS LISTING /tmp/ccJDTatA.s 			page 35


 1717              	.LBE16:
  77:rethrow.cc    ****     }
  78:rethrow.cc    **** }
 1718              		.loc 1 78 0
 1719 09ac B8000000 		movl	$0, %eax
 1719      00
 1720 09b1 8B5DFC   		movl	-4(%ebp), %ebx
 1721 09b4 C9       		leave
 1722 09b5 C3       		ret
 1723              	.LFE1509:
 1724              	.Lfe12:
 1726              		.section	.gcc_except_table
 1727 0149 000000   		.align 4
 1728              	.LLSDA1509:
 1729 014c FF       		.byte	0xff
 1730 014d 00       		.byte	0x0
 1731 014e 49       		.uleb128 .LLSDATT1509-.LLSDATTD1509
 1732              	.LLSDATTD1509:
 1733 014f 01       		.byte	0x1
 1734 0150 3F       		.uleb128 .LLSDACSE1509-.LLSDACSB1509
 1735              	.LLSDACSB1509:
 1736 0151 11       		.uleb128 .LEHB38-.LFB1509
 1737 0152 05       		.uleb128 .LEHE38-.LEHB38
 1738 0153 1B       		.uleb128 .L202-.LFB1509
 1739 0154 01       		.uleb128 0x1
 1740 0155 2D       		.uleb128 .LEHB39-.LFB1509
 1741 0156 05       		.uleb128 .LEHE39-.LEHB39
 1742 0157 00       		.uleb128 0x0
 1743 0158 00       		.uleb128 0x0
 1744 0159 55       		.uleb128 .LEHB40-.LFB1509
 1745 015a 05       		.uleb128 .LEHE40-.LEHB40
 1746 015b B501     		.uleb128 .L201-.LFB1509
 1747 015d 00       		.uleb128 0x0
 1748 015e 6E       		.uleb128 .LEHB41-.LFB1509
 1749 015f 17       		.uleb128 .LEHE41-.LEHB41
 1750 0160 8A01     		.uleb128 .L200-.LFB1509
 1751 0162 00       		.uleb128 0x0
 1752 0163 AB01     		.uleb128 .LEHB42-.LFB1509
 1753 0165 05       		.uleb128 .LEHE42-.LEHB42
 1754 0166 B501     		.uleb128 .L201-.LFB1509
 1755 0168 00       		.uleb128 0x0
 1756 0169 C901     		.uleb128 .LEHB43-.LFB1509
 1757 016b 05       		.uleb128 .LEHE43-.LEHB43
 1758 016c 00       		.uleb128 0x0
 1759 016d 00       		.uleb128 0x0
 1760 016e D301     		.uleb128 .LEHB44-.LFB1509
 1761 0170 05       		.uleb128 .LEHE44-.LEHB44
 1762 0171 DD01     		.uleb128 .L199-.LFB1509
 1763 0173 01       		.uleb128 0x1
 1764 0174 EF01     		.uleb128 .LEHB45-.LFB1509
 1765 0176 05       		.uleb128 .LEHE45-.LEHB45
 1766 0177 00       		.uleb128 0x0
 1767 0178 00       		.uleb128 0x0
 1768 0179 9702     		.uleb128 .LEHB46-.LFB1509
 1769 017b 05       		.uleb128 .LEHE46-.LEHB46
 1770 017c F702     		.uleb128 .L198-.LFB1509
 1771 017e 00       		.uleb128 0x0
GAS LISTING /tmp/ccJDTatA.s 			page 36


 1772 017f B002     		.uleb128 .LEHB47-.LFB1509
 1773 0181 17       		.uleb128 .LEHE47-.LEHB47
 1774 0182 CC02     		.uleb128 .L197-.LFB1509
 1775 0184 00       		.uleb128 0x0
 1776 0185 ED02     		.uleb128 .LEHB48-.LFB1509
 1777 0187 05       		.uleb128 .LEHE48-.LEHB48
 1778 0188 F702     		.uleb128 .L198-.LFB1509
 1779 018a 00       		.uleb128 0x0
 1780 018b 8B03     		.uleb128 .LEHB49-.LFB1509
 1781 018d 05       		.uleb128 .LEHE49-.LEHB49
 1782 018e 00       		.uleb128 0x0
 1783 018f 00       		.uleb128 0x0
 1784              	.LLSDACSE1509:
 1785 0190 01       		.byte	0x1
 1786 0191 00       		.byte	0x0
 1787 0192 0000     		.align 4
 1788 0194 00000000 		.long	_ZTI11MyException
 1789              	.LLSDATT1509:
 1790              		.text
 1791              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_,"ax",@progbits
 1792              		.align 2
 1793              		.weak	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 1795              	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_:
 1796              	.LFB1523:
   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
   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 **** //
GAS LISTING /tmp/ccJDTatA.s 			page 37


  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
  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);
GAS LISTING /tmp/ccJDTatA.s 			page 38


  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;
 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");
GAS LISTING /tmp/ccJDTatA.s 			page 39


 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(...) 
 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)
GAS LISTING /tmp/ccJDTatA.s 			page 40


 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>
 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 ()
GAS LISTING /tmp/ccJDTatA.s 			page 41


 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 **** 	{
 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 **** 	    }
GAS LISTING /tmp/ccJDTatA.s 			page 42


 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());
 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;
GAS LISTING /tmp/ccJDTatA.s 			page 43


 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
 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)
GAS LISTING /tmp/ccJDTatA.s 			page 44


 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);
 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)
GAS LISTING /tmp/ccJDTatA.s 			page 45


 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>&
 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)
GAS LISTING /tmp/ccJDTatA.s 			page 46


 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
 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 ****     {
GAS LISTING /tmp/ccJDTatA.s 			page 47


 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 ****     {
 1797              		.loc 29 614 0
 1798 0000 55       		pushl	%ebp
 1799              	.LCFI95:
 1800 0001 89E5     		movl	%esp, %ebp
 1801              	.LCFI96:
 1802 0003 53       		pushl	%ebx
 1803              	.LCFI97:
 1804 0004 83EC14   		subl	$20, %esp
 1805              	.LCFI98:
 1806              	.LBB19:
 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);
 1807              		.loc 29 617 0
 1808 0007 83EC0C   		subl	$12, %esp
 1809 000a FF750C   		pushl	12(%ebp)
 1810              	.LEHB50:
 1811              	.LCFI99:
 1812 000d E8FCFFFF 		call	_ZNSt11char_traitsIcE6lengthEPKc
 1812      FF
 1813 0012 83C410   		addl	$16, %esp
 1814 0015 8945F8   		movl	%eax, -8(%ebp)
 618:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __string_type __str;
 1815              		.loc 29 618 0
 1816 0018 83EC0C   		subl	$12, %esp
 1817 001b FF7508   		pushl	8(%ebp)
 1818 001e E8FCFFFF 		call	_ZNSsC1Ev
 1818      FF
 1819              	.LEHE50:
 1820 0023 83C410   		addl	$16, %esp
 619:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __str.reserve(__len + __rhs.size());
 1821              		.loc 29 619 0
 1822 0026 83EC08   		subl	$8, %esp
 1823 0029 83EC04   		subl	$4, %esp
 1824 002c FF7510   		pushl	16(%ebp)
 1825              	.LEHB51:
 1826              	.LCFI100:
 1827 002f E8FCFFFF 		call	_ZNKSs4sizeEv
 1827      FF
 1828 0034 83C408   		addl	$8, %esp
 1829 0037 0345F8   		addl	-8(%ebp), %eax
 1830 003a 50       		pushl	%eax
 1831 003b FF7508   		pushl	8(%ebp)
 1832              	.LCFI101:
 1833 003e E8FCFFFF 		call	_ZNSs7reserveEj
 1833      FF
GAS LISTING /tmp/ccJDTatA.s 			page 48


 1834 0043 83C410   		addl	$16, %esp
 620:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __str.append(__lhs, __lhs + __len);
 1835              		.loc 29 620 0
 1836 0046 83EC04   		subl	$4, %esp
 1837 0049 8B45F8   		movl	-8(%ebp), %eax
 1838 004c 03450C   		addl	12(%ebp), %eax
 1839 004f 50       		pushl	%eax
 1840 0050 FF750C   		pushl	12(%ebp)
 1841 0053 FF7508   		pushl	8(%ebp)
 1842 0056 E8FCFFFF 		call	_ZNSs6appendIPKcEERSsT_S3_
 1842      FF
 1843 005b 83C410   		addl	$16, %esp
 621:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       __str.append(__rhs);
 1844              		.loc 29 621 0
 1845 005e 83EC08   		subl	$8, %esp
 1846 0061 FF7510   		pushl	16(%ebp)
 1847 0064 FF7508   		pushl	8(%ebp)
 1848 0067 E8FCFFFF 		call	_ZNSs6appendERKSs
 1848      FF
 1849              	.LEHE51:
 1850 006c 83C410   		addl	$16, %esp
 622:/usr/include/c++/3.2.2/bits/basic_string.tcc ****       return __str;
 1851              		.loc 29 622 0
 1852 006f EB22     		jmp	.L203
 1853              	.L208:
 1854 0071 8945F4   		movl	%eax, -12(%ebp)
 1855 0074 8B5DF4   		movl	-12(%ebp), %ebx
 1856 0077 83EC0C   		subl	$12, %esp
 1857 007a FF7508   		pushl	8(%ebp)
 1858 007d E8FCFFFF 		call	_ZNSsD1Ev
 1858      FF
 1859 0082 83C410   		addl	$16, %esp
 1860 0085 895DF4   		movl	%ebx, -12(%ebp)
 1861 0088 83EC0C   		subl	$12, %esp
 1862 008b FF75F4   		pushl	-12(%ebp)
 1863              	.LEHB52:
 1864 008e E8FCFFFF 		call	_Unwind_Resume
 1864      FF
 1865              	.LEHE52:
 1866              	.LBE19:
 1867              	.L203:
 1868 0093 8B4508   		movl	8(%ebp), %eax
 1869 0096 8B5DFC   		movl	-4(%ebp), %ebx
 1870 0099 C9       		leave
 1871 009a C20400   		ret	$4
 1872              	.LFE1523:
 1873              	.Lfe13:
 1875              		.section	.gcc_except_table
 1876              	.LLSDA1523:
 1877 0198 FF       		.byte	0xff
 1878 0199 FF       		.byte	0xff
 1879 019a 01       		.byte	0x1
 1880 019b 0D       		.uleb128 .LLSDACSE1523-.LLSDACSB1523
 1881              	.LLSDACSB1523:
 1882 019c 0D       		.uleb128 .LEHB50-.LFB1523
 1883 019d 16       		.uleb128 .LEHE50-.LEHB50
 1884 019e 00       		.uleb128 0x0
GAS LISTING /tmp/ccJDTatA.s 			page 49


 1885 019f 00       		.uleb128 0x0
 1886 01a0 2F       		.uleb128 .LEHB51-.LFB1523
 1887 01a1 3D       		.uleb128 .LEHE51-.LEHB51
 1888 01a2 71       		.uleb128 .L208-.LFB1523
 1889 01a3 00       		.uleb128 0x0
 1890 01a4 8E01     		.uleb128 .LEHB52-.LFB1523
 1891 01a6 05       		.uleb128 .LEHE52-.LEHB52
 1892 01a7 00       		.uleb128 0x0
 1893 01a8 00       		.uleb128 0x0
 1894              	.LLSDACSE1523:
 1895              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
 1896              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_,"ax",@progbits
 1897              		.align 2
 1898              		.weak	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
 1900              	_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_:
 1901              	.LFB1525:
   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 **** 
  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
GAS LISTING /tmp/ccJDTatA.s 			page 50


  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
  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;
GAS LISTING /tmp/ccJDTatA.s 			page 51


  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
 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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 52


 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); 
 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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 53


 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 
 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 ****       }
GAS LISTING /tmp/ccJDTatA.s 			page 54


 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();
 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());
GAS LISTING /tmp/ccJDTatA.s 			page 55


 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 
 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()); }
GAS LISTING /tmp/ccJDTatA.s 			page 56


 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 
 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]; 
GAS LISTING /tmp/ccJDTatA.s 			page 57


 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); }
 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())
GAS LISTING /tmp/ccJDTatA.s 			page 58


 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);  }
 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();
GAS LISTING /tmp/ccJDTatA.s 			page 59


 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)
 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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 60


 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)
 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& 
GAS LISTING /tmp/ccJDTatA.s 			page 61


 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,
 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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 62


 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,
 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.
GAS LISTING /tmp/ccJDTatA.s 			page 63


 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 **** 
 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()); }
GAS LISTING /tmp/ccJDTatA.s 			page 64


 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 
 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);
GAS LISTING /tmp/ccJDTatA.s 			page 65


 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+
 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 ****     {
 1902              		.loc 28 952 0
GAS LISTING /tmp/ccJDTatA.s 			page 66


 1903 0000 55       		pushl	%ebp
 1904              	.LCFI102:
 1905 0001 89E5     		movl	%esp, %ebp
 1906              	.LCFI103:
 1907 0003 53       		pushl	%ebx
 1908              	.LCFI104:
 1909 0004 83EC04   		subl	$4, %esp
 1910              	.LCFI105:
 1911              	.LBB20:
 953:/usr/include/c++/3.2.2/bits/basic_string.h ****       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
 1912              		.loc 28 953 0
 1913 0007 83EC08   		subl	$8, %esp
 1914 000a FF750C   		pushl	12(%ebp)
 1915 000d FF7508   		pushl	8(%ebp)
 1916              	.LEHB53:
 1917              	.LCFI106:
 1918 0010 E8FCFFFF 		call	_ZNSsC1ERKSs
 1918      FF
 1919              	.LEHE53:
 1920 0015 83C410   		addl	$16, %esp
 954:/usr/include/c++/3.2.2/bits/basic_string.h ****       __str.append(__rhs);
 1921              		.loc 28 954 0
 1922 0018 83EC08   		subl	$8, %esp
 1923 001b FF7510   		pushl	16(%ebp)
 1924 001e FF7508   		pushl	8(%ebp)
 1925              	.LEHB54:
 1926 0021 E8FCFFFF 		call	_ZNSs6appendEPKc
 1926      FF
 1927              	.LEHE54:
 1928 0026 83C410   		addl	$16, %esp
 955:/usr/include/c++/3.2.2/bits/basic_string.h ****       return __str;
 1929              		.loc 28 955 0
 1930 0029 EB22     		jmp	.L209
 1931              	.L214:
 1932 002b 8945F8   		movl	%eax, -8(%ebp)
 1933 002e 8B5DF8   		movl	-8(%ebp), %ebx
 1934 0031 83EC0C   		subl	$12, %esp
 1935 0034 FF7508   		pushl	8(%ebp)
 1936 0037 E8FCFFFF 		call	_ZNSsD1Ev
 1936      FF
 1937 003c 83C410   		addl	$16, %esp
 1938 003f 895DF8   		movl	%ebx, -8(%ebp)
 1939 0042 83EC0C   		subl	$12, %esp
 1940 0045 FF75F8   		pushl	-8(%ebp)
 1941              	.LEHB55:
 1942 0048 E8FCFFFF 		call	_Unwind_Resume
 1942      FF
 1943              	.LEHE55:
 1944              	.LBE20:
 1945              	.L209:
 1946 004d 8B4508   		movl	8(%ebp), %eax
 1947 0050 8B5DFC   		movl	-4(%ebp), %ebx
 1948 0053 C9       		leave
 1949 0054 C20400   		ret	$4
 1950              	.LFE1525:
 1951              	.Lfe14:
 1953              		.section	.gcc_except_table
GAS LISTING /tmp/ccJDTatA.s 			page 67


 1954              	.LLSDA1525:
 1955 01a9 FF       		.byte	0xff
 1956 01aa FF       		.byte	0xff
 1957 01ab 01       		.byte	0x1
 1958 01ac 0C       		.uleb128 .LLSDACSE1525-.LLSDACSB1525
 1959              	.LLSDACSB1525:
 1960 01ad 10       		.uleb128 .LEHB53-.LFB1525
 1961 01ae 05       		.uleb128 .LEHE53-.LEHB53
 1962 01af 00       		.uleb128 0x0
 1963 01b0 00       		.uleb128 0x0
 1964 01b1 21       		.uleb128 .LEHB54-.LFB1525
 1965 01b2 05       		.uleb128 .LEHE54-.LEHB54
 1966 01b3 2B       		.uleb128 .L214-.LFB1525
 1967 01b4 00       		.uleb128 0x0
 1968 01b5 48       		.uleb128 .LEHB55-.LFB1525
 1969 01b6 05       		.uleb128 .LEHE55-.LEHB55
 1970 01b7 00       		.uleb128 0x0
 1971 01b8 00       		.uleb128 0x0
 1972              	.LLSDACSE1525:
 1973              		.section	.gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
 1974              		.file 44 "/usr/include/c++/3.2.2/bits/stl_iterator.h"
 1975              		.section	.gnu.linkonce.t._ZNSs6appendIPKcEERSsT_S3_,"ax",@progbits
 1976              		.align 2
 1977              		.weak	_ZNSs6appendIPKcEERSsT_S3_
 1979              	_ZNSs6appendIPKcEERSsT_S3_:
 1980              	.LFB1544:
 1981              		.loc 28 472 0
 1982              	.LBB21:
 1983 0000 55       		pushl	%ebp
 1984              	.LCFI107:
 1985 0001 89E5     		movl	%esp, %ebp
 1986              	.LCFI108:
 1987 0003 83EC08   		subl	$8, %esp
 1988              	.LCFI109:
 1989              		.loc 28 472 0
 1990 0006 83EC0C   		subl	$12, %esp
 1991 0009 FF7510   		pushl	16(%ebp)
 1992 000c FF750C   		pushl	12(%ebp)
 1993 000f 8D45FC   		leal	-4(%ebp), %eax
 1994 0012 83EC04   		subl	$4, %esp
 1995 0015 FF7508   		pushl	8(%ebp)
 1996 0018 50       		pushl	%eax
 1997              	.LCFI110:
 1998 0019 E8FCFFFF 		call	_ZNKSs7_M_iendEv
 1998      FF
 1999 001e 83C408   		addl	$8, %esp
 2000 0021 FF75FC   		pushl	-4(%ebp)
 2001 0024 8D45F8   		leal	-8(%ebp), %eax
 2002 0027 FF7508   		pushl	8(%ebp)
 2003 002a 50       		pushl	%eax
 2004              	.LCFI111:
 2005 002b E8FCFFFF 		call	_ZNKSs7_M_iendEv
 2005      FF
 2006 0030 83C404   		addl	$4, %esp
 2007 0033 FF75F8   		pushl	-8(%ebp)
 2008 0036 FF7508   		pushl	8(%ebp)
 2009              	.LCFI112:
GAS LISTING /tmp/ccJDTatA.s 			page 68


 2010 0039 E8FCFFFF 		call	_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_
 2010      FF
 2011 003e 83C420   		addl	$32, %esp
 2012              	.LBE21:
 2013 0041 C9       		leave
 2014 0042 C3       		ret
 2015              	.LFE1544:
 2016              	.Lfe15:
 2018              		.file 45 "/usr/include/c++/3.2.2/bits/stl_function.h"
 2019              		.weak	_ZTV11MyException
 2020              		.section	.gnu.linkonce.d._ZTV11MyException,"aw",@progbits
 2021              		.align 8
 2024              	_ZTV11MyException:
 2025 0000 00000000 		.long	0
 2026 0004 00000000 		.long	_ZTI11MyException
 2027 0008 00000000 		.long	_ZN11MyExceptionD1Ev
 2028 000c 00000000 		.long	_ZN11MyExceptionD0Ev
 2029 0010 00000000 		.long	_ZNK11MyException4whatEv
 2030              		.text
 2031              		.align 2
 2033              	_Z41__static_initialization_and_destruction_0ii:
 2034              	.LFB1589:
 2035              		.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)
  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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 69


  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;
  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.
GAS LISTING /tmp/ccJDTatA.s 			page 70


  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;
 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]; 
 2036              		.loc 46 131 0
 2037 09b6 55       		pushl	%ebp
 2038              	.LCFI113:
 2039 09b7 89E5     		movl	%esp, %ebp
 2040              	.LCFI114:
 2041 09b9 83EC08   		subl	$8, %esp
 2042              	.LCFI115:
 2043              		.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.
GAS LISTING /tmp/ccJDTatA.s 			page 71


  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 **** 
  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;
 2044              		.loc 47 63 0
 2045 09bc 817D0CFF 		cmpl	$65535, 12(%ebp)
 2045      FF0000
GAS LISTING /tmp/ccJDTatA.s 			page 72


 2046 09c3 752D     		jne	.L216
 2047 09c5 837D0801 		cmpl	$1, 8(%ebp)
 2048 09c9 7527     		jne	.L216
 2049 09cb 83EC0C   		subl	$12, %esp
 2050 09ce 68000000 		pushl	$_ZSt8__ioinit
 2050      00
 2051              	.LCFI116:
 2052 09d3 E8FCFFFF 		call	_ZNSt8ios_base4InitC1Ev
 2052      FF
 2053 09d8 83C410   		addl	$16, %esp
 2054 09db 83EC04   		subl	$4, %esp
 2055 09de 68000000 		pushl	$__dso_handle
 2055      00
 2056 09e3 6A00     		pushl	$0
 2057 09e5 68F40900 		pushl	$__tcf_0
 2057      00
 2058 09ea E8FCFFFF 		call	__cxa_atexit
 2058      FF
 2059 09ef 83C410   		addl	$16, %esp
 2060              	.L216:
 2061 09f2 C9       		leave
 2062 09f3 C3       		ret
 2063              	.LFE1589:
 2064              	.Lfe16:
 2066              		.file 48 "/usr/include/c++/3.2.2/exception"
 2067              		.section	.gnu.linkonce.t._ZNSt9exceptionC2Ev,"ax",@progbits
 2068              		.align 2
 2069              		.weak	_ZNSt9exceptionC2Ev
 2071              	_ZNSt9exceptionC2Ev:
 2072              	.LFB1590:
   1:/usr/include/c++/3.2.2/exception **** // Exception Handling support header for -*- C++ -*-
   2:/usr/include/c++/3.2.2/exception **** 
   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
GAS LISTING /tmp/ccJDTatA.s 			page 73


  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() { }
 2073              		.loc 48 53 0
 2074              	.LBB22:
 2075 0000 55       		pushl	%ebp
 2076              	.LCFI117:
 2077 0001 89E5     		movl	%esp, %ebp
 2078              	.LCFI118:
 2079              		.loc 48 53 0
 2080 0003 8B4508   		movl	8(%ebp), %eax
 2081 0006 C7000800 		movl	$_ZTVSt9exception+8, (%eax)
 2081      0000
 2082 000c C9       		leave
 2083 000d C3       		ret
 2084              	.LBE22:
 2085              	.LFE1590:
 2086              	.Lfe17:
 2088              		.section	.gnu.linkonce.t._ZNSt11char_traitsIcE6lengthEPKc,"ax",@progbits
 2089              		.align 2
 2090              		.weak	_ZNSt11char_traitsIcE6lengthEPKc
 2092              	_ZNSt11char_traitsIcE6lengthEPKc:
 2093              	.LFB1591:
   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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 74


  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
  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 **** 
GAS LISTING /tmp/ccJDTatA.s 			page 75


  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(); 
 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 
GAS LISTING /tmp/ccJDTatA.s 			page 76


 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); }
 2094              		.loc 14 135 0
 2095              	.LBB23:
 2096 0000 55       		pushl	%ebp
 2097              	.LCFI119:
 2098 0001 89E5     		movl	%esp, %ebp
 2099              	.LCFI120:
 2100 0003 83EC08   		subl	$8, %esp
 2101              	.LCFI121:
 2102              		.loc 14 135 0
 2103 0006 83EC0C   		subl	$12, %esp
 2104 0009 FF7508   		pushl	8(%ebp)
 2105              	.LCFI122:
 2106 000c E8FCFFFF 		call	strlen
 2106      FF
 2107 0011 83C410   		addl	$16, %esp
 2108              	.LBE23:
 2109 0014 C9       		leave
 2110 0015 C3       		ret
 2111              	.LFE1591:
 2112              	.Lfe18:
 2114              		.section	.gnu.linkonce.t._ZN11MyExceptionC1ERKS_,"ax",@progbits
 2115              		.align 2
 2116              		.weak	_ZN11MyExceptionC1ERKS_
 2118              	_ZN11MyExceptionC1ERKS_:
 2119              	.LFB1592:
 2120              		.loc 1 35 0
 2121              	.LBB24:
 2122 0000 55       		pushl	%ebp
 2123              	.LCFI123:
 2124 0001 89E5     		movl	%esp, %ebp
 2125              	.LCFI124:
 2126 0003 53       		pushl	%ebx
 2127              	.LCFI125:
 2128 0004 83EC04   		subl	$4, %esp
 2129              	.LCFI126:
 2130              		.loc 1 35 0
 2131 0007 83EC08   		subl	$8, %esp
 2132 000a FF750C   		pushl	12(%ebp)
 2133 000d FF7508   		pushl	8(%ebp)
 2134              	.LCFI127:
 2135 0010 E8FCFFFF 		call	_ZNSt9exceptionC2ERKS_
 2135      FF
 2136 0015 83C410   		addl	$16, %esp
 2137 0018 8B4508   		movl	8(%ebp), %eax
 2138 001b C7000800 		movl	$_ZTV11MyException+8, (%eax)
 2138      0000
 2139 0021 83EC08   		subl	$8, %esp
GAS LISTING /tmp/ccJDTatA.s 			page 77


 2140 0024 8B450C   		movl	12(%ebp), %eax
 2141 0027 83C004   		addl	$4, %eax
 2142 002a 50       		pushl	%eax
 2143 002b 8B4508   		movl	8(%ebp), %eax
 2144 002e 83C004   		addl	$4, %eax
 2145 0031 50       		pushl	%eax
 2146              	.LEHB56:
 2147 0032 E8FCFFFF 		call	_ZNSsC1ERKSs
 2147      FF
 2148              	.LEHE56:
 2149 0037 83C410   		addl	$16, %esp
 2150              	.LBE24:
 2151 003a EB22     		jmp	.L222
 2152              	.L231:
 2153 003c 8945F8   		movl	%eax, -8(%ebp)
 2154 003f 8B5DF8   		movl	-8(%ebp), %ebx
 2155 0042 83EC0C   		subl	$12, %esp
 2156 0045 FF7508   		pushl	8(%ebp)
 2157 0048 E8FCFFFF 		call	_ZNSt9exceptionD2Ev
 2157      FF
 2158 004d 83C410   		addl	$16, %esp
 2159 0050 895DF8   		movl	%ebx, -8(%ebp)
 2160 0053 83EC0C   		subl	$12, %esp
 2161 0056 FF75F8   		pushl	-8(%ebp)
 2162              	.LEHB57:
 2163 0059 E8FCFFFF 		call	_Unwind_Resume
 2163      FF
 2164              	.LEHE57:
 2165              	.L222:
 2166 005e 8B5DFC   		movl	-4(%ebp), %ebx
 2167 0061 C9       		leave
 2168 0062 C3       		ret
 2169              	.LFE1592:
 2170              	.Lfe19:
 2172              		.section	.gcc_except_table
 2173              	.LLSDA1592:
 2174 01b9 FF       		.byte	0xff
 2175 01ba FF       		.byte	0xff
 2176 01bb 01       		.byte	0x1
 2177 01bc 08       		.uleb128 .LLSDACSE1592-.LLSDACSB1592
 2178              	.LLSDACSB1592:
 2179 01bd 32       		.uleb128 .LEHB56-.LFB1592
 2180 01be 05       		.uleb128 .LEHE56-.LEHB56
 2181 01bf 3C       		.uleb128 .L231-.LFB1592
 2182 01c0 00       		.uleb128 0x0
 2183 01c1 59       		.uleb128 .LEHB57-.LFB1592
 2184 01c2 05       		.uleb128 .LEHE57-.LEHB57
 2185 01c3 00       		.uleb128 0x0
 2186 01c4 00       		.uleb128 0x0
 2187              	.LLSDACSE1592:
 2188              		.section	.gnu.linkonce.t._ZN11MyExceptionC1ERKS_
 2189              		.text
 2190              		.align 2
 2192              	__tcf_0:
 2193              	.LFB1593:
 2194              		.loc 47 63 0
 2195 09f4 55       		pushl	%ebp
GAS LISTING /tmp/ccJDTatA.s 			page 78


 2196              	.LCFI128:
 2197 09f5 89E5     		movl	%esp, %ebp
 2198              	.LCFI129:
 2199 09f7 83EC08   		subl	$8, %esp
 2200              	.LCFI130:
 2201              		.loc 47 63 0
 2202 09fa 83EC0C   		subl	$12, %esp
 2203 09fd 68000000 		pushl	$_ZSt8__ioinit
 2203      00
 2204              	.LCFI131:
 2205 0a02 E8FCFFFF 		call	_ZNSt8ios_base4InitD1Ev
 2205      FF
 2206 0a07 83C410   		addl	$16, %esp
 2207 0a0a C9       		leave
 2208 0a0b C3       		ret
 2209              	.LFE1593:
 2210              	.Lfe20:
 2212              		.weak	_ZTI11MyException
 2213              		.section	.gnu.linkonce.d._ZTI11MyException,"aw",@progbits
 2214              		.align 4
 2217              	_ZTI11MyException:
 2218 0000 08000000 		.long	_ZTVN10__cxxabiv120__si_class_type_infoE+8
 2219 0004 00000000 		.long	_ZTS11MyException
 2220 0008 00000000 		.long	_ZTISt9exception
 2221              		.weak	_ZTS11MyException
 2222              		.section	.gnu.linkonce.r._ZTS11MyException,"a",@progbits
 2225              	_ZTS11MyException:
 2226 0000 31314D79 		.string	"11MyException"
 2226      45786365 
 2226      7074696F 
 2226      6E00
 2227              		.section	.gnu.linkonce.t._ZNSt9exceptionC2ERKS_,"ax",@progbits
 2228              		.align 2
 2229              		.weak	_ZNSt9exceptionC2ERKS_
 2231              	_ZNSt9exceptionC2ERKS_:
 2232              	.LFB1594:
 2233              		.loc 1 35 0
 2234              	.LBB25:
 2235 0000 55       		pushl	%ebp
 2236              	.LCFI132:
 2237 0001 89E5     		movl	%esp, %ebp
 2238              	.LCFI133:
 2239              		.loc 1 35 0
 2240 0003 8B4508   		movl	8(%ebp), %eax
 2241 0006 C7000800 		movl	$_ZTVSt9exception+8, (%eax)
 2241      0000
 2242 000c C9       		leave
 2243 000d C3       		ret
 2244              	.LBE25:
 2245              	.LFE1594:
 2246              	.Lfe21:
 2248              		.text
 2249              		.align 2
 2251              	_GLOBAL__I__ZN11MyExceptionC2ESs:
 2252              	.LFB1596:
 2253              		.loc 46 131 0
 2254 0a0c 55       		pushl	%ebp
GAS LISTING /tmp/ccJDTatA.s 			page 79


 2255              	.LCFI134:
 2256 0a0d 89E5     		movl	%esp, %ebp
 2257              	.LCFI135:
 2258 0a0f 83EC08   		subl	$8, %esp
 2259              	.LCFI136:
 2260              		.loc 46 131 0
 2261 0a12 83EC08   		subl	$8, %esp
 2262 0a15 68FFFF00 		pushl	$65535
 2262      00
 2263 0a1a 6A01     		pushl	$1
 2264              	.LCFI137:
 2265 0a1c E895FFFF 		call	_Z41__static_initialization_and_destruction_0ii
 2265      FF
 2266 0a21 83C410   		addl	$16, %esp
 2267 0a24 C9       		leave
 2268 0a25 C3       		ret
 2269              	.LFE1596:
 2270              	.Lfe22:
 2272              		.section	.ctors,"aw",@progbits
 2273              		.align 4
 2274 0000 0C0A0000 		.long	_GLOBAL__I__ZN11MyExceptionC2ESs
 2275              		.file 49 "/usr/include/stdio.h"
 2276              		.file 50 "/usr/include/c++/3.2.2/iosfwd"
 2277              		.file 51 "/usr/include/c++/3.2.2/i386-redhat-linux/bits/c++locale.h"
 2278              		.file 52 "/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include/stdarg.h"
 2279              		.file 53 "/usr/include/bits/sigset.h"
 2280              		.file 54 "/usr/include/signal.h"
 2281              		.file 55 "/usr/include/sys/select.h"
 2282              		.file 56 "/usr/include/nl_types.h"
 2283              		.file 57 "/usr/include/wctype.h"
 2284              		.file 58 "/usr/include/errno.h"
 2285              		.file 59 "/usr/include/bits/mathdef.h"
 2286              		.weak	pthread_mutex_unlock
 2287              		.weak	pthread_mutex_trylock
 2288              		.weak	pthread_mutex_lock
 2289              		.weak	pthread_create
 2290              		.weak	pthread_setspecific
 2291              		.weak	pthread_getspecific
 2292              		.weak	pthread_key_delete
 2293              		.weak	pthread_key_create
 2294              		.weak	pthread_once
 2993              	.Lframe1:
 2994 0000 18000000 		.long	.LECIE1-.LSCIE1
 2995              	.LSCIE1:
 2996 0004 00000000 		.long	0x0
 2997 0008 01       		.byte	0x1
 2998 0009 7A504C00 		.string	"zPL"
 2999 000d 01       		.uleb128 0x1
 3000 000e 7C       		.sleb128 -4
 3001 000f 08       		.byte	0x8
 3002 0010 06       		.uleb128 0x6
 3003 0011 00       		.byte	0x0
 3004 0012 00000000 		.long	__gxx_personality_v0
 3005 0016 00       		.byte	0x0
 3006 0017 0C       		.byte	0xc
 3007 0018 04       		.uleb128 0x4
 3008 0019 04       		.uleb128 0x4
GAS LISTING /tmp/ccJDTatA.s 			page 80


 3009 001a 88       		.byte	0x88
 3010 001b 01       		.uleb128 0x1
 3011              		.align 4
 3012              	.LECIE1:
 3013              	.LSFDE1:
 3014 001c 24000000 		.long	.LEFDE1-.LASFDE1
 3015              	.LASFDE1:
 3016 0020 20000000 		.long	.LASFDE1-.Lframe1
 3017 0024 00000000 		.long	.LFB1480
 3018 0028 7A000000 		.long	.LFE1480-.LFB1480
 3019 002c 04       		.uleb128 0x4
 3020 002d 00000000 		.long	.LLSDA1480
 3021 0031 41       		.byte	0x4
 3022              		.long	.LCFI0-.LFB1480
 3023 0032 0E       		.byte	0xe
 3024 0033 08       		.uleb128 0x8
 3025 0034 85       		.byte	0x85
 3026 0035 02       		.uleb128 0x2
 3027 0036 42       		.byte	0x4
 3028              		.long	.LCFI1-.LCFI0
 3029 0037 0D       		.byte	0xd
 3030 0038 05       		.uleb128 0x5
 3031 0039 45       		.byte	0x4
 3032              		.long	.LCFI4-.LCFI1
 3033 003a 83       		.byte	0x83
 3034 003b 04       		.uleb128 0x4
 3035 003c 86       		.byte	0x86
 3036 003d 03       		.uleb128 0x3
 3037 003e 49       		.byte	0x4
 3038              		.long	.LCFI5-.LCFI4
 3039 003f 2E       		.byte	0x2e
 3040 0040 10       		.uleb128 0x10
 3041 0041 000000   		.align 4
 3042              	.LEFDE1:
 3043              	.LSFDE3:
 3044 0044 24000000 		.long	.LEFDE3-.LASFDE3
 3045              	.LASFDE3:
 3046 0048 48000000 		.long	.LASFDE3-.Lframe1
 3047 004c 7A000000 		.long	.LFB1482
 3048 0050 7A000000 		.long	.LFE1482-.LFB1482
 3049 0054 04       		.uleb128 0x4
 3050 0055 18000000 		.long	.LLSDA1482
 3051 0059 41       		.byte	0x4
 3052              		.long	.LCFI6-.LFB1482
 3053 005a 0E       		.byte	0xe
 3054 005b 08       		.uleb128 0x8
 3055 005c 85       		.byte	0x85
 3056 005d 02       		.uleb128 0x2
 3057 005e 42       		.byte	0x4
 3058              		.long	.LCFI7-.LCFI6
 3059 005f 0D       		.byte	0xd
 3060 0060 05       		.uleb128 0x5
 3061 0061 45       		.byte	0x4
 3062              		.long	.LCFI10-.LCFI7
 3063 0062 83       		.byte	0x83
 3064 0063 04       		.uleb128 0x4
 3065 0064 86       		.byte	0x86
GAS LISTING /tmp/ccJDTatA.s 			page 81


 3066 0065 03       		.uleb128 0x3
 3067 0066 49       		.byte	0x4
 3068              		.long	.LCFI11-.LCFI10
 3069 0067 2E       		.byte	0x2e
 3070 0068 10       		.uleb128 0x10
 3071 0069 000000   		.align 4
 3072              	.LEFDE3:
 3073              	.LSFDE5:
 3074 006c 1C000000 		.long	.LEFDE5-.LASFDE5
 3075              	.LASFDE5:
 3076 0070 70000000 		.long	.LASFDE5-.Lframe1
 3077 0074 F4000000 		.long	.LFB1485
 3078 0078 6B000000 		.long	.LFE1485-.LFB1485
 3079 007c 04       		.uleb128 0x4
 3080 007d 30000000 		.long	.LLSDA1485
 3081 0081 41       		.byte	0x4
 3082              		.long	.LCFI12-.LFB1485
 3083 0082 0E       		.byte	0xe
 3084 0083 08       		.uleb128 0x8
 3085 0084 85       		.byte	0x85
 3086 0085 02       		.uleb128 0x2
 3087 0086 42       		.byte	0x4
 3088              		.long	.LCFI13-.LCFI12
 3089 0087 0D       		.byte	0xd
 3090 0088 05       		.uleb128 0x5
 3091 0089 56       		.byte	0x4
 3092              		.long	.LCFI15-.LCFI13
 3093 008a 2E       		.byte	0x2e
 3094 008b 10       		.uleb128 0x10
 3095              		.align 4
 3096              	.LEFDE5:
 3097              	.LSFDE7:
 3098 008c 1C000000 		.long	.LEFDE7-.LASFDE7
 3099              	.LASFDE7:
 3100 0090 90000000 		.long	.LASFDE7-.Lframe1
 3101 0094 60010000 		.long	.LFB1487
 3102 0098 6B000000 		.long	.LFE1487-.LFB1487
 3103 009c 04       		.uleb128 0x4
 3104 009d 44000000 		.long	.LLSDA1487
 3105 00a1 41       		.byte	0x4
 3106              		.long	.LCFI16-.LFB1487
 3107 00a2 0E       		.byte	0xe
 3108 00a3 08       		.uleb128 0x8
 3109 00a4 85       		.byte	0x85
 3110 00a5 02       		.uleb128 0x2
 3111 00a6 42       		.byte	0x4
 3112              		.long	.LCFI17-.LCFI16
 3113 00a7 0D       		.byte	0xd
 3114 00a8 05       		.uleb128 0x5
 3115 00a9 56       		.byte	0x4
 3116              		.long	.LCFI19-.LCFI17
 3117 00aa 2E       		.byte	0x2e
 3118 00ab 10       		.uleb128 0x10
 3119              		.align 4
 3120              	.LEFDE7:
 3121              	.LSFDE9:
 3122 00ac 1C000000 		.long	.LEFDE9-.LASFDE9
GAS LISTING /tmp/ccJDTatA.s 			page 82


 3123              	.LASFDE9:
 3124 00b0 B0000000 		.long	.LASFDE9-.Lframe1
 3125 00b4 CC010000 		.long	.LFB1489
 3126 00b8 6B000000 		.long	.LFE1489-.LFB1489
 3127 00bc 04       		.uleb128 0x4
 3128 00bd 58000000 		.long	.LLSDA1489
 3129 00c1 41       		.byte	0x4
 3130              		.long	.LCFI20-.LFB1489
 3131 00c2 0E       		.byte	0xe
 3132 00c3 08       		.uleb128 0x8
 3133 00c4 85       		.byte	0x85
 3134 00c5 02       		.uleb128 0x2
 3135 00c6 42       		.byte	0x4
 3136              		.long	.LCFI21-.LCFI20
 3137 00c7 0D       		.byte	0xd
 3138 00c8 05       		.uleb128 0x5
 3139 00c9 56       		.byte	0x4
 3140              		.long	.LCFI23-.LCFI21
 3141 00ca 2E       		.byte	0x2e
 3142 00cb 10       		.uleb128 0x10
 3143              		.align 4
 3144              	.LEFDE9:
 3145              	.LSFDE11:
 3146 00cc 1C000000 		.long	.LEFDE11-.LASFDE11
 3147              	.LASFDE11:
 3148 00d0 D0000000 		.long	.LASFDE11-.Lframe1
 3149 00d4 38020000 		.long	.LFB1491
 3150 00d8 40000000 		.long	.LFE1491-.LFB1491
 3151 00dc 04       		.uleb128 0x4
 3152 00dd 6C000000 		.long	.LLSDA1491
 3153 00e1 41       		.byte	0x4
 3154              		.long	.LCFI24-.LFB1491
 3155 00e2 0E       		.byte	0xe
 3156 00e3 08       		.uleb128 0x8
 3157 00e4 85       		.byte	0x85
 3158 00e5 02       		.uleb128 0x2
 3159 00e6 42       		.byte	0x4
 3160              		.long	.LCFI25-.LCFI24
 3161 00e7 0D       		.byte	0xd
 3162 00e8 05       		.uleb128 0x5
 3163 00e9 4D       		.byte	0x4
 3164              		.long	.LCFI27-.LCFI25
 3165 00ea 2E       		.byte	0x2e
 3166 00eb 10       		.uleb128 0x10
 3167              		.align 4
 3168              	.LEFDE11:
 3169              	.LSFDE13:
 3170 00ec 24000000 		.long	.LEFDE13-.LASFDE13
 3171              	.LASFDE13:
 3172 00f0 F0000000 		.long	.LASFDE13-.Lframe1
 3173 00f4 78020000 		.long	.LFB1493
 3174 00f8 77000000 		.long	.LFE1493-.LFB1493
 3175 00fc 04       		.uleb128 0x4
 3176 00fd 7D000000 		.long	.LLSDA1493
 3177 0101 41       		.byte	0x4
 3178              		.long	.LCFI28-.LFB1493
 3179 0102 0E       		.byte	0xe
GAS LISTING /tmp/ccJDTatA.s 			page 83


 3180 0103 08       		.uleb128 0x8
 3181 0104 85       		.byte	0x85
 3182 0105 02       		.uleb128 0x2
 3183 0106 42       		.byte	0x4
 3184              		.long	.LCFI29-.LCFI28
 3185 0107 0D       		.byte	0xd
 3186 0108 05       		.uleb128 0x5
 3187 0109 44       		.byte	0x4
 3188              		.long	.LCFI31-.LCFI29
 3189 010a 83       		.byte	0x83
 3190 010b 03       		.uleb128 0x3
 3191 010c 5B       		.byte	0x4
 3192              		.long	.LCFI32-.LCFI31
 3193 010d 2E       		.byte	0x2e
 3194 010e 18       		.uleb128 0x18
 3195 010f 4F       		.byte	0x4
 3196              		.long	.LCFI33-.LCFI32
 3197 0110 2E       		.byte	0x2e
 3198 0111 10       		.uleb128 0x10
 3199 0112 0000     		.align 4
 3200              	.LEFDE13:
 3201              	.LSFDE15:
 3202 0114 24000000 		.long	.LEFDE15-.LASFDE15
 3203              	.LASFDE15:
 3204 0118 18010000 		.long	.LASFDE15-.Lframe1
 3205 011c F0020000 		.long	.LFB1501
 3206 0120 B1000000 		.long	.LFE1501-.LFB1501
 3207 0124 04       		.uleb128 0x4
 3208 0125 94000000 		.long	.LLSDA1501
 3209 0129 41       		.byte	0x4
 3210              		.long	.LCFI34-.LFB1501
 3211 012a 0E       		.byte	0xe
 3212 012b 08       		.uleb128 0x8
 3213 012c 85       		.byte	0x85
 3214 012d 02       		.uleb128 0x2
 3215 012e 42       		.byte	0x4
 3216              		.long	.LCFI35-.LCFI34
 3217 012f 0D       		.byte	0xd
 3218 0130 05       		.uleb128 0x5
 3219 0131 45       		.byte	0x4
 3220              		.long	.LCFI38-.LCFI35
 3221 0132 83       		.byte	0x83
 3222 0133 04       		.uleb128 0x4
 3223 0134 86       		.byte	0x86
 3224 0135 03       		.uleb128 0x3
 3225 0136 4B       		.byte	0x4
 3226              		.long	.LCFI39-.LCFI38
 3227 0137 2E       		.byte	0x2e
 3228 0138 08       		.uleb128 0x8
 3229 0139 50       		.byte	0x4
 3230              		.long	.LCFI40-.LCFI39
 3231 013a 2E       		.byte	0x2e
 3232 013b 10       		.uleb128 0x10
 3233              		.align 4
 3234              	.LEFDE15:
 3235              	.LSFDE17:
 3236 013c 38000000 		.long	.LEFDE17-.LASFDE17
GAS LISTING /tmp/ccJDTatA.s 			page 84


 3237              	.LASFDE17:
 3238 0140 40010000 		.long	.LASFDE17-.Lframe1
 3239 0144 A2030000 		.long	.LFB1503
 3240 0148 90010000 		.long	.LFE1503-.LFB1503
 3241 014c 04       		.uleb128 0x4
 3242 014d B4000000 		.long	.LLSDA1503
 3243 0151 41       		.byte	0x4
 3244              		.long	.LCFI41-.LFB1503
 3245 0152 0E       		.byte	0xe
 3246 0153 08       		.uleb128 0x8
 3247 0154 85       		.byte	0x85
 3248 0155 02       		.uleb128 0x2
 3249 0156 42       		.byte	0x4
 3250              		.long	.LCFI42-.LCFI41
 3251 0157 0D       		.byte	0xd
 3252 0158 05       		.uleb128 0x5
 3253 0159 45       		.byte	0x4
 3254              		.long	.LCFI45-.LCFI42
 3255 015a 83       		.byte	0x83
 3256 015b 04       		.uleb128 0x4
 3257 015c 86       		.byte	0x86
 3258 015d 03       		.uleb128 0x3
 3259 015e 4D       		.byte	0x4
 3260              		.long	.LCFI46-.LCFI45
 3261 015f 2E       		.byte	0x2e
 3262 0160 0C       		.uleb128 0xc
 3263 0161 55       		.byte	0x4
 3264              		.long	.LCFI47-.LCFI46
 3265 0162 2E       		.byte	0x2e
 3266 0163 14       		.uleb128 0x14
 3267 0164 4C       		.byte	0x4
 3268              		.long	.LCFI48-.LCFI47
 3269 0165 2E       		.byte	0x2e
 3270 0166 10       		.uleb128 0x10
 3271 0167 02       		.byte	0x4
 3272 0168 AB       		.long	.LCFI49-.LCFI48
 3273 0169 2E       		.byte	0x2e
 3274 016a 08       		.uleb128 0x8
 3275 016b 59       		.byte	0x4
 3276              		.long	.LCFI50-.LCFI49
 3277 016c 2E       		.byte	0x2e
 3278 016d 14       		.uleb128 0x14
 3279 016e 5B       		.byte	0x4
 3280              		.long	.LCFI51-.LCFI50
 3281 016f 2E       		.byte	0x2e
 3282 0170 10       		.uleb128 0x10
 3283 0171 7C       		.byte	0x4
 3284              		.long	.LCFI52-.LCFI51
 3285 0172 2E       		.byte	0x2e
 3286 0173 00       		.uleb128 0x0
 3287 0174 68       		.byte	0x4
 3288              		.long	.LCFI53-.LCFI52
 3289 0175 2E       		.byte	0x2e
 3290 0176 10       		.uleb128 0x10
 3291 0177 00       		.align 4
 3292              	.LEFDE17:
 3293              	.LSFDE19:
GAS LISTING /tmp/ccJDTatA.s 			page 85


 3294 0178 40000000 		.long	.LEFDE19-.LASFDE19
 3295              	.LASFDE19:
 3296 017c 7C010000 		.long	.LASFDE19-.Lframe1
 3297 0180 32050000 		.long	.LFB1505
 3298 0184 14020000 		.long	.LFE1505-.LFB1505
 3299 0188 04       		.uleb128 0x4
 3300 0189 EC000000 		.long	.LLSDA1505
 3301 018d 41       		.byte	0x4
 3302              		.long	.LCFI54-.LFB1505
 3303 018e 0E       		.byte	0xe
 3304 018f 08       		.uleb128 0x8
 3305 0190 85       		.byte	0x85
 3306 0191 02       		.uleb128 0x2
 3307 0192 42       		.byte	0x4
 3308              		.long	.LCFI55-.LCFI54
 3309 0193 0D       		.byte	0xd
 3310 0194 05       		.uleb128 0x5
 3311 0195 45       		.byte	0x4
 3312              		.long	.LCFI58-.LCFI55
 3313 0196 83       		.byte	0x83
 3314 0197 04       		.uleb128 0x4
 3315 0198 86       		.byte	0x86
 3316 0199 03       		.uleb128 0x3
 3317 019a 4D       		.byte	0x4
 3318              		.long	.LCFI59-.LCFI58
 3319 019b 2E       		.byte	0x2e
 3320 019c 0C       		.uleb128 0xc
 3321 019d 55       		.byte	0x4
 3322              		.long	.LCFI60-.LCFI59
 3323 019e 2E       		.byte	0x2e
 3324 019f 14       		.uleb128 0x14
 3325 01a0 4C       		.byte	0x4
 3326              		.long	.LCFI61-.LCFI60
 3327 01a1 2E       		.byte	0x2e
 3328 01a2 10       		.uleb128 0x10
 3329 01a3 02       		.byte	0x4
 3330 01a4 AB       		.long	.LCFI62-.LCFI61
 3331 01a5 2E       		.byte	0x2e
 3332 01a6 08       		.uleb128 0x8
 3333 01a7 59       		.byte	0x4
 3334              		.long	.LCFI63-.LCFI62
 3335 01a8 2E       		.byte	0x2e
 3336 01a9 14       		.uleb128 0x14
 3337 01aa 5B       		.byte	0x4
 3338              		.long	.LCFI64-.LCFI63
 3339 01ab 2E       		.byte	0x2e
 3340 01ac 10       		.uleb128 0x10
 3341 01ad 02       		.byte	0x4
 3342 01ae 49       		.long	.LCFI65-.LCFI64
 3343 01af 2E       		.byte	0x2e
 3344 01b0 08       		.uleb128 0x8
 3345 01b1 50       		.byte	0x4
 3346              		.long	.LCFI66-.LCFI65
 3347 01b2 2E       		.byte	0x2e
 3348 01b3 10       		.uleb128 0x10
 3349 01b4 02       		.byte	0x4
 3350 01b5 78       		.long	.LCFI67-.LCFI66
GAS LISTING /tmp/ccJDTatA.s 			page 86


 3351 01b6 2E       		.byte	0x2e
 3352 01b7 00       		.uleb128 0x0
 3353 01b8 57       		.byte	0x4
 3354              		.long	.LCFI68-.LCFI67
 3355 01b9 2E       		.byte	0x2e
 3356 01ba 10       		.uleb128 0x10
 3357 01bb 00       		.align 4
 3358              	.LEFDE19:
 3359              	.LSFDE21:
 3360 01bc 28000000 		.long	.LEFDE21-.LASFDE21
 3361              	.LASFDE21:
 3362 01c0 C0010000 		.long	.LASFDE21-.Lframe1
 3363 01c4 46070000 		.long	.LFB1507
 3364 01c8 CB000000 		.long	.LFE1507-.LFB1507
 3365 01cc 04       		.uleb128 0x4
 3366 01cd 2C010000 		.long	.LLSDA1507
 3367 01d1 41       		.byte	0x4
 3368              		.long	.LCFI69-.LFB1507
 3369 01d2 0E       		.byte	0xe
 3370 01d3 08       		.uleb128 0x8
 3371 01d4 85       		.byte	0x85
 3372 01d5 02       		.uleb128 0x2
 3373 01d6 42       		.byte	0x4
 3374              		.long	.LCFI70-.LCFI69
 3375 01d7 0D       		.byte	0xd
 3376 01d8 05       		.uleb128 0x5
 3377 01d9 45       		.byte	0x4
 3378              		.long	.LCFI73-.LCFI70
 3379 01da 83       		.byte	0x83
 3380 01db 04       		.uleb128 0x4
 3381 01dc 86       		.byte	0x86
 3382 01dd 03       		.uleb128 0x3
 3383 01de 4D       		.byte	0x4
 3384              		.long	.LCFI74-.LCFI73
 3385 01df 2E       		.byte	0x2e
 3386 01e0 0C       		.uleb128 0xc
 3387 01e1 55       		.byte	0x4
 3388              		.long	.LCFI75-.LCFI74
 3389 01e2 2E       		.byte	0x2e
 3390 01e3 14       		.uleb128 0x14
 3391 01e4 4C       		.byte	0x4
 3392              		.long	.LCFI76-.LCFI75
 3393 01e5 2E       		.byte	0x2e
 3394 01e6 10       		.uleb128 0x10
 3395 01e7 00       		.align 4
 3396              	.LEFDE21:
 3397              	.LSFDE23:
 3398 01e8 48000000 		.long	.LEFDE23-.LASFDE23
 3399              	.LASFDE23:
 3400 01ec EC010000 		.long	.LASFDE23-.Lframe1
 3401 01f0 12080000 		.long	.LFB1509
 3402 01f4 A4010000 		.long	.LFE1509-.LFB1509
 3403 01f8 04       		.uleb128 0x4
 3404 01f9 4C010000 		.long	.LLSDA1509
 3405 01fd 41       		.byte	0x4
 3406              		.long	.LCFI77-.LFB1509
 3407 01fe 0E       		.byte	0xe
GAS LISTING /tmp/ccJDTatA.s 			page 87


 3408 01ff 08       		.uleb128 0x8
 3409 0200 85       		.byte	0x85
 3410 0201 02       		.uleb128 0x2
 3411 0202 42       		.byte	0x4
 3412              		.long	.LCFI78-.LCFI77
 3413 0203 0D       		.byte	0xd
 3414 0204 05       		.uleb128 0x5
 3415 0205 44       		.byte	0x4
 3416              		.long	.LCFI80-.LCFI78
 3417 0206 83       		.byte	0x83
 3418 0207 03       		.uleb128 0x3
 3419 0208 66       		.byte	0x4
 3420              		.long	.LCFI81-.LCFI80
 3421 0209 2E       		.byte	0x2e
 3422 020a 10       		.uleb128 0x10
 3423 020b 68       		.byte	0x4
 3424              		.long	.LCFI82-.LCFI81
 3425 020c 2E       		.byte	0x2e
 3426 020d 08       		.uleb128 0x8
 3427 020e 59       		.byte	0x4
 3428              		.long	.LCFI83-.LCFI82
 3429 020f 2E       		.byte	0x2e
 3430 0210 14       		.uleb128 0x14
 3431 0211 52       		.byte	0x4
 3432              		.long	.LCFI84-.LCFI83
 3433 0212 2E       		.byte	0x2e
 3434 0213 10       		.uleb128 0x10
 3435 0214 7B       		.byte	0x4
 3436              		.long	.LCFI85-.LCFI84
 3437 0215 2E       		.byte	0x2e
 3438 0216 00       		.uleb128 0x0
 3439 0217 4E       		.byte	0x4
 3440              		.long	.LCFI86-.LCFI85
 3441 0218 2E       		.byte	0x2e
 3442 0219 10       		.uleb128 0x10
 3443 021a 45       		.byte	0x4
 3444              		.long	.LCFI87-.LCFI86
 3445 021b 2E       		.byte	0x2e
 3446 021c 00       		.uleb128 0x0
 3447 021d 61       		.byte	0x4
 3448              		.long	.LCFI88-.LCFI87
 3449 021e 2E       		.byte	0x2e
 3450 021f 10       		.uleb128 0x10
 3451 0220 68       		.byte	0x4
 3452              		.long	.LCFI89-.LCFI88
 3453 0221 2E       		.byte	0x2e
 3454 0222 08       		.uleb128 0x8
 3455 0223 59       		.byte	0x4
 3456              		.long	.LCFI90-.LCFI89
 3457 0224 2E       		.byte	0x2e
 3458 0225 14       		.uleb128 0x14
 3459 0226 52       		.byte	0x4
 3460              		.long	.LCFI91-.LCFI90
 3461 0227 2E       		.byte	0x2e
 3462 0228 10       		.uleb128 0x10
 3463 0229 7B       		.byte	0x4
 3464              		.long	.LCFI92-.LCFI91
GAS LISTING /tmp/ccJDTatA.s 			page 88


 3465 022a 2E       		.byte	0x2e
 3466 022b 00       		.uleb128 0x0
 3467 022c 4E       		.byte	0x4
 3468              		.long	.LCFI93-.LCFI92
 3469 022d 2E       		.byte	0x2e
 3470 022e 10       		.uleb128 0x10
 3471 022f 45       		.byte	0x4
 3472              		.long	.LCFI94-.LCFI93
 3473 0230 2E       		.byte	0x2e
 3474 0231 00       		.uleb128 0x0
 3475 0232 0000     		.align 4
 3476              	.LEFDE23:
 3477              	.LSFDE25:
 3478 0234 28000000 		.long	.LEFDE25-.LASFDE25
 3479              	.LASFDE25:
 3480 0238 38020000 		.long	.LASFDE25-.Lframe1
 3481 023c 00000000 		.long	.LFB1523
 3482 0240 9D000000 		.long	.LFE1523-.LFB1523
 3483 0244 04       		.uleb128 0x4
 3484 0245 98010000 		.long	.LLSDA1523
 3485 0249 41       		.byte	0x4
 3486              		.long	.LCFI95-.LFB1523
 3487 024a 0E       		.byte	0xe
 3488 024b 08       		.uleb128 0x8
 3489 024c 85       		.byte	0x85
 3490 024d 02       		.uleb128 0x2
 3491 024e 42       		.byte	0x4
 3492              		.long	.LCFI96-.LCFI95
 3493 024f 0D       		.byte	0xd
 3494 0250 05       		.uleb128 0x5
 3495 0251 44       		.byte	0x4
 3496              		.long	.LCFI98-.LCFI96
 3497 0252 83       		.byte	0x83
 3498 0253 03       		.uleb128 0x3
 3499 0254 46       		.byte	0x4
 3500              		.long	.LCFI99-.LCFI98
 3501 0255 2E       		.byte	0x2e
 3502 0256 10       		.uleb128 0x10
 3503 0257 62       		.byte	0x4
 3504              		.long	.LCFI100-.LCFI99
 3505 0258 2E       		.byte	0x2e
 3506 0259 08       		.uleb128 0x8
 3507 025a 4F       		.byte	0x4
 3508              		.long	.LCFI101-.LCFI100
 3509 025b 2E       		.byte	0x2e
 3510 025c 10       		.uleb128 0x10
 3511 025d 000000   		.align 4
 3512              	.LEFDE25:
 3513              	.LSFDE27:
 3514 0260 20000000 		.long	.LEFDE27-.LASFDE27
 3515              	.LASFDE27:
 3516 0264 64020000 		.long	.LASFDE27-.Lframe1
 3517 0268 00000000 		.long	.LFB1525
 3518 026c 57000000 		.long	.LFE1525-.LFB1525
 3519 0270 04       		.uleb128 0x4
 3520 0271 A9010000 		.long	.LLSDA1525
 3521 0275 41       		.byte	0x4
GAS LISTING /tmp/ccJDTatA.s 			page 89


 3522              		.long	.LCFI102-.LFB1525
 3523 0276 0E       		.byte	0xe
 3524 0277 08       		.uleb128 0x8
 3525 0278 85       		.byte	0x85
 3526 0279 02       		.uleb128 0x2
 3527 027a 42       		.byte	0x4
 3528              		.long	.LCFI103-.LCFI102
 3529 027b 0D       		.byte	0xd
 3530 027c 05       		.uleb128 0x5
 3531 027d 44       		.byte	0x4
 3532              		.long	.LCFI105-.LCFI103
 3533 027e 83       		.byte	0x83
 3534 027f 03       		.uleb128 0x3
 3535 0280 49       		.byte	0x4
 3536              		.long	.LCFI106-.LCFI105
 3537 0281 2E       		.byte	0x2e
 3538 0282 10       		.uleb128 0x10
 3539 0283 00       		.align 4
 3540              	.LEFDE27:
 3541              	.LSFDE29:
 3542 0284 24000000 		.long	.LEFDE29-.LASFDE29
 3543              	.LASFDE29:
 3544 0288 88020000 		.long	.LASFDE29-.Lframe1
 3545 028c 00000000 		.long	.LFB1544
 3546 0290 43000000 		.long	.LFE1544-.LFB1544
 3547 0294 04       		.uleb128 0x4
 3548 0295 00000000 		.long	0x0
 3549 0299 41       		.byte	0x4
 3550              		.long	.LCFI107-.LFB1544
 3551 029a 0E       		.byte	0xe
 3552 029b 08       		.uleb128 0x8
 3553 029c 85       		.byte	0x85
 3554 029d 02       		.uleb128 0x2
 3555 029e 42       		.byte	0x4
 3556              		.long	.LCFI108-.LCFI107
 3557 029f 0D       		.byte	0xd
 3558 02a0 05       		.uleb128 0x5
 3559 02a1 56       		.byte	0x4
 3560              		.long	.LCFI110-.LCFI108
 3561 02a2 2E       		.byte	0x2e
 3562 02a3 0C       		.uleb128 0xc
 3563 02a4 52       		.byte	0x4
 3564              		.long	.LCFI111-.LCFI110
 3565 02a5 2E       		.byte	0x2e
 3566 02a6 08       		.uleb128 0x8
 3567 02a7 4E       		.byte	0x4
 3568              		.long	.LCFI112-.LCFI111
 3569 02a8 2E       		.byte	0x2e
 3570 02a9 20       		.uleb128 0x20
 3571 02aa 0000     		.align 4
 3572              	.LEFDE29:
 3573              	.LSFDE31:
 3574 02ac 1C000000 		.long	.LEFDE31-.LASFDE31
 3575              	.LASFDE31:
 3576 02b0 B0020000 		.long	.LASFDE31-.Lframe1
 3577 02b4 B6090000 		.long	.LFB1589
 3578 02b8 3E000000 		.long	.LFE1589-.LFB1589
GAS LISTING /tmp/ccJDTatA.s 			page 90


 3579 02bc 04       		.uleb128 0x4
 3580 02bd 00000000 		.long	0x0
 3581 02c1 41       		.byte	0x4
 3582              		.long	.LCFI113-.LFB1589
 3583 02c2 0E       		.byte	0xe
 3584 02c3 08       		.uleb128 0x8
 3585 02c4 85       		.byte	0x85
 3586 02c5 02       		.uleb128 0x2
 3587 02c6 42       		.byte	0x4
 3588              		.long	.LCFI114-.LCFI113
 3589 02c7 0D       		.byte	0xd
 3590 02c8 05       		.uleb128 0x5
 3591 02c9 5A       		.byte	0x4
 3592              		.long	.LCFI116-.LCFI114
 3593 02ca 2E       		.byte	0x2e
 3594 02cb 10       		.uleb128 0x10
 3595              		.align 4
 3596              	.LEFDE31:
 3597              	.LSFDE37:
 3598 02cc 20000000 		.long	.LEFDE37-.LASFDE37
 3599              	.LASFDE37:
 3600 02d0 D0020000 		.long	.LASFDE37-.Lframe1
 3601 02d4 00000000 		.long	.LFB1592
 3602 02d8 63000000 		.long	.LFE1592-.LFB1592
 3603 02dc 04       		.uleb128 0x4
 3604 02dd B9010000 		.long	.LLSDA1592
 3605 02e1 41       		.byte	0x4
 3606              		.long	.LCFI123-.LFB1592
 3607 02e2 0E       		.byte	0xe
 3608 02e3 08       		.uleb128 0x8
 3609 02e4 85       		.byte	0x85
 3610 02e5 02       		.uleb128 0x2
 3611 02e6 42       		.byte	0x4
 3612              		.long	.LCFI124-.LCFI123
 3613 02e7 0D       		.byte	0xd
 3614 02e8 05       		.uleb128 0x5
 3615 02e9 44       		.byte	0x4
 3616              		.long	.LCFI126-.LCFI124
 3617 02ea 83       		.byte	0x83
 3618 02eb 03       		.uleb128 0x3
 3619 02ec 49       		.byte	0x4
 3620              		.long	.LCFI127-.LCFI126
 3621 02ed 2E       		.byte	0x2e
 3622 02ee 10       		.uleb128 0x10
 3623 02ef 00       		.align 4
 3624              	.LEFDE37:
 3625              	.LSFDE39:
 3626 02f0 1C000000 		.long	.LEFDE39-.LASFDE39
 3627              	.LASFDE39:
 3628 02f4 F4020000 		.long	.LASFDE39-.Lframe1
 3629 02f8 F4090000 		.long	.LFB1593
 3630 02fc 18000000 		.long	.LFE1593-.LFB1593
 3631 0300 04       		.uleb128 0x4
 3632 0301 00000000 		.long	0x0
 3633 0305 41       		.byte	0x4
 3634              		.long	.LCFI128-.LFB1593
 3635 0306 0E       		.byte	0xe
GAS LISTING /tmp/ccJDTatA.s 			page 91


 3636 0307 08       		.uleb128 0x8
 3637 0308 85       		.byte	0x85
 3638 0309 02       		.uleb128 0x2
 3639 030a 42       		.byte	0x4
 3640              		.long	.LCFI129-.LCFI128
 3641 030b 0D       		.byte	0xd
 3642 030c 05       		.uleb128 0x5
 3643 030d 4B       		.byte	0x4
 3644              		.long	.LCFI131-.LCFI129
 3645 030e 2E       		.byte	0x2e
 3646 030f 10       		.uleb128 0x10
 3647              		.align 4
 3648              	.LEFDE39:
 3649              	.LSFDE43:
 3650 0310 1C000000 		.long	.LEFDE43-.LASFDE43
 3651              	.LASFDE43:
 3652 0314 14030000 		.long	.LASFDE43-.Lframe1
 3653 0318 0C0A0000 		.long	.LFB1596
 3654 031c 1A000000 		.long	.LFE1596-.LFB1596
 3655 0320 04       		.uleb128 0x4
 3656 0321 00000000 		.long	0x0
 3657 0325 41       		.byte	0x4
 3658              		.long	.LCFI134-.LFB1596
 3659 0326 0E       		.byte	0xe
 3660 0327 08       		.uleb128 0x8
 3661 0328 85       		.byte	0x85
 3662 0329 02       		.uleb128 0x2
 3663 032a 42       		.byte	0x4
 3664              		.long	.LCFI135-.LCFI134
 3665 032b 0D       		.byte	0xd
 3666 032c 05       		.uleb128 0x5
 3667 032d 4D       		.byte	0x4
 3668              		.long	.LCFI137-.LCFI135
 3669 032e 2E       		.byte	0x2e
 3670 032f 10       		.uleb128 0x10
 3671              		.align 4
 3672              	.LEFDE43:
 3673              		.text
 3674              	.Letext0:
GAS LISTING /tmp/ccJDTatA.s 			page 92


DEFINED SYMBOLS
                            *ABS*:00000000 rethrow.cc
                             .bss:00000000 _ZSt8__ioinit
     /tmp/ccJDTatA.s:59     .text:00000000 _ZN11MyExceptionC2ESs
     /tmp/ccJDTatA.s:2071   .gnu.linkonce.t._ZNSt9exceptionC2Ev:00000000 _ZNSt9exceptionC2Ev
     /tmp/ccJDTatA.s:2024   .gnu.linkonce.d._ZTV11MyException:00000000 _ZTV11MyException
     /tmp/ccJDTatA.s:155    .text:0000007a _ZN11MyExceptionC1ESs
     /tmp/ccJDTatA.s:251    .text:000000f4 _ZN11MyExceptionD2Ev
     /tmp/ccJDTatA.s:335    .text:00000160 _ZN11MyExceptionD1Ev
     /tmp/ccJDTatA.s:419    .text:000001cc _ZN11MyExceptionD0Ev
     /tmp/ccJDTatA.s:503    .text:00000238 _ZNK11MyException4whatEv
     /tmp/ccJDTatA.s:581    .text:00000278 _ZNK11MyException9as_stringEv
     /tmp/ccJDTatA.s:1795   .gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_:00000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_
     /tmp/ccJDTatA.s:1900   .gnu.linkonce.t._ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_:00000000 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_
     /tmp/ccJDTatA.s:678    .text:000002f0 _Z17throw_MyExceptionSs
     /tmp/ccJDTatA.s:2118   .gnu.linkonce.t._ZN11MyExceptionC1ERKS_:00000000 _ZN11MyExceptionC1ERKS_
     /tmp/ccJDTatA.s:2217   .gnu.linkonce.d._ZTI11MyException:00000000 _ZTI11MyException
     /tmp/ccJDTatA.s:810    .text:000003a2 _Z17catch_and_rethrowv
     /tmp/ccJDTatA.s:1063   .text:00000532 _Z23catch_and_throw_anotherv
     /tmp/ccJDTatA.s:1367   .text:00000746 _Z12doesnt_throwv
     /tmp/ccJDTatA.s:1517   .text:00000812 main
     /tmp/ccJDTatA.s:2092   .gnu.linkonce.t._ZNSt11char_traitsIcE6lengthEPKc:00000000 _ZNSt11char_traitsIcE6lengthEPKc
     /tmp/ccJDTatA.s:1979   .gnu.linkonce.t._ZNSs6appendIPKcEERSsT_S3_:00000000 _ZNSs6appendIPKcEERSsT_S3_
     /tmp/ccJDTatA.s:2033   .text:000009b6 _Z41__static_initialization_and_destruction_0ii
     /tmp/ccJDTatA.s:2192   .text:000009f4 __tcf_0
     /tmp/ccJDTatA.s:2231   .gnu.linkonce.t._ZNSt9exceptionC2ERKS_:00000000 _ZNSt9exceptionC2ERKS_
     /tmp/ccJDTatA.s:2225   .gnu.linkonce.r._ZTS11MyException:00000000 _ZTS11MyException
     /tmp/ccJDTatA.s:2251   .text:00000a0c _GLOBAL__I__ZN11MyExceptionC2ESs

UNDEFINED SYMBOLS
_Unwind_Resume
_ZNSsC1ERKSs
_ZNSt9exceptionD2Ev
__cxa_call_unexpected
_ZNSsD1Ev
_ZdlPv
_ZNKSs5c_strEv
__cxa_allocate_exception
__cxa_throw
_ZNSaIcEC1Ev
_ZNSsC1EPKcRKSaIcE
_ZNSaIcED1Ev
__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_rethrow
__cxa_end_catch
_ZNSsC1Ev
_ZNKSs4sizeEv
_ZNSs7reserveEj
_ZNSs6appendERKSs
_ZNSs6appendEPKc
_ZNKSs7_M_iendEv
_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_
GAS LISTING /tmp/ccJDTatA.s 			page 93


_ZNSt8ios_base4InitC1Ev
__dso_handle
__cxa_atexit
_ZTVSt9exception
strlen
_ZNSt8ios_base4InitD1Ev
_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTISt9exception
__gxx_personality_v0
