GAS LISTING /tmp/ccnpTmNT.s 			page 1


   1              		.file	"initialization-list.cpp"
   2              		.text
   3              	.Ltext0:
   5              	_Z41__static_initialization_and_destruction_0ii:
   6              	.LFB1826:
   7              		.file 1 "initialization-list.cpp"
   1:initialization-list.cpp **** #include <iostream>
   2:initialization-list.cpp **** #include <vector>
   3:initialization-list.cpp **** 
   4:initialization-list.cpp **** 
   5:initialization-list.cpp **** 
   6:initialization-list.cpp **** void initializationList() {
   7:initialization-list.cpp ****   std::vector<int> v = { 11, 13, 17 };
   8:initialization-list.cpp **** 
   9:initialization-list.cpp ****   std::cout << "initializationList" << v[1] << std::endl;
  10:initialization-list.cpp **** }
   8              		.loc 1 10 0
   9              		.cfi_startproc
  10              	.LVL0:
  11 0000 83FF01   		cmpl	$1, %edi
  12 0003 752E     		jne	.L5
  13              		.loc 1 10 0 discriminator 1
  14 0005 81FEFFFF 		cmpl	$65535, %esi
  14      0000
  15 000b 7526     		jne	.L5
  16              		.loc 1 10 0 is_stmt 0
  17 000d 4883EC08 		subq	$8, %rsp
  18              		.cfi_def_cfa_offset 16
  19              		.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 **** 
GAS LISTING /tmp/ccnpTmNT.s 			page 2


  29:/usr/include/c++/4.8/iostream **** //
  30:/usr/include/c++/4.8/iostream **** // ISO C++ 14882: 27.3  Standard iostream objects
  31:/usr/include/c++/4.8/iostream **** //
  32:/usr/include/c++/4.8/iostream **** 
  33:/usr/include/c++/4.8/iostream **** #ifndef _GLIBCXX_IOSTREAM
  34:/usr/include/c++/4.8/iostream **** #define _GLIBCXX_IOSTREAM 1
  35:/usr/include/c++/4.8/iostream **** 
  36:/usr/include/c++/4.8/iostream **** #pragma GCC system_header
  37:/usr/include/c++/4.8/iostream **** 
  38:/usr/include/c++/4.8/iostream **** #include <bits/c++config.h>
  39:/usr/include/c++/4.8/iostream **** #include <ostream>
  40:/usr/include/c++/4.8/iostream **** #include <istream>
  41:/usr/include/c++/4.8/iostream **** 
  42:/usr/include/c++/4.8/iostream **** namespace std _GLIBCXX_VISIBILITY(default)
  43:/usr/include/c++/4.8/iostream **** {
  44:/usr/include/c++/4.8/iostream **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  45:/usr/include/c++/4.8/iostream **** 
  46:/usr/include/c++/4.8/iostream ****   /**
  47:/usr/include/c++/4.8/iostream ****    *  @name Standard Stream Objects
  48:/usr/include/c++/4.8/iostream ****    *
  49:/usr/include/c++/4.8/iostream ****    *  The &lt;iostream&gt; header declares the eight <em>standard stream
  50:/usr/include/c++/4.8/iostream ****    *  objects</em>.  For other declarations, see
  51:/usr/include/c++/4.8/iostream ****    *  http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html
  52:/usr/include/c++/4.8/iostream ****    *  and the @link iosfwd I/O forward declarations @endlink
  53:/usr/include/c++/4.8/iostream ****    *
  54:/usr/include/c++/4.8/iostream ****    *  They are required by default to cooperate with the global C
  55:/usr/include/c++/4.8/iostream ****    *  library's @c FILE streams, and to be available during program
  56:/usr/include/c++/4.8/iostream ****    *  startup and termination. For more information, see the HOWTO
  57:/usr/include/c++/4.8/iostream ****    *  linked to above.
  58:/usr/include/c++/4.8/iostream ****   */
  59:/usr/include/c++/4.8/iostream ****   //@{
  60:/usr/include/c++/4.8/iostream ****   extern istream cin;		/// Linked to standard input
  61:/usr/include/c++/4.8/iostream ****   extern ostream cout;		/// Linked to standard output
  62:/usr/include/c++/4.8/iostream ****   extern ostream cerr;		/// Linked to standard error (unbuffered)
  63:/usr/include/c++/4.8/iostream ****   extern ostream clog;		/// Linked to standard error (buffered)
  64:/usr/include/c++/4.8/iostream **** 
  65:/usr/include/c++/4.8/iostream **** #ifdef _GLIBCXX_USE_WCHAR_T
  66:/usr/include/c++/4.8/iostream ****   extern wistream wcin;		/// Linked to standard input
  67:/usr/include/c++/4.8/iostream ****   extern wostream wcout;	/// Linked to standard output
  68:/usr/include/c++/4.8/iostream ****   extern wostream wcerr;	/// Linked to standard error (unbuffered)
  69:/usr/include/c++/4.8/iostream ****   extern wostream wclog;	/// Linked to standard error (buffered)
  70:/usr/include/c++/4.8/iostream **** #endif
  71:/usr/include/c++/4.8/iostream ****   //@}
  72:/usr/include/c++/4.8/iostream **** 
  73:/usr/include/c++/4.8/iostream ****   // For construction of filebuffers for cout, cin, cerr, clog et. al.
  74:/usr/include/c++/4.8/iostream ****   static ios_base::Init __ioinit;
  20              		.loc 2 74 0 is_stmt 1
  21 0011 BF000000 		movl	$_ZStL8__ioinit, %edi
  21      00
  22              	.LVL1:
  23 0016 E8000000 		call	_ZNSt8ios_base4InitC1Ev
  23      00
  24              	.LVL2:
  25 001b BA000000 		movl	$__dso_handle, %edx
  25      00
  26 0020 BE000000 		movl	$_ZStL8__ioinit, %esi
  26      00
GAS LISTING /tmp/ccnpTmNT.s 			page 3


  27 0025 BF000000 		movl	$_ZNSt8ios_base4InitD1Ev, %edi
  27      00
  28 002a E8000000 		call	__cxa_atexit
  28      00
  29              	.LVL3:
  30              		.loc 1 10 0
  31 002f 4883C408 		addq	$8, %rsp
  32              		.cfi_def_cfa_offset 8
  33              	.L5:
  34 0033 C3       		ret
  35              		.cfi_endproc
  36              	.LFE1826:
  38              		.section	.text._ZNKSt16initializer_listIiE5beginEv,"axG",@progbits,_ZNKSt16initializer_listIiE5beg
  39              		.align 2
  40              		.weak	_ZNKSt16initializer_listIiE5beginEv
  42              	_ZNKSt16initializer_listIiE5beginEv:
  43              	.LFB1665:
  44              		.file 3 "/usr/include/c++/4.8/initializer_list"
   1:/usr/include/c++/4.8/initializer_list **** // std::initializer_list support -*- C++ -*-
   2:/usr/include/c++/4.8/initializer_list **** 
   3:/usr/include/c++/4.8/initializer_list **** // Copyright (C) 2008-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/initializer_list **** //
   5:/usr/include/c++/4.8/initializer_list **** // This file is part of GCC.
   6:/usr/include/c++/4.8/initializer_list **** //
   7:/usr/include/c++/4.8/initializer_list **** // GCC is free software; you can redistribute it and/or modify
   8:/usr/include/c++/4.8/initializer_list **** // it under the terms of the GNU General Public License as published by
   9:/usr/include/c++/4.8/initializer_list **** // the Free Software Foundation; either version 3, or (at your option)
  10:/usr/include/c++/4.8/initializer_list **** // any later version.
  11:/usr/include/c++/4.8/initializer_list **** //
  12:/usr/include/c++/4.8/initializer_list **** // GCC is distributed in the hope that it will be useful,
  13:/usr/include/c++/4.8/initializer_list **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/usr/include/c++/4.8/initializer_list **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15:/usr/include/c++/4.8/initializer_list **** // GNU General Public License for more details.
  16:/usr/include/c++/4.8/initializer_list **** //
  17:/usr/include/c++/4.8/initializer_list **** // Under Section 7 of GPL version 3, you are granted additional
  18:/usr/include/c++/4.8/initializer_list **** // permissions described in the GCC Runtime Library Exception, version
  19:/usr/include/c++/4.8/initializer_list **** // 3.1, as published by the Free Software Foundation.
  20:/usr/include/c++/4.8/initializer_list **** 
  21:/usr/include/c++/4.8/initializer_list **** // You should have received a copy of the GNU General Public License and
  22:/usr/include/c++/4.8/initializer_list **** // a copy of the GCC Runtime Library Exception along with this program;
  23:/usr/include/c++/4.8/initializer_list **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  24:/usr/include/c++/4.8/initializer_list **** // <http://www.gnu.org/licenses/>.
  25:/usr/include/c++/4.8/initializer_list **** 
  26:/usr/include/c++/4.8/initializer_list **** /** @file initializer_list
  27:/usr/include/c++/4.8/initializer_list ****  *  This is a Standard C++ Library header.
  28:/usr/include/c++/4.8/initializer_list ****  */
  29:/usr/include/c++/4.8/initializer_list **** 
  30:/usr/include/c++/4.8/initializer_list **** #ifndef _INITIALIZER_LIST
  31:/usr/include/c++/4.8/initializer_list **** #define _INITIALIZER_LIST
  32:/usr/include/c++/4.8/initializer_list **** 
  33:/usr/include/c++/4.8/initializer_list **** #pragma GCC system_header
  34:/usr/include/c++/4.8/initializer_list **** 
  35:/usr/include/c++/4.8/initializer_list **** #if __cplusplus < 201103L
  36:/usr/include/c++/4.8/initializer_list **** # include <bits/c++0x_warning.h>
  37:/usr/include/c++/4.8/initializer_list **** #else // C++0x
  38:/usr/include/c++/4.8/initializer_list **** 
  39:/usr/include/c++/4.8/initializer_list **** #pragma GCC visibility push(default)
GAS LISTING /tmp/ccnpTmNT.s 			page 4


  40:/usr/include/c++/4.8/initializer_list **** 
  41:/usr/include/c++/4.8/initializer_list **** #include <bits/c++config.h>
  42:/usr/include/c++/4.8/initializer_list **** 
  43:/usr/include/c++/4.8/initializer_list **** namespace std
  44:/usr/include/c++/4.8/initializer_list **** {
  45:/usr/include/c++/4.8/initializer_list ****   /// initializer_list
  46:/usr/include/c++/4.8/initializer_list ****   template<class _E>
  47:/usr/include/c++/4.8/initializer_list ****     class initializer_list
  48:/usr/include/c++/4.8/initializer_list ****     {
  49:/usr/include/c++/4.8/initializer_list ****     public:
  50:/usr/include/c++/4.8/initializer_list ****       typedef _E 		value_type;
  51:/usr/include/c++/4.8/initializer_list ****       typedef const _E& 	reference;
  52:/usr/include/c++/4.8/initializer_list ****       typedef const _E& 	const_reference;
  53:/usr/include/c++/4.8/initializer_list ****       typedef size_t 		size_type;
  54:/usr/include/c++/4.8/initializer_list ****       typedef const _E* 	iterator;
  55:/usr/include/c++/4.8/initializer_list ****       typedef const _E* 	const_iterator;
  56:/usr/include/c++/4.8/initializer_list **** 
  57:/usr/include/c++/4.8/initializer_list ****     private:
  58:/usr/include/c++/4.8/initializer_list ****       iterator			_M_array;
  59:/usr/include/c++/4.8/initializer_list ****       size_type			_M_len;
  60:/usr/include/c++/4.8/initializer_list **** 
  61:/usr/include/c++/4.8/initializer_list ****       // The compiler can call a private constructor.
  62:/usr/include/c++/4.8/initializer_list ****       constexpr initializer_list(const_iterator __a, size_type __l)
  63:/usr/include/c++/4.8/initializer_list ****       : _M_array(__a), _M_len(__l) { }
  64:/usr/include/c++/4.8/initializer_list **** 
  65:/usr/include/c++/4.8/initializer_list ****     public:
  66:/usr/include/c++/4.8/initializer_list ****       constexpr initializer_list() noexcept
  67:/usr/include/c++/4.8/initializer_list ****       : _M_array(0), _M_len(0) { }
  68:/usr/include/c++/4.8/initializer_list **** 
  69:/usr/include/c++/4.8/initializer_list ****       // Number of elements.
  70:/usr/include/c++/4.8/initializer_list ****       constexpr size_type
  71:/usr/include/c++/4.8/initializer_list ****       size() const noexcept { return _M_len; }
  72:/usr/include/c++/4.8/initializer_list **** 
  73:/usr/include/c++/4.8/initializer_list ****       // First element.
  74:/usr/include/c++/4.8/initializer_list ****       constexpr const_iterator
  75:/usr/include/c++/4.8/initializer_list ****       begin() const noexcept { return _M_array; }
  45              		.loc 3 75 0
  46              		.cfi_startproc
  47              	.LVL4:
  48              		.loc 3 75 0
  49 0000 488B07   		movq	(%rdi), %rax
  50 0003 C3       		ret
  51              		.cfi_endproc
  52              	.LFE1665:
  54              		.section	.text._ZNKSt16initializer_listIiE4sizeEv,"axG",@progbits,_ZNKSt16initializer_listIiE4size
  55              		.align 2
  56              		.weak	_ZNKSt16initializer_listIiE4sizeEv
  58              	_ZNKSt16initializer_listIiE4sizeEv:
  59              	.LFB1667:
  71:/usr/include/c++/4.8/initializer_list **** 
  60              		.loc 3 71 0
  61              		.cfi_startproc
  62              	.LVL5:
  71:/usr/include/c++/4.8/initializer_list **** 
  63              		.loc 3 71 0
  64 0000 488B4708 		movq	8(%rdi), %rax
  65 0004 C3       		ret
GAS LISTING /tmp/ccnpTmNT.s 			page 5


  66              		.cfi_endproc
  67              	.LFE1667:
  69              		.section	.text._ZNKSt16initializer_listIiE3endEv,"axG",@progbits,_ZNKSt16initializer_listIiE3endEv
  70              		.align 2
  71              		.weak	_ZNKSt16initializer_listIiE3endEv
  73              	_ZNKSt16initializer_listIiE3endEv:
  74              	.LFB1666:
  76:/usr/include/c++/4.8/initializer_list **** 
  77:/usr/include/c++/4.8/initializer_list ****       // One past the last element.
  78:/usr/include/c++/4.8/initializer_list ****       constexpr const_iterator
  79:/usr/include/c++/4.8/initializer_list ****       end() const noexcept { return begin() + size(); }
  75              		.loc 3 79 0
  76              		.cfi_startproc
  77              	.LVL6:
  78 0000 55       		pushq	%rbp
  79              		.cfi_def_cfa_offset 16
  80              		.cfi_offset 6, -16
  81 0001 53       		pushq	%rbx
  82              		.cfi_def_cfa_offset 24
  83              		.cfi_offset 3, -24
  84 0002 4883EC08 		subq	$8, %rsp
  85              		.cfi_def_cfa_offset 32
  86 0006 4889FB   		movq	%rdi, %rbx
  87              		.loc 3 79 0
  88 0009 E8000000 		call	_ZNKSt16initializer_listIiE5beginEv
  88      00
  89              	.LVL7:
  90 000e 4889C5   		movq	%rax, %rbp
  91 0011 4889DF   		movq	%rbx, %rdi
  92 0014 E8000000 		call	_ZNKSt16initializer_listIiE4sizeEv
  92      00
  93              	.LVL8:
  94 0019 488D4485 		leaq	0(%rbp,%rax,4), %rax
  94      00
  95 001e 4883C408 		addq	$8, %rsp
  96              		.cfi_def_cfa_offset 24
  97 0022 5B       		popq	%rbx
  98              		.cfi_def_cfa_offset 16
  99              	.LVL9:
 100 0023 5D       		popq	%rbp
 101              		.cfi_def_cfa_offset 8
 102 0024 C3       		ret
 103              		.cfi_endproc
 104              	.LFE1666:
 106              		.section	.text._ZNSt6vectorIiSaIiEEixEm,"axG",@progbits,_ZNSt6vectorIiSaIiEEixEm,comdat
 107              		.align 2
 108              		.weak	_ZNSt6vectorIiSaIiEEixEm
 110              	_ZNSt6vectorIiSaIiEEixEm:
 111              	.LFB1674:
 112              		.file 4 "/usr/include/c++/4.8/bits/stl_vector.h"
   1:/usr/include/c++/4.8/bits/stl_vector.h **** // Vector implementation -*- C++ -*-
   2:/usr/include/c++/4.8/bits/stl_vector.h **** 
   3:/usr/include/c++/4.8/bits/stl_vector.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/stl_vector.h **** //
   5:/usr/include/c++/4.8/bits/stl_vector.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/stl_vector.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/stl_vector.h **** // terms of the GNU General Public License as published by the
GAS LISTING /tmp/ccnpTmNT.s 			page 6


   8:/usr/include/c++/4.8/bits/stl_vector.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/stl_vector.h **** // any later version.
  10:/usr/include/c++/4.8/bits/stl_vector.h **** 
  11:/usr/include/c++/4.8/bits/stl_vector.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/stl_vector.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/stl_vector.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/stl_vector.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/stl_vector.h **** 
  16:/usr/include/c++/4.8/bits/stl_vector.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/stl_vector.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/stl_vector.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/stl_vector.h **** 
  20:/usr/include/c++/4.8/bits/stl_vector.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/stl_vector.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/stl_vector.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/stl_vector.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/stl_vector.h **** 
  25:/usr/include/c++/4.8/bits/stl_vector.h **** /*
  26:/usr/include/c++/4.8/bits/stl_vector.h ****  *
  27:/usr/include/c++/4.8/bits/stl_vector.h ****  * Copyright (c) 1994
  28:/usr/include/c++/4.8/bits/stl_vector.h ****  * Hewlett-Packard Company
  29:/usr/include/c++/4.8/bits/stl_vector.h ****  *
  30:/usr/include/c++/4.8/bits/stl_vector.h ****  * Permission to use, copy, modify, distribute and sell this software
  31:/usr/include/c++/4.8/bits/stl_vector.h ****  * and its documentation for any purpose is hereby granted without fee,
  32:/usr/include/c++/4.8/bits/stl_vector.h ****  * provided that the above copyright notice appear in all copies and
  33:/usr/include/c++/4.8/bits/stl_vector.h ****  * that both that copyright notice and this permission notice appear
  34:/usr/include/c++/4.8/bits/stl_vector.h ****  * in supporting documentation.  Hewlett-Packard Company makes no
  35:/usr/include/c++/4.8/bits/stl_vector.h ****  * representations about the suitability of this software for any
  36:/usr/include/c++/4.8/bits/stl_vector.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  37:/usr/include/c++/4.8/bits/stl_vector.h ****  *
  38:/usr/include/c++/4.8/bits/stl_vector.h ****  *
  39:/usr/include/c++/4.8/bits/stl_vector.h ****  * Copyright (c) 1996
  40:/usr/include/c++/4.8/bits/stl_vector.h ****  * Silicon Graphics Computer Systems, Inc.
  41:/usr/include/c++/4.8/bits/stl_vector.h ****  *
  42:/usr/include/c++/4.8/bits/stl_vector.h ****  * Permission to use, copy, modify, distribute and sell this software
  43:/usr/include/c++/4.8/bits/stl_vector.h ****  * and its documentation for any purpose is hereby granted without fee,
  44:/usr/include/c++/4.8/bits/stl_vector.h ****  * provided that the above copyright notice appear in all copies and
  45:/usr/include/c++/4.8/bits/stl_vector.h ****  * that both that copyright notice and this permission notice appear
  46:/usr/include/c++/4.8/bits/stl_vector.h ****  * in supporting documentation.  Silicon Graphics makes no
  47:/usr/include/c++/4.8/bits/stl_vector.h ****  * representations about the suitability of this  software for any
  48:/usr/include/c++/4.8/bits/stl_vector.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  49:/usr/include/c++/4.8/bits/stl_vector.h ****  */
  50:/usr/include/c++/4.8/bits/stl_vector.h **** 
  51:/usr/include/c++/4.8/bits/stl_vector.h **** /** @file bits/stl_vector.h
  52:/usr/include/c++/4.8/bits/stl_vector.h ****  *  This is an internal header file, included by other library headers.
  53:/usr/include/c++/4.8/bits/stl_vector.h ****  *  Do not attempt to use it directly. @headername{vector}
  54:/usr/include/c++/4.8/bits/stl_vector.h ****  */
  55:/usr/include/c++/4.8/bits/stl_vector.h **** 
  56:/usr/include/c++/4.8/bits/stl_vector.h **** #ifndef _STL_VECTOR_H
  57:/usr/include/c++/4.8/bits/stl_vector.h **** #define _STL_VECTOR_H 1
  58:/usr/include/c++/4.8/bits/stl_vector.h **** 
  59:/usr/include/c++/4.8/bits/stl_vector.h **** #include <bits/stl_iterator_base_funcs.h>
  60:/usr/include/c++/4.8/bits/stl_vector.h **** #include <bits/functexcept.h>
  61:/usr/include/c++/4.8/bits/stl_vector.h **** #include <bits/concept_check.h>
  62:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
  63:/usr/include/c++/4.8/bits/stl_vector.h **** #include <initializer_list>
  64:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
GAS LISTING /tmp/ccnpTmNT.s 			page 7


  65:/usr/include/c++/4.8/bits/stl_vector.h **** 
  66:/usr/include/c++/4.8/bits/stl_vector.h **** namespace std _GLIBCXX_VISIBILITY(default)
  67:/usr/include/c++/4.8/bits/stl_vector.h **** {
  68:/usr/include/c++/4.8/bits/stl_vector.h **** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
  69:/usr/include/c++/4.8/bits/stl_vector.h **** 
  70:/usr/include/c++/4.8/bits/stl_vector.h ****   /// See bits/stl_deque.h's _Deque_base for an explanation.
  71:/usr/include/c++/4.8/bits/stl_vector.h ****   template<typename _Tp, typename _Alloc>
  72:/usr/include/c++/4.8/bits/stl_vector.h ****     struct _Vector_base
  73:/usr/include/c++/4.8/bits/stl_vector.h ****     {
  74:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
  75:/usr/include/c++/4.8/bits/stl_vector.h ****         rebind<_Tp>::other _Tp_alloc_type;
  76:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer
  77:/usr/include/c++/4.8/bits/stl_vector.h ****        	pointer;
  78:/usr/include/c++/4.8/bits/stl_vector.h **** 
  79:/usr/include/c++/4.8/bits/stl_vector.h ****       struct _Vector_impl 
  80:/usr/include/c++/4.8/bits/stl_vector.h ****       : public _Tp_alloc_type
  81:/usr/include/c++/4.8/bits/stl_vector.h ****       {
  82:/usr/include/c++/4.8/bits/stl_vector.h **** 	pointer _M_start;
  83:/usr/include/c++/4.8/bits/stl_vector.h **** 	pointer _M_finish;
  84:/usr/include/c++/4.8/bits/stl_vector.h **** 	pointer _M_end_of_storage;
  85:/usr/include/c++/4.8/bits/stl_vector.h **** 
  86:/usr/include/c++/4.8/bits/stl_vector.h **** 	_Vector_impl()
  87:/usr/include/c++/4.8/bits/stl_vector.h **** 	: _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0)
  88:/usr/include/c++/4.8/bits/stl_vector.h **** 	{ }
  89:/usr/include/c++/4.8/bits/stl_vector.h **** 
  90:/usr/include/c++/4.8/bits/stl_vector.h **** 	_Vector_impl(_Tp_alloc_type const& __a)
  91:/usr/include/c++/4.8/bits/stl_vector.h **** 	: _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
  92:/usr/include/c++/4.8/bits/stl_vector.h **** 	{ }
  93:/usr/include/c++/4.8/bits/stl_vector.h **** 
  94:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
  95:/usr/include/c++/4.8/bits/stl_vector.h **** 	_Vector_impl(_Tp_alloc_type&& __a)
  96:/usr/include/c++/4.8/bits/stl_vector.h **** 	: _Tp_alloc_type(std::move(__a)),
  97:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_start(0), _M_finish(0), _M_end_of_storage(0)
  98:/usr/include/c++/4.8/bits/stl_vector.h **** 	{ }
  99:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 100:/usr/include/c++/4.8/bits/stl_vector.h **** 
 101:/usr/include/c++/4.8/bits/stl_vector.h **** 	void _M_swap_data(_Vector_impl& __x)
 102:/usr/include/c++/4.8/bits/stl_vector.h **** 	{
 103:/usr/include/c++/4.8/bits/stl_vector.h **** 	  std::swap(_M_start, __x._M_start);
 104:/usr/include/c++/4.8/bits/stl_vector.h **** 	  std::swap(_M_finish, __x._M_finish);
 105:/usr/include/c++/4.8/bits/stl_vector.h **** 	  std::swap(_M_end_of_storage, __x._M_end_of_storage);
 106:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
 107:/usr/include/c++/4.8/bits/stl_vector.h ****       };
 108:/usr/include/c++/4.8/bits/stl_vector.h ****       
 109:/usr/include/c++/4.8/bits/stl_vector.h ****     public:
 110:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef _Alloc allocator_type;
 111:/usr/include/c++/4.8/bits/stl_vector.h **** 
 112:/usr/include/c++/4.8/bits/stl_vector.h ****       _Tp_alloc_type&
 113:/usr/include/c++/4.8/bits/stl_vector.h ****       _M_get_Tp_allocator() _GLIBCXX_NOEXCEPT
 114:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
 115:/usr/include/c++/4.8/bits/stl_vector.h **** 
 116:/usr/include/c++/4.8/bits/stl_vector.h ****       const _Tp_alloc_type&
 117:/usr/include/c++/4.8/bits/stl_vector.h ****       _M_get_Tp_allocator() const _GLIBCXX_NOEXCEPT
 118:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
 119:/usr/include/c++/4.8/bits/stl_vector.h **** 
 120:/usr/include/c++/4.8/bits/stl_vector.h ****       allocator_type
 121:/usr/include/c++/4.8/bits/stl_vector.h ****       get_allocator() const _GLIBCXX_NOEXCEPT
GAS LISTING /tmp/ccnpTmNT.s 			page 8


 122:/usr/include/c++/4.8/bits/stl_vector.h ****       { return allocator_type(_M_get_Tp_allocator()); }
 123:/usr/include/c++/4.8/bits/stl_vector.h **** 
 124:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base()
 125:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl() { }
 126:/usr/include/c++/4.8/bits/stl_vector.h **** 
 127:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base(const allocator_type& __a)
 128:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(__a) { }
 129:/usr/include/c++/4.8/bits/stl_vector.h **** 
 130:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base(size_t __n)
 131:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl()
 132:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_create_storage(__n); }
 133:/usr/include/c++/4.8/bits/stl_vector.h **** 
 134:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base(size_t __n, const allocator_type& __a)
 135:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(__a)
 136:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_create_storage(__n); }
 137:/usr/include/c++/4.8/bits/stl_vector.h **** 
 138:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 139:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base(_Tp_alloc_type&& __a)
 140:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(std::move(__a)) { }
 141:/usr/include/c++/4.8/bits/stl_vector.h **** 
 142:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base(_Vector_base&& __x)
 143:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(std::move(__x._M_get_Tp_allocator()))
 144:/usr/include/c++/4.8/bits/stl_vector.h ****       { this->_M_impl._M_swap_data(__x._M_impl); }
 145:/usr/include/c++/4.8/bits/stl_vector.h **** 
 146:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_base(_Vector_base&& __x, const allocator_type& __a)
 147:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(__a)
 148:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 149:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__x.get_allocator() == __a)
 150:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_swap_data(__x._M_impl);
 151:/usr/include/c++/4.8/bits/stl_vector.h **** 	else
 152:/usr/include/c++/4.8/bits/stl_vector.h **** 	  {
 153:/usr/include/c++/4.8/bits/stl_vector.h **** 	    size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start;
 154:/usr/include/c++/4.8/bits/stl_vector.h **** 	    _M_create_storage(__n);
 155:/usr/include/c++/4.8/bits/stl_vector.h **** 	  }
 156:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 157:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 158:/usr/include/c++/4.8/bits/stl_vector.h **** 
 159:/usr/include/c++/4.8/bits/stl_vector.h ****       ~_Vector_base()
 160:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
 161:/usr/include/c++/4.8/bits/stl_vector.h **** 		      - this->_M_impl._M_start); }
 162:/usr/include/c++/4.8/bits/stl_vector.h **** 
 163:/usr/include/c++/4.8/bits/stl_vector.h ****     public:
 164:/usr/include/c++/4.8/bits/stl_vector.h ****       _Vector_impl _M_impl;
 165:/usr/include/c++/4.8/bits/stl_vector.h **** 
 166:/usr/include/c++/4.8/bits/stl_vector.h ****       pointer
 167:/usr/include/c++/4.8/bits/stl_vector.h ****       _M_allocate(size_t __n)
 168:/usr/include/c++/4.8/bits/stl_vector.h ****       { return __n != 0 ? _M_impl.allocate(__n) : 0; }
 169:/usr/include/c++/4.8/bits/stl_vector.h **** 
 170:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 171:/usr/include/c++/4.8/bits/stl_vector.h ****       _M_deallocate(pointer __p, size_t __n)
 172:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 173:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__p)
 174:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_impl.deallocate(__p, __n);
 175:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 176:/usr/include/c++/4.8/bits/stl_vector.h **** 
 177:/usr/include/c++/4.8/bits/stl_vector.h ****     private:
 178:/usr/include/c++/4.8/bits/stl_vector.h ****       void
