GAS LISTING /tmp/ccZ3i3Rm.s 			page 1


   1              		.file	"polymorphic-fp.cpp"
   2              		.text
   3              	.Ltext0:
   4              		.align 2
   5              		.globl	_ZN9onefieldP8setFieldEi
   7              	_ZN9onefieldP8setFieldEi:
   8              	.LFB1254:
   9              		.file 1 "polymorphic-fp.cpp"
   1:polymorphic-fp.cpp **** #include <iostream>
   2:polymorphic-fp.cpp **** 
   3:polymorphic-fp.cpp **** class onefieldP {
   4:polymorphic-fp.cpp ****   private:
   5:polymorphic-fp.cpp ****     int field;
   6:polymorphic-fp.cpp ****   public:
   7:polymorphic-fp.cpp ****     virtual void setField(int f);
   8:polymorphic-fp.cpp ****     virtual int getField() const;
   9:polymorphic-fp.cpp **** };
  10:polymorphic-fp.cpp **** 
  11:polymorphic-fp.cpp **** class onefieldP_subclass : public onefieldP {
  12:polymorphic-fp.cpp ****   private:
  13:polymorphic-fp.cpp ****     int otherfield;
  14:polymorphic-fp.cpp ****   public:
  15:polymorphic-fp.cpp ****     // Override setField, but not getField.
  16:polymorphic-fp.cpp ****     virtual void setField(int f);
  17:polymorphic-fp.cpp **** };
  18:polymorphic-fp.cpp **** 
  19:polymorphic-fp.cpp **** void setFieldToValue(onefieldP f) {
  20:polymorphic-fp.cpp ****   f.setField(33);
  21:polymorphic-fp.cpp **** }
  22:polymorphic-fp.cpp **** 
  23:polymorphic-fp.cpp **** void polymorphicFp() {
  24:polymorphic-fp.cpp ****     
  25:polymorphic-fp.cpp ****     void (onefieldP::* func)(int) = &onefieldP::setField;
  26:polymorphic-fp.cpp **** 
  27:polymorphic-fp.cpp ****     onefieldP of;
  28:polymorphic-fp.cpp ****     onefieldP_subclass ofs;
  29:polymorphic-fp.cpp **** 
  30:polymorphic-fp.cpp ****     (of.*func)(13);
  31:polymorphic-fp.cpp ****     (ofs.*func)(17);
  32:polymorphic-fp.cpp **** 
  33:polymorphic-fp.cpp ****     setFieldToValue(ofs);
  34:polymorphic-fp.cpp **** 
  35:polymorphic-fp.cpp ****     onefieldP *ofp = new onefieldP_subclass;
  36:polymorphic-fp.cpp **** 
  37:polymorphic-fp.cpp ****     (ofp->*func)(27);
  38:polymorphic-fp.cpp **** 
  39:polymorphic-fp.cpp ****     int i = ofp->getField();
  40:polymorphic-fp.cpp **** 
  41:polymorphic-fp.cpp ****     delete ofp;
  42:polymorphic-fp.cpp **** 
  43:polymorphic-fp.cpp ****     std::cout << "polymorphicFp" <<  i + of.getField() << std::endl;
  44:polymorphic-fp.cpp **** }
  45:polymorphic-fp.cpp **** 
  46:polymorphic-fp.cpp **** 
  47:polymorphic-fp.cpp **** void onefieldP::setField(int f) {
  10              		.loc 1 47 0
  11              		.cfi_startproc
GAS LISTING /tmp/ccZ3i3Rm.s 			page 2


  12              	.LVL0:
  48:polymorphic-fp.cpp ****     this->field = f;
  13              		.loc 1 48 0
  14 0000 897708   		movl	%esi, 8(%rdi)
  15 0003 C3       		ret
  16              		.cfi_endproc
  17              	.LFE1254:
  19              		.align 2
  20              		.globl	_ZNK9onefieldP8getFieldEv
  22              	_ZNK9onefieldP8getFieldEv:
  23              	.LFB1255:
  49:polymorphic-fp.cpp **** }
  50:polymorphic-fp.cpp **** int onefieldP::getField() const {
  24              		.loc 1 50 0
  25              		.cfi_startproc
  26              	.LVL1:
  51:polymorphic-fp.cpp ****     return this->field;
  27              		.loc 1 51 0
  28 0004 8B4708   		movl	8(%rdi), %eax
  52:polymorphic-fp.cpp **** }
  29              		.loc 1 52 0
  30 0007 C3       		ret
  31              		.cfi_endproc
  32              	.LFE1255:
  34              		.align 2
  35              		.globl	_ZN18onefieldP_subclass8setFieldEi
  37              	_ZN18onefieldP_subclass8setFieldEi:
  38              	.LFB1256:
  53:polymorphic-fp.cpp **** 
  54:polymorphic-fp.cpp **** void onefieldP_subclass::setField(int f) {
  39              		.loc 1 54 0
  40              		.cfi_startproc
  41              	.LVL2:
  42 0008 55       		pushq	%rbp
  43              		.cfi_def_cfa_offset 16
  44              		.cfi_offset 6, -16
  45 0009 53       		pushq	%rbx
  46              		.cfi_def_cfa_offset 24
  47              		.cfi_offset 3, -24
  48 000a 4889FB   		movq	%rdi, %rbx
  49 000d 89F5     		movl	%esi, %ebp
  55:polymorphic-fp.cpp ****     onefieldP::setField(f);
  50              		.loc 1 55 0
  51 000f E8000000 		call	_ZN9onefieldP8setFieldEi
  51      00
  52              	.LVL3:
  56:polymorphic-fp.cpp ****     otherfield = f;
  53              		.loc 1 56 0
  54 0014 896B0C   		movl	%ebp, 12(%rbx)
  57:polymorphic-fp.cpp **** }
  55              		.loc 1 57 0
  56 0017 5B       		popq	%rbx
  57              		.cfi_def_cfa_offset 16
  58              	.LVL4:
  59 0018 5D       		popq	%rbp
  60              		.cfi_def_cfa_offset 8
  61              	.LVL5:
