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 <iostream> 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