GAS LISTING /tmp/ccnpTmNT.s 			page 9


 179:/usr/include/c++/4.8/bits/stl_vector.h ****       _M_create_storage(size_t __n)
 180:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 181:/usr/include/c++/4.8/bits/stl_vector.h **** 	this->_M_impl._M_start = this->_M_allocate(__n);
 182:/usr/include/c++/4.8/bits/stl_vector.h **** 	this->_M_impl._M_finish = this->_M_impl._M_start;
 183:/usr/include/c++/4.8/bits/stl_vector.h **** 	this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
 184:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 185:/usr/include/c++/4.8/bits/stl_vector.h ****     };
 186:/usr/include/c++/4.8/bits/stl_vector.h **** 
 187:/usr/include/c++/4.8/bits/stl_vector.h **** 
 188:/usr/include/c++/4.8/bits/stl_vector.h ****   /**
 189:/usr/include/c++/4.8/bits/stl_vector.h ****    *  @brief A standard container which offers fixed time access to
 190:/usr/include/c++/4.8/bits/stl_vector.h ****    *  individual elements in any order.
 191:/usr/include/c++/4.8/bits/stl_vector.h ****    *
 192:/usr/include/c++/4.8/bits/stl_vector.h ****    *  @ingroup sequences
 193:/usr/include/c++/4.8/bits/stl_vector.h ****    *
 194:/usr/include/c++/4.8/bits/stl_vector.h ****    *  @tparam _Tp  Type of element.
 195:/usr/include/c++/4.8/bits/stl_vector.h ****    *  @tparam _Alloc  Allocator type, defaults to allocator<_Tp>.
 196:/usr/include/c++/4.8/bits/stl_vector.h ****    *
 197:/usr/include/c++/4.8/bits/stl_vector.h ****    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
 198:/usr/include/c++/4.8/bits/stl_vector.h ****    *  <a href="tables.html#66">reversible container</a>, and a
 199:/usr/include/c++/4.8/bits/stl_vector.h ****    *  <a href="tables.html#67">sequence</a>, including the
 200:/usr/include/c++/4.8/bits/stl_vector.h ****    *  <a href="tables.html#68">optional sequence requirements</a> with the
 201:/usr/include/c++/4.8/bits/stl_vector.h ****    *  %exception of @c push_front and @c pop_front.
 202:/usr/include/c++/4.8/bits/stl_vector.h ****    *
 203:/usr/include/c++/4.8/bits/stl_vector.h ****    *  In some terminology a %vector can be described as a dynamic
 204:/usr/include/c++/4.8/bits/stl_vector.h ****    *  C-style array, it offers fast and efficient access to individual
 205:/usr/include/c++/4.8/bits/stl_vector.h ****    *  elements in any order and saves the user from worrying about
 206:/usr/include/c++/4.8/bits/stl_vector.h ****    *  memory and size allocation.  Subscripting ( @c [] ) access is
 207:/usr/include/c++/4.8/bits/stl_vector.h ****    *  also provided as with C-style arrays.
 208:/usr/include/c++/4.8/bits/stl_vector.h ****   */
 209:/usr/include/c++/4.8/bits/stl_vector.h ****   template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
 210:/usr/include/c++/4.8/bits/stl_vector.h ****     class vector : protected _Vector_base<_Tp, _Alloc>
 211:/usr/include/c++/4.8/bits/stl_vector.h ****     {
 212:/usr/include/c++/4.8/bits/stl_vector.h ****       // Concept requirements.
 213:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename _Alloc::value_type                _Alloc_value_type;
 214:/usr/include/c++/4.8/bits/stl_vector.h ****       __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
 215:/usr/include/c++/4.8/bits/stl_vector.h ****       __glibcxx_class_requires2(_Tp, _Alloc_value_type, _SameTypeConcept)
 216:/usr/include/c++/4.8/bits/stl_vector.h ****       
 217:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef _Vector_base<_Tp, _Alloc>			 _Base;
 218:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename _Base::_Tp_alloc_type		 _Tp_alloc_type;
 219:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type>  _Alloc_traits;
 220:/usr/include/c++/4.8/bits/stl_vector.h **** 
 221:/usr/include/c++/4.8/bits/stl_vector.h ****     public:
 222:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef _Tp					 value_type;
 223:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename _Base::pointer                    pointer;
 224:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename _Alloc_traits::const_pointer      const_pointer;
 225:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename _Alloc_traits::reference          reference;
 226:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef typename _Alloc_traits::const_reference    const_reference;
 227:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator;
 228:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef __gnu_cxx::__normal_iterator<const_pointer, vector>
 229:/usr/include/c++/4.8/bits/stl_vector.h ****       const_iterator;
 230:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef std::reverse_iterator<const_iterator>  const_reverse_iterator;
 231:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef std::reverse_iterator<iterator>		 reverse_iterator;
 232:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef size_t					 size_type;
 233:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef ptrdiff_t					 difference_type;
 234:/usr/include/c++/4.8/bits/stl_vector.h ****       typedef _Alloc                        		 allocator_type;
 235:/usr/include/c++/4.8/bits/stl_vector.h **** 
GAS LISTING /tmp/ccnpTmNT.s 			page 10


 236:/usr/include/c++/4.8/bits/stl_vector.h ****     protected:
 237:/usr/include/c++/4.8/bits/stl_vector.h ****       using _Base::_M_allocate;
 238:/usr/include/c++/4.8/bits/stl_vector.h ****       using _Base::_M_deallocate;
 239:/usr/include/c++/4.8/bits/stl_vector.h ****       using _Base::_M_impl;
 240:/usr/include/c++/4.8/bits/stl_vector.h ****       using _Base::_M_get_Tp_allocator;
 241:/usr/include/c++/4.8/bits/stl_vector.h **** 
 242:/usr/include/c++/4.8/bits/stl_vector.h ****     public:
 243:/usr/include/c++/4.8/bits/stl_vector.h ****       // [23.2.4.1] construct/copy/destroy
 244:/usr/include/c++/4.8/bits/stl_vector.h ****       // (assign() and get_allocator() are also listed in this section)
 245:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 246:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Default constructor creates no elements.
 247:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 248:/usr/include/c++/4.8/bits/stl_vector.h ****       vector()
 249:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base() { }
 250:/usr/include/c++/4.8/bits/stl_vector.h **** 
 251:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 252:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Creates a %vector with no elements.
 253:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __a  An allocator object.
 254:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 255:/usr/include/c++/4.8/bits/stl_vector.h ****       explicit
 256:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(const allocator_type& __a)
 257:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__a) { }
 258:/usr/include/c++/4.8/bits/stl_vector.h **** 
 259:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 260:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 261:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Creates a %vector with default constructed elements.
 262:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __n  The number of elements to initially create.
 263:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __a  An allocator.
 264:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 265:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This constructor fills the %vector with @a __n default
 266:/usr/include/c++/4.8/bits/stl_vector.h ****        *  constructed elements.
 267:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 268:/usr/include/c++/4.8/bits/stl_vector.h ****       explicit
 269:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(size_type __n, const allocator_type& __a = allocator_type())
 270:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__n, __a)
 271:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_default_initialize(__n); }
 272:/usr/include/c++/4.8/bits/stl_vector.h **** 
 273:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 274:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Creates a %vector with copies of an exemplar element.
 275:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __n  The number of elements to initially create.
 276:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __value  An element to copy.
 277:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __a  An allocator.
 278:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 279:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This constructor fills the %vector with @a __n copies of @a __value.
 280:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 281:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(size_type __n, const value_type& __value,
 282:/usr/include/c++/4.8/bits/stl_vector.h **** 	     const allocator_type& __a = allocator_type())
 283:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__n, __a)
 284:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_fill_initialize(__n, __value); }
 285:/usr/include/c++/4.8/bits/stl_vector.h **** #else
 286:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 287:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Creates a %vector with copies of an exemplar element.
 288:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __n  The number of elements to initially create.
 289:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __value  An element to copy.
 290:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __a  An allocator.
 291:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 292:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This constructor fills the %vector with @a __n copies of @a __value.
GAS LISTING /tmp/ccnpTmNT.s 			page 11


 293:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 294:/usr/include/c++/4.8/bits/stl_vector.h ****       explicit
 295:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(size_type __n, const value_type& __value = value_type(),
 296:/usr/include/c++/4.8/bits/stl_vector.h **** 	     const allocator_type& __a = allocator_type())
 297:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__n, __a)
 298:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_fill_initialize(__n, __value); }
 299:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 300:/usr/include/c++/4.8/bits/stl_vector.h **** 
 301:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 302:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  %Vector copy constructor.
 303:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  A %vector of identical element and allocator types.
 304:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 305:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The newly-created %vector uses a copy of the allocation
 306:/usr/include/c++/4.8/bits/stl_vector.h ****        *  object used by @a __x.  All the elements of @a __x are copied,
 307:/usr/include/c++/4.8/bits/stl_vector.h ****        *  but any extra memory in
 308:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @a __x (for fast expansion) will not be copied.
 309:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 310:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(const vector& __x)
 311:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__x.size(),
 312:/usr/include/c++/4.8/bits/stl_vector.h ****         _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator()))
 313:/usr/include/c++/4.8/bits/stl_vector.h ****       { this->_M_impl._M_finish =
 314:/usr/include/c++/4.8/bits/stl_vector.h **** 	  std::__uninitialized_copy_a(__x.begin(), __x.end(),
 315:/usr/include/c++/4.8/bits/stl_vector.h **** 				      this->_M_impl._M_start,
 316:/usr/include/c++/4.8/bits/stl_vector.h **** 				      _M_get_Tp_allocator());
 317:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 318:/usr/include/c++/4.8/bits/stl_vector.h **** 
 319:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 320:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 321:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  %Vector move constructor.
 322:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  A %vector of identical element and allocator types.
 323:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 324:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The newly-created %vector contains the exact contents of @a __x.
 325:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The contents of @a __x are a valid, but unspecified %vector.
 326:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 327:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(vector&& __x) noexcept
 328:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(std::move(__x)) { }
 329:/usr/include/c++/4.8/bits/stl_vector.h **** 
 330:/usr/include/c++/4.8/bits/stl_vector.h ****       /// Copy constructor with alternative allocator
 331:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(const vector& __x, const allocator_type& __a)
 332:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__x.size(), __a)
 333:/usr/include/c++/4.8/bits/stl_vector.h ****       { this->_M_impl._M_finish =
 334:/usr/include/c++/4.8/bits/stl_vector.h **** 	  std::__uninitialized_copy_a(__x.begin(), __x.end(),
 335:/usr/include/c++/4.8/bits/stl_vector.h **** 				      this->_M_impl._M_start,
 336:/usr/include/c++/4.8/bits/stl_vector.h **** 				      _M_get_Tp_allocator());
 337:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 338:/usr/include/c++/4.8/bits/stl_vector.h **** 
 339:/usr/include/c++/4.8/bits/stl_vector.h ****       /// Move constructor with alternative allocator
 340:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(vector&& __rv, const allocator_type& __m)
 341:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(std::move(__rv), __m)
 342:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 343:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__rv.get_allocator() != __m)
 344:/usr/include/c++/4.8/bits/stl_vector.h **** 	  {
 345:/usr/include/c++/4.8/bits/stl_vector.h **** 	    this->_M_impl._M_finish =
 346:/usr/include/c++/4.8/bits/stl_vector.h **** 	      std::__uninitialized_move_a(__rv.begin(), __rv.end(),
 347:/usr/include/c++/4.8/bits/stl_vector.h **** 					  this->_M_impl._M_start,
 348:/usr/include/c++/4.8/bits/stl_vector.h **** 					  _M_get_Tp_allocator());
 349:/usr/include/c++/4.8/bits/stl_vector.h **** 	    __rv.clear();
GAS LISTING /tmp/ccnpTmNT.s 			page 12


 350:/usr/include/c++/4.8/bits/stl_vector.h **** 	  }
 351:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 352:/usr/include/c++/4.8/bits/stl_vector.h **** 
 353:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 354:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Builds a %vector from an initializer list.
 355:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __l  An initializer_list.
 356:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __a  An allocator.
 357:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 358:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Create a %vector consisting of copies of the elements in the
 359:/usr/include/c++/4.8/bits/stl_vector.h ****        *  initializer_list @a __l.
 360:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 361:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This will call the element type's copy constructor N times
 362:/usr/include/c++/4.8/bits/stl_vector.h ****        *  (where N is @a __l.size()) and do no memory reallocation.
 363:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 364:/usr/include/c++/4.8/bits/stl_vector.h ****       vector(initializer_list<value_type> __l,
 365:/usr/include/c++/4.8/bits/stl_vector.h **** 	     const allocator_type& __a = allocator_type())
 366:/usr/include/c++/4.8/bits/stl_vector.h ****       : _Base(__a)
 367:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 368:/usr/include/c++/4.8/bits/stl_vector.h **** 	_M_range_initialize(__l.begin(), __l.end(),
 369:/usr/include/c++/4.8/bits/stl_vector.h **** 			    random_access_iterator_tag());
 370:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 371:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 372:/usr/include/c++/4.8/bits/stl_vector.h **** 
 373:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 374:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Builds a %vector from a range.
 375:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __first  An input iterator.
 376:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __last  An input iterator.
 377:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __a  An allocator.
 378:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 379:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Create a %vector consisting of copies of the elements from
 380:/usr/include/c++/4.8/bits/stl_vector.h ****        *  [first,last).
 381:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 382:/usr/include/c++/4.8/bits/stl_vector.h ****        *  If the iterators are forward, bidirectional, or
 383:/usr/include/c++/4.8/bits/stl_vector.h ****        *  random-access, then this will call the elements' copy
 384:/usr/include/c++/4.8/bits/stl_vector.h ****        *  constructor N times (where N is distance(first,last)) and do
 385:/usr/include/c++/4.8/bits/stl_vector.h ****        *  no memory reallocation.  But if only input iterators are
 386:/usr/include/c++/4.8/bits/stl_vector.h ****        *  used, then this will do at most 2N calls to the copy
 387:/usr/include/c++/4.8/bits/stl_vector.h ****        *  constructor, and logN memory reallocations.
 388:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 389:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 390:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator,
 391:/usr/include/c++/4.8/bits/stl_vector.h **** 	       typename = std::_RequireInputIter<_InputIterator>>
 392:/usr/include/c++/4.8/bits/stl_vector.h ****         vector(_InputIterator __first, _InputIterator __last,
 393:/usr/include/c++/4.8/bits/stl_vector.h **** 	       const allocator_type& __a = allocator_type())
 394:/usr/include/c++/4.8/bits/stl_vector.h **** 	: _Base(__a)
 395:/usr/include/c++/4.8/bits/stl_vector.h ****         { _M_initialize_dispatch(__first, __last, __false_type()); }
 396:/usr/include/c++/4.8/bits/stl_vector.h **** #else
 397:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator>
 398:/usr/include/c++/4.8/bits/stl_vector.h ****         vector(_InputIterator __first, _InputIterator __last,
 399:/usr/include/c++/4.8/bits/stl_vector.h **** 	       const allocator_type& __a = allocator_type())
 400:/usr/include/c++/4.8/bits/stl_vector.h **** 	: _Base(__a)
 401:/usr/include/c++/4.8/bits/stl_vector.h ****         {
 402:/usr/include/c++/4.8/bits/stl_vector.h **** 	  // Check whether it's an integral type.  If so, it's not an iterator.
 403:/usr/include/c++/4.8/bits/stl_vector.h **** 	  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
 404:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_initialize_dispatch(__first, __last, _Integral());
 405:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
 406:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
GAS LISTING /tmp/ccnpTmNT.s 			page 13


 407:/usr/include/c++/4.8/bits/stl_vector.h **** 
 408:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 409:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The dtor only erases the elements, and note that if the
 410:/usr/include/c++/4.8/bits/stl_vector.h ****        *  elements themselves are pointers, the pointed-to memory is
 411:/usr/include/c++/4.8/bits/stl_vector.h ****        *  not touched in any way.  Managing the pointer is the user's
 412:/usr/include/c++/4.8/bits/stl_vector.h ****        *  responsibility.
 413:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 414:/usr/include/c++/4.8/bits/stl_vector.h ****       ~vector() _GLIBCXX_NOEXCEPT
 415:/usr/include/c++/4.8/bits/stl_vector.h ****       { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
 416:/usr/include/c++/4.8/bits/stl_vector.h **** 		      _M_get_Tp_allocator()); }
 417:/usr/include/c++/4.8/bits/stl_vector.h **** 
 418:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 419:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  %Vector assignment operator.
 420:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  A %vector of identical element and allocator types.
 421:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 422:/usr/include/c++/4.8/bits/stl_vector.h ****        *  All the elements of @a __x are copied, but any extra memory in
 423:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @a __x (for fast expansion) will not be copied.  Unlike the
 424:/usr/include/c++/4.8/bits/stl_vector.h ****        *  copy constructor, the allocator object is not copied.
 425:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 426:/usr/include/c++/4.8/bits/stl_vector.h ****       vector&
 427:/usr/include/c++/4.8/bits/stl_vector.h ****       operator=(const vector& __x);
 428:/usr/include/c++/4.8/bits/stl_vector.h **** 
 429:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 430:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 431:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  %Vector move assignment operator.
 432:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  A %vector of identical element and allocator types.
 433:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 434:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The contents of @a __x are moved into this %vector (without copying,
 435:/usr/include/c++/4.8/bits/stl_vector.h ****        *  if the allocators permit it).
 436:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @a __x is a valid, but unspecified %vector.
 437:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 438:/usr/include/c++/4.8/bits/stl_vector.h ****       vector&
 439:/usr/include/c++/4.8/bits/stl_vector.h ****       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
 440:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 441:/usr/include/c++/4.8/bits/stl_vector.h ****         constexpr bool __move_storage =
 442:/usr/include/c++/4.8/bits/stl_vector.h ****           _Alloc_traits::_S_propagate_on_move_assign()
 443:/usr/include/c++/4.8/bits/stl_vector.h ****           || _Alloc_traits::_S_always_equal();
 444:/usr/include/c++/4.8/bits/stl_vector.h ****         _M_move_assign(std::move(__x),
 445:/usr/include/c++/4.8/bits/stl_vector.h ****                        integral_constant<bool, __move_storage>());
 446:/usr/include/c++/4.8/bits/stl_vector.h **** 	return *this;
 447:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 448:/usr/include/c++/4.8/bits/stl_vector.h **** 
 449:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 450:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  %Vector list assignment operator.
 451:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __l  An initializer_list.
 452:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 453:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function fills a %vector with copies of the elements in the
 454:/usr/include/c++/4.8/bits/stl_vector.h ****        *  initializer list @a __l.
 455:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 456:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that the assignment completely changes the %vector and
 457:/usr/include/c++/4.8/bits/stl_vector.h ****        *  that the resulting %vector's size is the same as the number
 458:/usr/include/c++/4.8/bits/stl_vector.h ****        *  of elements assigned.  Old data may be lost.
 459:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 460:/usr/include/c++/4.8/bits/stl_vector.h ****       vector&
 461:/usr/include/c++/4.8/bits/stl_vector.h ****       operator=(initializer_list<value_type> __l)
 462:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 463:/usr/include/c++/4.8/bits/stl_vector.h **** 	this->assign(__l.begin(), __l.end());