GAS LISTING /tmp/ccZ3i3Rm.s 			page 3


  62 0019 C3       		ret
  63              		.cfi_endproc
  64              	.LFE1256:
  67              	_Z41__static_initialization_and_destruction_0ii:
  68              	.LFB1411:
  69              		.loc 1 57 0
  70              		.cfi_startproc
  71              	.LVL6:
  72 001a 83FF01   		cmpl	$1, %edi
  73 001d 752E     		jne	.L9
  74              		.loc 1 57 0 discriminator 1
  75 001f 81FEFFFF 		cmpl	$65535, %esi
  75      0000
  76 0025 7526     		jne	.L9
  77              		.loc 1 57 0 is_stmt 0
  78 0027 4883EC08 		subq	$8, %rsp
  79              		.cfi_def_cfa_offset 16
  80              		.file 2 "/usr/include/c++/4.8/iostream"
   1:/usr/include/c++/4.8/iostream **** // Standard iostream objects -*- C++ -*-
   2:/usr/include/c++/4.8/iostream **** 
   3:/usr/include/c++/4.8/iostream **** // Copyright (C) 1997-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/iostream **** //
   5:/usr/include/c++/4.8/iostream **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/iostream **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/iostream **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/iostream **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/iostream **** // any later version.
  10:/usr/include/c++/4.8/iostream **** 
  11:/usr/include/c++/4.8/iostream **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/iostream **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/iostream **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/iostream **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/iostream **** 
  16:/usr/include/c++/4.8/iostream **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/iostream **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/iostream **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/iostream **** 
  20:/usr/include/c++/4.8/iostream **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/iostream **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/iostream **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/iostream **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/iostream **** 
  25:/usr/include/c++/4.8/iostream **** /** @file include/iostream
  26:/usr/include/c++/4.8/iostream ****  *  This is a Standard C++ Library header.
  27:/usr/include/c++/4.8/iostream ****  */
  28:/usr/include/c++/4.8/iostream **** 
  29:/usr/include/c++/4.8/iostream **** //
  30:/usr/include/c++/4.8/iostream **** // ISO C++ 14882: 27.3  Standard iostream objects
  31:/usr/include/c++/4.8/iostream **** //
  32:/usr/include/c++/4.8/iostream **** 
  33:/usr/include/c++/4.8/iostream **** #ifndef _GLIBCXX_IOSTREAM
  34:/usr/include/c++/4.8/iostream **** #define _GLIBCXX_IOSTREAM 1
  35:/usr/include/c++/4.8/iostream **** 
  36:/usr/include/c++/4.8/iostream **** #pragma GCC system_header
  37:/usr/include/c++/4.8/iostream **** 
  38:/usr/include/c++/4.8/iostream **** #include <bits/c++config.h>
  39:/usr/include/c++/4.8/iostream **** #include <ostream>