GAS LISTING /tmp/ccnpTmNT.s 			page 14


 464:/usr/include/c++/4.8/bits/stl_vector.h **** 	return *this;
 465:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 466:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 467:/usr/include/c++/4.8/bits/stl_vector.h **** 
 468:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 469:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Assigns a given value to a %vector.
 470:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __n  Number of elements to be assigned.
 471:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __val  Value to be assigned.
 472:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 473:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function fills a %vector with @a __n copies of the given
 474:/usr/include/c++/4.8/bits/stl_vector.h ****        *  value.  Note that the assignment completely changes the
 475:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector and that the resulting %vector's size is the same as
 476:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the number of elements assigned.  Old data may be lost.
 477:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 478:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 479:/usr/include/c++/4.8/bits/stl_vector.h ****       assign(size_type __n, const value_type& __val)
 480:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_fill_assign(__n, __val); }
 481:/usr/include/c++/4.8/bits/stl_vector.h **** 
 482:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 483:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Assigns a range to a %vector.
 484:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __first  An input iterator.
 485:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __last   An input iterator.
 486:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 487:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function fills a %vector with copies of the elements in the
 488:/usr/include/c++/4.8/bits/stl_vector.h ****        *  range [__first,__last).
 489:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 490:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that the assignment completely changes the %vector and
 491:/usr/include/c++/4.8/bits/stl_vector.h ****        *  that the resulting %vector's size is the same as the number
 492:/usr/include/c++/4.8/bits/stl_vector.h ****        *  of elements assigned.  Old data may be lost.
 493:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 494:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 495:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator,
 496:/usr/include/c++/4.8/bits/stl_vector.h **** 	       typename = std::_RequireInputIter<_InputIterator>>
 497:/usr/include/c++/4.8/bits/stl_vector.h ****         void
 498:/usr/include/c++/4.8/bits/stl_vector.h ****         assign(_InputIterator __first, _InputIterator __last)
 499:/usr/include/c++/4.8/bits/stl_vector.h ****         { _M_assign_dispatch(__first, __last, __false_type()); }
 500:/usr/include/c++/4.8/bits/stl_vector.h **** #else
 501:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator>
 502:/usr/include/c++/4.8/bits/stl_vector.h ****         void
 503:/usr/include/c++/4.8/bits/stl_vector.h ****         assign(_InputIterator __first, _InputIterator __last)
 504:/usr/include/c++/4.8/bits/stl_vector.h ****         {
 505:/usr/include/c++/4.8/bits/stl_vector.h **** 	  // Check whether it's an integral type.  If so, it's not an iterator.
 506:/usr/include/c++/4.8/bits/stl_vector.h **** 	  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
 507:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_assign_dispatch(__first, __last, _Integral());
 508:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
 509:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 510:/usr/include/c++/4.8/bits/stl_vector.h **** 
 511:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 512:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 513:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Assigns an initializer list to a %vector.
 514:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __l  An initializer_list.
 515:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 516:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function fills a %vector with copies of the elements in the
 517:/usr/include/c++/4.8/bits/stl_vector.h ****        *  initializer list @a __l.
 518:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 519:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that the assignment completely changes the %vector and
 520:/usr/include/c++/4.8/bits/stl_vector.h ****        *  that the resulting %vector's size is the same as the number
GAS LISTING /tmp/ccnpTmNT.s 			page 15


 521:/usr/include/c++/4.8/bits/stl_vector.h ****        *  of elements assigned.  Old data may be lost.
 522:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 523:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 524:/usr/include/c++/4.8/bits/stl_vector.h ****       assign(initializer_list<value_type> __l)
 525:/usr/include/c++/4.8/bits/stl_vector.h ****       { this->assign(__l.begin(), __l.end()); }
 526:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 527:/usr/include/c++/4.8/bits/stl_vector.h **** 
 528:/usr/include/c++/4.8/bits/stl_vector.h ****       /// Get a copy of the memory allocation object.
 529:/usr/include/c++/4.8/bits/stl_vector.h ****       using _Base::get_allocator;
 530:/usr/include/c++/4.8/bits/stl_vector.h **** 
 531:/usr/include/c++/4.8/bits/stl_vector.h ****       // iterators
 532:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 533:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read/write iterator that points to the first
 534:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element in the %vector.  Iteration is done in ordinary
 535:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element order.
 536:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 537:/usr/include/c++/4.8/bits/stl_vector.h ****       iterator
 538:/usr/include/c++/4.8/bits/stl_vector.h ****       begin() _GLIBCXX_NOEXCEPT
 539:/usr/include/c++/4.8/bits/stl_vector.h ****       { return iterator(this->_M_impl._M_start); }
 540:/usr/include/c++/4.8/bits/stl_vector.h **** 
 541:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 542:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) iterator that points to the
 543:/usr/include/c++/4.8/bits/stl_vector.h ****        *  first element in the %vector.  Iteration is done in ordinary
 544:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element order.
 545:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 546:/usr/include/c++/4.8/bits/stl_vector.h ****       const_iterator
 547:/usr/include/c++/4.8/bits/stl_vector.h ****       begin() const _GLIBCXX_NOEXCEPT
 548:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_iterator(this->_M_impl._M_start); }
 549:/usr/include/c++/4.8/bits/stl_vector.h **** 
 550:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 551:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read/write iterator that points one past the last
 552:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element in the %vector.  Iteration is done in ordinary
 553:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element order.
 554:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 555:/usr/include/c++/4.8/bits/stl_vector.h ****       iterator
 556:/usr/include/c++/4.8/bits/stl_vector.h ****       end() _GLIBCXX_NOEXCEPT
 557:/usr/include/c++/4.8/bits/stl_vector.h ****       { return iterator(this->_M_impl._M_finish); }
 558:/usr/include/c++/4.8/bits/stl_vector.h **** 
 559:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 560:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) iterator that points one past
 561:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the last element in the %vector.  Iteration is done in
 562:/usr/include/c++/4.8/bits/stl_vector.h ****        *  ordinary element order.
 563:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 564:/usr/include/c++/4.8/bits/stl_vector.h ****       const_iterator
 565:/usr/include/c++/4.8/bits/stl_vector.h ****       end() const _GLIBCXX_NOEXCEPT
 566:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_iterator(this->_M_impl._M_finish); }
 567:/usr/include/c++/4.8/bits/stl_vector.h **** 
 568:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 569:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read/write reverse iterator that points to the
 570:/usr/include/c++/4.8/bits/stl_vector.h ****        *  last element in the %vector.  Iteration is done in reverse
 571:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element order.
 572:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 573:/usr/include/c++/4.8/bits/stl_vector.h ****       reverse_iterator
 574:/usr/include/c++/4.8/bits/stl_vector.h ****       rbegin() _GLIBCXX_NOEXCEPT
 575:/usr/include/c++/4.8/bits/stl_vector.h ****       { return reverse_iterator(end()); }
 576:/usr/include/c++/4.8/bits/stl_vector.h **** 
 577:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
GAS LISTING /tmp/ccnpTmNT.s 			page 16


 578:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) reverse iterator that points
 579:/usr/include/c++/4.8/bits/stl_vector.h ****        *  to the last element in the %vector.  Iteration is done in
 580:/usr/include/c++/4.8/bits/stl_vector.h ****        *  reverse element order.
 581:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 582:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reverse_iterator
 583:/usr/include/c++/4.8/bits/stl_vector.h ****       rbegin() const _GLIBCXX_NOEXCEPT
 584:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_reverse_iterator(end()); }
 585:/usr/include/c++/4.8/bits/stl_vector.h **** 
 586:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 587:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read/write reverse iterator that points to one
 588:/usr/include/c++/4.8/bits/stl_vector.h ****        *  before the first element in the %vector.  Iteration is done
 589:/usr/include/c++/4.8/bits/stl_vector.h ****        *  in reverse element order.
 590:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 591:/usr/include/c++/4.8/bits/stl_vector.h ****       reverse_iterator
 592:/usr/include/c++/4.8/bits/stl_vector.h ****       rend() _GLIBCXX_NOEXCEPT
 593:/usr/include/c++/4.8/bits/stl_vector.h ****       { return reverse_iterator(begin()); }
 594:/usr/include/c++/4.8/bits/stl_vector.h **** 
 595:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 596:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) reverse iterator that points
 597:/usr/include/c++/4.8/bits/stl_vector.h ****        *  to one before the first element in the %vector.  Iteration
 598:/usr/include/c++/4.8/bits/stl_vector.h ****        *  is done in reverse element order.
 599:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 600:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reverse_iterator
 601:/usr/include/c++/4.8/bits/stl_vector.h ****       rend() const _GLIBCXX_NOEXCEPT
 602:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_reverse_iterator(begin()); }
 603:/usr/include/c++/4.8/bits/stl_vector.h **** 
 604:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 605:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 606:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) iterator that points to the
 607:/usr/include/c++/4.8/bits/stl_vector.h ****        *  first element in the %vector.  Iteration is done in ordinary
 608:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element order.
 609:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 610:/usr/include/c++/4.8/bits/stl_vector.h ****       const_iterator
 611:/usr/include/c++/4.8/bits/stl_vector.h ****       cbegin() const noexcept
 612:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_iterator(this->_M_impl._M_start); }
 613:/usr/include/c++/4.8/bits/stl_vector.h **** 
 614:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 615:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) iterator that points one past
 616:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the last element in the %vector.  Iteration is done in
 617:/usr/include/c++/4.8/bits/stl_vector.h ****        *  ordinary element order.
 618:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 619:/usr/include/c++/4.8/bits/stl_vector.h ****       const_iterator
 620:/usr/include/c++/4.8/bits/stl_vector.h ****       cend() const noexcept
 621:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_iterator(this->_M_impl._M_finish); }
 622:/usr/include/c++/4.8/bits/stl_vector.h **** 
 623:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 624:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) reverse iterator that points
 625:/usr/include/c++/4.8/bits/stl_vector.h ****        *  to the last element in the %vector.  Iteration is done in
 626:/usr/include/c++/4.8/bits/stl_vector.h ****        *  reverse element order.
 627:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 628:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reverse_iterator
 629:/usr/include/c++/4.8/bits/stl_vector.h ****       crbegin() const noexcept
 630:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_reverse_iterator(end()); }
 631:/usr/include/c++/4.8/bits/stl_vector.h **** 
 632:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 633:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) reverse iterator that points
 634:/usr/include/c++/4.8/bits/stl_vector.h ****        *  to one before the first element in the %vector.  Iteration
GAS LISTING /tmp/ccnpTmNT.s 			page 17


 635:/usr/include/c++/4.8/bits/stl_vector.h ****        *  is done in reverse element order.
 636:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 637:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reverse_iterator
 638:/usr/include/c++/4.8/bits/stl_vector.h ****       crend() const noexcept
 639:/usr/include/c++/4.8/bits/stl_vector.h ****       { return const_reverse_iterator(begin()); }
 640:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 641:/usr/include/c++/4.8/bits/stl_vector.h **** 
 642:/usr/include/c++/4.8/bits/stl_vector.h ****       // [23.2.4.2] capacity
 643:/usr/include/c++/4.8/bits/stl_vector.h ****       /**  Returns the number of elements in the %vector.  */
 644:/usr/include/c++/4.8/bits/stl_vector.h ****       size_type
 645:/usr/include/c++/4.8/bits/stl_vector.h ****       size() const _GLIBCXX_NOEXCEPT
 646:/usr/include/c++/4.8/bits/stl_vector.h ****       { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
 647:/usr/include/c++/4.8/bits/stl_vector.h **** 
 648:/usr/include/c++/4.8/bits/stl_vector.h ****       /**  Returns the size() of the largest possible %vector.  */
 649:/usr/include/c++/4.8/bits/stl_vector.h ****       size_type
 650:/usr/include/c++/4.8/bits/stl_vector.h ****       max_size() const _GLIBCXX_NOEXCEPT
 651:/usr/include/c++/4.8/bits/stl_vector.h ****       { return _Alloc_traits::max_size(_M_get_Tp_allocator()); }
 652:/usr/include/c++/4.8/bits/stl_vector.h **** 
 653:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 654:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 655:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Resizes the %vector to the specified number of elements.
 656:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __new_size  Number of elements the %vector should contain.
 657:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 658:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will %resize the %vector to the specified
 659:/usr/include/c++/4.8/bits/stl_vector.h ****        *  number of elements.  If the number is smaller than the
 660:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector's current size the %vector is truncated, otherwise
 661:/usr/include/c++/4.8/bits/stl_vector.h ****        *  default constructed elements are appended.
 662:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 663:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 664:/usr/include/c++/4.8/bits/stl_vector.h ****       resize(size_type __new_size)
 665:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 666:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__new_size > size())
 667:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_default_append(__new_size - size());
 668:/usr/include/c++/4.8/bits/stl_vector.h **** 	else if (__new_size < size())
 669:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
 670:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 671:/usr/include/c++/4.8/bits/stl_vector.h **** 
 672:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 673:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Resizes the %vector to the specified number of elements.
 674:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __new_size  Number of elements the %vector should contain.
 675:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  Data with which new elements should be populated.
 676:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 677:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will %resize the %vector to the specified
 678:/usr/include/c++/4.8/bits/stl_vector.h ****        *  number of elements.  If the number is smaller than the
 679:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector's current size the %vector is truncated, otherwise
 680:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the %vector is extended and new elements are populated with
 681:/usr/include/c++/4.8/bits/stl_vector.h ****        *  given data.
 682:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 683:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 684:/usr/include/c++/4.8/bits/stl_vector.h ****       resize(size_type __new_size, const value_type& __x)
 685:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 686:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__new_size > size())
 687:/usr/include/c++/4.8/bits/stl_vector.h **** 	  insert(end(), __new_size - size(), __x);
 688:/usr/include/c++/4.8/bits/stl_vector.h **** 	else if (__new_size < size())
 689:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
 690:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 691:/usr/include/c++/4.8/bits/stl_vector.h **** #else
GAS LISTING /tmp/ccnpTmNT.s 			page 18


 692:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 693:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Resizes the %vector to the specified number of elements.
 694:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __new_size  Number of elements the %vector should contain.
 695:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  Data with which new elements should be populated.
 696:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 697:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will %resize the %vector to the specified
 698:/usr/include/c++/4.8/bits/stl_vector.h ****        *  number of elements.  If the number is smaller than the
 699:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector's current size the %vector is truncated, otherwise
 700:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the %vector is extended and new elements are populated with
 701:/usr/include/c++/4.8/bits/stl_vector.h ****        *  given data.
 702:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 703:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 704:/usr/include/c++/4.8/bits/stl_vector.h ****       resize(size_type __new_size, value_type __x = value_type())
 705:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 706:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__new_size > size())
 707:/usr/include/c++/4.8/bits/stl_vector.h **** 	  insert(end(), __new_size - size(), __x);
 708:/usr/include/c++/4.8/bits/stl_vector.h **** 	else if (__new_size < size())
 709:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
 710:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 711:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 712:/usr/include/c++/4.8/bits/stl_vector.h **** 
 713:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 714:/usr/include/c++/4.8/bits/stl_vector.h ****       /**  A non-binding request to reduce capacity() to size().  */
 715:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 716:/usr/include/c++/4.8/bits/stl_vector.h ****       shrink_to_fit()
 717:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_shrink_to_fit(); }
 718:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 719:/usr/include/c++/4.8/bits/stl_vector.h **** 
 720:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 721:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns the total number of elements that the %vector can
 722:/usr/include/c++/4.8/bits/stl_vector.h ****        *  hold before needing to allocate more memory.
 723:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 724:/usr/include/c++/4.8/bits/stl_vector.h ****       size_type
 725:/usr/include/c++/4.8/bits/stl_vector.h ****       capacity() const _GLIBCXX_NOEXCEPT
 726:/usr/include/c++/4.8/bits/stl_vector.h ****       { return size_type(this->_M_impl._M_end_of_storage
 727:/usr/include/c++/4.8/bits/stl_vector.h **** 			 - this->_M_impl._M_start); }
 728:/usr/include/c++/4.8/bits/stl_vector.h **** 
 729:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 730:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns true if the %vector is empty.  (Thus begin() would
 731:/usr/include/c++/4.8/bits/stl_vector.h ****        *  equal end().)
 732:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 733:/usr/include/c++/4.8/bits/stl_vector.h ****       bool
 734:/usr/include/c++/4.8/bits/stl_vector.h ****       empty() const _GLIBCXX_NOEXCEPT
 735:/usr/include/c++/4.8/bits/stl_vector.h ****       { return begin() == end(); }
 736:/usr/include/c++/4.8/bits/stl_vector.h **** 
 737:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 738:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Attempt to preallocate enough memory for specified number of
 739:/usr/include/c++/4.8/bits/stl_vector.h ****        *          elements.
 740:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __n  Number of elements required.
 741:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @throw  std::length_error  If @a n exceeds @c max_size().
 742:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 743:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function attempts to reserve enough memory for the
 744:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector to hold the specified number of elements.  If the
 745:/usr/include/c++/4.8/bits/stl_vector.h ****        *  number requested is more than max_size(), length_error is
 746:/usr/include/c++/4.8/bits/stl_vector.h ****        *  thrown.
 747:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 748:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The advantage of this function is that if optimal code is a
GAS LISTING /tmp/ccnpTmNT.s 			page 19


 749:/usr/include/c++/4.8/bits/stl_vector.h ****        *  necessity and the user can determine the number of elements
 750:/usr/include/c++/4.8/bits/stl_vector.h ****        *  that will be required, the user can reserve the memory in
 751:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %advance, and thus prevent a possible reallocation of memory
 752:/usr/include/c++/4.8/bits/stl_vector.h ****        *  and copying of %vector data.
 753:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 754:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 755:/usr/include/c++/4.8/bits/stl_vector.h ****       reserve(size_type __n);
 756:/usr/include/c++/4.8/bits/stl_vector.h **** 
 757:/usr/include/c++/4.8/bits/stl_vector.h ****       // element access
 758:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 759:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Subscript access to the data contained in the %vector.
 760:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param __n The index of the element for which data should be
 761:/usr/include/c++/4.8/bits/stl_vector.h ****        *  accessed.
 762:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  Read/write reference to data.
 763:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 764:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This operator allows for easy, array-style, data access.
 765:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that data access with this operator is unchecked and
 766:/usr/include/c++/4.8/bits/stl_vector.h ****        *  out_of_range lookups are not defined. (For checked lookups
 767:/usr/include/c++/4.8/bits/stl_vector.h ****        *  see at().)
 768:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 769:/usr/include/c++/4.8/bits/stl_vector.h ****       reference
 770:/usr/include/c++/4.8/bits/stl_vector.h ****       operator[](size_type __n)
 113              		.loc 4 770 0
 114              		.cfi_startproc
 115              	.LVL10:
 771:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *(this->_M_impl._M_start + __n); }
 116              		.loc 4 771 0
 117 0000 488B07   		movq	(%rdi), %rax
 118 0003 488D04B0 		leaq	(%rax,%rsi,4), %rax
 119 0007 C3       		ret
 120              		.cfi_endproc
 121              	.LFE1674:
 123              		.section	.text._ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv,"axG",@progbits,_ZNSt12_Vector_b
 124              		.align 2
 125              		.weak	_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv
 127              	_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv:
 128              	.LFB1737:
 113:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
 129              		.loc 4 113 0
 130              		.cfi_startproc
 131              	.LVL11:
 132 0000 4889F8   		movq	%rdi, %rax
 114:/usr/include/c++/4.8/bits/stl_vector.h **** 
 133              		.loc 4 114 0
 134 0003 C3       		ret
 135              		.cfi_endproc
 136              	.LFE1737:
 138              		.section	.text._ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_,"axG",@progbits,_ZNSt12_Vector_ba
 139              		.align 2
 140              		.weak	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_
 142              	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_:
 143              	.LFB1772:
  90:/usr/include/c++/4.8/bits/stl_vector.h **** 	: _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
 144              		.loc 4 90 0
 145              		.cfi_startproc
 146              	.LVL12:
 147              	.LBB2:
GAS LISTING /tmp/ccnpTmNT.s 			page 20


  91:/usr/include/c++/4.8/bits/stl_vector.h **** 	{ }
 148              		.loc 4 91 0
 149 0000 48C70700 		movq	$0, (%rdi)
 149      000000
 150 0007 48C74708 		movq	$0, 8(%rdi)
 150      00000000 
 151 000f 48C74710 		movq	$0, 16(%rdi)
 151      00000000 
 152 0017 C3       		ret
 153              	.LBE2:
 154              		.cfi_endproc
 155              	.LFE1772:
 157              		.weak	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_
 158              		.set	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_,_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2
 159              		.section	.text._ZNSt12_Vector_baseIiSaIiEEC2ERKS0_,"axG",@progbits,_ZNSt12_Vector_baseIiSaIiEEC5ER
 160              		.align 2
 161              		.weak	_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
 163              	_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_:
 164              	.LFB1731:
 127:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(__a) { }
 165              		.loc 4 127 0
 166              		.cfi_startproc
 167              	.LVL13:
 168 0000 4883EC08 		subq	$8, %rsp
 169              		.cfi_def_cfa_offset 16
 170              	.LBB3:
 128:/usr/include/c++/4.8/bits/stl_vector.h **** 
 171              		.loc 4 128 0
 172 0004 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_
 172      00
 173              	.LVL14:
 174              	.LBE3:
 175 0009 4883C408 		addq	$8, %rsp
 176              		.cfi_def_cfa_offset 8
 177 000d C3       		ret
 178              		.cfi_endproc
 179              	.LFE1731:
 181              		.weak	_ZNSt12_Vector_baseIiSaIiEEC1ERKS0_
 182              		.set	_ZNSt12_Vector_baseIiSaIiEEC1ERKS0_,_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
 183              		.section	.text._ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim,"axG",@progbits,_ZN9__gnu_cxx13new_
 184              		.align 2
 185              		.weak	_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim
 187              	_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim:
 188              	.LFB1786:
 189              		.file 5 "/usr/include/c++/4.8/ext/new_allocator.h"
   1:/usr/include/c++/4.8/ext/new_allocator.h **** // Allocator that wraps operator new -*- C++ -*-
   2:/usr/include/c++/4.8/ext/new_allocator.h **** 
   3:/usr/include/c++/4.8/ext/new_allocator.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/ext/new_allocator.h **** //
   5:/usr/include/c++/4.8/ext/new_allocator.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/ext/new_allocator.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/ext/new_allocator.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/ext/new_allocator.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/ext/new_allocator.h **** // any later version.
  10:/usr/include/c++/4.8/ext/new_allocator.h **** 
  11:/usr/include/c++/4.8/ext/new_allocator.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/ext/new_allocator.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
GAS LISTING /tmp/ccnpTmNT.s 			page 21


  13:/usr/include/c++/4.8/ext/new_allocator.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/ext/new_allocator.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/ext/new_allocator.h **** 
  16:/usr/include/c++/4.8/ext/new_allocator.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/ext/new_allocator.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/ext/new_allocator.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/ext/new_allocator.h **** 
  20:/usr/include/c++/4.8/ext/new_allocator.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/ext/new_allocator.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/ext/new_allocator.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/ext/new_allocator.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/ext/new_allocator.h **** 
  25:/usr/include/c++/4.8/ext/new_allocator.h **** /** @file ext/new_allocator.h
  26:/usr/include/c++/4.8/ext/new_allocator.h ****  *  This file is a GNU extension to the Standard C++ Library.
  27:/usr/include/c++/4.8/ext/new_allocator.h ****  */
  28:/usr/include/c++/4.8/ext/new_allocator.h **** 
  29:/usr/include/c++/4.8/ext/new_allocator.h **** #ifndef _NEW_ALLOCATOR_H
  30:/usr/include/c++/4.8/ext/new_allocator.h **** #define _NEW_ALLOCATOR_H 1
  31:/usr/include/c++/4.8/ext/new_allocator.h **** 
  32:/usr/include/c++/4.8/ext/new_allocator.h **** #include <bits/c++config.h>
  33:/usr/include/c++/4.8/ext/new_allocator.h **** #include <new>
  34:/usr/include/c++/4.8/ext/new_allocator.h **** #include <bits/functexcept.h>
  35:/usr/include/c++/4.8/ext/new_allocator.h **** #include <bits/move.h>
  36:/usr/include/c++/4.8/ext/new_allocator.h **** #if __cplusplus >= 201103L
  37:/usr/include/c++/4.8/ext/new_allocator.h **** #include <type_traits>
  38:/usr/include/c++/4.8/ext/new_allocator.h **** #endif
  39:/usr/include/c++/4.8/ext/new_allocator.h **** 
  40:/usr/include/c++/4.8/ext/new_allocator.h **** namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
  41:/usr/include/c++/4.8/ext/new_allocator.h **** {
  42:/usr/include/c++/4.8/ext/new_allocator.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  43:/usr/include/c++/4.8/ext/new_allocator.h **** 
  44:/usr/include/c++/4.8/ext/new_allocator.h ****   using std::size_t;
  45:/usr/include/c++/4.8/ext/new_allocator.h ****   using std::ptrdiff_t;
  46:/usr/include/c++/4.8/ext/new_allocator.h **** 
  47:/usr/include/c++/4.8/ext/new_allocator.h ****   /**
  48:/usr/include/c++/4.8/ext/new_allocator.h ****    *  @brief  An allocator that uses global new, as per [20.4].
  49:/usr/include/c++/4.8/ext/new_allocator.h ****    *  @ingroup allocators
  50:/usr/include/c++/4.8/ext/new_allocator.h ****    *
  51:/usr/include/c++/4.8/ext/new_allocator.h ****    *  This is precisely the allocator defined in the C++ Standard. 
  52:/usr/include/c++/4.8/ext/new_allocator.h ****    *    - all allocation calls operator new
  53:/usr/include/c++/4.8/ext/new_allocator.h ****    *    - all deallocation calls operator delete
  54:/usr/include/c++/4.8/ext/new_allocator.h ****    *
  55:/usr/include/c++/4.8/ext/new_allocator.h ****    *  @tparam  _Tp  Type of allocated object.
  56:/usr/include/c++/4.8/ext/new_allocator.h ****    */
  57:/usr/include/c++/4.8/ext/new_allocator.h ****   template<typename _Tp>
  58:/usr/include/c++/4.8/ext/new_allocator.h ****     class new_allocator
  59:/usr/include/c++/4.8/ext/new_allocator.h ****     {
  60:/usr/include/c++/4.8/ext/new_allocator.h ****     public:
  61:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef size_t     size_type;
  62:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef ptrdiff_t  difference_type;
  63:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef _Tp*       pointer;
  64:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef const _Tp* const_pointer;
  65:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef _Tp&       reference;
  66:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef const _Tp& const_reference;
  67:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef _Tp        value_type;
  68:/usr/include/c++/4.8/ext/new_allocator.h **** 
  69:/usr/include/c++/4.8/ext/new_allocator.h ****       template<typename _Tp1>
GAS LISTING /tmp/ccnpTmNT.s 			page 22


  70:/usr/include/c++/4.8/ext/new_allocator.h ****         struct rebind
  71:/usr/include/c++/4.8/ext/new_allocator.h ****         { typedef new_allocator<_Tp1> other; };
  72:/usr/include/c++/4.8/ext/new_allocator.h **** 
  73:/usr/include/c++/4.8/ext/new_allocator.h **** #if __cplusplus >= 201103L
  74:/usr/include/c++/4.8/ext/new_allocator.h ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
  75:/usr/include/c++/4.8/ext/new_allocator.h ****       // 2103. propagate_on_container_move_assignment
  76:/usr/include/c++/4.8/ext/new_allocator.h ****       typedef std::true_type propagate_on_container_move_assignment;
  77:/usr/include/c++/4.8/ext/new_allocator.h **** #endif
  78:/usr/include/c++/4.8/ext/new_allocator.h **** 
  79:/usr/include/c++/4.8/ext/new_allocator.h ****       new_allocator() _GLIBCXX_USE_NOEXCEPT { }
  80:/usr/include/c++/4.8/ext/new_allocator.h **** 
  81:/usr/include/c++/4.8/ext/new_allocator.h ****       new_allocator(const new_allocator&) _GLIBCXX_USE_NOEXCEPT { }
  82:/usr/include/c++/4.8/ext/new_allocator.h **** 
  83:/usr/include/c++/4.8/ext/new_allocator.h ****       template<typename _Tp1>
  84:/usr/include/c++/4.8/ext/new_allocator.h ****         new_allocator(const new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { }
  85:/usr/include/c++/4.8/ext/new_allocator.h **** 
  86:/usr/include/c++/4.8/ext/new_allocator.h ****       ~new_allocator() _GLIBCXX_USE_NOEXCEPT { }
  87:/usr/include/c++/4.8/ext/new_allocator.h **** 
  88:/usr/include/c++/4.8/ext/new_allocator.h ****       pointer
  89:/usr/include/c++/4.8/ext/new_allocator.h ****       address(reference __x) const _GLIBCXX_NOEXCEPT
  90:/usr/include/c++/4.8/ext/new_allocator.h ****       { return std::__addressof(__x); }
  91:/usr/include/c++/4.8/ext/new_allocator.h **** 
  92:/usr/include/c++/4.8/ext/new_allocator.h ****       const_pointer
  93:/usr/include/c++/4.8/ext/new_allocator.h ****       address(const_reference __x) const _GLIBCXX_NOEXCEPT
  94:/usr/include/c++/4.8/ext/new_allocator.h ****       { return std::__addressof(__x); }
  95:/usr/include/c++/4.8/ext/new_allocator.h **** 
  96:/usr/include/c++/4.8/ext/new_allocator.h ****       // NB: __n is permitted to be 0.  The C++ standard says nothing
  97:/usr/include/c++/4.8/ext/new_allocator.h ****       // about what the return value is when __n == 0.
  98:/usr/include/c++/4.8/ext/new_allocator.h ****       pointer
  99:/usr/include/c++/4.8/ext/new_allocator.h ****       allocate(size_type __n, const void* = 0)
 100:/usr/include/c++/4.8/ext/new_allocator.h ****       { 
 101:/usr/include/c++/4.8/ext/new_allocator.h **** 	if (__n > this->max_size())
 102:/usr/include/c++/4.8/ext/new_allocator.h **** 	  std::__throw_bad_alloc();
 103:/usr/include/c++/4.8/ext/new_allocator.h **** 
 104:/usr/include/c++/4.8/ext/new_allocator.h **** 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
 105:/usr/include/c++/4.8/ext/new_allocator.h ****       }
 106:/usr/include/c++/4.8/ext/new_allocator.h **** 
 107:/usr/include/c++/4.8/ext/new_allocator.h ****       // __p is not permitted to be a null pointer.
 108:/usr/include/c++/4.8/ext/new_allocator.h ****       void
 109:/usr/include/c++/4.8/ext/new_allocator.h ****       deallocate(pointer __p, size_type)
 190              		.loc 5 109 0
 191              		.cfi_startproc
 192              	.LVL15:
 193 0000 4883EC08 		subq	$8, %rsp
 194              		.cfi_def_cfa_offset 16
 110:/usr/include/c++/4.8/ext/new_allocator.h ****       { ::operator delete(__p); }
 195              		.loc 5 110 0
 196 0004 4889F7   		movq	%rsi, %rdi
 197              	.LVL16:
 198 0007 E8000000 		call	_ZdlPv
 198      00
 199              	.LVL17:
 200 000c 4883C408 		addq	$8, %rsp
 201              		.cfi_def_cfa_offset 8
 202 0010 C3       		ret
 203              		.cfi_endproc
 204              	.LFE1786:
GAS LISTING /tmp/ccnpTmNT.s 			page 23


 206              		.section	.text._ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim,"axG",@progbits,_ZNSt12_Vector_baseI
 207              		.align 2
 208              		.weak	_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim
 210              	_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim:
 211              	.LFB1774:
 171:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 212              		.loc 4 171 0
 213              		.cfi_startproc
 214              	.LVL18:
 173:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_impl.deallocate(__p, __n);
 215              		.loc 4 173 0
 216 0000 4885F6   		testq	%rsi, %rsi
 217 0003 740D     		je	.L21
 171:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 218              		.loc 4 171 0
 219 0005 4883EC08 		subq	$8, %rsp
 220              		.cfi_def_cfa_offset 16
 174:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 221              		.loc 4 174 0
 222 0009 E8000000 		call	_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim
 222      00
 223              	.LVL19:
 175:/usr/include/c++/4.8/bits/stl_vector.h **** 
 224              		.loc 4 175 0
 225 000e 4883C408 		addq	$8, %rsp
 226              		.cfi_def_cfa_offset 8
 227              	.L21:
 228 0012 F3C3     		rep ret
 229              		.cfi_endproc
 230              	.LFE1774:
 232              		.section	.text._ZNSt12_Vector_baseIiSaIiEED2Ev,"axG",@progbits,_ZNSt12_Vector_baseIiSaIiEED5Ev,com
 233              		.align 2
 234              		.weak	_ZNSt12_Vector_baseIiSaIiEED2Ev
 236              	_ZNSt12_Vector_baseIiSaIiEED2Ev:
 237              	.LFB1734:
 159:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
 238              		.loc 4 159 0
 239              		.cfi_startproc
 240              	.LVL20:
 241 0000 4883EC08 		subq	$8, %rsp
 242              		.cfi_def_cfa_offset 16
 243              	.LBB4:
 161:/usr/include/c++/4.8/bits/stl_vector.h **** 
 244              		.loc 4 161 0
 245 0004 488B37   		movq	(%rdi), %rsi
 246 0007 488B5710 		movq	16(%rdi), %rdx
 247 000b 4829F2   		subq	%rsi, %rdx
 248 000e 48C1FA02 		sarq	$2, %rdx
 160:/usr/include/c++/4.8/bits/stl_vector.h **** 		      - this->_M_impl._M_start); }
 249              		.loc 4 160 0
 250 0012 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim
 250      00
 251              	.LVL21:
 252              	.LBE4:
 161:/usr/include/c++/4.8/bits/stl_vector.h **** 
 253              		.loc 4 161 0
 254 0017 4883C408 		addq	$8, %rsp
GAS LISTING /tmp/ccnpTmNT.s 			page 24


 255              		.cfi_def_cfa_offset 8
 256 001b C3       		ret
 257              		.cfi_endproc
 258              	.LFE1734:
 260              		.weak	_ZNSt12_Vector_baseIiSaIiEED1Ev
 261              		.set	_ZNSt12_Vector_baseIiSaIiEED1Ev,_ZNSt12_Vector_baseIiSaIiEED2Ev
 262              		.section	.text._ZNSt6vectorIiSaIiEED2Ev,"axG",@progbits,_ZNSt6vectorIiSaIiEED5Ev,comdat
 263              		.align 2
 264              		.weak	_ZNSt6vectorIiSaIiEED2Ev
 266              	_ZNSt6vectorIiSaIiEED2Ev:
 267              	.LFB1671:
 414:/usr/include/c++/4.8/bits/stl_vector.h ****       { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
 268              		.loc 4 414 0
 269              		.cfi_startproc
 270              	.LVL22:
 271 0000 4883EC08 		subq	$8, %rsp
 272              		.cfi_def_cfa_offset 16
 273              	.LBB5:
 416:/usr/include/c++/4.8/bits/stl_vector.h **** 
 274              		.loc 4 416 0
 275 0004 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEED2Ev
 275      00
 276              	.LVL23:
 277              	.LBE5:
 278 0009 4883C408 		addq	$8, %rsp
 279              		.cfi_def_cfa_offset 8
 280 000d C3       		ret
 281              		.cfi_endproc
 282              	.LFE1671:
 284              		.weak	_ZNSt6vectorIiSaIiEED1Ev
 285              		.set	_ZNSt6vectorIiSaIiEED1Ev,_ZNSt6vectorIiSaIiEED2Ev
 286              		.section	.text._ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_acc
 287              		.weak	_ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_itera
 289              	_ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag
 290              	.LFB1788:
 291              		.file 6 "/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h"
   1:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Functions used by iterators -*- C++ -*-
   2:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
   3:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** //
   5:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // any later version.
  10:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  11:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  16:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  20:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // a copy of the GCC Runtime Library Exception along with this program;
GAS LISTING /tmp/ccnpTmNT.s 			page 25


  22:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  25:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** /*
  26:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *
  27:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * Copyright (c) 1994
  28:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * Hewlett-Packard Company
  29:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *
  30:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * Permission to use, copy, modify, distribute and sell this software
  31:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * and its documentation for any purpose is hereby granted without fee,
  32:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * provided that the above copyright notice appear in all copies and
  33:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * that both that copyright notice and this permission notice appear
  34:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * in supporting documentation.  Hewlett-Packard Company makes no
  35:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * representations about the suitability of this software for any
  36:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  37:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *
  38:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *
  39:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * Copyright (c) 1996-1998
  40:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * Silicon Graphics Computer Systems, Inc.
  41:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *
  42:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * Permission to use, copy, modify, distribute and sell this software
  43:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * and its documentation for any purpose is hereby granted without fee,
  44:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * provided that the above copyright notice appear in all copies and
  45:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * that both that copyright notice and this permission notice appear
  46:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * in supporting documentation.  Silicon Graphics makes no
  47:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * representations about the suitability of this software for any
  48:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  49:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  */
  50:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  51:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** /** @file bits/stl_iterator_base_funcs.h
  52:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *  This is an internal header file, included by other library headers.
  53:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *  Do not attempt to use it directly. @headername{iterator}
  54:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *
  55:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *  This file contains all of the general iterator-related utility
  56:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  *  functions, such as distance() and advance().
  57:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****  */
  58:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  59:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #ifndef _STL_ITERATOR_BASE_FUNCS_H
  60:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #define _STL_ITERATOR_BASE_FUNCS_H 1
  61:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  62:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #pragma GCC system_header
  63:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  64:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #include <bits/concept_check.h>
  65:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** #include <debug/debug.h>
  66:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  67:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** namespace std _GLIBCXX_VISIBILITY(default)
  68:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** {
  69:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  70:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  71:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****   template<typename _InputIterator>
  72:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     inline typename iterator_traits<_InputIterator>::difference_type
  73:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     __distance(_InputIterator __first, _InputIterator __last,
  74:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****                input_iterator_tag)
  75:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     {
  76:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       // concept requirements
  77:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
  78:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
GAS LISTING /tmp/ccnpTmNT.s 			page 26


  79:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       typename iterator_traits<_InputIterator>::difference_type __n = 0;
  80:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       while (__first != __last)
  81:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 	{
  82:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 	  ++__first;
  83:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 	  ++__n;
  84:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 	}
  85:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       return __n;
  86:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     }
  87:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  88:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****   template<typename _RandomAccessIterator>
  89:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     inline typename iterator_traits<_RandomAccessIterator>::difference_type
  90:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
 292              		.loc 6 90 0
 293              		.cfi_startproc
 294              	.LVL24:
  91:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****                random_access_iterator_tag)
  92:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     {
  93:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       // concept requirements
  94:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       __glibcxx_function_requires(_RandomAccessIteratorConcept<
  95:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 				  _RandomAccessIterator>)
  96:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       return __last - __first;
 295              		.loc 6 96 0
 296 0000 4889F0   		movq	%rsi, %rax
 297 0003 4829F8   		subq	%rdi, %rax
 298 0006 48C1F802 		sarq	$2, %rax
  97:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     }
 299              		.loc 6 97 0
 300 000a C3       		ret
 301              		.cfi_endproc
 302              	.LFE1788:
 304              		.section	.text._ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_,"axG",@progbits,
 305              		.weak	_ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_
 307              	_ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_:
 308              	.LFB1775:
  98:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 
  99:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****   /**
 100:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  @brief A generalization of pointer arithmetic.
 101:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  @param  __first  An input iterator.
 102:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  @param  __last  An input iterator.
 103:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  @return  The distance between them.
 104:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *
 105:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  Returns @c n such that __first + n == __last.  This requires
 106:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  that @p __last must be reachable from @p __first.  Note that @c
 107:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  n may be negative.
 108:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *
 109:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  For random access iterators, this uses their @c + and @c - operations
 110:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****    *  and are constant time.  For other %iterator classes they are linear time.
 111:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****   */
 112:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****   template<typename _InputIterator>
 113:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     inline typename iterator_traits<_InputIterator>::difference_type
 114:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     distance(_InputIterator __first, _InputIterator __last)
 309              		.loc 6 114 0
 310              		.cfi_startproc
 311              	.LVL25:
 312 0000 4883EC18 		subq	$24, %rsp
 313              		.cfi_def_cfa_offset 32
 115:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     {
GAS LISTING /tmp/ccnpTmNT.s 			page 27


 116:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       // concept requirements -- taken care of in __distance
 117:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****       return std::__distance(__first, __last,
 118:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h **** 			     std::__iterator_category(__first));
 314              		.loc 6 118 0
 315 0004 C6042400 		movb	$0, (%rsp)
 316 0008 E8000000 		call	_ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterat
 316      00
 317              	.LVL26:
 119:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     }
 318              		.loc 6 119 0
 319 000d 4883C418 		addq	$24, %rsp
 320              		.cfi_def_cfa_offset 8
 321 0011 C3       		ret
 322              		.cfi_endproc
 323              	.LFE1775:
 325              		.section	.text._ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv,"axG",@progbits,_ZNK9__gnu_cxx13new_all
 326              		.align 2
 327              		.weak	_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv
 329              	_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv:
 330              	.LFB1797:
 111:/usr/include/c++/4.8/ext/new_allocator.h **** 
 112:/usr/include/c++/4.8/ext/new_allocator.h ****       size_type
 113:/usr/include/c++/4.8/ext/new_allocator.h ****       max_size() const _GLIBCXX_USE_NOEXCEPT
 331              		.loc 5 113 0
 332              		.cfi_startproc
 333              	.LVL27:
 114:/usr/include/c++/4.8/ext/new_allocator.h ****       { return size_t(-1) / sizeof(_Tp); }
 334              		.loc 5 114 0
 335 0000 48B8FFFF 		movabsq	$4611686018427387903, %rax
 335      FFFFFFFF 
 335      FF3F
 336 000a C3       		ret
 337              		.cfi_endproc
 338              	.LFE1797:
 340              		.section	.text._ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv,"axG",@progbits,_ZN9__gnu_cxx13new_al
 341              		.align 2
 342              		.weak	_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv
 344              	_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv:
 345              	.LFB1789:
  99:/usr/include/c++/4.8/ext/new_allocator.h ****       { 
 346              		.loc 5 99 0
 347              		.cfi_startproc
 348              	.LVL28:
 349 0000 53       		pushq	%rbx
 350              		.cfi_def_cfa_offset 16
 351              		.cfi_offset 3, -16
 352 0001 4889F3   		movq	%rsi, %rbx
 101:/usr/include/c++/4.8/ext/new_allocator.h **** 	  std::__throw_bad_alloc();
 353              		.loc 5 101 0
 354 0004 E8000000 		call	_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv
 354      00
 355              	.LVL29:
 356 0009 4839D8   		cmpq	%rbx, %rax
 357 000c 7305     		jae	.L31
 102:/usr/include/c++/4.8/ext/new_allocator.h **** 
 358              		.loc 5 102 0
 359 000e E8000000 		call	_ZSt17__throw_bad_allocv
GAS LISTING /tmp/ccnpTmNT.s 			page 28


 359      00
 360              	.LVL30:
 361              	.L31:
 104:/usr/include/c++/4.8/ext/new_allocator.h ****       }
 362              		.loc 5 104 0
 363 0013 488D3C9D 		leaq	0(,%rbx,4), %rdi
 363      00000000 
 364 001b E8000000 		call	_Znwm
 364      00
 365              	.LVL31:
 105:/usr/include/c++/4.8/ext/new_allocator.h **** 
 366              		.loc 5 105 0
 367 0020 5B       		popq	%rbx
 368              		.cfi_def_cfa_offset 8
 369              	.LVL32:
 370 0021 C3       		ret
 371              		.cfi_endproc
 372              	.LFE1789:
 374              		.section	.text._ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm,"axG",@progbits,_ZNSt12_Vector_baseIiSaI
 375              		.align 2
 376              		.weak	_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm
 378              	_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm:
 379              	.LFB1776:
 167:/usr/include/c++/4.8/bits/stl_vector.h ****       { return __n != 0 ? _M_impl.allocate(__n) : 0; }
 380              		.loc 4 167 0
 381              		.cfi_startproc
 382              	.LVL33:
 168:/usr/include/c++/4.8/bits/stl_vector.h **** 
 383              		.loc 4 168 0
 384 0000 B8000000 		movl	$0, %eax
 384      00
 385 0005 4885F6   		testq	%rsi, %rsi
 386 0008 7412     		je	.L38
 167:/usr/include/c++/4.8/bits/stl_vector.h ****       { return __n != 0 ? _M_impl.allocate(__n) : 0; }
 387              		.loc 4 167 0 discriminator 1
 388 000a 4883EC08 		subq	$8, %rsp
 389              		.cfi_def_cfa_offset 16
 168:/usr/include/c++/4.8/bits/stl_vector.h **** 
 390              		.loc 4 168 0 discriminator 1
 391 000e BA000000 		movl	$0, %edx
 391      00
 392 0013 E8000000 		call	_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv
 392      00
 393              	.LVL34:
 394 0018 4883C408 		addq	$8, %rsp
 395              		.cfi_def_cfa_offset 8
 396              	.L38:
 168:/usr/include/c++/4.8/bits/stl_vector.h **** 
 397              		.loc 4 168 0 is_stmt 0 discriminator 3
 398 001c F3C3     		rep ret
 399              		.cfi_endproc
 400              	.LFE1776:
 402              		.section	.text._ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_,"axG",@progbits,_ZNSt10_Iter_baseIPKiLb0EE7_
 403              		.weak	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
 405              	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_:
 406              	.LFB1820:
 407              		.file 7 "/usr/include/c++/4.8/bits/stl_iterator_base_types.h"
GAS LISTING /tmp/ccnpTmNT.s 			page 29


   1:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // Types used in iterator implementation -*- C++ -*-
   2:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
   3:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** //
   5:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // any later version.
  10:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  11:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  16:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  20:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  25:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** /*
  26:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *
  27:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * Copyright (c) 1994
  28:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * Hewlett-Packard Company
  29:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *
  30:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * Permission to use, copy, modify, distribute and sell this software
  31:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * and its documentation for any purpose is hereby granted without fee,
  32:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * provided that the above copyright notice appear in all copies and
  33:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * that both that copyright notice and this permission notice appear
  34:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * in supporting documentation.  Hewlett-Packard Company makes no
  35:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * representations about the suitability of this software for any
  36:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  37:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *
  38:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *
  39:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * Copyright (c) 1996-1998
  40:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * Silicon Graphics Computer Systems, Inc.
  41:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *
  42:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * Permission to use, copy, modify, distribute and sell this software
  43:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * and its documentation for any purpose is hereby granted without fee,
  44:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * provided that the above copyright notice appear in all copies and
  45:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * that both that copyright notice and this permission notice appear
  46:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * in supporting documentation.  Silicon Graphics makes no
  47:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * representations about the suitability of this software for any
  48:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  49:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  */
  50:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  51:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** /** @file bits/stl_iterator_base_types.h
  52:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *  This is an internal header file, included by other library headers.
  53:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *  Do not attempt to use it directly. @headername{iterator}
  54:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *
  55:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *  This file contains all of the general iterator-related utility types,
  56:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  *  such as iterator_traits and struct iterator.
  57:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****  */
GAS LISTING /tmp/ccnpTmNT.s 			page 30


  58:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  59:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #ifndef _STL_ITERATOR_BASE_TYPES_H
  60:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #define _STL_ITERATOR_BASE_TYPES_H 1
  61:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  62:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #pragma GCC system_header
  63:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  64:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #include <bits/c++config.h>
  65:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  66:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #if __cplusplus >= 201103L
  67:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** # include <type_traits>  // For _GLIBCXX_HAS_NESTED_TYPE, is_convertible
  68:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #endif
  69:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  70:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** namespace std _GLIBCXX_VISIBILITY(default)
  71:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** {
  72:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  73:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  74:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /**
  75:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  @defgroup iterators Iterators
  76:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  Abstractions for uniform iterating through various underlying types.
  77:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   */
  78:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   //@{ 
  79:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  80:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /**
  81:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  @defgroup iterator_tags Iterator Tags
  82:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  These are empty types, used to distinguish different iterators.  The
  83:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  distinction is not made by what they contain, but simply by what they
  84:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  are.  Different underlying algorithms can then be used based on the
  85:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  different operations supported by different iterator types.
  86:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   */
  87:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   //@{ 
  88:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   ///  Marking input iterators.
  89:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   struct input_iterator_tag { };
  90:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  91:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   ///  Marking output iterators.
  92:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   struct output_iterator_tag { };
  93:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  94:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// Forward iterators support a superset of input iterator operations.
  95:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   struct forward_iterator_tag : public input_iterator_tag { };
  96:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
  97:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// Bidirectional iterators support a superset of forward iterator
  98:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// operations.
  99:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   struct bidirectional_iterator_tag : public forward_iterator_tag { };
 100:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 101:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// Random-access iterators support a superset of bidirectional
 102:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// iterator operations.
 103:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   struct random_access_iterator_tag : public bidirectional_iterator_tag { };
 104:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   //@}
 105:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 106:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /**
 107:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  @brief  Common %iterator class.
 108:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *
 109:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  This class does nothing but define nested typedefs.  %Iterator classes
 110:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  can inherit from this class to save some work.  The typedefs are then
 111:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  used in specializations and overloading.
 112:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *
 113:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  In particular, there are no default implementations of requirements
 114:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  such as @c operator++ and the like.  (How could there be?)
GAS LISTING /tmp/ccnpTmNT.s 			page 31


 115:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   */
 116:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
 117:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****            typename _Pointer = _Tp*, typename _Reference = _Tp&>
 118:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct iterator
 119:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     {
 120:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       /// One of the @link iterator_tags tag types@endlink.
 121:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Category  iterator_category;
 122:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       /// The type "pointed to" by the iterator.
 123:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Tp        value_type;
 124:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       /// Distance between iterators is represented as this type.
 125:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Distance  difference_type;
 126:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       /// This type represents a pointer-to-value_type.
 127:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Pointer   pointer;
 128:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       /// This type represents a reference-to-value_type.
 129:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Reference reference;
 130:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     };
 131:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 132:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /**
 133:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  @brief  Traits class for iterators.
 134:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *
 135:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  This class does nothing but define nested typedefs.  The general
 136:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  version simply @a forwards the nested typedefs from the Iterator
 137:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  argument.  Specialized versions for pointers and pointers-to-const
 138:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  provide tighter, more correct semantics.
 139:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   */
 140:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #if __cplusplus >= 201103L
 141:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 142:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** _GLIBCXX_HAS_NESTED_TYPE(iterator_category)
 143:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 144:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Iterator,
 145:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 	   bool = __has_iterator_category<_Iterator>::value>
 146:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct __iterator_traits { };
 147:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 148:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Iterator>
 149:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct __iterator_traits<_Iterator, true>
 150:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     {
 151:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::iterator_category iterator_category;
 152:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::value_type        value_type;
 153:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::difference_type   difference_type;
 154:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::pointer           pointer;
 155:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::reference         reference;
 156:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     };
 157:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 158:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Iterator>
 159:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct iterator_traits
 160:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     : public __iterator_traits<_Iterator> { };
 161:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #else
 162:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Iterator>
 163:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct iterator_traits
 164:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     {
 165:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::iterator_category iterator_category;
 166:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::value_type        value_type;
 167:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::difference_type   difference_type;
 168:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::pointer           pointer;
 169:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef typename _Iterator::reference         reference;
 170:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     };
 171:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** #endif
GAS LISTING /tmp/ccnpTmNT.s 			page 32


 172:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 173:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// Partial specialization for pointer types.
 174:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Tp>
 175:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct iterator_traits<_Tp*>
 176:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     {
 177:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef random_access_iterator_tag iterator_category;
 178:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Tp                         value_type;
 179:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef ptrdiff_t                   difference_type;
 180:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Tp*                        pointer;
 181:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Tp&                        reference;
 182:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     };
 183:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 184:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /// Partial specialization for const pointer types.
 185:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Tp>
 186:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct iterator_traits<const _Tp*>
 187:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     {
 188:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef random_access_iterator_tag iterator_category;
 189:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Tp                         value_type;
 190:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef ptrdiff_t                   difference_type;
 191:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef const _Tp*                  pointer;
 192:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef const _Tp&                  reference;
 193:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     };
 194:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 195:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   /**
 196:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  This function is not a part of the C++ standard but is syntactic
 197:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****    *  sugar for internal library use only.
 198:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   */
 199:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Iter>
 200:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     inline typename iterator_traits<_Iter>::iterator_category
 201:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     __iterator_category(const _Iter&)
 202:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     { return typename iterator_traits<_Iter>::iterator_category(); }
 203:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 204:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   //@}
 205:/usr/include/c++/4.8/bits/stl_iterator_base_types.h **** 
 206:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   // If _Iterator has a base returns it otherwise _Iterator is returned
 207:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   // untouched
 208:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****   template<typename _Iterator, bool _HasBase>
 209:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     struct _Iter_base
 210:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****     {
 211:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       typedef _Iterator iterator_type;
 212:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       static iterator_type _S_base(_Iterator __it)
 408              		.loc 7 212 0 is_stmt 1
 409              		.cfi_startproc
 410              	.LVL35:
 411 0000 4889F8   		movq	%rdi, %rax
 213:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       { return __it; }
 412              		.loc 7 213 0
 413 0003 C3       		ret
 414              		.cfi_endproc
 415              	.LFE1820:
 417              		.section	.text._ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_,"axG",@progbits,_ZSt
 418              		.weak	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
 420              	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_:
 421              	.LFB1818:
 422              		.file 8 "/usr/include/c++/4.8/bits/stl_algobase.h"
   1:/usr/include/c++/4.8/bits/stl_algobase.h **** // Core algorithmic facilities -*- C++ -*-
   2:/usr/include/c++/4.8/bits/stl_algobase.h **** 
GAS LISTING /tmp/ccnpTmNT.s 			page 33


   3:/usr/include/c++/4.8/bits/stl_algobase.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/stl_algobase.h **** //
   5:/usr/include/c++/4.8/bits/stl_algobase.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/stl_algobase.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/stl_algobase.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/stl_algobase.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/stl_algobase.h **** // any later version.
  10:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  11:/usr/include/c++/4.8/bits/stl_algobase.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/stl_algobase.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/stl_algobase.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/stl_algobase.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  16:/usr/include/c++/4.8/bits/stl_algobase.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/stl_algobase.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/stl_algobase.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  20:/usr/include/c++/4.8/bits/stl_algobase.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/stl_algobase.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/stl_algobase.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/stl_algobase.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  25:/usr/include/c++/4.8/bits/stl_algobase.h **** /*
  26:/usr/include/c++/4.8/bits/stl_algobase.h ****  *
  27:/usr/include/c++/4.8/bits/stl_algobase.h ****  * Copyright (c) 1994
  28:/usr/include/c++/4.8/bits/stl_algobase.h ****  * Hewlett-Packard Company
  29:/usr/include/c++/4.8/bits/stl_algobase.h ****  *
  30:/usr/include/c++/4.8/bits/stl_algobase.h ****  * Permission to use, copy, modify, distribute and sell this software
  31:/usr/include/c++/4.8/bits/stl_algobase.h ****  * and its documentation for any purpose is hereby granted without fee,
  32:/usr/include/c++/4.8/bits/stl_algobase.h ****  * provided that the above copyright notice appear in all copies and
  33:/usr/include/c++/4.8/bits/stl_algobase.h ****  * that both that copyright notice and this permission notice appear
  34:/usr/include/c++/4.8/bits/stl_algobase.h ****  * in supporting documentation.  Hewlett-Packard Company makes no
  35:/usr/include/c++/4.8/bits/stl_algobase.h ****  * representations about the suitability of this software for any
  36:/usr/include/c++/4.8/bits/stl_algobase.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  37:/usr/include/c++/4.8/bits/stl_algobase.h ****  *
  38:/usr/include/c++/4.8/bits/stl_algobase.h ****  *
  39:/usr/include/c++/4.8/bits/stl_algobase.h ****  * Copyright (c) 1996-1998
  40:/usr/include/c++/4.8/bits/stl_algobase.h ****  * Silicon Graphics Computer Systems, Inc.
  41:/usr/include/c++/4.8/bits/stl_algobase.h ****  *
  42:/usr/include/c++/4.8/bits/stl_algobase.h ****  * Permission to use, copy, modify, distribute and sell this software
  43:/usr/include/c++/4.8/bits/stl_algobase.h ****  * and its documentation for any purpose is hereby granted without fee,
  44:/usr/include/c++/4.8/bits/stl_algobase.h ****  * provided that the above copyright notice appear in all copies and
  45:/usr/include/c++/4.8/bits/stl_algobase.h ****  * that both that copyright notice and this permission notice appear
  46:/usr/include/c++/4.8/bits/stl_algobase.h ****  * in supporting documentation.  Silicon Graphics makes no
  47:/usr/include/c++/4.8/bits/stl_algobase.h ****  * representations about the suitability of this software for any
  48:/usr/include/c++/4.8/bits/stl_algobase.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  49:/usr/include/c++/4.8/bits/stl_algobase.h ****  */
  50:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  51:/usr/include/c++/4.8/bits/stl_algobase.h **** /** @file bits/stl_algobase.h
  52:/usr/include/c++/4.8/bits/stl_algobase.h ****  *  This is an internal header file, included by other library headers.
  53:/usr/include/c++/4.8/bits/stl_algobase.h ****  *  Do not attempt to use it directly. @headername{algorithm}
  54:/usr/include/c++/4.8/bits/stl_algobase.h ****  */
  55:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  56:/usr/include/c++/4.8/bits/stl_algobase.h **** #ifndef _STL_ALGOBASE_H
  57:/usr/include/c++/4.8/bits/stl_algobase.h **** #define _STL_ALGOBASE_H 1
  58:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  59:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/c++config.h>
GAS LISTING /tmp/ccnpTmNT.s 			page 34


  60:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/functexcept.h>
  61:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/cpp_type_traits.h>
  62:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <ext/type_traits.h>
  63:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <ext/numeric_traits.h>
  64:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/stl_pair.h>
  65:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/stl_iterator_base_types.h>
  66:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/stl_iterator_base_funcs.h>
  67:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/stl_iterator.h>
  68:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/concept_check.h>
  69:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <debug/debug.h>
  70:/usr/include/c++/4.8/bits/stl_algobase.h **** #include <bits/move.h> // For std::swap and _GLIBCXX_MOVE
  71:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  72:/usr/include/c++/4.8/bits/stl_algobase.h **** namespace std _GLIBCXX_VISIBILITY(default)
  73:/usr/include/c++/4.8/bits/stl_algobase.h **** {
  74:/usr/include/c++/4.8/bits/stl_algobase.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  75:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  76:/usr/include/c++/4.8/bits/stl_algobase.h **** #if __cplusplus < 201103L
  77:/usr/include/c++/4.8/bits/stl_algobase.h ****   // See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a
  78:/usr/include/c++/4.8/bits/stl_algobase.h ****   // nutshell, we are partially implementing the resolution of DR 187,
  79:/usr/include/c++/4.8/bits/stl_algobase.h ****   // when it's safe, i.e., the value_types are equal.
  80:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _BoolType>
  81:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __iter_swap
  82:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
  83:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _ForwardIterator1, typename _ForwardIterator2>
  84:/usr/include/c++/4.8/bits/stl_algobase.h ****         static void
  85:/usr/include/c++/4.8/bits/stl_algobase.h ****         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  86:/usr/include/c++/4.8/bits/stl_algobase.h ****         {
  87:/usr/include/c++/4.8/bits/stl_algobase.h ****           typedef typename iterator_traits<_ForwardIterator1>::value_type
  88:/usr/include/c++/4.8/bits/stl_algobase.h ****             _ValueType1;
  89:/usr/include/c++/4.8/bits/stl_algobase.h ****           _ValueType1 __tmp = _GLIBCXX_MOVE(*__a);
  90:/usr/include/c++/4.8/bits/stl_algobase.h ****           *__a = _GLIBCXX_MOVE(*__b);
  91:/usr/include/c++/4.8/bits/stl_algobase.h ****           *__b = _GLIBCXX_MOVE(__tmp);
  92:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
  93:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
  94:/usr/include/c++/4.8/bits/stl_algobase.h **** 
  95:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<>
  96:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __iter_swap<true>
  97:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
  98:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _ForwardIterator1, typename _ForwardIterator2>
  99:/usr/include/c++/4.8/bits/stl_algobase.h ****         static void 
 100:/usr/include/c++/4.8/bits/stl_algobase.h ****         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
 101:/usr/include/c++/4.8/bits/stl_algobase.h ****         {
 102:/usr/include/c++/4.8/bits/stl_algobase.h ****           swap(*__a, *__b);
 103:/usr/include/c++/4.8/bits/stl_algobase.h ****         }
 104:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 105:/usr/include/c++/4.8/bits/stl_algobase.h **** #endif
 106:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 107:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 108:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief Swaps the contents of two iterators.
 109:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup mutating_algorithms
 110:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __a  An iterator.
 111:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __b  Another iterator.
 112:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   Nothing.
 113:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 114:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  This function swaps the values pointed to by two iterators, not the
 115:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  iterators themselves.
 116:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
GAS LISTING /tmp/ccnpTmNT.s 			page 35


 117:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _ForwardIterator1, typename _ForwardIterator2>
 118:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline void
 119:/usr/include/c++/4.8/bits/stl_algobase.h ****     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
 120:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 121:/usr/include/c++/4.8/bits/stl_algobase.h ****       // concept requirements
 122:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
 123:/usr/include/c++/4.8/bits/stl_algobase.h **** 				  _ForwardIterator1>)
 124:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
 125:/usr/include/c++/4.8/bits/stl_algobase.h **** 				  _ForwardIterator2>)
 126:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 127:/usr/include/c++/4.8/bits/stl_algobase.h **** #if __cplusplus < 201103L
 128:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_ForwardIterator1>::value_type
 129:/usr/include/c++/4.8/bits/stl_algobase.h **** 	_ValueType1;
 130:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_ForwardIterator2>::value_type
 131:/usr/include/c++/4.8/bits/stl_algobase.h **** 	_ValueType2;
 132:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 133:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_ConvertibleConcept<_ValueType1,
 134:/usr/include/c++/4.8/bits/stl_algobase.h **** 				  _ValueType2>)
 135:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_ConvertibleConcept<_ValueType2,
 136:/usr/include/c++/4.8/bits/stl_algobase.h **** 				  _ValueType1>)
 137:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 138:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_ForwardIterator1>::reference
 139:/usr/include/c++/4.8/bits/stl_algobase.h **** 	_ReferenceType1;
 140:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_ForwardIterator2>::reference
 141:/usr/include/c++/4.8/bits/stl_algobase.h **** 	_ReferenceType2;
 142:/usr/include/c++/4.8/bits/stl_algobase.h ****       std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value
 143:/usr/include/c++/4.8/bits/stl_algobase.h **** 	&& __are_same<_ValueType1&, _ReferenceType1>::__value
 144:/usr/include/c++/4.8/bits/stl_algobase.h **** 	&& __are_same<_ValueType2&, _ReferenceType2>::__value>::
 145:/usr/include/c++/4.8/bits/stl_algobase.h **** 	iter_swap(__a, __b);
 146:/usr/include/c++/4.8/bits/stl_algobase.h **** #else
 147:/usr/include/c++/4.8/bits/stl_algobase.h ****       swap(*__a, *__b);
 148:/usr/include/c++/4.8/bits/stl_algobase.h **** #endif
 149:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 150:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 151:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 152:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief Swap the elements of two sequences.
 153:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup mutating_algorithms
 154:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __first1  A forward iterator.
 155:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __last1   A forward iterator.
 156:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __first2  A forward iterator.
 157:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   An iterator equal to @p first2+(last1-first1).
 158:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 159:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  Swaps each element in the range @p [first1,last1) with the
 160:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  corresponding element in the range @p [first2,(last1-first1)).
 161:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  The ranges must not overlap.
 162:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
 163:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _ForwardIterator1, typename _ForwardIterator2>
 164:/usr/include/c++/4.8/bits/stl_algobase.h ****     _ForwardIterator2
 165:/usr/include/c++/4.8/bits/stl_algobase.h ****     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
 166:/usr/include/c++/4.8/bits/stl_algobase.h **** 		_ForwardIterator2 __first2)
 167:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 168:/usr/include/c++/4.8/bits/stl_algobase.h ****       // concept requirements
 169:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
 170:/usr/include/c++/4.8/bits/stl_algobase.h **** 				  _ForwardIterator1>)
 171:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
 172:/usr/include/c++/4.8/bits/stl_algobase.h **** 				  _ForwardIterator2>)
 173:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_requires_valid_range(__first1, __last1);