GAS LISTING /tmp/ccZ3i3Rm.s 			page 4


  40:/usr/include/c++/4.8/iostream **** #include <istream>
  41:/usr/include/c++/4.8/iostream **** 
  42:/usr/include/c++/4.8/iostream **** namespace std _GLIBCXX_VISIBILITY(default)
  43:/usr/include/c++/4.8/iostream **** {
  44:/usr/include/c++/4.8/iostream **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  45:/usr/include/c++/4.8/iostream **** 
  46:/usr/include/c++/4.8/iostream ****   /**
  47:/usr/include/c++/4.8/iostream ****    *  @name Standard Stream Objects
  48:/usr/include/c++/4.8/iostream ****    *
  49:/usr/include/c++/4.8/iostream ****    *  The &lt;iostream&gt; header declares the eight <em>standard stream
  50:/usr/include/c++/4.8/iostream ****    *  objects</em>.  For other declarations, see
  51:/usr/include/c++/4.8/iostream ****    *  http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html
  52:/usr/include/c++/4.8/iostream ****    *  and the @link iosfwd I/O forward declarations @endlink
  53:/usr/include/c++/4.8/iostream ****    *
  54:/usr/include/c++/4.8/iostream ****    *  They are required by default to cooperate with the global C
  55:/usr/include/c++/4.8/iostream ****    *  library's @c FILE streams, and to be available during program
  56:/usr/include/c++/4.8/iostream ****    *  startup and termination. For more information, see the HOWTO
  57:/usr/include/c++/4.8/iostream ****    *  linked to above.
  58:/usr/include/c++/4.8/iostream ****   */
  59:/usr/include/c++/4.8/iostream ****   //@{
  60:/usr/include/c++/4.8/iostream ****   extern istream cin;		/// Linked to standard input
  61:/usr/include/c++/4.8/iostream ****   extern ostream cout;		/// Linked to standard output
  62:/usr/include/c++/4.8/iostream ****   extern ostream cerr;		/// Linked to standard error (unbuffered)
  63:/usr/include/c++/4.8/iostream ****   extern ostream clog;		/// Linked to standard error (buffered)
  64:/usr/include/c++/4.8/iostream **** 
  65:/usr/include/c++/4.8/iostream **** #ifdef _GLIBCXX_USE_WCHAR_T
  66:/usr/include/c++/4.8/iostream ****   extern wistream wcin;		/// Linked to standard input
  67:/usr/include/c++/4.8/iostream ****   extern wostream wcout;	/// Linked to standard output
  68:/usr/include/c++/4.8/iostream ****   extern wostream wcerr;	/// Linked to standard error (unbuffered)
  69:/usr/include/c++/4.8/iostream ****   extern wostream wclog;	/// Linked to standard error (buffered)
  70:/usr/include/c++/4.8/iostream **** #endif
  71:/usr/include/c++/4.8/iostream ****   //@}
  72:/usr/include/c++/4.8/iostream **** 
  73:/usr/include/c++/4.8/iostream ****   // For construction of filebuffers for cout, cin, cerr, clog et. al.
  74:/usr/include/c++/4.8/iostream ****   static ios_base::Init __ioinit;
  81              		.loc 2 74 0 is_stmt 1
  82 002b BF000000 		movl	$_ZStL8__ioinit, %edi
  82      00
  83              	.LVL7:
  84 0030 E8000000 		call	_ZNSt8ios_base4InitC1Ev
  84      00
  85              	.LVL8:
  86 0035 BA000000 		movl	$__dso_handle, %edx
  86      00
  87 003a BE000000 		movl	$_ZStL8__ioinit, %esi
  87      00
  88 003f BF000000 		movl	$_ZNSt8ios_base4InitD1Ev, %edi
  88      00
  89 0044 E8000000 		call	__cxa_atexit
  89      00
  90              	.LVL9:
  91              		.loc 1 57 0
  92 0049 4883C408 		addq	$8, %rsp
  93              		.cfi_def_cfa_offset 8
  94              	.L9:
  95 004d C3       		ret
  96              		.cfi_endproc
GAS LISTING /tmp/ccZ3i3Rm.s 			page 5


  97              	.LFE1411:
  99              		.globl	_Z15setFieldToValue9onefieldP
 101              	_Z15setFieldToValue9onefieldP:
 102              	.LFB1243:
  19:polymorphic-fp.cpp ****   f.setField(33);
 103              		.loc 1 19 0
 104              		.cfi_startproc
 105              	.LVL10:
  20:polymorphic-fp.cpp **** }
 106              		.loc 1 20 0
 107 004e BE210000 		movl	$33, %esi
 107      00
 108 0053 E8000000 		call	_ZN9onefieldP8setFieldEi
 108      00
 109              	.LVL11:
 110 0058 F3C3     		rep ret
 111              		.cfi_endproc
 112              	.LFE1243:
 114              		.section	.text._ZN9onefieldPC2Ev,"axG",@progbits,_ZN9onefieldPC5Ev,comdat
 115              		.align 2
 116              		.weak	_ZN9onefieldPC2Ev
 118              	_ZN9onefieldPC2Ev:
 119              	.LFB1246:
   3:polymorphic-fp.cpp ****   private:
 120              		.loc 1 3 0
 121              		.cfi_startproc
 122              	.LVL12:
 123              	.LBB2:
   3:polymorphic-fp.cpp ****   private:
 124              		.loc 1 3 0
 125 0000 48C70700 		movq	$_ZTV9onefieldP+16, (%rdi)
 125      000000
 126 0007 C3       		ret
 127              	.LBE2:
 128              		.cfi_endproc
 129              	.LFE1246:
 131              		.weak	_ZN9onefieldPC1Ev
 132              		.set	_ZN9onefieldPC1Ev,_ZN9onefieldPC2Ev
 133              		.section	.text._ZN18onefieldP_subclassC2Ev,"axG",@progbits,_ZN18onefieldP_subclassC5Ev,comdat
 134              		.align 2
 135              		.weak	_ZN18onefieldP_subclassC2Ev
 137              	_ZN18onefieldP_subclassC2Ev:
 138              	.LFB1249:
  11:polymorphic-fp.cpp ****   private:
 139              		.loc 1 11 0
 140              		.cfi_startproc
 141              	.LVL13:
 142 0000 53       		pushq	%rbx
 143              		.cfi_def_cfa_offset 16
 144              		.cfi_offset 3, -16
 145 0001 4889FB   		movq	%rdi, %rbx
 146              	.LBB3:
  11:polymorphic-fp.cpp ****   private:
 147              		.loc 1 11 0
 148 0004 E8000000 		call	_ZN9onefieldPC2Ev
 148      00
 149              	.LVL14:
GAS LISTING /tmp/ccZ3i3Rm.s 			page 6


 150 0009 48C70300 		movq	$_ZTV18onefieldP_subclass+16, (%rbx)
 150      000000
 151              	.LBE3:
 152 0010 5B       		popq	%rbx
 153              		.cfi_def_cfa_offset 8
 154              	.LVL15:
 155 0011 C3       		ret
 156              		.cfi_endproc
 157              	.LFE1249:
 159              		.weak	_ZN18onefieldP_subclassC1Ev
 160              		.set	_ZN18onefieldP_subclassC1Ev,_ZN18onefieldP_subclassC2Ev
 161              		.section	.text._ZN9onefieldPC2ERKS_,"axG",@progbits,_ZN9onefieldPC5ERKS_,comdat
 162              		.align 2
 163              		.weak	_ZN9onefieldPC2ERKS_
 165              	_ZN9onefieldPC2ERKS_:
 166              	.LFB1252:
   3:polymorphic-fp.cpp ****   private:
 167              		.loc 1 3 0
 168              		.cfi_startproc
 169              	.LVL16:
 170              	.LBB4:
   3:polymorphic-fp.cpp ****   private:
 171              		.loc 1 3 0
 172 0000 48C70700 		movq	$_ZTV9onefieldP+16, (%rdi)
 172      000000
 173 0007 8B4608   		movl	8(%rsi), %eax
 174 000a 894708   		movl	%eax, 8(%rdi)
 175 000d C3       		ret
 176              	.LBE4:
 177              		.cfi_endproc
 178              	.LFE1252:
 180              		.weak	_ZN9onefieldPC1ERKS_
 181              		.set	_ZN9onefieldPC1ERKS_,_ZN9onefieldPC2ERKS_
 182              		.section	.rodata.str1.1,"aMS",@progbits,1
 183              	.LC0:
 184 0000 706F6C79 		.string	"polymorphicFp"
 184      6D6F7270 
 184      68696346 
 184      7000
 185              		.text
 186              		.globl	_Z13polymorphicFpv
 188              	_Z13polymorphicFpv:
 189              	.LFB1244:
  23:polymorphic-fp.cpp ****     
 190              		.loc 1 23 0
 191              		.cfi_startproc
 192 005a 55       		pushq	%rbp
 193              		.cfi_def_cfa_offset 16
 194              		.cfi_offset 6, -16
 195 005b 53       		pushq	%rbx
 196              		.cfi_def_cfa_offset 24
 197              		.cfi_offset 3, -24
 198 005c 4883EC38 		subq	$56, %rsp
 199              		.cfi_def_cfa_offset 80
 200              	.LVL17:
 201              	.LBB5:
  27:polymorphic-fp.cpp ****     onefieldP_subclass ofs;