GAS LISTING /tmp/ccnpTmNT.s 			page 36


 174:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 175:/usr/include/c++/4.8/bits/stl_algobase.h ****       for (; __first1 != __last1; ++__first1, ++__first2)
 176:/usr/include/c++/4.8/bits/stl_algobase.h **** 	std::iter_swap(__first1, __first2);
 177:/usr/include/c++/4.8/bits/stl_algobase.h ****       return __first2;
 178:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 179:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 180:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 181:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief This does what you think it does.
 182:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup sorting_algorithms
 183:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __a  A thing of arbitrary type.
 184:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __b  Another thing of arbitrary type.
 185:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   The lesser of the parameters.
 186:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 187:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  This is the simple classic generic implementation.  It will work on
 188:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  temporary expressions, since they are only evaluated once, unlike a
 189:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  preprocessor macro.
 190:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
 191:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Tp>
 192:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline const _Tp&
 193:/usr/include/c++/4.8/bits/stl_algobase.h ****     min(const _Tp& __a, const _Tp& __b)
 194:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 195:/usr/include/c++/4.8/bits/stl_algobase.h ****       // concept requirements
 196:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
 197:/usr/include/c++/4.8/bits/stl_algobase.h ****       //return __b < __a ? __b : __a;
 198:/usr/include/c++/4.8/bits/stl_algobase.h ****       if (__b < __a)
 199:/usr/include/c++/4.8/bits/stl_algobase.h **** 	return __b;
 200:/usr/include/c++/4.8/bits/stl_algobase.h ****       return __a;
 201:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 202:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 203:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 204:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief This does what you think it does.
 205:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup sorting_algorithms
 206:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __a  A thing of arbitrary type.
 207:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __b  Another thing of arbitrary type.
 208:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   The greater of the parameters.
 209:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 210:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  This is the simple classic generic implementation.  It will work on
 211:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  temporary expressions, since they are only evaluated once, unlike a
 212:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  preprocessor macro.
 213:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
 214:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Tp>
 215:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline const _Tp&
 216:/usr/include/c++/4.8/bits/stl_algobase.h ****     max(const _Tp& __a, const _Tp& __b)
 217:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 218:/usr/include/c++/4.8/bits/stl_algobase.h ****       // concept requirements
 219:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
 220:/usr/include/c++/4.8/bits/stl_algobase.h ****       //return  __a < __b ? __b : __a;
 221:/usr/include/c++/4.8/bits/stl_algobase.h ****       if (__a < __b)
 222:/usr/include/c++/4.8/bits/stl_algobase.h **** 	return __b;
 223:/usr/include/c++/4.8/bits/stl_algobase.h ****       return __a;
 224:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 225:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 226:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 227:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief This does what you think it does.
 228:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup sorting_algorithms
 229:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __a  A thing of arbitrary type.
 230:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __b  Another thing of arbitrary type.
GAS LISTING /tmp/ccnpTmNT.s 			page 37


 231:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __comp  A @link comparison_functors comparison functor@endlink.
 232:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   The lesser of the parameters.
 233:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 234:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  This will work on temporary expressions, since they are only evaluated
 235:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  once, unlike a preprocessor macro.
 236:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
 237:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Tp, typename _Compare>
 238:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline const _Tp&
 239:/usr/include/c++/4.8/bits/stl_algobase.h ****     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
 240:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 241:/usr/include/c++/4.8/bits/stl_algobase.h ****       //return __comp(__b, __a) ? __b : __a;
 242:/usr/include/c++/4.8/bits/stl_algobase.h ****       if (__comp(__b, __a))
 243:/usr/include/c++/4.8/bits/stl_algobase.h **** 	return __b;
 244:/usr/include/c++/4.8/bits/stl_algobase.h ****       return __a;
 245:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 246:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 247:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 248:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief This does what you think it does.
 249:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup sorting_algorithms
 250:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __a  A thing of arbitrary type.
 251:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __b  Another thing of arbitrary type.
 252:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __comp  A @link comparison_functors comparison functor@endlink.
 253:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   The greater of the parameters.
 254:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 255:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  This will work on temporary expressions, since they are only evaluated
 256:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  once, unlike a preprocessor macro.
 257:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
 258:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Tp, typename _Compare>
 259:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline const _Tp&
 260:/usr/include/c++/4.8/bits/stl_algobase.h ****     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
 261:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 262:/usr/include/c++/4.8/bits/stl_algobase.h ****       //return __comp(__a, __b) ? __b : __a;
 263:/usr/include/c++/4.8/bits/stl_algobase.h ****       if (__comp(__a, __b))
 264:/usr/include/c++/4.8/bits/stl_algobase.h **** 	return __b;
 265:/usr/include/c++/4.8/bits/stl_algobase.h ****       return __a;
 266:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 267:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 268:/usr/include/c++/4.8/bits/stl_algobase.h ****   // If _Iterator is a __normal_iterator return its base (a plain pointer,
 269:/usr/include/c++/4.8/bits/stl_algobase.h ****   // normally) otherwise return it untouched.  See copy, fill, ... 
 270:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Iterator>
 271:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct _Niter_base
 272:/usr/include/c++/4.8/bits/stl_algobase.h ****     : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value>
 273:/usr/include/c++/4.8/bits/stl_algobase.h ****     { };
 274:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 275:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Iterator>
 276:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline typename _Niter_base<_Iterator>::iterator_type
 277:/usr/include/c++/4.8/bits/stl_algobase.h ****     __niter_base(_Iterator __it)
 278:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Niter_base<_Iterator>::_S_base(__it); }
 279:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 280:/usr/include/c++/4.8/bits/stl_algobase.h ****   // Likewise, for move_iterator.
 281:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Iterator>
 282:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct _Miter_base
 283:/usr/include/c++/4.8/bits/stl_algobase.h ****     : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value>
 284:/usr/include/c++/4.8/bits/stl_algobase.h ****     { };
 285:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 286:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Iterator>
 287:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline typename _Miter_base<_Iterator>::iterator_type
GAS LISTING /tmp/ccnpTmNT.s 			page 38


 288:/usr/include/c++/4.8/bits/stl_algobase.h ****     __miter_base(_Iterator __it)
 423              		.loc 8 288 0
 424              		.cfi_startproc
 425              	.LVL36:
 426 0000 4883EC08 		subq	$8, %rsp
 427              		.cfi_def_cfa_offset 16
 289:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Miter_base<_Iterator>::_S_base(__it); }
 428              		.loc 8 289 0
 429 0004 E8000000 		call	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
 429      00
 430              	.LVL37:
 431 0009 4883C408 		addq	$8, %rsp
 432              		.cfi_def_cfa_offset 8
 433 000d C3       		ret
 434              		.cfi_endproc
 435              	.LFE1818:
 437              		.section	.text._ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_,"axG",@progbits,_ZSt
 438              		.weak	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
 440              	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_:
 441              	.LFB1821:
 277:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Niter_base<_Iterator>::_S_base(__it); }
 442              		.loc 8 277 0
 443              		.cfi_startproc
 444              	.LVL38:
 445 0000 4883EC08 		subq	$8, %rsp
 446              		.cfi_def_cfa_offset 16
 278:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 447              		.loc 8 278 0
 448 0004 E8000000 		call	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
 448      00
 449              	.LVL39:
 450 0009 4883C408 		addq	$8, %rsp
 451              		.cfi_def_cfa_offset 8
 452 000d C3       		ret
 453              		.cfi_endproc
 454              	.LFE1821:
 456              		.section	.text._ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_,"axG",@progbits,_ZNSt10_Iter_baseIPiLb0EE7_S_
 457              		.weak	_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_
 459              	_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_:
 460              	.LFB1824:
 212:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       { return __it; }
 461              		.loc 7 212 0
 462              		.cfi_startproc
 463              	.LVL40:
 464 0000 4889F8   		movq	%rdi, %rax
 465              		.loc 7 213 0
 466 0003 C3       		ret
 467              		.cfi_endproc
 468              	.LFE1824:
 470              		.section	.text._ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_,"axG",@progbits,_ZSt1
 471              		.weak	_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_
 473              	_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_:
 474              	.LFB1822:
 277:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Niter_base<_Iterator>::_S_base(__it); }
 475              		.loc 8 277 0
 476              		.cfi_startproc
 477              	.LVL41:
GAS LISTING /tmp/ccnpTmNT.s 			page 39


 478 0000 4883EC08 		subq	$8, %rsp
 479              		.cfi_def_cfa_offset 16
 278:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 480              		.loc 8 278 0
 481 0004 E8000000 		call	_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_
 481      00
 482              	.LVL42:
 483 0009 4883C408 		addq	$8, %rsp
 484              		.cfi_def_cfa_offset 8
 485 000d C3       		ret
 486              		.cfi_endproc
 487              	.LFE1822:
 489              		.section	.text._ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S
 490              		.weak	_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_
 492              	_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_:
 493              	.LFB1825:
 290:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 291:/usr/include/c++/4.8/bits/stl_algobase.h ****   // All of these auxiliary structs serve two purposes.  (1) Replace
 292:/usr/include/c++/4.8/bits/stl_algobase.h ****   // calls to copy with memmove whenever possible.  (Memmove, not memcpy,
 293:/usr/include/c++/4.8/bits/stl_algobase.h ****   // because the input and output ranges are permitted to overlap.)
 294:/usr/include/c++/4.8/bits/stl_algobase.h ****   // (2) If we're using random access iterators, then write the loop as
 295:/usr/include/c++/4.8/bits/stl_algobase.h ****   // a for loop with an explicit count.
 296:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 297:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool, bool, typename>
 298:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __copy_move
 299:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 300:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _II, typename _OI>
 301:/usr/include/c++/4.8/bits/stl_algobase.h ****         static _OI
 302:/usr/include/c++/4.8/bits/stl_algobase.h ****         __copy_m(_II __first, _II __last, _OI __result)
 303:/usr/include/c++/4.8/bits/stl_algobase.h ****         {
 304:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  for (; __first != __last; ++__result, ++__first)
 305:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    *__result = *__first;
 306:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  return __result;
 307:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
 308:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 309:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 310:/usr/include/c++/4.8/bits/stl_algobase.h **** #if __cplusplus >= 201103L
 311:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _Category>
 312:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __copy_move<true, false, _Category>
 313:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 314:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _II, typename _OI>
 315:/usr/include/c++/4.8/bits/stl_algobase.h ****         static _OI
 316:/usr/include/c++/4.8/bits/stl_algobase.h ****         __copy_m(_II __first, _II __last, _OI __result)
 317:/usr/include/c++/4.8/bits/stl_algobase.h ****         {
 318:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  for (; __first != __last; ++__result, ++__first)
 319:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    *__result = std::move(*__first);
 320:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  return __result;
 321:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
 322:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 323:/usr/include/c++/4.8/bits/stl_algobase.h **** #endif
 324:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 325:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<>
 326:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __copy_move<false, false, random_access_iterator_tag>
 327:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 328:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _II, typename _OI>
 329:/usr/include/c++/4.8/bits/stl_algobase.h ****         static _OI
 330:/usr/include/c++/4.8/bits/stl_algobase.h ****         __copy_m(_II __first, _II __last, _OI __result)
GAS LISTING /tmp/ccnpTmNT.s 			page 40


 331:/usr/include/c++/4.8/bits/stl_algobase.h ****         { 
 332:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  typedef typename iterator_traits<_II>::difference_type _Distance;
 333:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  for(_Distance __n = __last - __first; __n > 0; --__n)
 334:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    {
 335:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      *__result = *__first;
 336:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      ++__first;
 337:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      ++__result;
 338:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    }
 339:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  return __result;
 340:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
 341:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 342:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 343:/usr/include/c++/4.8/bits/stl_algobase.h **** #if __cplusplus >= 201103L
 344:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<>
 345:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __copy_move<true, false, random_access_iterator_tag>
 346:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 347:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _II, typename _OI>
 348:/usr/include/c++/4.8/bits/stl_algobase.h ****         static _OI
 349:/usr/include/c++/4.8/bits/stl_algobase.h ****         __copy_m(_II __first, _II __last, _OI __result)
 350:/usr/include/c++/4.8/bits/stl_algobase.h ****         { 
 351:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  typedef typename iterator_traits<_II>::difference_type _Distance;
 352:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  for(_Distance __n = __last - __first; __n > 0; --__n)
 353:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    {
 354:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      *__result = std::move(*__first);
 355:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      ++__first;
 356:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      ++__result;
 357:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    }
 358:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  return __result;
 359:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
 360:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 361:/usr/include/c++/4.8/bits/stl_algobase.h **** #endif
 362:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 363:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _IsMove>
 364:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct __copy_move<_IsMove, true, random_access_iterator_tag>
 365:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 366:/usr/include/c++/4.8/bits/stl_algobase.h ****       template<typename _Tp>
 367:/usr/include/c++/4.8/bits/stl_algobase.h ****         static _Tp*
 368:/usr/include/c++/4.8/bits/stl_algobase.h ****         __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
 494              		.loc 8 368 0
 495              		.cfi_startproc
 496              	.LVL43:
 497 0000 55       		pushq	%rbp
 498              		.cfi_def_cfa_offset 16
 499              		.cfi_offset 6, -16
 500 0001 53       		pushq	%rbx
 501              		.cfi_def_cfa_offset 24
 502              		.cfi_offset 3, -24
 503 0002 4883EC08 		subq	$8, %rsp
 504              		.cfi_def_cfa_offset 32
 505 0006 4889D5   		movq	%rdx, %rbp
 506              	.LBB6:
 369:/usr/include/c++/4.8/bits/stl_algobase.h ****         {
 370:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  const ptrdiff_t _Num = __last - __first;
 507              		.loc 8 370 0
 508 0009 4829FE   		subq	%rdi, %rsi
 509              	.LVL44:
 510 000c 4889F3   		movq	%rsi, %rbx
GAS LISTING /tmp/ccnpTmNT.s 			page 41


 511 000f 48C1FB02 		sarq	$2, %rbx
 512              	.LVL45:
 371:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  if (_Num)
 513              		.loc 8 371 0
 514 0013 4885DB   		testq	%rbx, %rbx
 515 0016 7413     		je	.L48
 372:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
 516              		.loc 8 372 0
 517 0018 488D149D 		leaq	0(,%rbx,4), %rdx
 517      00000000 
 518              	.LVL46:
 519 0020 4889FE   		movq	%rdi, %rsi
 520 0023 4889EF   		movq	%rbp, %rdi
 521              	.LVL47:
 522 0026 E8000000 		call	memmove
 522      00
 523              	.LVL48:
 524              	.L48:
 373:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  return __result + _Num;
 525              		.loc 8 373 0
 526 002b 488D449D 		leaq	0(%rbp,%rbx,4), %rax
 526      00
 527              	.LBE6:
 374:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
 528              		.loc 8 374 0
 529 0030 4883C408 		addq	$8, %rsp
 530              		.cfi_def_cfa_offset 24
 531 0034 5B       		popq	%rbx
 532              		.cfi_def_cfa_offset 16
 533              	.LVL49:
 534 0035 5D       		popq	%rbp
 535              		.cfi_def_cfa_offset 8
 536              	.LVL50:
 537 0036 C3       		ret
 538              		.cfi_endproc
 539              	.LFE1825:
 541              		.section	.text._ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_,"axG",@progbits,_ZSt13__copy_move_aILb0E
 542              		.weak	_ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_
 544              	_ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_:
 545              	.LFB1823:
 375:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 376:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 377:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _IsMove, typename _II, typename _OI>
 378:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline _OI
 379:/usr/include/c++/4.8/bits/stl_algobase.h ****     __copy_move_a(_II __first, _II __last, _OI __result)
 546              		.loc 8 379 0
 547              		.cfi_startproc
 548              	.LVL51:
 549 0000 4883EC08 		subq	$8, %rsp
 550              		.cfi_def_cfa_offset 16
 551              	.LVL52:
 552              	.LBB7:
 380:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 381:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_II>::value_type _ValueTypeI;
 382:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
 383:/usr/include/c++/4.8/bits/stl_algobase.h ****       typedef typename iterator_traits<_II>::iterator_category _Category;
 384:/usr/include/c++/4.8/bits/stl_algobase.h ****       const bool __simple = (__is_trivial(_ValueTypeI)
GAS LISTING /tmp/ccnpTmNT.s 			page 42


 385:/usr/include/c++/4.8/bits/stl_algobase.h **** 	                     && __is_pointer<_II>::__value
 386:/usr/include/c++/4.8/bits/stl_algobase.h **** 	                     && __is_pointer<_OI>::__value
 387:/usr/include/c++/4.8/bits/stl_algobase.h **** 			     && __are_same<_ValueTypeI, _ValueTypeO>::__value);
 388:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 389:/usr/include/c++/4.8/bits/stl_algobase.h ****       return std::__copy_move<_IsMove, __simple,
 390:/usr/include/c++/4.8/bits/stl_algobase.h **** 	                      _Category>::__copy_m(__first, __last, __result);
 553              		.loc 8 390 0
 554 0004 E8000000 		call	_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_
 554      00
 555              	.LVL53:
 556              	.LBE7:
 391:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 557              		.loc 8 391 0
 558 0009 4883C408 		addq	$8, %rsp
 559              		.cfi_def_cfa_offset 8
 560 000d C3       		ret
 561              		.cfi_endproc
 562              	.LFE1823:
 564              		.section	.text._ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_,"axG",@progbits,_ZSt14__copy_move_a2ILb
 565              		.weak	_ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_
 567              	_ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_:
 568              	.LFB1819:
 392:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 393:/usr/include/c++/4.8/bits/stl_algobase.h ****   // Helpers for streambuf iterators (either istream or ostream).
 394:/usr/include/c++/4.8/bits/stl_algobase.h ****   // NB: avoid including <iosfwd>, relatively large.
 395:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _CharT>
 396:/usr/include/c++/4.8/bits/stl_algobase.h ****     struct char_traits;
 397:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 398:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _CharT, typename _Traits>
 399:/usr/include/c++/4.8/bits/stl_algobase.h ****     class istreambuf_iterator;
 400:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 401:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _CharT, typename _Traits>
 402:/usr/include/c++/4.8/bits/stl_algobase.h ****     class ostreambuf_iterator;
 403:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 404:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _IsMove, typename _CharT>
 405:/usr/include/c++/4.8/bits/stl_algobase.h ****     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
 406:/usr/include/c++/4.8/bits/stl_algobase.h **** 	     ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
 407:/usr/include/c++/4.8/bits/stl_algobase.h ****     __copy_move_a2(_CharT*, _CharT*,
 408:/usr/include/c++/4.8/bits/stl_algobase.h **** 		   ostreambuf_iterator<_CharT, char_traits<_CharT> >);
 409:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 410:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _IsMove, typename _CharT>
 411:/usr/include/c++/4.8/bits/stl_algobase.h ****     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
 412:/usr/include/c++/4.8/bits/stl_algobase.h **** 	     ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
 413:/usr/include/c++/4.8/bits/stl_algobase.h ****     __copy_move_a2(const _CharT*, const _CharT*,
 414:/usr/include/c++/4.8/bits/stl_algobase.h **** 		   ostreambuf_iterator<_CharT, char_traits<_CharT> >);
 415:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 416:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _IsMove, typename _CharT>
 417:/usr/include/c++/4.8/bits/stl_algobase.h ****     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
 418:/usr/include/c++/4.8/bits/stl_algobase.h **** 				    _CharT*>::__type
 419:/usr/include/c++/4.8/bits/stl_algobase.h ****     __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
 420:/usr/include/c++/4.8/bits/stl_algobase.h **** 		   istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
 421:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 422:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<bool _IsMove, typename _II, typename _OI>
 423:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline _OI
 424:/usr/include/c++/4.8/bits/stl_algobase.h ****     __copy_move_a2(_II __first, _II __last, _OI __result)
 569              		.loc 8 424 0
 570              		.cfi_startproc
GAS LISTING /tmp/ccnpTmNT.s 			page 43


 571              	.LVL54:
 572 0000 4154     		pushq	%r12
 573              		.cfi_def_cfa_offset 16
 574              		.cfi_offset 12, -16
 575 0002 55       		pushq	%rbp
 576              		.cfi_def_cfa_offset 24
 577              		.cfi_offset 6, -24
 578 0003 53       		pushq	%rbx
 579              		.cfi_def_cfa_offset 32
 580              		.cfi_offset 3, -32
 581 0004 4989FC   		movq	%rdi, %r12
 582 0007 4889F3   		movq	%rsi, %rbx
 425:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 426:/usr/include/c++/4.8/bits/stl_algobase.h ****       return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first),
 427:/usr/include/c++/4.8/bits/stl_algobase.h **** 					     std::__niter_base(__last),
 428:/usr/include/c++/4.8/bits/stl_algobase.h **** 					     std::__niter_base(__result)));
 583              		.loc 8 428 0
 584 000a 4889D7   		movq	%rdx, %rdi
 585              	.LVL55:
 586 000d E8000000 		call	_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_
 586      00
 587              	.LVL56:
 588 0012 4889C5   		movq	%rax, %rbp
 589 0015 4889DF   		movq	%rbx, %rdi
 590 0018 E8000000 		call	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
 590      00
 591              	.LVL57:
 592 001d 4889C3   		movq	%rax, %rbx
 593              	.LVL58:
 594 0020 4C89E7   		movq	%r12, %rdi
 595 0023 E8000000 		call	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
 595      00
 596              	.LVL59:
 597 0028 4889EA   		movq	%rbp, %rdx
 598 002b 4889DE   		movq	%rbx, %rsi
 599 002e 4889C7   		movq	%rax, %rdi
 600 0031 E8000000 		call	_ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_
 600      00
 601              	.LVL60:
 429:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 602              		.loc 8 429 0
 603 0036 5B       		popq	%rbx
 604              		.cfi_def_cfa_offset 24
 605 0037 5D       		popq	%rbp
 606              		.cfi_def_cfa_offset 16
 607 0038 415C     		popq	%r12
 608              		.cfi_def_cfa_offset 8
 609              	.LVL61:
 610 003a C3       		ret
 611              		.cfi_endproc
 612              	.LFE1819:
 614              		.section	.text._ZSt4copyIPKiPiET0_T_S4_S3_,"axG",@progbits,_ZSt4copyIPKiPiET0_T_S4_S3_,comdat
 615              		.weak	_ZSt4copyIPKiPiET0_T_S4_S3_
 617              	_ZSt4copyIPKiPiET0_T_S4_S3_:
 618              	.LFB1809:
 430:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 431:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
GAS LISTING /tmp/ccnpTmNT.s 			page 44


 432:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @brief Copies the range [first,last) into result.
 433:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @ingroup mutating_algorithms
 434:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __first  An input iterator.
 435:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __last   An input iterator.
 436:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @param  __result An output iterator.
 437:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  @return   result + (first - last)
 438:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 439:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  This inline function will boil down to a call to @c memmove whenever
 440:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  possible.  Failing that, if random access iterators are passed, then the
 441:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  loop count will be known (and therefore a candidate for compiler
 442:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  optimizations such as unrolling).  Result may not be contained within
 443:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  [first,last); the copy_backward function should be used instead.
 444:/usr/include/c++/4.8/bits/stl_algobase.h ****    *
 445:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  Note that the end of the output range is permitted to be contained
 446:/usr/include/c++/4.8/bits/stl_algobase.h ****    *  within [first,last).
 447:/usr/include/c++/4.8/bits/stl_algobase.h ****   */
 448:/usr/include/c++/4.8/bits/stl_algobase.h ****   template<typename _II, typename _OI>
 449:/usr/include/c++/4.8/bits/stl_algobase.h ****     inline _OI
 450:/usr/include/c++/4.8/bits/stl_algobase.h ****     copy(_II __first, _II __last, _OI __result)
 619              		.loc 8 450 0
 620              		.cfi_startproc
 621              	.LVL62:
 622 0000 4154     		pushq	%r12
 623              		.cfi_def_cfa_offset 16
 624              		.cfi_offset 12, -16
 625 0002 55       		pushq	%rbp
 626              		.cfi_def_cfa_offset 24
 627              		.cfi_offset 6, -24
 628 0003 53       		pushq	%rbx
 629              		.cfi_def_cfa_offset 32
 630              		.cfi_offset 3, -32
 631 0004 4989FC   		movq	%rdi, %r12
 632 0007 4889D5   		movq	%rdx, %rbp
 451:/usr/include/c++/4.8/bits/stl_algobase.h ****     {
 452:/usr/include/c++/4.8/bits/stl_algobase.h ****       // concept requirements
 453:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_InputIteratorConcept<_II>)
 454:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_function_requires(_OutputIteratorConcept<_OI,
 455:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    typename iterator_traits<_II>::value_type>)
 456:/usr/include/c++/4.8/bits/stl_algobase.h ****       __glibcxx_requires_valid_range(__first, __last);
 457:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 458:/usr/include/c++/4.8/bits/stl_algobase.h ****       return (std::__copy_move_a2<__is_move_iterator<_II>::__value>
 459:/usr/include/c++/4.8/bits/stl_algobase.h **** 	      (std::__miter_base(__first), std::__miter_base(__last),
 460:/usr/include/c++/4.8/bits/stl_algobase.h **** 	       __result));
 633              		.loc 8 460 0
 634 000a 4889F7   		movq	%rsi, %rdi
 635              	.LVL63:
 636 000d E8000000 		call	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
 636      00
 637              	.LVL64:
 638 0012 4889C3   		movq	%rax, %rbx
 639 0015 4C89E7   		movq	%r12, %rdi
 640 0018 E8000000 		call	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
 640      00
 641              	.LVL65:
 642 001d 4889EA   		movq	%rbp, %rdx
 643 0020 4889DE   		movq	%rbx, %rsi
 644 0023 4889C7   		movq	%rax, %rdi
GAS LISTING /tmp/ccnpTmNT.s 			page 45


 645 0026 E8000000 		call	_ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_
 645      00
 646              	.LVL66:
 461:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 647              		.loc 8 461 0
 648 002b 5B       		popq	%rbx
 649              		.cfi_def_cfa_offset 24
 650 002c 5D       		popq	%rbp
 651              		.cfi_def_cfa_offset 16
 652              	.LVL67:
 653 002d 415C     		popq	%r12
 654              		.cfi_def_cfa_offset 8
 655              	.LVL68:
 656 002f C3       		ret
 657              		.cfi_endproc
 658              	.LFE1809:
 660              		.section	.text._ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_,"axG",@progbits
 661              		.weak	_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_
 663              	_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_:
 664              	.LFB1798:
 665              		.file 9 "/usr/include/c++/4.8/bits/stl_uninitialized.h"
   1:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Raw memory manipulators -*- C++ -*-
   2:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
   3:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/stl_uninitialized.h **** //
   5:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // any later version.
  10:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  11:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  16:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  20:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/stl_uninitialized.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  25:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /*
  26:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *
  27:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * Copyright (c) 1994
  28:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * Hewlett-Packard Company
  29:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *
  30:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * Permission to use, copy, modify, distribute and sell this software
  31:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * and its documentation for any purpose is hereby granted without fee,
  32:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * provided that the above copyright notice appear in all copies and
  33:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * that both that copyright notice and this permission notice appear
  34:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * in supporting documentation.  Hewlett-Packard Company makes no
  35:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * representations about the suitability of this software for any
  36:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * purpose.  It is provided "as is" without express or implied warranty.
GAS LISTING /tmp/ccnpTmNT.s 			page 46


  37:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *
  38:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *
  39:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * Copyright (c) 1996,1997
  40:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * Silicon Graphics Computer Systems, Inc.
  41:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *
  42:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * Permission to use, copy, modify, distribute and sell this software
  43:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * and its documentation for any purpose is hereby granted without fee,
  44:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * provided that the above copyright notice appear in all copies and
  45:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * that both that copyright notice and this permission notice appear
  46:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * in supporting documentation.  Silicon Graphics makes no
  47:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * representations about the suitability of this software for any
  48:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  49:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  */
  50:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  51:/usr/include/c++/4.8/bits/stl_uninitialized.h **** /** @file bits/stl_uninitialized.h
  52:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *  This is an internal header file, included by other library headers.
  53:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  *  Do not attempt to use it directly. @headername{memory}
  54:/usr/include/c++/4.8/bits/stl_uninitialized.h ****  */
  55:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  56:/usr/include/c++/4.8/bits/stl_uninitialized.h **** #ifndef _STL_UNINITIALIZED_H
  57:/usr/include/c++/4.8/bits/stl_uninitialized.h **** #define _STL_UNINITIALIZED_H 1
  58:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  59:/usr/include/c++/4.8/bits/stl_uninitialized.h **** namespace std _GLIBCXX_VISIBILITY(default)
  60:/usr/include/c++/4.8/bits/stl_uninitialized.h **** {
  61:/usr/include/c++/4.8/bits/stl_uninitialized.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  62:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  63:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<bool _TrivialValueTypes>
  64:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     struct __uninitialized_copy
  65:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
  66:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       template<typename _InputIterator, typename _ForwardIterator>
  67:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         static _ForwardIterator
  68:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         __uninit_copy(_InputIterator __first, _InputIterator __last,
  69:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		      _ForwardIterator __result)
  70:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         {
  71:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  _ForwardIterator __cur = __result;
  72:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __try
  73:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    {
  74:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      for (; __first != __last; ++__first, ++__cur)
  75:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		std::_Construct(std::__addressof(*__cur), *__first);
  76:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      return __cur;
  77:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    }
  78:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __catch(...)
  79:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    {
  80:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      std::_Destroy(__result, __cur);
  81:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      __throw_exception_again;
  82:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    }
  83:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	}
  84:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     };
  85:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  86:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<>
  87:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     struct __uninitialized_copy<true>
  88:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
  89:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       template<typename _InputIterator, typename _ForwardIterator>
  90:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         static _ForwardIterator
  91:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         __uninit_copy(_InputIterator __first, _InputIterator __last,
 666              		.loc 9 91 0
 667              		.cfi_startproc
GAS LISTING /tmp/ccnpTmNT.s 			page 47


 668              	.LVL69:
 669 0000 4883EC08 		subq	$8, %rsp
 670              		.cfi_def_cfa_offset 16
  92:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		      _ForwardIterator __result)
  93:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         { return std::copy(__first, __last, __result); }
 671              		.loc 9 93 0
 672 0004 E8000000 		call	_ZSt4copyIPKiPiET0_T_S4_S3_
 672      00
 673              	.LVL70:
 674 0009 4883C408 		addq	$8, %rsp
 675              		.cfi_def_cfa_offset 8
 676 000d C3       		ret
 677              		.cfi_endproc
 678              	.LFE1798:
 680              		.section	.text._ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_,"axG",@progbits,_ZSt18uninitialized_copy
 681              		.weak	_ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_
 683              	_ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_:
 684              	.LFB1790:
  94:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     };
  95:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
  96:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   /**
  97:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @brief Copies the range [first,last) into result.
  98:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __first  An input iterator.
  99:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __last   An input iterator.
 100:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __result An output iterator.
 101:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @return   __result + (__first - __last)
 102:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *
 103:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  Like copy(), but does not require an initialized output range.
 104:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   */
 105:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<typename _InputIterator, typename _ForwardIterator>
 106:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     inline _ForwardIterator
 107:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     uninitialized_copy(_InputIterator __first, _InputIterator __last,
 685              		.loc 9 107 0
 686              		.cfi_startproc
 687              	.LVL71:
 688 0000 4883EC08 		subq	$8, %rsp
 689              		.cfi_def_cfa_offset 16
 690              	.LBB8:
 108:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		       _ForwardIterator __result)
 109:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 110:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       typedef typename iterator_traits<_InputIterator>::value_type
 111:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	_ValueType1;
 112:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       typedef typename iterator_traits<_ForwardIterator>::value_type
 113:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	_ValueType2;
 114:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 115:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       return std::__uninitialized_copy<(__is_trivial(_ValueType1)
 116:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 					&& __is_trivial(_ValueType2))>::
 117:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	__uninit_copy(__first, __last, __result);
 691              		.loc 9 117 0
 692 0004 E8000000 		call	_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_
 692      00
 693              	.LVL72:
 694              	.LBE8:
 118:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     }
 695              		.loc 9 118 0
 696 0009 4883C408 		addq	$8, %rsp
 697              		.cfi_def_cfa_offset 8
GAS LISTING /tmp/ccnpTmNT.s 			page 48


 698 000d C3       		ret
 699              		.cfi_endproc
 700              	.LFE1790:
 702              		.section	.text._ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E,"axG",@progbits,_ZSt22__uni
 703              		.weak	_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E
 705              	_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E:
 706              	.LFB1777:
 119:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 120:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 121:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<bool _TrivialValueType>
 122:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     struct __uninitialized_fill
 123:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 124:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       template<typename _ForwardIterator, typename _Tp>
 125:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         static void
 126:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
 127:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		      const _Tp& __x)
 128:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         {
 129:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  _ForwardIterator __cur = __first;
 130:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __try
 131:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    {
 132:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      for (; __cur != __last; ++__cur)
 133:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		std::_Construct(std::__addressof(*__cur), __x);
 134:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    }
 135:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __catch(...)
 136:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    {
 137:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      std::_Destroy(__first, __cur);
 138:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      __throw_exception_again;
 139:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    }
 140:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	}
 141:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     };
 142:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 143:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<>
 144:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     struct __uninitialized_fill<true>
 145:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 146:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       template<typename _ForwardIterator, typename _Tp>
 147:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         static void
 148:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
 149:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		      const _Tp& __x)
 150:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         { std::fill(__first, __last, __x); }
 151:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     };
 152:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 153:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   /**
 154:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @brief Copies the value x into the range [first,last).
 155:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __first  An input iterator.
 156:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __last   An input iterator.
 157:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __x      The source value.
 158:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @return   Nothing.
 159:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *
 160:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  Like fill(), but does not require an initialized output range.
 161:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   */
 162:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<typename _ForwardIterator, typename _Tp>
 163:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     inline void
 164:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
 165:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		       const _Tp& __x)
 166:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 167:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       typedef typename iterator_traits<_ForwardIterator>::value_type
 168:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	_ValueType;
GAS LISTING /tmp/ccnpTmNT.s 			page 49


 169:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 170:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       std::__uninitialized_fill<__is_trivial(_ValueType)>::
 171:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	__uninit_fill(__first, __last, __x);
 172:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     }
 173:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 174:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 175:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<bool _TrivialValueType>
 176:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     struct __uninitialized_fill_n
 177:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 178:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       template<typename _ForwardIterator, typename _Size, typename _Tp>
 179:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         static void
 180:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         __uninit_fill_n(_ForwardIterator __first, _Size __n,
 181:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 			const _Tp& __x)
 182:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         {
 183:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  _ForwardIterator __cur = __first;
 184:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __try
 185:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    {
 186:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      for (; __n > 0; --__n, ++__cur)
 187:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 		std::_Construct(std::__addressof(*__cur), __x);
 188:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    }
 189:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __catch(...)
 190:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    {
 191:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      std::_Destroy(__first, __cur);
 192:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	      __throw_exception_again;
 193:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    }
 194:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	}
 195:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     };
 196:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 197:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<>
 198:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     struct __uninitialized_fill_n<true>
 199:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 200:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       template<typename _ForwardIterator, typename _Size, typename _Tp>
 201:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         static void
 202:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         __uninit_fill_n(_ForwardIterator __first, _Size __n,
 203:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 			const _Tp& __x)
 204:/usr/include/c++/4.8/bits/stl_uninitialized.h ****         { std::fill_n(__first, __n, __x); }
 205:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     };
 206:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 207:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   /**
 208:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @brief Copies the value x into the range [first,first+n).
 209:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __first  An input iterator.
 210:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __n      The number of copies to make.
 211:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @param  __x      The source value.
 212:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  @return   Nothing.
 213:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *
 214:/usr/include/c++/4.8/bits/stl_uninitialized.h ****    *  Like fill_n(), but does not require an initialized output range.
 215:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   */
 216:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<typename _ForwardIterator, typename _Size, typename _Tp>
 217:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     inline void
 218:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
 219:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 220:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       typedef typename iterator_traits<_ForwardIterator>::value_type
 221:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	_ValueType;
 222:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 223:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       std::__uninitialized_fill_n<__is_trivial(_ValueType)>::
 224:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	__uninit_fill_n(__first, __n, __x);
 225:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     }
GAS LISTING /tmp/ccnpTmNT.s 			page 50


 226:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 227:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   // Extensions: versions of uninitialized_copy, uninitialized_fill,
 228:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   //  and uninitialized_fill_n that take an allocator parameter.
 229:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   //  We dispatch back to the standard versions when we're given the
 230:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   //  default allocator.  For nondefault allocators we do not use 
 231:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   //  any of the POD optimizations.
 232:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 233:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<typename _InputIterator, typename _ForwardIterator,
 234:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	   typename _Allocator>
 235:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     _ForwardIterator
 236:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
 237:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 			   _ForwardIterator __result, _Allocator& __alloc)
 238:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     {
 239:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       _ForwardIterator __cur = __result;
 240:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       __try
 241:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	{
 242:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
 243:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  for (; __first != __last; ++__first, ++__cur)
 244:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	    __traits::construct(__alloc, std::__addressof(*__cur), *__first);
 245:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  return __cur;
 246:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	}
 247:/usr/include/c++/4.8/bits/stl_uninitialized.h ****       __catch(...)
 248:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	{
 249:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  std::_Destroy(__result, __cur, __alloc);
 250:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	  __throw_exception_again;
 251:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 	}
 252:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     }
 253:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 
 254:/usr/include/c++/4.8/bits/stl_uninitialized.h ****   template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
 255:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     inline _ForwardIterator
 256:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
 707              		.loc 9 256 0
 708              		.cfi_startproc
 709              	.LVL73:
 710 0000 4883EC08 		subq	$8, %rsp
 711              		.cfi_def_cfa_offset 16
 257:/usr/include/c++/4.8/bits/stl_uninitialized.h **** 			   _ForwardIterator __result, allocator<_Tp>&)
 258:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     { return std::uninitialized_copy(__first, __last, __result); }
 712              		.loc 9 258 0
 713 0004 E8000000 		call	_ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_
 713      00
 714              	.LVL74:
 715 0009 4883C408 		addq	$8, %rsp
 716              		.cfi_def_cfa_offset 8
 717 000d C3       		ret
 718              		.cfi_endproc
 719              	.LFE1777:
 721              		.section	.text._ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag,"axG"
 722              		.align 2
 723              		.weak	_ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag
 725              	_ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag:
 726              	.LFB1736:
 772:/usr/include/c++/4.8/bits/stl_vector.h **** 
 773:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 774:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Subscript access to the data contained in the %vector.
 775:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param __n The index of the element for which data should be
 776:/usr/include/c++/4.8/bits/stl_vector.h ****        *  accessed.
GAS LISTING /tmp/ccnpTmNT.s 			page 51


 777:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  Read-only (constant) reference to data.
 778:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 779:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This operator allows for easy, array-style, data access.
 780:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that data access with this operator is unchecked and
 781:/usr/include/c++/4.8/bits/stl_vector.h ****        *  out_of_range lookups are not defined. (For checked lookups
 782:/usr/include/c++/4.8/bits/stl_vector.h ****        *  see at().)
 783:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 784:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reference
 785:/usr/include/c++/4.8/bits/stl_vector.h ****       operator[](size_type __n) const
 786:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *(this->_M_impl._M_start + __n); }
 787:/usr/include/c++/4.8/bits/stl_vector.h **** 
 788:/usr/include/c++/4.8/bits/stl_vector.h ****     protected:
 789:/usr/include/c++/4.8/bits/stl_vector.h ****       /// Safety check used only from at().
 790:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 791:/usr/include/c++/4.8/bits/stl_vector.h ****       _M_range_check(size_type __n) const
 792:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 793:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (__n >= this->size())
 794:/usr/include/c++/4.8/bits/stl_vector.h **** 	  __throw_out_of_range(__N("vector::_M_range_check"));
 795:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 796:/usr/include/c++/4.8/bits/stl_vector.h **** 
 797:/usr/include/c++/4.8/bits/stl_vector.h ****     public:
 798:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 799:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Provides access to the data contained in the %vector.
 800:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param __n The index of the element for which data should be
 801:/usr/include/c++/4.8/bits/stl_vector.h ****        *  accessed.
 802:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  Read/write reference to data.
 803:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @throw  std::out_of_range  If @a __n is an invalid index.
 804:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 805:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function provides for safer data access.  The parameter
 806:/usr/include/c++/4.8/bits/stl_vector.h ****        *  is first checked that it is in the range of the vector.  The
 807:/usr/include/c++/4.8/bits/stl_vector.h ****        *  function throws out_of_range if the check fails.
 808:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 809:/usr/include/c++/4.8/bits/stl_vector.h ****       reference
 810:/usr/include/c++/4.8/bits/stl_vector.h ****       at(size_type __n)
 811:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 812:/usr/include/c++/4.8/bits/stl_vector.h **** 	_M_range_check(__n);
 813:/usr/include/c++/4.8/bits/stl_vector.h **** 	return (*this)[__n]; 
 814:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 815:/usr/include/c++/4.8/bits/stl_vector.h **** 
 816:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 817:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Provides access to the data contained in the %vector.
 818:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param __n The index of the element for which data should be
 819:/usr/include/c++/4.8/bits/stl_vector.h ****        *  accessed.
 820:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  Read-only (constant) reference to data.
 821:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @throw  std::out_of_range  If @a __n is an invalid index.
 822:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 823:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function provides for safer data access.  The parameter
 824:/usr/include/c++/4.8/bits/stl_vector.h ****        *  is first checked that it is in the range of the vector.  The
 825:/usr/include/c++/4.8/bits/stl_vector.h ****        *  function throws out_of_range if the check fails.
 826:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 827:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reference
 828:/usr/include/c++/4.8/bits/stl_vector.h ****       at(size_type __n) const
 829:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 830:/usr/include/c++/4.8/bits/stl_vector.h **** 	_M_range_check(__n);
 831:/usr/include/c++/4.8/bits/stl_vector.h **** 	return (*this)[__n];
 832:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 833:/usr/include/c++/4.8/bits/stl_vector.h **** 
GAS LISTING /tmp/ccnpTmNT.s 			page 52


 834:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 835:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read/write reference to the data at the first
 836:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element of the %vector.
 837:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 838:/usr/include/c++/4.8/bits/stl_vector.h ****       reference
 839:/usr/include/c++/4.8/bits/stl_vector.h ****       front()
 840:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *begin(); }
 841:/usr/include/c++/4.8/bits/stl_vector.h **** 
 842:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 843:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) reference to the data at the first
 844:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element of the %vector.
 845:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 846:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reference
 847:/usr/include/c++/4.8/bits/stl_vector.h ****       front() const
 848:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *begin(); }
 849:/usr/include/c++/4.8/bits/stl_vector.h **** 
 850:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 851:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read/write reference to the data at the last
 852:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element of the %vector.
 853:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 854:/usr/include/c++/4.8/bits/stl_vector.h ****       reference
 855:/usr/include/c++/4.8/bits/stl_vector.h ****       back()
 856:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *(end() - 1); }
 857:/usr/include/c++/4.8/bits/stl_vector.h ****       
 858:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 859:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Returns a read-only (constant) reference to the data at the
 860:/usr/include/c++/4.8/bits/stl_vector.h ****        *  last element of the %vector.
 861:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 862:/usr/include/c++/4.8/bits/stl_vector.h ****       const_reference
 863:/usr/include/c++/4.8/bits/stl_vector.h ****       back() const
 864:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *(end() - 1); }
 865:/usr/include/c++/4.8/bits/stl_vector.h **** 
 866:/usr/include/c++/4.8/bits/stl_vector.h ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
 867:/usr/include/c++/4.8/bits/stl_vector.h ****       // DR 464. Suggestion for new member functions in standard containers.
 868:/usr/include/c++/4.8/bits/stl_vector.h ****       // data access
 869:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 870:/usr/include/c++/4.8/bits/stl_vector.h ****        *   Returns a pointer such that [data(), data() + size()) is a valid
 871:/usr/include/c++/4.8/bits/stl_vector.h ****        *   range.  For a non-empty %vector, data() == &front().
 872:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 873:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 874:/usr/include/c++/4.8/bits/stl_vector.h ****       _Tp*
 875:/usr/include/c++/4.8/bits/stl_vector.h **** #else
 876:/usr/include/c++/4.8/bits/stl_vector.h ****       pointer
 877:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 878:/usr/include/c++/4.8/bits/stl_vector.h ****       data() _GLIBCXX_NOEXCEPT
 879:/usr/include/c++/4.8/bits/stl_vector.h ****       { return std::__addressof(front()); }
 880:/usr/include/c++/4.8/bits/stl_vector.h **** 
 881:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 882:/usr/include/c++/4.8/bits/stl_vector.h ****       const _Tp*
 883:/usr/include/c++/4.8/bits/stl_vector.h **** #else
 884:/usr/include/c++/4.8/bits/stl_vector.h ****       const_pointer
 885:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 886:/usr/include/c++/4.8/bits/stl_vector.h ****       data() const _GLIBCXX_NOEXCEPT
 887:/usr/include/c++/4.8/bits/stl_vector.h ****       { return std::__addressof(front()); }
 888:/usr/include/c++/4.8/bits/stl_vector.h **** 
 889:/usr/include/c++/4.8/bits/stl_vector.h ****       // [23.2.4.3] modifiers
 890:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
GAS LISTING /tmp/ccnpTmNT.s 			page 53


 891:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Add data to the end of the %vector.
 892:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  Data to be added.
 893:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 894:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This is a typical stack operation.  The function creates an
 895:/usr/include/c++/4.8/bits/stl_vector.h ****        *  element at the end of the %vector and assigns the given data
 896:/usr/include/c++/4.8/bits/stl_vector.h ****        *  to it.  Due to the nature of a %vector this operation can be
 897:/usr/include/c++/4.8/bits/stl_vector.h ****        *  done in constant time if the %vector has preallocated space
 898:/usr/include/c++/4.8/bits/stl_vector.h ****        *  available.
 899:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 900:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 901:/usr/include/c++/4.8/bits/stl_vector.h ****       push_back(const value_type& __x)
 902:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 903:/usr/include/c++/4.8/bits/stl_vector.h **** 	if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
 904:/usr/include/c++/4.8/bits/stl_vector.h **** 	  {
 905:/usr/include/c++/4.8/bits/stl_vector.h **** 	    _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
 906:/usr/include/c++/4.8/bits/stl_vector.h **** 	                             __x);
 907:/usr/include/c++/4.8/bits/stl_vector.h **** 	    ++this->_M_impl._M_finish;
 908:/usr/include/c++/4.8/bits/stl_vector.h **** 	  }
 909:/usr/include/c++/4.8/bits/stl_vector.h **** 	else
 910:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 911:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_emplace_back_aux(__x);
 912:/usr/include/c++/4.8/bits/stl_vector.h **** #else
 913:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_insert_aux(end(), __x);
 914:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 915:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 916:/usr/include/c++/4.8/bits/stl_vector.h **** 
 917:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 918:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 919:/usr/include/c++/4.8/bits/stl_vector.h ****       push_back(value_type&& __x)
 920:/usr/include/c++/4.8/bits/stl_vector.h ****       { emplace_back(std::move(__x)); }
 921:/usr/include/c++/4.8/bits/stl_vector.h **** 
 922:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename... _Args>
 923:/usr/include/c++/4.8/bits/stl_vector.h ****         void
 924:/usr/include/c++/4.8/bits/stl_vector.h ****         emplace_back(_Args&&... __args);
 925:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 926:/usr/include/c++/4.8/bits/stl_vector.h **** 
 927:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 928:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Removes last element.
 929:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 930:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This is a typical stack operation. It shrinks the %vector by one.
 931:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 932:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that no data is returned, and if the last element's
 933:/usr/include/c++/4.8/bits/stl_vector.h ****        *  data is needed, it should be retrieved before pop_back() is
 934:/usr/include/c++/4.8/bits/stl_vector.h ****        *  called.
 935:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 936:/usr/include/c++/4.8/bits/stl_vector.h ****       void
 937:/usr/include/c++/4.8/bits/stl_vector.h ****       pop_back()
 938:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 939:/usr/include/c++/4.8/bits/stl_vector.h **** 	--this->_M_impl._M_finish;
 940:/usr/include/c++/4.8/bits/stl_vector.h **** 	_Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish);
 941:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 942:/usr/include/c++/4.8/bits/stl_vector.h **** 
 943:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 944:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 945:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Inserts an object in %vector before specified iterator.
 946:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  An iterator into the %vector.
 947:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __args  Arguments.
GAS LISTING /tmp/ccnpTmNT.s 			page 54


 948:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  An iterator that points to the inserted data.
 949:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 950:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will insert an object of type T constructed
 951:/usr/include/c++/4.8/bits/stl_vector.h ****        *  with T(std::forward<Args>(args)...) before the specified location.
 952:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that this kind of operation could be expensive for a %vector
 953:/usr/include/c++/4.8/bits/stl_vector.h ****        *  and if it is frequently used the user should consider using
 954:/usr/include/c++/4.8/bits/stl_vector.h ****        *  std::list.
 955:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 956:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename... _Args>
 957:/usr/include/c++/4.8/bits/stl_vector.h ****         iterator
 958:/usr/include/c++/4.8/bits/stl_vector.h ****         emplace(iterator __position, _Args&&... __args);
 959:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 960:/usr/include/c++/4.8/bits/stl_vector.h **** 
 961:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 962:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Inserts given value into %vector before specified iterator.
 963:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  An iterator into the %vector.
 964:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  Data to be inserted.
 965:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  An iterator that points to the inserted data.
 966:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 967:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will insert a copy of the given value before
 968:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the specified location.  Note that this kind of operation
 969:/usr/include/c++/4.8/bits/stl_vector.h ****        *  could be expensive for a %vector and if it is frequently
 970:/usr/include/c++/4.8/bits/stl_vector.h ****        *  used the user should consider using std::list.
 971:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 972:/usr/include/c++/4.8/bits/stl_vector.h ****       iterator
 973:/usr/include/c++/4.8/bits/stl_vector.h ****       insert(iterator __position, const value_type& __x);
 974:/usr/include/c++/4.8/bits/stl_vector.h **** 
 975:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
 976:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 977:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Inserts given rvalue into %vector before specified iterator.
 978:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  An iterator into the %vector.
 979:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  Data to be inserted.
 980:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  An iterator that points to the inserted data.
 981:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 982:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will insert a copy of the given rvalue before
 983:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the specified location.  Note that this kind of operation
 984:/usr/include/c++/4.8/bits/stl_vector.h ****        *  could be expensive for a %vector and if it is frequently
 985:/usr/include/c++/4.8/bits/stl_vector.h ****        *  used the user should consider using std::list.
 986:/usr/include/c++/4.8/bits/stl_vector.h ****        */
 987:/usr/include/c++/4.8/bits/stl_vector.h ****       iterator
 988:/usr/include/c++/4.8/bits/stl_vector.h ****       insert(iterator __position, value_type&& __x)
 989:/usr/include/c++/4.8/bits/stl_vector.h ****       { return emplace(__position, std::move(__x)); }
 990:/usr/include/c++/4.8/bits/stl_vector.h **** 
 991:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 992:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Inserts an initializer_list into the %vector.
 993:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  An iterator into the %vector.
 994:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __l  An initializer_list.
 995:/usr/include/c++/4.8/bits/stl_vector.h ****        *
 996:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will insert copies of the data in the 
 997:/usr/include/c++/4.8/bits/stl_vector.h ****        *  initializer_list @a l into the %vector before the location
 998:/usr/include/c++/4.8/bits/stl_vector.h ****        *  specified by @a position.
 999:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1000:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that this kind of operation could be expensive for a
1001:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector and if it is frequently used the user should
1002:/usr/include/c++/4.8/bits/stl_vector.h ****        *  consider using std::list.
1003:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1004:/usr/include/c++/4.8/bits/stl_vector.h ****       void
GAS LISTING /tmp/ccnpTmNT.s 			page 55