GAS LISTING /tmp/ccZ3i3Rm.s 			page 7


 202              		.loc 1 27 0
 203 0060 4889E7   		movq	%rsp, %rdi
 204 0063 E8000000 		call	_ZN9onefieldPC1Ev
 204      00
 205              	.LVL18:
  28:polymorphic-fp.cpp **** 
 206              		.loc 1 28 0
 207 0068 488D7C24 		leaq	16(%rsp), %rdi
 207      10
 208 006d E8000000 		call	_ZN18onefieldP_subclassC1Ev
 208      00
 209              	.LVL19:
  30:polymorphic-fp.cpp ****     (ofs.*func)(17);
 210              		.loc 1 30 0
 211 0072 BE0D0000 		movl	$13, %esi
 211      00
 212 0077 4889E7   		movq	%rsp, %rdi
 213 007a 488B0424 		movq	(%rsp), %rax
 214 007e FF10     		call	*(%rax)
 215              	.LVL20:
  31:polymorphic-fp.cpp **** 
 216              		.loc 1 31 0
 217 0080 BE110000 		movl	$17, %esi
 217      00
 218 0085 488D7C24 		leaq	16(%rsp), %rdi
 218      10
 219 008a 488B4424 		movq	16(%rsp), %rax
 219      10
 220 008f FF10     		call	*(%rax)
 221              	.LVL21:
  33:polymorphic-fp.cpp **** 
 222              		.loc 1 33 0
 223 0091 488D7424 		leaq	16(%rsp), %rsi
 223      10
 224 0096 488D7C24 		leaq	32(%rsp), %rdi
 224      20
 225 009b E8000000 		call	_ZN9onefieldPC1ERKS_
 225      00
 226              	.LVL22:
 227 00a0 488D7C24 		leaq	32(%rsp), %rdi
 227      20
 228 00a5 E8000000 		call	_Z15setFieldToValue9onefieldP
 228      00
 229              	.LVL23:
  35:polymorphic-fp.cpp **** 
 230              		.loc 1 35 0
 231 00aa BF100000 		movl	$16, %edi
 231      00
 232 00af E8000000 		call	_Znwm
 232      00
 233              	.LVL24:
 234 00b4 4889C3   		movq	%rax, %rbx
 235 00b7 4889C7   		movq	%rax, %rdi
 236 00ba E8000000 		call	_ZN18onefieldP_subclassC1Ev
 236      00
 237              	.LVL25:
  37:polymorphic-fp.cpp **** 
GAS LISTING /tmp/ccZ3i3Rm.s 			page 8


 238              		.loc 1 37 0
 239 00bf 488B03   		movq	(%rbx), %rax
 240 00c2 BE1B0000 		movl	$27, %esi
 240      00
 241 00c7 4889DF   		movq	%rbx, %rdi
 242 00ca FF10     		call	*(%rax)
 243              	.LVL26:
  39:polymorphic-fp.cpp **** 
 244              		.loc 1 39 0
 245 00cc 488B03   		movq	(%rbx), %rax
 246 00cf 4889DF   		movq	%rbx, %rdi
 247 00d2 FF5008   		call	*8(%rax)
 248              	.LVL27:
 249 00d5 89C5     		movl	%eax, %ebp
 250              	.LVL28:
  41:polymorphic-fp.cpp **** 
 251              		.loc 1 41 0
 252 00d7 4889DF   		movq	%rbx, %rdi
 253 00da E8000000 		call	_ZdlPv
 253      00
 254              	.LVL29:
  43:polymorphic-fp.cpp **** }
 255              		.loc 1 43 0
 256 00df 4889E7   		movq	%rsp, %rdi
 257 00e2 E8000000 		call	_ZNK9onefieldP8getFieldEv
 257      00
 258              	.LVL30:
 259 00e7 8D5C0500 		leal	0(%rbp,%rax), %ebx
 260              	.LVL31:
 261 00eb BE000000 		movl	$.LC0, %esi
 261      00
 262 00f0 BF000000 		movl	$_ZSt4cout, %edi
 262      00
 263 00f5 E8000000 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 263      00
 264              	.LVL32:
 265 00fa 89DE     		movl	%ebx, %esi
 266 00fc 4889C7   		movq	%rax, %rdi
 267 00ff E8000000 		call	_ZNSolsEi
 267      00
 268              	.LVL33:
 269 0104 BE000000 		movl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_, %esi
 269      00
 270 0109 4889C7   		movq	%rax, %rdi
 271 010c E8000000 		call	_ZNSolsEPFRSoS_E
 271      00
 272              	.LVL34:
 273              	.LBE5:
  44:polymorphic-fp.cpp **** 
 274              		.loc 1 44 0
 275 0111 4883C438 		addq	$56, %rsp
 276              		.cfi_def_cfa_offset 24
 277 0115 5B       		popq	%rbx
 278              		.cfi_def_cfa_offset 16
 279 0116 5D       		popq	%rbp
 280              		.cfi_def_cfa_offset 8
 281              	.LVL35:
GAS LISTING /tmp/ccZ3i3Rm.s 			page 9


 282 0117 C3       		ret
 283              		.cfi_endproc
 284              	.LFE1244:
 287              	_GLOBAL__sub_I__Z15setFieldToValue9onefieldP:
 288              	.LFB1412:
 289              		.loc 1 57 0
 290              		.cfi_startproc
 291 0118 4883EC08 		subq	$8, %rsp
 292              		.cfi_def_cfa_offset 16
 293              		.loc 1 57 0
 294 011c BEFFFF00 		movl	$65535, %esi
 294      00
 295 0121 BF010000 		movl	$1, %edi
 295      00
 296 0126 E8EFFEFF 		call	_Z41__static_initialization_and_destruction_0ii
 296      FF
 297              	.LVL36:
 298 012b 4883C408 		addq	$8, %rsp
 299              		.cfi_def_cfa_offset 8
 300 012f C3       		ret
 301              		.cfi_endproc
 302              	.LFE1412:
 304              		.section	.init_array,"aw"
 305              		.align 8
 306 0000 00000000 		.quad	_GLOBAL__sub_I__Z15setFieldToValue9onefieldP
 306      00000000 
 307              		.weak	_ZTS9onefieldP
 308              		.section	.rodata._ZTS9onefieldP,"aG",@progbits,_ZTS9onefieldP,comdat
 311              	_ZTS9onefieldP:
 312 0000 396F6E65 		.string	"9onefieldP"
 312      6669656C 
 312      645000
 313              		.weak	_ZTI9onefieldP
 314              		.section	.rodata._ZTI9onefieldP,"aG",@progbits,_ZTI9onefieldP,comdat
 315              		.align 16
 318              	_ZTI9onefieldP:
 319 0000 00000000 		.quad	_ZTVN10__cxxabiv117__class_type_infoE+16
 319      00000000 
 320 0008 00000000 		.quad	_ZTS9onefieldP
 320      00000000 
 321              		.weak	_ZTS18onefieldP_subclass
 322              		.section	.rodata._ZTS18onefieldP_subclass,"aG",@progbits,_ZTS18onefieldP_subclass,comdat
 323              		.align 16
 326              	_ZTS18onefieldP_subclass:
 327 0000 31386F6E 		.string	"18onefieldP_subclass"
 327      65666965 
 327      6C64505F 
 327      73756263 
 327      6C617373 
 328              		.weak	_ZTI18onefieldP_subclass
 329              		.section	.rodata._ZTI18onefieldP_subclass,"aG",@progbits,_ZTI18onefieldP_subclass,comdat
 330              		.align 16
 333              	_ZTI18onefieldP_subclass:
 334 0000 00000000 		.quad	_ZTVN10__cxxabiv120__si_class_type_infoE+16
 334      00000000 
 335 0008 00000000 		.quad	_ZTS18onefieldP_subclass
 335      00000000 