1005:/usr/include/c++/4.8/bits/stl_vector.h ****       insert(iterator __position, initializer_list<value_type> __l)
1006:/usr/include/c++/4.8/bits/stl_vector.h ****       { this->insert(__position, __l.begin(), __l.end()); }
1007:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
1008:/usr/include/c++/4.8/bits/stl_vector.h **** 
1009:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
1010:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Inserts a number of copies of given data into the %vector.
1011:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  An iterator into the %vector.
1012:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __n  Number of elements to be inserted.
1013:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  Data to be inserted.
1014:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1015:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will insert a specified number of copies of
1016:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the given data before the location specified by @a position.
1017:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1018:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that this kind of operation could be expensive for a
1019:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector and if it is frequently used the user should
1020:/usr/include/c++/4.8/bits/stl_vector.h ****        *  consider using std::list.
1021:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1022:/usr/include/c++/4.8/bits/stl_vector.h ****       void
1023:/usr/include/c++/4.8/bits/stl_vector.h ****       insert(iterator __position, size_type __n, const value_type& __x)
1024:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_fill_insert(__position, __n, __x); }
1025:/usr/include/c++/4.8/bits/stl_vector.h **** 
1026:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
1027:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Inserts a range into the %vector.
1028:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  An iterator into the %vector.
1029:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __first  An input iterator.
1030:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __last   An input iterator.
1031:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1032:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will insert copies of the data in the range
1033:/usr/include/c++/4.8/bits/stl_vector.h ****        *  [__first,__last) into the %vector before the location specified
1034:/usr/include/c++/4.8/bits/stl_vector.h ****        *  by @a pos.
1035:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1036:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that this kind of operation could be expensive for a
1037:/usr/include/c++/4.8/bits/stl_vector.h ****        *  %vector and if it is frequently used the user should
1038:/usr/include/c++/4.8/bits/stl_vector.h ****        *  consider using std::list.
1039:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1040:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
1041:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator,
1042:/usr/include/c++/4.8/bits/stl_vector.h **** 	       typename = std::_RequireInputIter<_InputIterator>>
1043:/usr/include/c++/4.8/bits/stl_vector.h ****         void
1044:/usr/include/c++/4.8/bits/stl_vector.h ****         insert(iterator __position, _InputIterator __first,
1045:/usr/include/c++/4.8/bits/stl_vector.h **** 	       _InputIterator __last)
1046:/usr/include/c++/4.8/bits/stl_vector.h ****         { _M_insert_dispatch(__position, __first, __last, __false_type()); }
1047:/usr/include/c++/4.8/bits/stl_vector.h **** #else
1048:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator>
1049:/usr/include/c++/4.8/bits/stl_vector.h ****         void
1050:/usr/include/c++/4.8/bits/stl_vector.h ****         insert(iterator __position, _InputIterator __first,
1051:/usr/include/c++/4.8/bits/stl_vector.h **** 	       _InputIterator __last)
1052:/usr/include/c++/4.8/bits/stl_vector.h ****         {
1053:/usr/include/c++/4.8/bits/stl_vector.h **** 	  // Check whether it's an integral type.  If so, it's not an iterator.
1054:/usr/include/c++/4.8/bits/stl_vector.h **** 	  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
1055:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_insert_dispatch(__position, __first, __last, _Integral());
1056:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
1057:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
1058:/usr/include/c++/4.8/bits/stl_vector.h **** 
1059:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
1060:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Remove element at given position.
1061:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  Iterator pointing to element to be erased.
GAS LISTING /tmp/ccnpTmNT.s 			page 56


1062:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  An iterator pointing to the next element (or end()).
1063:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1064:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will erase the element at the given position and thus
1065:/usr/include/c++/4.8/bits/stl_vector.h ****        *  shorten the %vector by one.
1066:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1067:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note This operation could be expensive and if it is
1068:/usr/include/c++/4.8/bits/stl_vector.h ****        *  frequently used the user should consider using std::list.
1069:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The user is also cautioned that this function only erases
1070:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the element, and that if the element is itself a pointer,
1071:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the pointed-to memory is not touched in any way.  Managing
1072:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the pointer is the user's responsibility.
1073:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1074:/usr/include/c++/4.8/bits/stl_vector.h ****       iterator
1075:/usr/include/c++/4.8/bits/stl_vector.h ****       erase(iterator __position);
1076:/usr/include/c++/4.8/bits/stl_vector.h **** 
1077:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
1078:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Remove a range of elements.
1079:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __first  Iterator pointing to the first element to be erased.
1080:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __last  Iterator pointing to one past the last element to be
1081:/usr/include/c++/4.8/bits/stl_vector.h ****        *                  erased.
1082:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @return  An iterator pointing to the element pointed to by @a __last
1083:/usr/include/c++/4.8/bits/stl_vector.h ****        *           prior to erasing (or end()).
1084:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1085:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This function will erase the elements in the range
1086:/usr/include/c++/4.8/bits/stl_vector.h ****        *  [__first,__last) and shorten the %vector accordingly.
1087:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1088:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note This operation could be expensive and if it is
1089:/usr/include/c++/4.8/bits/stl_vector.h ****        *  frequently used the user should consider using std::list.
1090:/usr/include/c++/4.8/bits/stl_vector.h ****        *  The user is also cautioned that this function only erases
1091:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the elements, and that if the elements themselves are
1092:/usr/include/c++/4.8/bits/stl_vector.h ****        *  pointers, the pointed-to memory is not touched in any way.
1093:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Managing the pointer is the user's responsibility.
1094:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1095:/usr/include/c++/4.8/bits/stl_vector.h ****       iterator
1096:/usr/include/c++/4.8/bits/stl_vector.h ****       erase(iterator __first, iterator __last);
1097:/usr/include/c++/4.8/bits/stl_vector.h **** 
1098:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
1099:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @brief  Swaps data with another %vector.
1100:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __x  A %vector of the same element and allocator types.
1101:/usr/include/c++/4.8/bits/stl_vector.h ****        *
1102:/usr/include/c++/4.8/bits/stl_vector.h ****        *  This exchanges the elements between two vectors in constant time.
1103:/usr/include/c++/4.8/bits/stl_vector.h ****        *  (Three pointers, so it should be quite fast.)
1104:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Note that the global std::swap() function is specialized such that
1105:/usr/include/c++/4.8/bits/stl_vector.h ****        *  std::swap(v1,v2) will feed to this function.
1106:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1107:/usr/include/c++/4.8/bits/stl_vector.h ****       void
1108:/usr/include/c++/4.8/bits/stl_vector.h ****       swap(vector& __x)
1109:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
1110:/usr/include/c++/4.8/bits/stl_vector.h **** 			noexcept(_Alloc_traits::_S_nothrow_swap())
1111:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
1112:/usr/include/c++/4.8/bits/stl_vector.h ****       {
1113:/usr/include/c++/4.8/bits/stl_vector.h **** 	this->_M_impl._M_swap_data(__x._M_impl);
1114:/usr/include/c++/4.8/bits/stl_vector.h **** 	_Alloc_traits::_S_on_swap(_M_get_Tp_allocator(),
1115:/usr/include/c++/4.8/bits/stl_vector.h **** 	                          __x._M_get_Tp_allocator());
1116:/usr/include/c++/4.8/bits/stl_vector.h ****       }
1117:/usr/include/c++/4.8/bits/stl_vector.h **** 
1118:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
GAS LISTING /tmp/ccnpTmNT.s 			page 57


1119:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Erases all the elements.  Note that this function only erases the
1120:/usr/include/c++/4.8/bits/stl_vector.h ****        *  elements, and that if the elements themselves are pointers, the
1121:/usr/include/c++/4.8/bits/stl_vector.h ****        *  pointed-to memory is not touched in any way.  Managing the pointer is
1122:/usr/include/c++/4.8/bits/stl_vector.h ****        *  the user's responsibility.
1123:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1124:/usr/include/c++/4.8/bits/stl_vector.h ****       void
1125:/usr/include/c++/4.8/bits/stl_vector.h ****       clear() _GLIBCXX_NOEXCEPT
1126:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_erase_at_end(this->_M_impl._M_start); }
1127:/usr/include/c++/4.8/bits/stl_vector.h **** 
1128:/usr/include/c++/4.8/bits/stl_vector.h ****     protected:
1129:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
1130:/usr/include/c++/4.8/bits/stl_vector.h ****        *  Memory expansion handler.  Uses the member allocation function to
1131:/usr/include/c++/4.8/bits/stl_vector.h ****        *  obtain @a n bytes of memory, and then copies [first,last) into it.
1132:/usr/include/c++/4.8/bits/stl_vector.h ****        */
1133:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _ForwardIterator>
1134:/usr/include/c++/4.8/bits/stl_vector.h ****         pointer
1135:/usr/include/c++/4.8/bits/stl_vector.h ****         _M_allocate_and_copy(size_type __n,
1136:/usr/include/c++/4.8/bits/stl_vector.h **** 			     _ForwardIterator __first, _ForwardIterator __last)
1137:/usr/include/c++/4.8/bits/stl_vector.h ****         {
1138:/usr/include/c++/4.8/bits/stl_vector.h **** 	  pointer __result = this->_M_allocate(__n);
1139:/usr/include/c++/4.8/bits/stl_vector.h **** 	  __try
1140:/usr/include/c++/4.8/bits/stl_vector.h **** 	    {
1141:/usr/include/c++/4.8/bits/stl_vector.h **** 	      std::__uninitialized_copy_a(__first, __last, __result,
1142:/usr/include/c++/4.8/bits/stl_vector.h **** 					  _M_get_Tp_allocator());
1143:/usr/include/c++/4.8/bits/stl_vector.h **** 	      return __result;
1144:/usr/include/c++/4.8/bits/stl_vector.h **** 	    }
1145:/usr/include/c++/4.8/bits/stl_vector.h **** 	  __catch(...)
1146:/usr/include/c++/4.8/bits/stl_vector.h **** 	    {
1147:/usr/include/c++/4.8/bits/stl_vector.h **** 	      _M_deallocate(__result, __n);
1148:/usr/include/c++/4.8/bits/stl_vector.h **** 	      __throw_exception_again;
1149:/usr/include/c++/4.8/bits/stl_vector.h **** 	    }
1150:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
1151:/usr/include/c++/4.8/bits/stl_vector.h **** 
1152:/usr/include/c++/4.8/bits/stl_vector.h **** 
1153:/usr/include/c++/4.8/bits/stl_vector.h ****       // Internal constructor functions follow.
1154:/usr/include/c++/4.8/bits/stl_vector.h **** 
1155:/usr/include/c++/4.8/bits/stl_vector.h ****       // Called by the range constructor to implement [23.1.1]/9
1156:/usr/include/c++/4.8/bits/stl_vector.h **** 
1157:/usr/include/c++/4.8/bits/stl_vector.h ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
1158:/usr/include/c++/4.8/bits/stl_vector.h ****       // 438. Ambiguity in the "do the right thing" clause
1159:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _Integer>
1160:/usr/include/c++/4.8/bits/stl_vector.h ****         void
1161:/usr/include/c++/4.8/bits/stl_vector.h ****         _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type)
1162:/usr/include/c++/4.8/bits/stl_vector.h ****         {
1163:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_start = _M_allocate(static_cast<size_type>(__n));
1164:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_end_of_storage =
1165:/usr/include/c++/4.8/bits/stl_vector.h **** 	    this->_M_impl._M_start + static_cast<size_type>(__n);
1166:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_fill_initialize(static_cast<size_type>(__n), __value);
1167:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
1168:/usr/include/c++/4.8/bits/stl_vector.h **** 
1169:/usr/include/c++/4.8/bits/stl_vector.h ****       // Called by the range constructor to implement [23.1.1]/9
1170:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator>
1171:/usr/include/c++/4.8/bits/stl_vector.h ****         void
1172:/usr/include/c++/4.8/bits/stl_vector.h ****         _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
1173:/usr/include/c++/4.8/bits/stl_vector.h **** 			       __false_type)
1174:/usr/include/c++/4.8/bits/stl_vector.h ****         {
1175:/usr/include/c++/4.8/bits/stl_vector.h **** 	  typedef typename std::iterator_traits<_InputIterator>::
GAS LISTING /tmp/ccnpTmNT.s 			page 58


1176:/usr/include/c++/4.8/bits/stl_vector.h **** 	    iterator_category _IterCategory;
1177:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_range_initialize(__first, __last, _IterCategory());
1178:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
1179:/usr/include/c++/4.8/bits/stl_vector.h **** 
1180:/usr/include/c++/4.8/bits/stl_vector.h ****       // Called by the second initialize_dispatch above
1181:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _InputIterator>
1182:/usr/include/c++/4.8/bits/stl_vector.h ****         void
1183:/usr/include/c++/4.8/bits/stl_vector.h ****         _M_range_initialize(_InputIterator __first,
1184:/usr/include/c++/4.8/bits/stl_vector.h **** 			    _InputIterator __last, std::input_iterator_tag)
1185:/usr/include/c++/4.8/bits/stl_vector.h ****         {
1186:/usr/include/c++/4.8/bits/stl_vector.h **** 	  for (; __first != __last; ++__first)
1187:/usr/include/c++/4.8/bits/stl_vector.h **** #if __cplusplus >= 201103L
1188:/usr/include/c++/4.8/bits/stl_vector.h **** 	    emplace_back(*__first);
1189:/usr/include/c++/4.8/bits/stl_vector.h **** #else
1190:/usr/include/c++/4.8/bits/stl_vector.h **** 	    push_back(*__first);
1191:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
1192:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
1193:/usr/include/c++/4.8/bits/stl_vector.h **** 
1194:/usr/include/c++/4.8/bits/stl_vector.h ****       // Called by the second initialize_dispatch above
1195:/usr/include/c++/4.8/bits/stl_vector.h ****       template<typename _ForwardIterator>
1196:/usr/include/c++/4.8/bits/stl_vector.h ****         void
1197:/usr/include/c++/4.8/bits/stl_vector.h ****         _M_range_initialize(_ForwardIterator __first,
 727              		.loc 4 1197 0
 728              		.cfi_startproc
 729              	.LVL75:
 730 0000 4156     		pushq	%r14
 731              		.cfi_def_cfa_offset 16
 732              		.cfi_offset 14, -16
 733 0002 4155     		pushq	%r13
 734              		.cfi_def_cfa_offset 24
 735              		.cfi_offset 13, -24
 736 0004 4154     		pushq	%r12
 737              		.cfi_def_cfa_offset 32
 738              		.cfi_offset 12, -32
 739 0006 55       		pushq	%rbp
 740              		.cfi_def_cfa_offset 40
 741              		.cfi_offset 6, -40
 742 0007 53       		pushq	%rbx
 743              		.cfi_def_cfa_offset 48
 744              		.cfi_offset 3, -48
 745 0008 4889FB   		movq	%rdi, %rbx
 746 000b 4989F4   		movq	%rsi, %r12
 747 000e 4989D5   		movq	%rdx, %r13
 748              	.LBB9:
1198:/usr/include/c++/4.8/bits/stl_vector.h **** 			    _ForwardIterator __last, std::forward_iterator_tag)
1199:/usr/include/c++/4.8/bits/stl_vector.h ****         {
1200:/usr/include/c++/4.8/bits/stl_vector.h **** 	  const size_type __n = std::distance(__first, __last);
 749              		.loc 4 1200 0
 750 0011 4889D6   		movq	%rdx, %rsi
 751              	.LVL76:
 752 0014 4C89E7   		movq	%r12, %rdi
 753              	.LVL77:
 754 0017 E8000000 		call	_ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_
 754      00
 755              	.LVL78:
 756 001c 4989C6   		movq	%rax, %r14
 757              	.LVL79:
GAS LISTING /tmp/ccnpTmNT.s 			page 59


1201:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_start = this->_M_allocate(__n);
 758              		.loc 4 1201 0
 759 001f 4889C6   		movq	%rax, %rsi
 760 0022 4889DF   		movq	%rbx, %rdi
 761 0025 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm
 761      00
 762              	.LVL80:
 763 002a 4889C5   		movq	%rax, %rbp
 764 002d 488903   		movq	%rax, (%rbx)
1202:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
 765              		.loc 4 1202 0
 766 0030 4A8D04B0 		leaq	(%rax,%r14,4), %rax
 767 0034 48894310 		movq	%rax, 16(%rbx)
1203:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_finish =
1204:/usr/include/c++/4.8/bits/stl_vector.h **** 	    std::__uninitialized_copy_a(__first, __last,
1205:/usr/include/c++/4.8/bits/stl_vector.h **** 					this->_M_impl._M_start,
1206:/usr/include/c++/4.8/bits/stl_vector.h **** 					_M_get_Tp_allocator());
 768              		.loc 4 1206 0
 769 0038 4889DF   		movq	%rbx, %rdi
 770 003b E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv
 770      00
 771              	.LVL81:
 772 0040 4889C1   		movq	%rax, %rcx
 773 0043 4889EA   		movq	%rbp, %rdx
 774 0046 4C89EE   		movq	%r13, %rsi
 775 0049 4C89E7   		movq	%r12, %rdi
 776 004c E8000000 		call	_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E
 776      00
 777              	.LVL82:
1203:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_finish =
 778              		.loc 4 1203 0
 779 0051 48894308 		movq	%rax, 8(%rbx)
 780              	.LBE9:
1207:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
 781              		.loc 4 1207 0
 782 0055 5B       		popq	%rbx
 783              		.cfi_def_cfa_offset 40
 784              	.LVL83:
 785 0056 5D       		popq	%rbp
 786              		.cfi_def_cfa_offset 32
 787 0057 415C     		popq	%r12
 788              		.cfi_def_cfa_offset 24
 789              	.LVL84:
 790 0059 415D     		popq	%r13
 791              		.cfi_def_cfa_offset 16
 792              	.LVL85:
 793 005b 415E     		popq	%r14
 794              		.cfi_def_cfa_offset 8
 795              	.LVL86:
 796 005d C3       		ret
 797              		.cfi_endproc
 798              	.LFE1736:
 800              		.section	.text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_,"axG",@progbits,_ZNSt6vectorIiS
 801              		.align 2
 802              		.weak	_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_
 804              	_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_:
 805              	.LFB1668:
GAS LISTING /tmp/ccnpTmNT.s 			page 60


 364:/usr/include/c++/4.8/bits/stl_vector.h **** 	     const allocator_type& __a = allocator_type())
 806              		.loc 4 364 0
 807              		.cfi_startproc
 808              		.cfi_personality 0x3,__gxx_personality_v0
 809              		.cfi_lsda 0x3,.LLSDA1668
 810              	.LVL87:
 811 0000 55       		pushq	%rbp
 812              		.cfi_def_cfa_offset 16
 813              		.cfi_offset 6, -16
 814 0001 53       		pushq	%rbx
 815              		.cfi_def_cfa_offset 24
 816              		.cfi_offset 3, -24
 817 0002 4883EC28 		subq	$40, %rsp
 818              		.cfi_def_cfa_offset 64
 819 0006 4889FB   		movq	%rdi, %rbx
 820 0009 48897424 		movq	%rsi, 16(%rsp)
 820      10
 821 000e 48895424 		movq	%rdx, 24(%rsp)
 821      18
 822              	.LBB10:
 366:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 823              		.loc 4 366 0
 824 0013 4889CE   		movq	%rcx, %rsi
 825 0016 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
 825      00
 826              	.LVL88:
 369:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 827              		.loc 4 369 0
 828 001b 488D7C24 		leaq	16(%rsp), %rdi
 828      10
 829 0020 E8000000 		call	_ZNKSt16initializer_listIiE3endEv
 829      00
 830              	.LVL89:
 831 0025 4889C5   		movq	%rax, %rbp
 832 0028 488D7C24 		leaq	16(%rsp), %rdi
 832      10
 833 002d E8000000 		call	_ZNKSt16initializer_listIiE5beginEv
 833      00
 834              	.LVL90:
 368:/usr/include/c++/4.8/bits/stl_vector.h **** 			    random_access_iterator_tag());
 835              		.loc 4 368 0
 836 0032 C6042400 		movb	$0, (%rsp)
 837 0036 4889EA   		movq	%rbp, %rdx
 838 0039 4889C6   		movq	%rax, %rsi
 839 003c 4889DF   		movq	%rbx, %rdi
 840              	.LEHB0:
 841 003f E8000000 		call	_ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag
 841      00
 842              	.LEHE0:
 843              	.LVL91:
 844 0044 EB13     		jmp	.L67
 845              	.L66:
 846 0046 4889C5   		movq	%rax, %rbp
 366:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 847              		.loc 4 366 0
 848 0049 4889DF   		movq	%rbx, %rdi
 849 004c E8000000 		call	_ZNSt12_Vector_baseIiSaIiEED2Ev
GAS LISTING /tmp/ccnpTmNT.s 			page 61


 849      00
 850              	.LVL92:
 851 0051 4889EF   		movq	%rbp, %rdi
 852              	.LEHB1:
 853 0054 E8000000 		call	_Unwind_Resume
 853      00
 854              	.LEHE1:
 855              	.LVL93:
 856              	.L67:
 857              	.LBE10:
 370:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 858              		.loc 4 370 0
 859 0059 4883C428 		addq	$40, %rsp
 860              		.cfi_def_cfa_offset 24
 861 005d 5B       		popq	%rbx
 862              		.cfi_def_cfa_offset 16
 863              	.LVL94:
 864 005e 5D       		popq	%rbp
 865              		.cfi_def_cfa_offset 8
 866 005f C3       		ret
 867              		.cfi_endproc
 868              	.LFE1668:
 869              		.globl	__gxx_personality_v0
 870              		.section	.gcc_except_table._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_,"aG",@progbits,_ZNS
 871              	.LLSDA1668:
 872 0000 FF       		.byte	0xff
 873 0001 FF       		.byte	0xff
 874 0002 01       		.byte	0x1
 875 0003 08       		.uleb128 .LLSDACSE1668-.LLSDACSB1668
 876              	.LLSDACSB1668:
 877 0004 3F       		.uleb128 .LEHB0-.LFB1668
 878 0005 05       		.uleb128 .LEHE0-.LEHB0
 879 0006 46       		.uleb128 .L66-.LFB1668
 880 0007 00       		.uleb128 0
 881 0008 54       		.uleb128 .LEHB1-.LFB1668
 882 0009 05       		.uleb128 .LEHE1-.LEHB1
 883 000a 00       		.uleb128 0
 884 000b 00       		.uleb128 0
 885              	.LLSDACSE1668:
 886              		.section	.text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_,"axG",@progbits,_ZNSt6vectorIiS
 888              		.weak	_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_
 889              		.set	_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_,_ZNSt6vectorIiSaIiEEC2ESt16initializer_li
 890              		.section	.rodata.str1.1,"aMS",@progbits,1
 891              	.LC0:
 892 0000 696E6974 		.string	"initializationList"
 892      69616C69 
 892      7A617469 
 892      6F6E4C69 
 892      737400
 893              		.text
 894              		.globl	_Z18initializationListv
 896              	_Z18initializationListv:
 897              	.LFB1601:
   6:initialization-list.cpp ****   std::vector<int> v = { 11, 13, 17 };
 898              		.loc 1 6 0
 899              		.cfi_startproc
 900              		.cfi_personality 0x3,__gxx_personality_v0
GAS LISTING /tmp/ccnpTmNT.s 			page 62


 901              		.cfi_lsda 0x3,.LLSDA1601
 902 0034 53       		pushq	%rbx
 903              		.cfi_def_cfa_offset 16
 904              		.cfi_offset 3, -16
 905 0035 4883EC30 		subq	$48, %rsp
 906              		.cfi_def_cfa_offset 64
 907              	.LBB11:
   7:initialization-list.cpp **** 
 908              		.loc 1 7 0
 909 0039 488D4C24 		leaq	15(%rsp), %rcx
 909      0F
 910 003e BE000000 		movl	$._85, %esi
 910      00
 911 0043 BA030000 		movl	$3, %edx
 911      00
 912 0048 488D7C24 		leaq	16(%rsp), %rdi
 912      10
 913              	.LEHB2:
 914 004d E8000000 		call	_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_
 914      00
 915              	.LEHE2:
 916              	.LVL95:
   9:initialization-list.cpp **** }
 917              		.loc 1 9 0
 918 0052 BE010000 		movl	$1, %esi
 918      00
 919 0057 488D7C24 		leaq	16(%rsp), %rdi
 919      10
 920 005c E8000000 		call	_ZNSt6vectorIiSaIiEEixEm
 920      00
 921              	.LVL96:
 922 0061 8B18     		movl	(%rax), %ebx
 923 0063 BE000000 		movl	$.LC0, %esi
 923      00
 924 0068 BF000000 		movl	$_ZSt4cout, %edi
 924      00
 925              	.LEHB3:
 926 006d E8000000 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 926      00
 927              	.LVL97:
 928 0072 89DE     		movl	%ebx, %esi
 929 0074 4889C7   		movq	%rax, %rdi
 930 0077 E8000000 		call	_ZNSolsEi
 930      00
 931              	.LVL98:
   9:initialization-list.cpp **** }
 932              		.loc 1 9 0 is_stmt 0 discriminator 1
 933 007c BE000000 		movl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_, %esi
 933      00
 934 0081 4889C7   		movq	%rax, %rdi
 935 0084 E8000000 		call	_ZNSolsEPFRSoS_E
 935      00
 936              	.LEHE3:
 937              	.LVL99:
 938 0089 488D7C24 		leaq	16(%rsp), %rdi
 938      10
 939 008e E8000000 		call	_ZNSt6vectorIiSaIiEED1Ev
GAS LISTING /tmp/ccnpTmNT.s 			page 63


 939      00
 940              	.LVL100:
 941 0093 EB15     		jmp	.L72
 942              	.L71:
 943 0095 4889C3   		movq	%rax, %rbx
   9:initialization-list.cpp **** }
 944              		.loc 1 9 0
 945 0098 488D7C24 		leaq	16(%rsp), %rdi
 945      10
 946 009d E8000000 		call	_ZNSt6vectorIiSaIiEED1Ev
 946      00
 947              	.LVL101:
 948 00a2 4889DF   		movq	%rbx, %rdi
 949              	.LEHB4:
 950 00a5 E8000000 		call	_Unwind_Resume
 950      00
 951              	.LEHE4:
 952              	.LVL102:
 953              	.L72:
 954              	.LBE11:
 955              		.loc 1 10 0 is_stmt 1
 956 00aa 4883C430 		addq	$48, %rsp
 957              		.cfi_def_cfa_offset 16
 958 00ae 5B       		popq	%rbx
 959              		.cfi_def_cfa_offset 8
 960 00af C3       		ret
 961              		.cfi_endproc
 962              	.LFE1601:
 963              		.section	.gcc_except_table,"a",@progbits
 964              	.LLSDA1601:
 965 0000 FF       		.byte	0xff
 966 0001 FF       		.byte	0xff
 967 0002 01       		.byte	0x1
 968 0003 0C       		.uleb128 .LLSDACSE1601-.LLSDACSB1601
 969              	.LLSDACSB1601:
 970 0004 19       		.uleb128 .LEHB2-.LFB1601
 971 0005 05       		.uleb128 .LEHE2-.LEHB2
 972 0006 00       		.uleb128 0
 973 0007 00       		.uleb128 0
 974 0008 39       		.uleb128 .LEHB3-.LFB1601
 975 0009 1C       		.uleb128 .LEHE3-.LEHB3
 976 000a 61       		.uleb128 .L71-.LFB1601
 977 000b 00       		.uleb128 0
 978 000c 71       		.uleb128 .LEHB4-.LFB1601
 979 000d 05       		.uleb128 .LEHE4-.LEHB4
 980 000e 00       		.uleb128 0
 981 000f 00       		.uleb128 0
 982              	.LLSDACSE1601:
 983              		.text
 986              	_GLOBAL__sub_I__Z18initializationListv:
 987              	.LFB1827:
 988              		.loc 1 10 0
 989              		.cfi_startproc
 990 00b0 4883EC08 		subq	$8, %rsp
 991              		.cfi_def_cfa_offset 16
 992              		.loc 1 10 0
 993 00b4 BEFFFF00 		movl	$65535, %esi
GAS LISTING /tmp/ccnpTmNT.s 			page 64


 993      00
 994 00b9 BF010000 		movl	$1, %edi
 994      00
 995 00be E83DFFFF 		call	_Z41__static_initialization_and_destruction_0ii
 995      FF
 996              	.LVL103:
 997 00c3 4883C408 		addq	$8, %rsp
 998              		.cfi_def_cfa_offset 8
 999 00c7 C3       		ret
 1000              		.cfi_endproc
 1001              	.LFE1827:
 1003              		.section	.init_array,"aw"
 1004              		.align 8
 1005 0000 00000000 		.quad	_GLOBAL__sub_I__Z18initializationListv
 1005      00000000 
 1006              		.section	.rodata
 1007              		.align 4
 1010              	._85:
 1011 0000 0B000000 		.long	11
 1012 0004 0D000000 		.long	13
 1013 0008 11000000 		.long	17
 1014              		.local	_ZStL8__ioinit
 1015              		.comm	_ZStL8__ioinit,1,1
 1016              		.text
 1017              	.Letext0:
 1018              		.file 10 "/usr/include/libio.h"
 1019              		.file 11 "/usr/include/stdio.h"
 1020              		.file 12 "<built-in>"
 1021              		.file 13 "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h"
 1022              		.file 14 "/usr/include/wchar.h"
 1023              		.file 15 "/usr/include/c++/4.8/cwchar"
 1024              		.file 16 "/usr/include/c++/4.8/bits/exception_ptr.h"
 1025              		.file 17 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h"
 1026              		.file 18 "/usr/include/c++/4.8/type_traits"
 1027              		.file 19 "/usr/include/c++/4.8/bits/stl_pair.h"
 1028              		.file 20 "/usr/include/c++/4.8/bits/char_traits.h"
 1029              		.file 21 "/usr/include/c++/4.8/cstdint"
 1030              		.file 22 "/usr/include/c++/4.8/clocale"
 1031              		.file 23 "/usr/include/c++/4.8/cstdlib"
 1032              		.file 24 "/usr/include/c++/4.8/cstdio"
 1033              		.file 25 "/usr/include/c++/4.8/bits/ios_base.h"
 1034              		.file 26 "/usr/include/c++/4.8/cwctype"
 1035              		.file 27 "/usr/include/c++/4.8/bits/ostream.tcc"
 1036              		.file 28 "/usr/include/c++/4.8/ostream"
 1037              		.file 29 "/usr/include/c++/4.8/bits/allocator.h"
 1038              		.file 30 "/usr/include/c++/4.8/bits/ptr_traits.h"
 1039              		.file 31 "/usr/include/c++/4.8/bits/alloc_traits.h"
 1040              		.file 32 "/usr/include/c++/4.8/ext/alloc_traits.h"
 1041              		.file 33 "/usr/include/c++/4.8/bits/vector.tcc"
 1042              		.file 34 "/usr/include/c++/4.8/iosfwd"
 1043              		.file 35 "/usr/include/x86_64-linux-gnu/bits/wchar2.h"
 1044              		.file 36 "/usr/include/c++/4.8/bits/functexcept.h"
 1045              		.file 37 "/usr/include/time.h"
 1046              		.file 38 "/usr/include/c++/4.8/ext/numeric_traits.h"
 1047              		.file 39 "/usr/include/c++/4.8/debug/debug.h"
 1048              		.file 40 "/usr/include/stdint.h"
 1049              		.file 41 "/usr/include/locale.h"
GAS LISTING /tmp/ccnpTmNT.s 			page 65


 1050              		.file 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
 1051              		.file 43 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/atomic_word.h"
 1052              		.file 44 "/usr/include/stdlib.h"
 1053              		.file 45 "/usr/include/x86_64-linux-gnu/bits/stdlib.h"
 1054              		.file 46 "/usr/include/_G_config.h"
 1055              		.file 47 "/usr/include/x86_64-linux-gnu/bits/stdio2.h"
 1056              		.file 48 "/usr/include/wctype.h"
 1057              		.file 49 "/usr/include/c++/4.8/new"
GAS LISTING /tmp/ccnpTmNT.s 			page 66


DEFINED SYMBOLS
                            *ABS*:0000000000000000 initialization-list.cpp
     /tmp/ccnpTmNT.s:5      .text:0000000000000000 _Z41__static_initialization_and_destruction_0ii
                             .bss:0000000000000000 _ZStL8__ioinit
     /tmp/ccnpTmNT.s:42     .text._ZNKSt16initializer_listIiE5beginEv:0000000000000000 _ZNKSt16initializer_listIiE5beginEv
     /tmp/ccnpTmNT.s:58     .text._ZNKSt16initializer_listIiE4sizeEv:0000000000000000 _ZNKSt16initializer_listIiE4sizeEv
     /tmp/ccnpTmNT.s:73     .text._ZNKSt16initializer_listIiE3endEv:0000000000000000 _ZNKSt16initializer_listIiE3endEv
     /tmp/ccnpTmNT.s:110    .text._ZNSt6vectorIiSaIiEEixEm:0000000000000000 _ZNSt6vectorIiSaIiEEixEm
     /tmp/ccnpTmNT.s:127    .text._ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv
     /tmp/ccnpTmNT.s:142    .text._ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_
     /tmp/ccnpTmNT.s:142    .text._ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_
     /tmp/ccnpTmNT.s:163    .text._ZNSt12_Vector_baseIiSaIiEEC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
     /tmp/ccnpTmNT.s:163    .text._ZNSt12_Vector_baseIiSaIiEEC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEEC1ERKS0_
     /tmp/ccnpTmNT.s:187    .text._ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim:0000000000000000 _ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim
     /tmp/ccnpTmNT.s:210    .text._ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim
     /tmp/ccnpTmNT.s:236    .text._ZNSt12_Vector_baseIiSaIiEED2Ev:0000000000000000 _ZNSt12_Vector_baseIiSaIiEED2Ev
     /tmp/ccnpTmNT.s:236    .text._ZNSt12_Vector_baseIiSaIiEED2Ev:0000000000000000 _ZNSt12_Vector_baseIiSaIiEED1Ev
     /tmp/ccnpTmNT.s:266    .text._ZNSt6vectorIiSaIiEED2Ev:0000000000000000 _ZNSt6vectorIiSaIiEED2Ev
     /tmp/ccnpTmNT.s:266    .text._ZNSt6vectorIiSaIiEED2Ev:0000000000000000 _ZNSt6vectorIiSaIiEED1Ev
     /tmp/ccnpTmNT.s:289    .text._ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag:0000000000000000 _ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag
     /tmp/ccnpTmNT.s:307    .text._ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_:0000000000000000 _ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_
     /tmp/ccnpTmNT.s:329    .text._ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv:0000000000000000 _ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv
     /tmp/ccnpTmNT.s:344    .text._ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv:0000000000000000 _ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv
     /tmp/ccnpTmNT.s:378    .text._ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm
     /tmp/ccnpTmNT.s:405    .text._ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_:0000000000000000 _ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
     /tmp/ccnpTmNT.s:420    .text._ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_:0000000000000000 _ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
     /tmp/ccnpTmNT.s:440    .text._ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_:0000000000000000 _ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
     /tmp/ccnpTmNT.s:459    .text._ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_:0000000000000000 _ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_
     /tmp/ccnpTmNT.s:473    .text._ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_:0000000000000000 _ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_
     /tmp/ccnpTmNT.s:492    .text._ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_:0000000000000000 _ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_
     /tmp/ccnpTmNT.s:544    .text._ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_:0000000000000000 _ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_
     /tmp/ccnpTmNT.s:567    .text._ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_:0000000000000000 _ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_
     /tmp/ccnpTmNT.s:617    .text._ZSt4copyIPKiPiET0_T_S4_S3_:0000000000000000 _ZSt4copyIPKiPiET0_T_S4_S3_
     /tmp/ccnpTmNT.s:663    .text._ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_:0000000000000000 _ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_
     /tmp/ccnpTmNT.s:683    .text._ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_:0000000000000000 _ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_
     /tmp/ccnpTmNT.s:705    .text._ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E:0000000000000000 _ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E
     /tmp/ccnpTmNT.s:725    .text._ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag:0000000000000000 _ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag
     /tmp/ccnpTmNT.s:804    .text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_:0000000000000000 _ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_
     /tmp/ccnpTmNT.s:804    .text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_:0000000000000000 _ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_
     /tmp/ccnpTmNT.s:896    .text:0000000000000034 _Z18initializationListv
     /tmp/ccnpTmNT.s:1010   .rodata:0000000000000000 ._85
     /tmp/ccnpTmNT.s:986    .text:00000000000000b0 _GLOBAL__sub_I__Z18initializationListv
                           .group:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE12_Vector_implC5ERKS0_
                           .group:0000000000000000 _ZNSt12_Vector_baseIiSaIiEEC5ERKS0_
                           .group:0000000000000000 _ZNSt12_Vector_baseIiSaIiEED5Ev
                           .group:0000000000000000 _ZNSt6vectorIiSaIiEED5Ev
                           .group:0000000000000000 _ZNSt6vectorIiSaIiEEC5ESt16initializer_listIiERKS0_

UNDEFINED SYMBOLS
_ZNSt8ios_base4InitC1Ev
__dso_handle
_ZNSt8ios_base4InitD1Ev
__cxa_atexit
_ZdlPv
_ZSt17__throw_bad_allocv
_Znwm
memmove
GAS LISTING /tmp/ccnpTmNT.s 			page 67


__gxx_personality_v0
_Unwind_Resume
_ZSt4cout
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
_ZNSolsEi
_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
_ZNSolsEPFRSoS_E