GAS LISTING /tmp/ccZ3i3Rm.s 			page 10


 336 0010 00000000 		.quad	_ZTI9onefieldP
 336      00000000 
 337              		.weak	_ZTV9onefieldP
 338              		.section	.rodata._ZTV9onefieldP,"aG",@progbits,_ZTV9onefieldP,comdat
 339              		.align 32
 342              	_ZTV9onefieldP:
 343 0000 00000000 		.quad	0
 343      00000000 
 344 0008 00000000 		.quad	_ZTI9onefieldP
 344      00000000 
 345 0010 00000000 		.quad	_ZN9onefieldP8setFieldEi
 345      00000000 
 346 0018 00000000 		.quad	_ZNK9onefieldP8getFieldEv
 346      00000000 
 347              		.weak	_ZTV18onefieldP_subclass
 348              		.section	.rodata._ZTV18onefieldP_subclass,"aG",@progbits,_ZTV18onefieldP_subclass,comdat
 349              		.align 32
 352              	_ZTV18onefieldP_subclass:
 353 0000 00000000 		.quad	0
 353      00000000 
 354 0008 00000000 		.quad	_ZTI18onefieldP_subclass
 354      00000000 
 355 0010 00000000 		.quad	_ZN18onefieldP_subclass8setFieldEi
 355      00000000 
 356 0018 00000000 		.quad	_ZNK9onefieldP8getFieldEv
 356      00000000 
 357              		.local	_ZStL8__ioinit
 358              		.comm	_ZStL8__ioinit,1,1
 359              		.text
 360              	.Letext0:
 361              		.file 3 "/usr/include/libio.h"
 362              		.file 4 "/usr/include/stdio.h"
 363              		.file 5 "<built-in>"
 364              		.file 6 "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h"
 365              		.file 7 "/usr/include/wchar.h"
 366              		.file 8 "/usr/include/c++/4.8/cwchar"
 367              		.file 9 "/usr/include/c++/4.8/bits/exception_ptr.h"
 368              		.file 10 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h"
 369              		.file 11 "/usr/include/c++/4.8/bits/char_traits.h"
 370              		.file 12 "/usr/include/c++/4.8/cstdint"
 371              		.file 13 "/usr/include/c++/4.8/clocale"
 372              		.file 14 "/usr/include/c++/4.8/cstdlib"
 373              		.file 15 "/usr/include/c++/4.8/cstdio"
 374              		.file 16 "/usr/include/c++/4.8/bits/ios_base.h"
 375              		.file 17 "/usr/include/c++/4.8/cwctype"
 376              		.file 18 "/usr/include/c++/4.8/bits/ostream.tcc"
 377              		.file 19 "/usr/include/c++/4.8/ostream"
 378              		.file 20 "/usr/include/c++/4.8/iosfwd"
 379              		.file 21 "/usr/include/x86_64-linux-gnu/bits/wchar2.h"
 380              		.file 22 "/usr/include/time.h"
 381              		.file 23 "/usr/include/c++/4.8/ext/new_allocator.h"
 382              		.file 24 "/usr/include/c++/4.8/ext/numeric_traits.h"
 383              		.file 25 "/usr/include/c++/4.8/debug/debug.h"
 384              		.file 26 "/usr/include/stdint.h"
 385              		.file 27 "/usr/include/locale.h"
 386              		.file 28 "/usr/include/x86_64-linux-gnu/bits/types.h"
 387              		.file 29 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/atomic_word.h"
GAS LISTING /tmp/ccZ3i3Rm.s 			page 11


 388              		.file 30 "/usr/include/stdlib.h"
 389              		.file 31 "/usr/include/x86_64-linux-gnu/bits/stdlib.h"
 390              		.file 32 "/usr/include/_G_config.h"
 391              		.file 33 "/usr/include/x86_64-linux-gnu/bits/stdio2.h"
 392              		.file 34 "/usr/include/wctype.h"
 393              		.file 35 "/usr/include/c++/4.8/new"
 394              		.file 36 "/usr/include/c++/4.8/bits/stl_pair.h"
GAS LISTING /tmp/ccZ3i3Rm.s 			page 12


DEFINED SYMBOLS
                            *ABS*:0000000000000000 polymorphic-fp.cpp
     /tmp/ccZ3i3Rm.s:7      .text:0000000000000000 _ZN9onefieldP8setFieldEi
     /tmp/ccZ3i3Rm.s:22     .text:0000000000000004 _ZNK9onefieldP8getFieldEv
     /tmp/ccZ3i3Rm.s:37     .text:0000000000000008 _ZN18onefieldP_subclass8setFieldEi
     /tmp/ccZ3i3Rm.s:67     .text:000000000000001a _Z41__static_initialization_and_destruction_0ii
                             .bss:0000000000000000 _ZStL8__ioinit
     /tmp/ccZ3i3Rm.s:101    .text:000000000000004e _Z15setFieldToValue9onefieldP
     /tmp/ccZ3i3Rm.s:118    .text._ZN9onefieldPC2Ev:0000000000000000 _ZN9onefieldPC2Ev
     /tmp/ccZ3i3Rm.s:342    .rodata._ZTV9onefieldP:0000000000000000 _ZTV9onefieldP
     /tmp/ccZ3i3Rm.s:118    .text._ZN9onefieldPC2Ev:0000000000000000 _ZN9onefieldPC1Ev
     /tmp/ccZ3i3Rm.s:137    .text._ZN18onefieldP_subclassC2Ev:0000000000000000 _ZN18onefieldP_subclassC2Ev
     /tmp/ccZ3i3Rm.s:352    .rodata._ZTV18onefieldP_subclass:0000000000000000 _ZTV18onefieldP_subclass
     /tmp/ccZ3i3Rm.s:137    .text._ZN18onefieldP_subclassC2Ev:0000000000000000 _ZN18onefieldP_subclassC1Ev
     /tmp/ccZ3i3Rm.s:165    .text._ZN9onefieldPC2ERKS_:0000000000000000 _ZN9onefieldPC2ERKS_
     /tmp/ccZ3i3Rm.s:165    .text._ZN9onefieldPC2ERKS_:0000000000000000 _ZN9onefieldPC1ERKS_
     /tmp/ccZ3i3Rm.s:188    .text:000000000000005a _Z13polymorphicFpv
     /tmp/ccZ3i3Rm.s:287    .text:0000000000000118 _GLOBAL__sub_I__Z15setFieldToValue9onefieldP
     /tmp/ccZ3i3Rm.s:311    .rodata._ZTS9onefieldP:0000000000000000 _ZTS9onefieldP
     /tmp/ccZ3i3Rm.s:318    .rodata._ZTI9onefieldP:0000000000000000 _ZTI9onefieldP
     /tmp/ccZ3i3Rm.s:326    .rodata._ZTS18onefieldP_subclass:0000000000000000 _ZTS18onefieldP_subclass
     /tmp/ccZ3i3Rm.s:333    .rodata._ZTI18onefieldP_subclass:0000000000000000 _ZTI18onefieldP_subclass
                           .group:0000000000000000 _ZN9onefieldPC5Ev
                           .group:0000000000000000 _ZN18onefieldP_subclassC5Ev
                           .group:0000000000000000 _ZN9onefieldPC5ERKS_

UNDEFINED SYMBOLS
_ZNSt8ios_base4InitC1Ev
__dso_handle
_ZNSt8ios_base4InitD1Ev
__cxa_atexit
_Znwm
_ZdlPv
_ZSt4cout
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
_ZNSolsEi
_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
_ZNSolsEPFRSoS_E
_ZTVN10__cxxabiv117__class_type_infoE
_ZTVN10__cxxabiv120__si_class_type_infoE