GAS LISTING /tmp/ccCle2Qt.s 			page 1


   1              		.file	"range-loop.cpp"
   2              		.text
   3              	.Ltext0:
   5              	_Z41__static_initialization_and_destruction_0ii:
   6              	.LFB1841:
   7              		.file 1 "range-loop.cpp"
   1:range-loop.cpp **** #include <iostream>
   2:range-loop.cpp **** #include <vector>
   3:range-loop.cpp **** 
   4:range-loop.cpp **** 
   5:range-loop.cpp **** void rangeLoop() {
   6:range-loop.cpp **** 
   7:range-loop.cpp ****   std::vector<int> v = {1,2,3,4};
   8:range-loop.cpp ****   int a[4] = {5,6,7,8};
   9:range-loop.cpp **** 
  10:range-loop.cpp ****   std::cout << "rangeLoop ";
  11:range-loop.cpp ****   for (auto i : v ) {
  12:range-loop.cpp ****     std::cout << i;
  13:range-loop.cpp ****   }
  14:range-loop.cpp ****   for (std::vector<int>::const_iterator j = v.begin(); j < v.end(); ++j) {
  15:range-loop.cpp ****     std::cout << &j;
  16:range-loop.cpp ****   }
  17:range-loop.cpp **** 
  18:range-loop.cpp ****   for (auto i : a) {
  19:range-loop.cpp ****     std::cout << i;
  20:range-loop.cpp ****   }
  21:range-loop.cpp **** 
  22:range-loop.cpp ****   for (auto &r : a) {
  23:range-loop.cpp ****     ++r;
  24:range-loop.cpp ****     std::cout << r;
  25:range-loop.cpp ****   }
  26:range-loop.cpp **** 
  27:range-loop.cpp ****   std::cout << std::endl;
  28:range-loop.cpp **** }
   8              		.loc 1 28 0
   9              		.cfi_startproc
  10              	.LVL0:
  11 0000 83FF01   		cmpl	$1, %edi
  12 0003 752E     		jne	.L5
  13              		.loc 1 28 0 discriminator 1
  14 0005 81FEFFFF 		cmpl	$65535, %esi
  14      0000
  15 000b 7526     		jne	.L5
  16              		.loc 1 28 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 **** 
GAS LISTING /tmp/ccCle2Qt.s 			page 2


  11:/usr/include/c++/4.8/iostream **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/iostream **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/iostream **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/iostream **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/iostream **** 
  16:/usr/include/c++/4.8/iostream **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/iostream **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/iostream **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/iostream **** 
  20:/usr/include/c++/4.8/iostream **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/iostream **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/iostream **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/iostream **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/iostream **** 
  25:/usr/include/c++/4.8/iostream **** /** @file include/iostream
  26:/usr/include/c++/4.8/iostream ****  *  This is a Standard C++ Library header.
  27:/usr/include/c++/4.8/iostream ****  */
  28:/usr/include/c++/4.8/iostream **** 
  29:/usr/include/c++/4.8/iostream **** //
  30:/usr/include/c++/4.8/iostream **** // ISO C++ 14882: 27.3  Standard iostream objects
  31:/usr/include/c++/4.8/iostream **** //
  32:/usr/include/c++/4.8/iostream **** 
  33:/usr/include/c++/4.8/iostream **** #ifndef _GLIBCXX_IOSTREAM
  34:/usr/include/c++/4.8/iostream **** #define _GLIBCXX_IOSTREAM 1
  35:/usr/include/c++/4.8/iostream **** 
  36:/usr/include/c++/4.8/iostream **** #pragma GCC system_header
  37:/usr/include/c++/4.8/iostream **** 
  38:/usr/include/c++/4.8/iostream **** #include <bits/c++config.h>
  39:/usr/include/c++/4.8/iostream **** #include <ostream>
  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
GAS LISTING /tmp/ccCle2Qt.s 			page 3


  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
  27 0025 BF000000 		movl	$_ZNSt8ios_base4InitD1Ev, %edi
  27      00
  28 002a E8000000 		call	__cxa_atexit
  28      00
  29              	.LVL3:
  30              		.loc 1 28 0
  31 002f 4883C408 		addq	$8, %rsp
  32              		.cfi_def_cfa_offset 8
  33              	.L5:
  34 0033 C3       		ret
  35              		.cfi_endproc
  36              	.LFE1841:
  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
GAS LISTING /tmp/ccCle2Qt.s 			page 4


  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)
  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:
GAS LISTING /tmp/ccCle2Qt.s 			page 5


  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
  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:
GAS LISTING /tmp/ccCle2Qt.s 			page 6


 100 0023 5D       		popq	%rbp
 101              		.cfi_def_cfa_offset 8
 102 0024 C3       		ret
 103              		.cfi_endproc
 104              	.LFE1666:
 106              		.section	.text._ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv,"axG",@progbits,_ZN9__gnu
 107              		.align 2
 108              		.weak	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv
 110              	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv:
 111              	.LFB1677:
 112              		.file 4 "/usr/include/c++/4.8/bits/stl_iterator.h"
   1:/usr/include/c++/4.8/bits/stl_iterator.h **** // Iterators -*- C++ -*-
   2:/usr/include/c++/4.8/bits/stl_iterator.h **** 
   3:/usr/include/c++/4.8/bits/stl_iterator.h **** // Copyright (C) 2001-2013 Free Software Foundation, Inc.
   4:/usr/include/c++/4.8/bits/stl_iterator.h **** //
   5:/usr/include/c++/4.8/bits/stl_iterator.h **** // This file is part of the GNU ISO C++ Library.  This library is free
   6:/usr/include/c++/4.8/bits/stl_iterator.h **** // software; you can redistribute it and/or modify it under the
   7:/usr/include/c++/4.8/bits/stl_iterator.h **** // terms of the GNU General Public License as published by the
   8:/usr/include/c++/4.8/bits/stl_iterator.h **** // Free Software Foundation; either version 3, or (at your option)
   9:/usr/include/c++/4.8/bits/stl_iterator.h **** // any later version.
  10:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  11:/usr/include/c++/4.8/bits/stl_iterator.h **** // This library is distributed in the hope that it will be useful,
  12:/usr/include/c++/4.8/bits/stl_iterator.h **** // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13:/usr/include/c++/4.8/bits/stl_iterator.h **** // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14:/usr/include/c++/4.8/bits/stl_iterator.h **** // GNU General Public License for more details.
  15:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  16:/usr/include/c++/4.8/bits/stl_iterator.h **** // Under Section 7 of GPL version 3, you are granted additional
  17:/usr/include/c++/4.8/bits/stl_iterator.h **** // permissions described in the GCC Runtime Library Exception, version
  18:/usr/include/c++/4.8/bits/stl_iterator.h **** // 3.1, as published by the Free Software Foundation.
  19:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  20:/usr/include/c++/4.8/bits/stl_iterator.h **** // You should have received a copy of the GNU General Public License and
  21:/usr/include/c++/4.8/bits/stl_iterator.h **** // a copy of the GCC Runtime Library Exception along with this program;
  22:/usr/include/c++/4.8/bits/stl_iterator.h **** // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23:/usr/include/c++/4.8/bits/stl_iterator.h **** // <http://www.gnu.org/licenses/>.
  24:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  25:/usr/include/c++/4.8/bits/stl_iterator.h **** /*
  26:/usr/include/c++/4.8/bits/stl_iterator.h ****  *
  27:/usr/include/c++/4.8/bits/stl_iterator.h ****  * Copyright (c) 1994
  28:/usr/include/c++/4.8/bits/stl_iterator.h ****  * Hewlett-Packard Company
  29:/usr/include/c++/4.8/bits/stl_iterator.h ****  *
  30:/usr/include/c++/4.8/bits/stl_iterator.h ****  * Permission to use, copy, modify, distribute and sell this software
  31:/usr/include/c++/4.8/bits/stl_iterator.h ****  * and its documentation for any purpose is hereby granted without fee,
  32:/usr/include/c++/4.8/bits/stl_iterator.h ****  * provided that the above copyright notice appear in all copies and
  33:/usr/include/c++/4.8/bits/stl_iterator.h ****  * that both that copyright notice and this permission notice appear
  34:/usr/include/c++/4.8/bits/stl_iterator.h ****  * in supporting documentation.  Hewlett-Packard Company makes no
  35:/usr/include/c++/4.8/bits/stl_iterator.h ****  * representations about the suitability of this software for any
  36:/usr/include/c++/4.8/bits/stl_iterator.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  37:/usr/include/c++/4.8/bits/stl_iterator.h ****  *
  38:/usr/include/c++/4.8/bits/stl_iterator.h ****  *
  39:/usr/include/c++/4.8/bits/stl_iterator.h ****  * Copyright (c) 1996-1998
  40:/usr/include/c++/4.8/bits/stl_iterator.h ****  * Silicon Graphics Computer Systems, Inc.
  41:/usr/include/c++/4.8/bits/stl_iterator.h ****  *
  42:/usr/include/c++/4.8/bits/stl_iterator.h ****  * Permission to use, copy, modify, distribute and sell this software
  43:/usr/include/c++/4.8/bits/stl_iterator.h ****  * and its documentation for any purpose is hereby granted without fee,
  44:/usr/include/c++/4.8/bits/stl_iterator.h ****  * provided that the above copyright notice appear in all copies and
  45:/usr/include/c++/4.8/bits/stl_iterator.h ****  * that both that copyright notice and this permission notice appear
  46:/usr/include/c++/4.8/bits/stl_iterator.h ****  * in supporting documentation.  Silicon Graphics makes no
GAS LISTING /tmp/ccCle2Qt.s 			page 7


  47:/usr/include/c++/4.8/bits/stl_iterator.h ****  * representations about the suitability of this software for any
  48:/usr/include/c++/4.8/bits/stl_iterator.h ****  * purpose.  It is provided "as is" without express or implied warranty.
  49:/usr/include/c++/4.8/bits/stl_iterator.h ****  */
  50:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  51:/usr/include/c++/4.8/bits/stl_iterator.h **** /** @file bits/stl_iterator.h
  52:/usr/include/c++/4.8/bits/stl_iterator.h ****  *  This is an internal header file, included by other library headers.
  53:/usr/include/c++/4.8/bits/stl_iterator.h ****  *  Do not attempt to use it directly. @headername{iterator}
  54:/usr/include/c++/4.8/bits/stl_iterator.h ****  *
  55:/usr/include/c++/4.8/bits/stl_iterator.h ****  *  This file implements reverse_iterator, back_insert_iterator,
  56:/usr/include/c++/4.8/bits/stl_iterator.h ****  *  front_insert_iterator, insert_iterator, __normal_iterator, and their
  57:/usr/include/c++/4.8/bits/stl_iterator.h ****  *  supporting functions and overloaded operators.
  58:/usr/include/c++/4.8/bits/stl_iterator.h ****  */
  59:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  60:/usr/include/c++/4.8/bits/stl_iterator.h **** #ifndef _STL_ITERATOR_H
  61:/usr/include/c++/4.8/bits/stl_iterator.h **** #define _STL_ITERATOR_H 1
  62:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  63:/usr/include/c++/4.8/bits/stl_iterator.h **** #include <bits/cpp_type_traits.h>
  64:/usr/include/c++/4.8/bits/stl_iterator.h **** #include <ext/type_traits.h>
  65:/usr/include/c++/4.8/bits/stl_iterator.h **** #include <bits/move.h>
  66:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  67:/usr/include/c++/4.8/bits/stl_iterator.h **** namespace std _GLIBCXX_VISIBILITY(default)
  68:/usr/include/c++/4.8/bits/stl_iterator.h **** {
  69:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
  70:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  71:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
  72:/usr/include/c++/4.8/bits/stl_iterator.h ****    * @addtogroup iterators
  73:/usr/include/c++/4.8/bits/stl_iterator.h ****    * @{
  74:/usr/include/c++/4.8/bits/stl_iterator.h ****    */
  75:/usr/include/c++/4.8/bits/stl_iterator.h **** 
  76:/usr/include/c++/4.8/bits/stl_iterator.h ****   // 24.4.1 Reverse iterators
  77:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
  78:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Bidirectional and random access iterators have corresponding reverse
  79:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  %iterator adaptors that iterate through the data structure in the
  80:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  opposite direction.  They have the same signatures as the corresponding
  81:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  iterators.  The fundamental relation between a reverse %iterator and its
  82:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  corresponding %iterator @c i is established by the identity:
  83:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @code
  84:/usr/include/c++/4.8/bits/stl_iterator.h ****    *      &*(reverse_iterator(i)) == &*(i - 1)
  85:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @endcode
  86:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
  87:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  <em>This mapping is dictated by the fact that while there is always a
  88:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  pointer past the end of an array, there might not be a valid pointer
  89:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  before the beginning of an array.</em> [24.4.1]/1,2
  90:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
  91:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Reverse iterators can be tricky and surprising at first.  Their
  92:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  semantics make sense, however, and the trickiness is a side effect of
  93:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  the requirement that the iterators must be safe.
  94:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
  95:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
  96:/usr/include/c++/4.8/bits/stl_iterator.h ****     class reverse_iterator
  97:/usr/include/c++/4.8/bits/stl_iterator.h ****     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
  98:/usr/include/c++/4.8/bits/stl_iterator.h **** 		      typename iterator_traits<_Iterator>::value_type,
  99:/usr/include/c++/4.8/bits/stl_iterator.h **** 		      typename iterator_traits<_Iterator>::difference_type,
 100:/usr/include/c++/4.8/bits/stl_iterator.h **** 		      typename iterator_traits<_Iterator>::pointer,
 101:/usr/include/c++/4.8/bits/stl_iterator.h ****                       typename iterator_traits<_Iterator>::reference>
 102:/usr/include/c++/4.8/bits/stl_iterator.h ****     {
 103:/usr/include/c++/4.8/bits/stl_iterator.h ****     protected:
GAS LISTING /tmp/ccCle2Qt.s 			page 8


 104:/usr/include/c++/4.8/bits/stl_iterator.h ****       _Iterator current;
 105:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 106:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef iterator_traits<_Iterator>		__traits_type;
 107:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 108:/usr/include/c++/4.8/bits/stl_iterator.h ****     public:
 109:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef _Iterator					iterator_type;
 110:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::difference_type	difference_type;
 111:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::pointer		pointer;
 112:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::reference		reference;
 113:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 114:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 115:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The default constructor value-initializes member @p current.
 116:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  If it is a pointer, that means it is zero-initialized.
 117:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 118:/usr/include/c++/4.8/bits/stl_iterator.h ****       // _GLIBCXX_RESOLVE_LIB_DEFECTS
 119:/usr/include/c++/4.8/bits/stl_iterator.h ****       // 235 No specification of default ctor for reverse_iterator
 120:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator() : current() { }
 121:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 122:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 123:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  This %iterator will move in the opposite direction that @p x does.
 124:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 125:/usr/include/c++/4.8/bits/stl_iterator.h ****       explicit
 126:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator(iterator_type __x) : current(__x) { }
 127:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 128:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 129:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The copy constructor is normal.
 130:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 131:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator(const reverse_iterator& __x)
 132:/usr/include/c++/4.8/bits/stl_iterator.h ****       : current(__x.current) { }
 133:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 134:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 135:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  A %reverse_iterator across other types can be copied if the
 136:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  underlying %iterator can be converted to the type of @c current.
 137:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 138:/usr/include/c++/4.8/bits/stl_iterator.h ****       template<typename _Iter>
 139:/usr/include/c++/4.8/bits/stl_iterator.h ****         reverse_iterator(const reverse_iterator<_Iter>& __x)
 140:/usr/include/c++/4.8/bits/stl_iterator.h **** 	: current(__x.base()) { }
 141:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 142:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 143:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  @c current, the %iterator used for underlying work.
 144:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 145:/usr/include/c++/4.8/bits/stl_iterator.h ****       iterator_type
 146:/usr/include/c++/4.8/bits/stl_iterator.h ****       base() const
 147:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return current; }
 148:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 149:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 150:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  A reference to the value at @c --current
 151:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 152:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  This requires that @c --current is dereferenceable.
 153:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 154:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @warning This implementation requires that for an iterator of the
 155:/usr/include/c++/4.8/bits/stl_iterator.h ****        *           underlying iterator type, @c x, a reference obtained by
 156:/usr/include/c++/4.8/bits/stl_iterator.h ****        *           @c *x remains valid after @c x has been modified or
 157:/usr/include/c++/4.8/bits/stl_iterator.h ****        *           destroyed. This is a bug: http://gcc.gnu.org/PR51823
 158:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 159:/usr/include/c++/4.8/bits/stl_iterator.h ****       reference
 160:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator*() const
GAS LISTING /tmp/ccCle2Qt.s 			page 9


 161:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 162:/usr/include/c++/4.8/bits/stl_iterator.h **** 	_Iterator __tmp = current;
 163:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *--__tmp;
 164:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 165:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 166:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 167:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  A pointer to the value at @c --current
 168:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 169:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  This requires that @c --current is dereferenceable.
 170:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 171:/usr/include/c++/4.8/bits/stl_iterator.h ****       pointer
 172:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator->() const
 173:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return &(operator*()); }
 174:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 175:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 176:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  @c *this
 177:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 178:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  Decrements the underlying iterator.
 179:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 180:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator&
 181:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++()
 182:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 183:/usr/include/c++/4.8/bits/stl_iterator.h **** 	--current;
 184:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 185:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 186:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 187:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 188:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  The original value of @c *this
 189:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 190:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  Decrements the underlying iterator.
 191:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 192:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator
 193:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++(int)
 194:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 195:/usr/include/c++/4.8/bits/stl_iterator.h **** 	reverse_iterator __tmp = *this;
 196:/usr/include/c++/4.8/bits/stl_iterator.h **** 	--current;
 197:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return __tmp;
 198:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 199:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 200:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 201:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  @c *this
 202:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 203:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  Increments the underlying iterator.
 204:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 205:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator&
 206:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator--()
 207:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 208:/usr/include/c++/4.8/bits/stl_iterator.h **** 	++current;
 209:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 210:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 211:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 212:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 213:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  A reverse_iterator with the previous value of @c *this
 214:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 215:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  Increments the underlying iterator.
 216:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 217:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator
GAS LISTING /tmp/ccCle2Qt.s 			page 10


 218:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator--(int)
 219:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 220:/usr/include/c++/4.8/bits/stl_iterator.h **** 	reverse_iterator __tmp = *this;
 221:/usr/include/c++/4.8/bits/stl_iterator.h **** 	++current;
 222:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return __tmp;
 223:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 224:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 225:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 226:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  A reverse_iterator that refers to @c current - @a __n
 227:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 228:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The underlying iterator must be a Random Access Iterator.
 229:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 230:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator
 231:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator+(difference_type __n) const
 232:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return reverse_iterator(current - __n); }
 233:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 234:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 235:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  *this
 236:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 237:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  Moves the underlying iterator backwards @a __n steps.
 238:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The underlying iterator must be a Random Access Iterator.
 239:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 240:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator&
 241:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator+=(difference_type __n)
 242:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 243:/usr/include/c++/4.8/bits/stl_iterator.h **** 	current -= __n;
 244:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 245:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 246:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 247:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 248:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  A reverse_iterator that refers to @c current - @a __n
 249:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 250:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The underlying iterator must be a Random Access Iterator.
 251:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 252:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator
 253:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator-(difference_type __n) const
 254:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return reverse_iterator(current + __n); }
 255:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 256:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 257:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  *this
 258:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 259:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  Moves the underlying iterator forwards @a __n steps.
 260:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The underlying iterator must be a Random Access Iterator.
 261:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 262:/usr/include/c++/4.8/bits/stl_iterator.h ****       reverse_iterator&
 263:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator-=(difference_type __n)
 264:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 265:/usr/include/c++/4.8/bits/stl_iterator.h **** 	current += __n;
 266:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 267:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 268:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 269:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 270:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  The value at @c current - @a __n - 1
 271:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 272:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The underlying iterator must be a Random Access Iterator.
 273:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 274:/usr/include/c++/4.8/bits/stl_iterator.h ****       reference
GAS LISTING /tmp/ccCle2Qt.s 			page 11


 275:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator[](difference_type __n) const
 276:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *(*this + __n); }
 277:/usr/include/c++/4.8/bits/stl_iterator.h ****     };
 278:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 279:/usr/include/c++/4.8/bits/stl_iterator.h ****   //@{
 280:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 281:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @param  __x  A %reverse_iterator.
 282:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @param  __y  A %reverse_iterator.
 283:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @return  A simple bool.
 284:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 285:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Reverse iterators forward many operations to their underlying base()
 286:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  iterators.  Others are implemented in terms of one another.
 287:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 288:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 289:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 290:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 291:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator==(const reverse_iterator<_Iterator>& __x,
 292:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_Iterator>& __y)
 293:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __x.base() == __y.base(); }
 294:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 295:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 296:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 297:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator<(const reverse_iterator<_Iterator>& __x,
 298:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_Iterator>& __y)
 299:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __y.base() < __x.base(); }
 300:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 301:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 302:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 303:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator!=(const reverse_iterator<_Iterator>& __x,
 304:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_Iterator>& __y)
 305:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return !(__x == __y); }
 306:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 307:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 308:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 309:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator>(const reverse_iterator<_Iterator>& __x,
 310:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_Iterator>& __y)
 311:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __y < __x; }
 312:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 313:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 314:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 315:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator<=(const reverse_iterator<_Iterator>& __x,
 316:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_Iterator>& __y)
 317:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return !(__y < __x); }
 318:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 319:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 320:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 321:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator>=(const reverse_iterator<_Iterator>& __x,
 322:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_Iterator>& __y)
 323:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return !(__x < __y); }
 324:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 325:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
 326:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline typename reverse_iterator<_Iterator>::difference_type
 327:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator-(const reverse_iterator<_Iterator>& __x,
 328:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_Iterator>& __y)
 329:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __y.base() - __x.base(); }
 330:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 331:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator>
GAS LISTING /tmp/ccCle2Qt.s 			page 12


 332:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline reverse_iterator<_Iterator>
 333:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
 334:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_Iterator>& __x)
 335:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return reverse_iterator<_Iterator>(__x.base() - __n); }
 336:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 337:/usr/include/c++/4.8/bits/stl_iterator.h ****   // _GLIBCXX_RESOLVE_LIB_DEFECTS
 338:/usr/include/c++/4.8/bits/stl_iterator.h ****   // DR 280. Comparison of reverse_iterator to const reverse_iterator.
 339:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 340:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 341:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator==(const reverse_iterator<_IteratorL>& __x,
 342:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_IteratorR>& __y)
 343:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __x.base() == __y.base(); }
 344:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 345:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 346:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 347:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator<(const reverse_iterator<_IteratorL>& __x,
 348:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_IteratorR>& __y)
 349:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __y.base() < __x.base(); }
 350:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 351:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 352:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 353:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator!=(const reverse_iterator<_IteratorL>& __x,
 354:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_IteratorR>& __y)
 355:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return !(__x == __y); }
 356:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 357:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 358:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 359:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator>(const reverse_iterator<_IteratorL>& __x,
 360:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_IteratorR>& __y)
 361:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __y < __x; }
 362:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 363:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 364:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 365:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator<=(const reverse_iterator<_IteratorL>& __x,
 366:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_IteratorR>& __y)
 367:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return !(__y < __x); }
 368:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 369:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 370:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 371:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator>=(const reverse_iterator<_IteratorL>& __x,
 372:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const reverse_iterator<_IteratorR>& __y)
 373:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return !(__x < __y); }
 374:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 375:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR>
 376:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus >= 201103L
 377:/usr/include/c++/4.8/bits/stl_iterator.h ****     // DR 685.
 378:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline auto
 379:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator-(const reverse_iterator<_IteratorL>& __x,
 380:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_IteratorR>& __y)
 381:/usr/include/c++/4.8/bits/stl_iterator.h ****     -> decltype(__y.base() - __x.base())
 382:/usr/include/c++/4.8/bits/stl_iterator.h **** #else
 383:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline typename reverse_iterator<_IteratorL>::difference_type
 384:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator-(const reverse_iterator<_IteratorL>& __x,
 385:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const reverse_iterator<_IteratorR>& __y)
 386:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif
 387:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __y.base() - __x.base(); }
 388:/usr/include/c++/4.8/bits/stl_iterator.h ****   //@}
GAS LISTING /tmp/ccCle2Qt.s 			page 13


 389:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 390:/usr/include/c++/4.8/bits/stl_iterator.h ****   // 24.4.2.2.1 back_insert_iterator
 391:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 392:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @brief  Turns assignment into insertion.
 393:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 394:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  These are output iterators, constructed from a container-of-T.
 395:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Assigning a T to the iterator appends it to the container using
 396:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  push_back.
 397:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 398:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Tip:  Using the back_inserter function to create these iterators can
 399:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  save typing.
 400:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 401:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Container>
 402:/usr/include/c++/4.8/bits/stl_iterator.h ****     class back_insert_iterator
 403:/usr/include/c++/4.8/bits/stl_iterator.h ****     : public iterator<output_iterator_tag, void, void, void, void>
 404:/usr/include/c++/4.8/bits/stl_iterator.h ****     {
 405:/usr/include/c++/4.8/bits/stl_iterator.h ****     protected:
 406:/usr/include/c++/4.8/bits/stl_iterator.h ****       _Container* container;
 407:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 408:/usr/include/c++/4.8/bits/stl_iterator.h ****     public:
 409:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// A nested typedef for the type of whatever container you used.
 410:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef _Container          container_type;
 411:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 412:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// The only way to create this %iterator is with a container.
 413:/usr/include/c++/4.8/bits/stl_iterator.h ****       explicit
 414:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator(_Container& __x) : container(&__x) { }
 415:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 416:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 417:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @param  __value  An instance of whatever type
 418:/usr/include/c++/4.8/bits/stl_iterator.h ****        *                 container_type::const_reference is; presumably a
 419:/usr/include/c++/4.8/bits/stl_iterator.h ****        *                 reference-to-const T for container<T>.
 420:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  This %iterator, for chained operations.
 421:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 422:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  This kind of %iterator doesn't really have a @a position in the
 423:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  container (you can think of the position as being permanently at
 424:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  the end, if you like).  Assigning a value to the %iterator will
 425:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  always append the value to the end of the container.
 426:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 427:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus < 201103L
 428:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator&
 429:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(typename _Container::const_reference __value)
 430:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 431:/usr/include/c++/4.8/bits/stl_iterator.h **** 	container->push_back(__value);
 432:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 433:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 434:/usr/include/c++/4.8/bits/stl_iterator.h **** #else
 435:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator&
 436:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(const typename _Container::value_type& __value)
 437:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 438:/usr/include/c++/4.8/bits/stl_iterator.h **** 	container->push_back(__value);
 439:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 440:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 441:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 442:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator&
 443:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(typename _Container::value_type&& __value)
 444:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 445:/usr/include/c++/4.8/bits/stl_iterator.h **** 	container->push_back(std::move(__value));
GAS LISTING /tmp/ccCle2Qt.s 			page 14


 446:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 447:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 448:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif
 449:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 450:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.
 451:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator&
 452:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator*()
 453:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 454:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 455:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.  (This %iterator does not @a move.)
 456:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator&
 457:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++()
 458:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 459:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 460:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.  (This %iterator does not @a move.)
 461:/usr/include/c++/4.8/bits/stl_iterator.h ****       back_insert_iterator
 462:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++(int)
 463:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 464:/usr/include/c++/4.8/bits/stl_iterator.h ****     };
 465:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 466:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 467:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @param  __x  A container of arbitrary type.
 468:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @return  An instance of back_insert_iterator working on @p __x.
 469:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 470:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  This wrapper function helps in creating back_insert_iterator instances.
 471:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Typing the name of the %iterator requires knowing the precise full
 472:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  type of the container, which can be tedious and impedes generic
 473:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  programming.  Using this function lets you take advantage of automatic
 474:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  template parameter deduction, making the compiler match the correct
 475:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  types for you.
 476:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 477:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Container>
 478:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline back_insert_iterator<_Container>
 479:/usr/include/c++/4.8/bits/stl_iterator.h ****     back_inserter(_Container& __x)
 480:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return back_insert_iterator<_Container>(__x); }
 481:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 482:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 483:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @brief  Turns assignment into insertion.
 484:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 485:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  These are output iterators, constructed from a container-of-T.
 486:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Assigning a T to the iterator prepends it to the container using
 487:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  push_front.
 488:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 489:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Tip:  Using the front_inserter function to create these iterators can
 490:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  save typing.
 491:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 492:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Container>
 493:/usr/include/c++/4.8/bits/stl_iterator.h ****     class front_insert_iterator
 494:/usr/include/c++/4.8/bits/stl_iterator.h ****     : public iterator<output_iterator_tag, void, void, void, void>
 495:/usr/include/c++/4.8/bits/stl_iterator.h ****     {
 496:/usr/include/c++/4.8/bits/stl_iterator.h ****     protected:
 497:/usr/include/c++/4.8/bits/stl_iterator.h ****       _Container* container;
 498:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 499:/usr/include/c++/4.8/bits/stl_iterator.h ****     public:
 500:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// A nested typedef for the type of whatever container you used.
 501:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef _Container          container_type;
 502:/usr/include/c++/4.8/bits/stl_iterator.h **** 
GAS LISTING /tmp/ccCle2Qt.s 			page 15


 503:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// The only way to create this %iterator is with a container.
 504:/usr/include/c++/4.8/bits/stl_iterator.h ****       explicit front_insert_iterator(_Container& __x) : container(&__x) { }
 505:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 506:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 507:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @param  __value  An instance of whatever type
 508:/usr/include/c++/4.8/bits/stl_iterator.h ****        *                 container_type::const_reference is; presumably a
 509:/usr/include/c++/4.8/bits/stl_iterator.h ****        *                 reference-to-const T for container<T>.
 510:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  This %iterator, for chained operations.
 511:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 512:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  This kind of %iterator doesn't really have a @a position in the
 513:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  container (you can think of the position as being permanently at
 514:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  the front, if you like).  Assigning a value to the %iterator will
 515:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  always prepend the value to the front of the container.
 516:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 517:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus < 201103L
 518:/usr/include/c++/4.8/bits/stl_iterator.h ****       front_insert_iterator&
 519:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(typename _Container::const_reference __value)
 520:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 521:/usr/include/c++/4.8/bits/stl_iterator.h **** 	container->push_front(__value);
 522:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 523:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 524:/usr/include/c++/4.8/bits/stl_iterator.h **** #else
 525:/usr/include/c++/4.8/bits/stl_iterator.h ****       front_insert_iterator&
 526:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(const typename _Container::value_type& __value)
 527:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 528:/usr/include/c++/4.8/bits/stl_iterator.h **** 	container->push_front(__value);
 529:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 530:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 531:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 532:/usr/include/c++/4.8/bits/stl_iterator.h ****       front_insert_iterator&
 533:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(typename _Container::value_type&& __value)
 534:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 535:/usr/include/c++/4.8/bits/stl_iterator.h **** 	container->push_front(std::move(__value));
 536:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 537:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 538:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif
 539:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 540:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.
 541:/usr/include/c++/4.8/bits/stl_iterator.h ****       front_insert_iterator&
 542:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator*()
 543:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 544:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 545:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.  (This %iterator does not @a move.)
 546:/usr/include/c++/4.8/bits/stl_iterator.h ****       front_insert_iterator&
 547:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++()
 548:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 549:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 550:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.  (This %iterator does not @a move.)
 551:/usr/include/c++/4.8/bits/stl_iterator.h ****       front_insert_iterator
 552:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++(int)
 553:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 554:/usr/include/c++/4.8/bits/stl_iterator.h ****     };
 555:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 556:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 557:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @param  __x  A container of arbitrary type.
 558:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @return  An instance of front_insert_iterator working on @p x.
 559:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
GAS LISTING /tmp/ccCle2Qt.s 			page 16


 560:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  This wrapper function helps in creating front_insert_iterator instances.
 561:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Typing the name of the %iterator requires knowing the precise full
 562:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  type of the container, which can be tedious and impedes generic
 563:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  programming.  Using this function lets you take advantage of automatic
 564:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  template parameter deduction, making the compiler match the correct
 565:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  types for you.
 566:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 567:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Container>
 568:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline front_insert_iterator<_Container>
 569:/usr/include/c++/4.8/bits/stl_iterator.h ****     front_inserter(_Container& __x)
 570:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return front_insert_iterator<_Container>(__x); }
 571:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 572:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 573:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @brief  Turns assignment into insertion.
 574:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 575:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  These are output iterators, constructed from a container-of-T.
 576:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Assigning a T to the iterator inserts it in the container at the
 577:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  %iterator's position, rather than overwriting the value at that
 578:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  position.
 579:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 580:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  (Sequences will actually insert a @e copy of the value before the
 581:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  %iterator's position.)
 582:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
 583:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Tip:  Using the inserter function to create these iterators can
 584:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  save typing.
 585:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 586:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Container>
 587:/usr/include/c++/4.8/bits/stl_iterator.h ****     class insert_iterator
 588:/usr/include/c++/4.8/bits/stl_iterator.h ****     : public iterator<output_iterator_tag, void, void, void, void>
 589:/usr/include/c++/4.8/bits/stl_iterator.h ****     {
 590:/usr/include/c++/4.8/bits/stl_iterator.h ****     protected:
 591:/usr/include/c++/4.8/bits/stl_iterator.h ****       _Container* container;
 592:/usr/include/c++/4.8/bits/stl_iterator.h ****       typename _Container::iterator iter;
 593:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 594:/usr/include/c++/4.8/bits/stl_iterator.h ****     public:
 595:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// A nested typedef for the type of whatever container you used.
 596:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef _Container          container_type;
 597:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 598:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 599:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The only way to create this %iterator is with a container and an
 600:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  initial position (a normal %iterator into the container).
 601:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 602:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator(_Container& __x, typename _Container::iterator __i)
 603:/usr/include/c++/4.8/bits/stl_iterator.h ****       : container(&__x), iter(__i) {}
 604:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 605:/usr/include/c++/4.8/bits/stl_iterator.h ****       /**
 606:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @param  __value  An instance of whatever type
 607:/usr/include/c++/4.8/bits/stl_iterator.h ****        *                 container_type::const_reference is; presumably a
 608:/usr/include/c++/4.8/bits/stl_iterator.h ****        *                 reference-to-const T for container<T>.
 609:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @return  This %iterator, for chained operations.
 610:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 611:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  This kind of %iterator maintains its own position in the
 612:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  container.  Assigning a value to the %iterator will insert the
 613:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  value into the container at the place before the %iterator.
 614:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 615:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  The position is maintained such that subsequent assignments will
 616:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  insert values immediately after one another.  For example,
GAS LISTING /tmp/ccCle2Qt.s 			page 17


 617:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @code
 618:/usr/include/c++/4.8/bits/stl_iterator.h ****        *     // vector v contains A and Z
 619:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 620:/usr/include/c++/4.8/bits/stl_iterator.h ****        *     insert_iterator i (v, ++v.begin());
 621:/usr/include/c++/4.8/bits/stl_iterator.h ****        *     i = 1;
 622:/usr/include/c++/4.8/bits/stl_iterator.h ****        *     i = 2;
 623:/usr/include/c++/4.8/bits/stl_iterator.h ****        *     i = 3;
 624:/usr/include/c++/4.8/bits/stl_iterator.h ****        *
 625:/usr/include/c++/4.8/bits/stl_iterator.h ****        *     // vector v contains A, 1, 2, 3, and Z
 626:/usr/include/c++/4.8/bits/stl_iterator.h ****        *  @endcode
 627:/usr/include/c++/4.8/bits/stl_iterator.h ****       */
 628:/usr/include/c++/4.8/bits/stl_iterator.h **** #if __cplusplus < 201103L
 629:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator&
 630:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(typename _Container::const_reference __value)
 631:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 632:/usr/include/c++/4.8/bits/stl_iterator.h **** 	iter = container->insert(iter, __value);
 633:/usr/include/c++/4.8/bits/stl_iterator.h **** 	++iter;
 634:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 635:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 636:/usr/include/c++/4.8/bits/stl_iterator.h **** #else
 637:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator&
 638:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(const typename _Container::value_type& __value)
 639:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 640:/usr/include/c++/4.8/bits/stl_iterator.h **** 	iter = container->insert(iter, __value);
 641:/usr/include/c++/4.8/bits/stl_iterator.h **** 	++iter;
 642:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 643:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 644:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 645:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator&
 646:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator=(typename _Container::value_type&& __value)
 647:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 648:/usr/include/c++/4.8/bits/stl_iterator.h **** 	iter = container->insert(iter, std::move(__value));
 649:/usr/include/c++/4.8/bits/stl_iterator.h **** 	++iter;
 650:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 651:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 652:/usr/include/c++/4.8/bits/stl_iterator.h **** #endif
 653:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 654:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.
 655:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator&
 656:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator*()
 657:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 658:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 659:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.  (This %iterator does not @a move.)
 660:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator&
 661:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++()
 662:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 663:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 664:/usr/include/c++/4.8/bits/stl_iterator.h ****       /// Simply returns *this.  (This %iterator does not @a move.)
 665:/usr/include/c++/4.8/bits/stl_iterator.h ****       insert_iterator&
 666:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++(int)
 667:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *this; }
 668:/usr/include/c++/4.8/bits/stl_iterator.h ****     };
 669:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 670:/usr/include/c++/4.8/bits/stl_iterator.h ****   /**
 671:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @param __x  A container of arbitrary type.
 672:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  @return  An instance of insert_iterator working on @p __x.
 673:/usr/include/c++/4.8/bits/stl_iterator.h ****    *
GAS LISTING /tmp/ccCle2Qt.s 			page 18


 674:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  This wrapper function helps in creating insert_iterator instances.
 675:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  Typing the name of the %iterator requires knowing the precise full
 676:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  type of the container, which can be tedious and impedes generic
 677:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  programming.  Using this function lets you take advantage of automatic
 678:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  template parameter deduction, making the compiler match the correct
 679:/usr/include/c++/4.8/bits/stl_iterator.h ****    *  types for you.
 680:/usr/include/c++/4.8/bits/stl_iterator.h ****   */
 681:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Container, typename _Iterator>
 682:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline insert_iterator<_Container>
 683:/usr/include/c++/4.8/bits/stl_iterator.h ****     inserter(_Container& __x, _Iterator __i)
 684:/usr/include/c++/4.8/bits/stl_iterator.h ****     {
 685:/usr/include/c++/4.8/bits/stl_iterator.h ****       return insert_iterator<_Container>(__x,
 686:/usr/include/c++/4.8/bits/stl_iterator.h **** 					 typename _Container::iterator(__i));
 687:/usr/include/c++/4.8/bits/stl_iterator.h ****     }
 688:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 689:/usr/include/c++/4.8/bits/stl_iterator.h ****   // @} group iterators
 690:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 691:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_END_NAMESPACE_VERSION
 692:/usr/include/c++/4.8/bits/stl_iterator.h **** } // namespace
 693:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 694:/usr/include/c++/4.8/bits/stl_iterator.h **** namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
 695:/usr/include/c++/4.8/bits/stl_iterator.h **** {
 696:/usr/include/c++/4.8/bits/stl_iterator.h **** _GLIBCXX_BEGIN_NAMESPACE_VERSION
 697:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 698:/usr/include/c++/4.8/bits/stl_iterator.h ****   // This iterator adapter is @a normal in the sense that it does not
 699:/usr/include/c++/4.8/bits/stl_iterator.h ****   // change the semantics of any of the operators of its iterator
 700:/usr/include/c++/4.8/bits/stl_iterator.h ****   // parameter.  Its primary purpose is to convert an iterator that is
 701:/usr/include/c++/4.8/bits/stl_iterator.h ****   // not a class, e.g. a pointer, into an iterator that is a class.
 702:/usr/include/c++/4.8/bits/stl_iterator.h ****   // The _Container parameter exists solely so that different containers
 703:/usr/include/c++/4.8/bits/stl_iterator.h ****   // using this template can instantiate different types, even if the
 704:/usr/include/c++/4.8/bits/stl_iterator.h ****   // _Iterator parameter is the same.
 705:/usr/include/c++/4.8/bits/stl_iterator.h ****   using std::iterator_traits;
 706:/usr/include/c++/4.8/bits/stl_iterator.h ****   using std::iterator;
 707:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator, typename _Container>
 708:/usr/include/c++/4.8/bits/stl_iterator.h ****     class __normal_iterator
 709:/usr/include/c++/4.8/bits/stl_iterator.h ****     {
 710:/usr/include/c++/4.8/bits/stl_iterator.h ****     protected:
 711:/usr/include/c++/4.8/bits/stl_iterator.h ****       _Iterator _M_current;
 712:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 713:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef iterator_traits<_Iterator>		__traits_type;
 714:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 715:/usr/include/c++/4.8/bits/stl_iterator.h ****     public:
 716:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef _Iterator					iterator_type;
 717:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::iterator_category iterator_category;
 718:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::value_type  	value_type;
 719:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::difference_type 	difference_type;
 720:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::reference 	reference;
 721:/usr/include/c++/4.8/bits/stl_iterator.h ****       typedef typename __traits_type::pointer   	pointer;
 722:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 723:/usr/include/c++/4.8/bits/stl_iterator.h ****       _GLIBCXX_CONSTEXPR __normal_iterator() : _M_current(_Iterator()) { }
 724:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 725:/usr/include/c++/4.8/bits/stl_iterator.h ****       explicit
 726:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
 727:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 728:/usr/include/c++/4.8/bits/stl_iterator.h ****       // Allow iterator to const_iterator conversion
 729:/usr/include/c++/4.8/bits/stl_iterator.h ****       template<typename _Iter>
 730:/usr/include/c++/4.8/bits/stl_iterator.h ****         __normal_iterator(const __normal_iterator<_Iter,
GAS LISTING /tmp/ccCle2Qt.s 			page 19


 731:/usr/include/c++/4.8/bits/stl_iterator.h **** 			  typename __enable_if<
 732:/usr/include/c++/4.8/bits/stl_iterator.h ****       	       (std::__are_same<_Iter, typename _Container::pointer>::__value),
 733:/usr/include/c++/4.8/bits/stl_iterator.h **** 		      _Container>::__type>& __i)
 734:/usr/include/c++/4.8/bits/stl_iterator.h ****         : _M_current(__i.base()) { }
 735:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 736:/usr/include/c++/4.8/bits/stl_iterator.h ****       // Forward iterator requirements
 737:/usr/include/c++/4.8/bits/stl_iterator.h ****       reference
 738:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator*() const
 739:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *_M_current; }
 740:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 741:/usr/include/c++/4.8/bits/stl_iterator.h ****       pointer
 742:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator->() const
 743:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return _M_current; }
 744:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 745:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator&
 746:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++()
 113              		.loc 4 746 0
 114              		.cfi_startproc
 115              	.LVL10:
 116 0000 4889F8   		movq	%rdi, %rax
 747:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 748:/usr/include/c++/4.8/bits/stl_iterator.h **** 	++_M_current;
 117              		.loc 4 748 0
 118 0003 48830704 		addq	$4, (%rdi)
 749:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 750:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 119              		.loc 4 750 0
 120 0007 C3       		ret
 121              		.cfi_endproc
 122              	.LFE1677:
 124              		.section	.text._ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv,"axG",@progbits,_ZNK9__g
 125              		.align 2
 126              		.weak	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv
 128              	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv:
 129              	.LFB1678:
 738:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return *_M_current; }
 130              		.loc 4 738 0
 131              		.cfi_startproc
 132              	.LVL11:
 739:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 133              		.loc 4 739 0
 134 0000 488B07   		movq	(%rdi), %rax
 135 0003 C3       		ret
 136              		.cfi_endproc
 137              	.LFE1678:
 139              		.section	.text._ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEppEv,"axG",@progbits,_ZN9__gn
 140              		.align 2
 141              		.weak	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEppEv
 143              	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEppEv:
 144              	.LFB1683:
 746:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 145              		.loc 4 746 0
 146              		.cfi_startproc
 147              	.LVL12:
 148 0000 4889F8   		movq	%rdi, %rax
 748:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 149              		.loc 4 748 0
GAS LISTING /tmp/ccCle2Qt.s 			page 20


 150 0003 48830704 		addq	$4, (%rdi)
 151              		.loc 4 750 0
 152 0007 C3       		ret
 153              		.cfi_endproc
 154              	.LFE1683:
 156              		.section	.text._ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv,"axG",@progbits,_ZNSt12_Vector_b
 157              		.align 2
 158              		.weak	_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv
 160              	_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv:
 161              	.LFB1747:
 162              		.file 5 "/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
   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
GAS LISTING /tmp/ccCle2Qt.s 			page 21


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


 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
 163              		.loc 5 113 0
 164              		.cfi_startproc
 165              	.LVL13:
 166 0000 4889F8   		movq	%rdi, %rax
 114:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
 167              		.loc 5 114 0
 168 0003 C3       		ret
 169              		.cfi_endproc
 170              	.LFE1747:
 172              		.section	.text._ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_,"axG",@progbits,_ZN9_
 173              		.align 2
 174              		.weak	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_
 176              	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_:
 177              	.LFB1751:
 726:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 178              		.loc 4 726 0
 179              		.cfi_startproc
 180              	.LVL14:
 181              	.LBB2:
 726:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 182              		.loc 4 726 0
 183 0000 488B06   		movq	(%rsi), %rax
 184 0003 488907   		movq	%rax, (%rdi)
 185 0006 C3       		ret
 186              	.LBE2:
 187              		.cfi_endproc
 188              	.LFE1751:
 190              		.weak	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_
 191              		.set	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_,_ZN9__gnu_cxx17__normal_iterato
 192              		.section	.text._ZNSt6vectorIiSaIiEE5beginEv,"axG",@progbits,_ZNSt6vectorIiSaIiEE5beginEv,comdat
 193              		.align 2
 194              		.weak	_ZNSt6vectorIiSaIiEE5beginEv
 196              	_ZNSt6vectorIiSaIiEE5beginEv:
 197              	.LFB1674:
 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
 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)
GAS LISTING /tmp/ccCle2Qt.s 			page 23


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


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


 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.
 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); }
GAS LISTING /tmp/ccCle2Qt.s 			page 26


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


 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
 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.
GAS LISTING /tmp/ccCle2Qt.s 			page 28


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


 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
 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
GAS LISTING /tmp/ccCle2Qt.s 			page 30


 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
 198              		.loc 5 538 0
 199              		.cfi_startproc
 200              	.LVL15:
 201 0000 4883EC18 		subq	$24, %rsp
 202              		.cfi_def_cfa_offset 32
 203 0004 4889FE   		movq	%rdi, %rsi
 539:/usr/include/c++/4.8/bits/stl_vector.h ****       { return iterator(this->_M_impl._M_start); }
 204              		.loc 5 539 0
 205 0007 4889E7   		movq	%rsp, %rdi
 206              	.LVL16:
 207 000a E8000000 		call	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_
 207      00
 208              	.LVL17:
 209 000f 488B0424 		movq	(%rsp), %rax
 210 0013 4883C418 		addq	$24, %rsp
 211              		.cfi_def_cfa_offset 8
 212 0017 C3       		ret
 213              		.cfi_endproc
 214              	.LFE1674:
 216              		.section	.text._ZNSt6vectorIiSaIiEE3endEv,"axG",@progbits,_ZNSt6vectorIiSaIiEE3endEv,comdat
 217              		.align 2
 218              		.weak	_ZNSt6vectorIiSaIiEE3endEv
 220              	_ZNSt6vectorIiSaIiEE3endEv:
 221              	.LFB1675:
 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
 222              		.loc 5 556 0
 223              		.cfi_startproc
 224              	.LVL18:
 225 0000 4883EC18 		subq	$24, %rsp
GAS LISTING /tmp/ccCle2Qt.s 			page 31


 226              		.cfi_def_cfa_offset 32
 557:/usr/include/c++/4.8/bits/stl_vector.h ****       { return iterator(this->_M_impl._M_finish); }
 227              		.loc 5 557 0
 228 0004 488D7708 		leaq	8(%rdi), %rsi
 229 0008 4889E7   		movq	%rsp, %rdi
 230              	.LVL19:
 231 000b E8000000 		call	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_
 231      00
 232              	.LVL20:
 233 0010 488B0424 		movq	(%rsp), %rax
 234 0014 4883C418 		addq	$24, %rsp
 235              		.cfi_def_cfa_offset 8
 236 0018 C3       		ret
 237              		.cfi_endproc
 238              	.LFE1675:
 240              		.section	.text._ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv,"axG",@progbits,_ZNK9
 241              		.align 2
 242              		.weak	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv
 244              	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv:
 245              	.LFB1753:
 751:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 752:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator
 753:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator++(int)
 754:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return __normal_iterator(_M_current++); }
 755:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 756:/usr/include/c++/4.8/bits/stl_iterator.h ****       // Bidirectional iterator requirements
 757:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator&
 758:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator--()
 759:/usr/include/c++/4.8/bits/stl_iterator.h ****       {
 760:/usr/include/c++/4.8/bits/stl_iterator.h **** 	--_M_current;
 761:/usr/include/c++/4.8/bits/stl_iterator.h **** 	return *this;
 762:/usr/include/c++/4.8/bits/stl_iterator.h ****       }
 763:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 764:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator
 765:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator--(int)
 766:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return __normal_iterator(_M_current--); }
 767:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 768:/usr/include/c++/4.8/bits/stl_iterator.h ****       // Random access iterator requirements
 769:/usr/include/c++/4.8/bits/stl_iterator.h ****       reference
 770:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator[](const difference_type& __n) const
 771:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return _M_current[__n]; }
 772:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 773:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator&
 774:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator+=(const difference_type& __n)
 775:/usr/include/c++/4.8/bits/stl_iterator.h ****       { _M_current += __n; return *this; }
 776:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 777:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator
 778:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator+(const difference_type& __n) const
 779:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return __normal_iterator(_M_current + __n); }
 780:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 781:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator&
 782:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator-=(const difference_type& __n)
 783:/usr/include/c++/4.8/bits/stl_iterator.h ****       { _M_current -= __n; return *this; }
 784:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 785:/usr/include/c++/4.8/bits/stl_iterator.h ****       __normal_iterator
 786:/usr/include/c++/4.8/bits/stl_iterator.h ****       operator-(const difference_type& __n) const
 787:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return __normal_iterator(_M_current - __n); }
GAS LISTING /tmp/ccCle2Qt.s 			page 32


 788:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 789:/usr/include/c++/4.8/bits/stl_iterator.h ****       const _Iterator&
 790:/usr/include/c++/4.8/bits/stl_iterator.h ****       base() const
 246              		.loc 4 790 0
 247              		.cfi_startproc
 248              	.LVL21:
 249 0000 4889F8   		movq	%rdi, %rax
 791:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return _M_current; }
 250              		.loc 4 791 0
 251 0003 C3       		ret
 252              		.cfi_endproc
 253              	.LFE1753:
 255              		.section	.text._ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_,"axG",@pr
 256              		.weak	_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_
 258              	_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_:
 259              	.LFB1676:
 792:/usr/include/c++/4.8/bits/stl_iterator.h ****     };
 793:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 794:/usr/include/c++/4.8/bits/stl_iterator.h ****   // Note: In what follows, the left- and right-hand-side iterators are
 795:/usr/include/c++/4.8/bits/stl_iterator.h ****   // allowed to vary in types (conceptually in cv-qualification) so that
 796:/usr/include/c++/4.8/bits/stl_iterator.h ****   // comparison between cv-qualified and non-cv-qualified iterators be
 797:/usr/include/c++/4.8/bits/stl_iterator.h ****   // valid.  However, the greedy and unfriendly operators in std::rel_ops
 798:/usr/include/c++/4.8/bits/stl_iterator.h ****   // will make overload resolution ambiguous (when in scope) if we don't
 799:/usr/include/c++/4.8/bits/stl_iterator.h ****   // provide overloads whose operands are of the same type.  Can someone
 800:/usr/include/c++/4.8/bits/stl_iterator.h ****   // remind me what generic programming is about? -- Gaby
 801:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 802:/usr/include/c++/4.8/bits/stl_iterator.h ****   // Forward iterator requirements
 803:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR, typename _Container>
 804:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 805:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
 806:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const __normal_iterator<_IteratorR, _Container>& __rhs)
 807:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __lhs.base() == __rhs.base(); }
 808:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 809:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator, typename _Container>
 810:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 811:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
 812:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const __normal_iterator<_Iterator, _Container>& __rhs)
 813:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __lhs.base() == __rhs.base(); }
 814:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 815:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR, typename _Container>
 816:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 817:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
 818:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const __normal_iterator<_IteratorR, _Container>& __rhs)
 819:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __lhs.base() != __rhs.base(); }
 820:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 821:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _Iterator, typename _Container>
 822:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 823:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
 260              		.loc 4 823 0
 261              		.cfi_startproc
 262              	.LVL22:
 263 0000 55       		pushq	%rbp
 264              		.cfi_def_cfa_offset 16
 265              		.cfi_offset 6, -16
 266 0001 53       		pushq	%rbx
 267              		.cfi_def_cfa_offset 24
 268              		.cfi_offset 3, -24
GAS LISTING /tmp/ccCle2Qt.s 			page 33


 269 0002 4883EC08 		subq	$8, %rsp
 270              		.cfi_def_cfa_offset 32
 271 0006 4889F5   		movq	%rsi, %rbp
 824:/usr/include/c++/4.8/bits/stl_iterator.h **** 	       const __normal_iterator<_Iterator, _Container>& __rhs)
 825:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __lhs.base() != __rhs.base(); }
 272              		.loc 4 825 0
 273 0009 E8000000 		call	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv
 273      00
 274              	.LVL23:
 275 000e 4889C3   		movq	%rax, %rbx
 276 0011 4889EF   		movq	%rbp, %rdi
 277 0014 E8000000 		call	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv
 277      00
 278              	.LVL24:
 279 0019 488B00   		movq	(%rax), %rax
 280 001c 483903   		cmpq	%rax, (%rbx)
 281 001f 0F95C0   		setne	%al
 282 0022 4883C408 		addq	$8, %rsp
 283              		.cfi_def_cfa_offset 24
 284 0026 5B       		popq	%rbx
 285              		.cfi_def_cfa_offset 16
 286 0027 5D       		popq	%rbp
 287              		.cfi_def_cfa_offset 8
 288              	.LVL25:
 289 0028 C3       		ret
 290              		.cfi_endproc
 291              	.LFE1676:
 293              		.section	.text._ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPiEERKNS0_IT_NS_11__enable
 294              		.align 2
 295              		.weak	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPiEERKNS0_IT_NS_11__enable_ifIXsrSt
 297              	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPiEERKNS0_IT_NS_11__enable_ifIXsrSt10__are
 298              	.LFB1680:
 730:/usr/include/c++/4.8/bits/stl_iterator.h **** 			  typename __enable_if<
 299              		.loc 4 730 0
 300              		.cfi_startproc
 301              	.LVL26:
 302 0000 53       		pushq	%rbx
 303              		.cfi_def_cfa_offset 16
 304              		.cfi_offset 3, -16
 305 0001 4889FB   		movq	%rdi, %rbx
 306              	.LBB3:
 734:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 307              		.loc 4 734 0
 308 0004 4889F7   		movq	%rsi, %rdi
 309              	.LVL27:
 310 0007 E8000000 		call	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv
 310      00
 311              	.LVL28:
 312 000c 488B00   		movq	(%rax), %rax
 313 000f 488903   		movq	%rax, (%rbx)
 314              	.LBE3:
 315 0012 5B       		popq	%rbx
 316              		.cfi_def_cfa_offset 8
 317              	.LVL29:
 318 0013 C3       		ret
 319              		.cfi_endproc
 320              	.LFE1680:
GAS LISTING /tmp/ccCle2Qt.s 			page 34


 322              		.weak	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC1IPiEERKNS0_IT_NS_11__enable_ifIXsrSt
 323              		.set	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC1IPiEERKNS0_IT_NS_11__enable_ifIXsrSt1
 324              		.section	.text._ZNK9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEE4baseEv,"axG",@progbits,_ZNK
 325              		.align 2
 326              		.weak	_ZNK9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEE4baseEv
 328              	_ZNK9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEE4baseEv:
 329              	.LFB1754:
 790:/usr/include/c++/4.8/bits/stl_iterator.h ****       { return _M_current; }
 330              		.loc 4 790 0
 331              		.cfi_startproc
 332              	.LVL30:
 333 0000 4889F8   		movq	%rdi, %rax
 791:/usr/include/c++/4.8/bits/stl_iterator.h ****     };
 334              		.loc 4 791 0
 335 0003 C3       		ret
 336              		.cfi_endproc
 337              	.LFE1754:
 339              		.section	.text._ZN9__gnu_cxxltIPKiPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T1_EERKNS7_IT0_
 340              		.weak	_ZN9__gnu_cxxltIPKiPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T1_EERKNS7_IT0_S9_EE
 342              	_ZN9__gnu_cxxltIPKiPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T1_EERKNS7_IT0_S9_EE:
 343              	.LFB1682:
 826:/usr/include/c++/4.8/bits/stl_iterator.h **** 
 827:/usr/include/c++/4.8/bits/stl_iterator.h ****   // Random access iterator requirements
 828:/usr/include/c++/4.8/bits/stl_iterator.h ****   template<typename _IteratorL, typename _IteratorR, typename _Container>
 829:/usr/include/c++/4.8/bits/stl_iterator.h ****     inline bool
 830:/usr/include/c++/4.8/bits/stl_iterator.h ****     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
 344              		.loc 4 830 0
 345              		.cfi_startproc
 346              	.LVL31:
 347 0000 55       		pushq	%rbp
 348              		.cfi_def_cfa_offset 16
 349              		.cfi_offset 6, -16
 350 0001 53       		pushq	%rbx
 351              		.cfi_def_cfa_offset 24
 352              		.cfi_offset 3, -24
 353 0002 4883EC08 		subq	$8, %rsp
 354              		.cfi_def_cfa_offset 32
 355 0006 4889F5   		movq	%rsi, %rbp
 831:/usr/include/c++/4.8/bits/stl_iterator.h **** 	      const __normal_iterator<_IteratorR, _Container>& __rhs)
 832:/usr/include/c++/4.8/bits/stl_iterator.h ****     { return __lhs.base() < __rhs.base(); }
 356              		.loc 4 832 0
 357 0009 E8000000 		call	_ZNK9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEE4baseEv
 357      00
 358              	.LVL32:
 359 000e 4889C3   		movq	%rax, %rbx
 360 0011 4889EF   		movq	%rbp, %rdi
 361 0014 E8000000 		call	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv
 361      00
 362              	.LVL33:
 363 0019 488B00   		movq	(%rax), %rax
 364 001c 483903   		cmpq	%rax, (%rbx)
 365 001f 0F92C0   		setb	%al
 366 0022 4883C408 		addq	$8, %rsp
 367              		.cfi_def_cfa_offset 24
 368 0026 5B       		popq	%rbx
 369              		.cfi_def_cfa_offset 16
 370 0027 5D       		popq	%rbp
GAS LISTING /tmp/ccCle2Qt.s 			page 35


 371              		.cfi_def_cfa_offset 8
 372              	.LVL34:
 373 0028 C3       		ret
 374              		.cfi_endproc
 375              	.LFE1682:
 377              		.section	.text._ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_,"axG",@progbits,_ZNSt12_Vector_ba
 378              		.align 2
 379              		.weak	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_
 381              	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_:
 382              	.LFB1787:
  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)
 383              		.loc 5 90 0
 384              		.cfi_startproc
 385              	.LVL35:
 386              	.LBB4:
  91:/usr/include/c++/4.8/bits/stl_vector.h **** 	{ }
 387              		.loc 5 91 0
 388 0000 48C70700 		movq	$0, (%rdi)
 388      000000
 389 0007 48C74708 		movq	$0, 8(%rdi)
 389      00000000 
 390 000f 48C74710 		movq	$0, 16(%rdi)
 390      00000000 
 391 0017 C3       		ret
 392              	.LBE4:
 393              		.cfi_endproc
 394              	.LFE1787:
 396              		.weak	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_
 397              		.set	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_,_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2
 398              		.section	.text._ZNSt12_Vector_baseIiSaIiEEC2ERKS0_,"axG",@progbits,_ZNSt12_Vector_baseIiSaIiEEC5ER
 399              		.align 2
 400              		.weak	_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
 402              	_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_:
 403              	.LFB1741:
 127:/usr/include/c++/4.8/bits/stl_vector.h ****       : _M_impl(__a) { }
 404              		.loc 5 127 0
 405              		.cfi_startproc
 406              	.LVL36:
 407 0000 4883EC08 		subq	$8, %rsp
 408              		.cfi_def_cfa_offset 16
 409              	.LBB5:
 128:/usr/include/c++/4.8/bits/stl_vector.h **** 
 410              		.loc 5 128 0
 411 0004 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_
 411      00
 412              	.LVL37:
 413              	.LBE5:
 414 0009 4883C408 		addq	$8, %rsp
 415              		.cfi_def_cfa_offset 8
 416 000d C3       		ret
 417              		.cfi_endproc
 418              	.LFE1741:
 420              		.weak	_ZNSt12_Vector_baseIiSaIiEEC1ERKS0_
 421              		.set	_ZNSt12_Vector_baseIiSaIiEEC1ERKS0_,_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
 422              		.section	.text._ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim,"axG",@progbits,_ZN9__gnu_cxx13new_
 423              		.align 2
 424              		.weak	_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim
GAS LISTING /tmp/ccCle2Qt.s 			page 36


 426              	_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim:
 427              	.LFB1801:
 428              		.file 6 "/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
  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 ****    *
GAS LISTING /tmp/ccCle2Qt.s 			page 37


  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>
  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)
 429              		.loc 6 109 0
 430              		.cfi_startproc
GAS LISTING /tmp/ccCle2Qt.s 			page 38


 431              	.LVL38:
 432 0000 4883EC08 		subq	$8, %rsp
 433              		.cfi_def_cfa_offset 16
 110:/usr/include/c++/4.8/ext/new_allocator.h ****       { ::operator delete(__p); }
 434              		.loc 6 110 0
 435 0004 4889F7   		movq	%rsi, %rdi
 436              	.LVL39:
 437 0007 E8000000 		call	_ZdlPv
 437      00
 438              	.LVL40:
 439 000c 4883C408 		addq	$8, %rsp
 440              		.cfi_def_cfa_offset 8
 441 0010 C3       		ret
 442              		.cfi_endproc
 443              	.LFE1801:
 445              		.section	.text._ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim,"axG",@progbits,_ZNSt12_Vector_baseI
 446              		.align 2
 447              		.weak	_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim
 449              	_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim:
 450              	.LFB1789:
 171:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 451              		.loc 5 171 0
 452              		.cfi_startproc
 453              	.LVL41:
 173:/usr/include/c++/4.8/bits/stl_vector.h **** 	  _M_impl.deallocate(__p, __n);
 454              		.loc 5 173 0
 455 0000 4885F6   		testq	%rsi, %rsi
 456 0003 740D     		je	.L36
 171:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 457              		.loc 5 171 0
 458 0005 4883EC08 		subq	$8, %rsp
 459              		.cfi_def_cfa_offset 16
 174:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 460              		.loc 5 174 0
 461 0009 E8000000 		call	_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim
 461      00
 462              	.LVL42:
 175:/usr/include/c++/4.8/bits/stl_vector.h **** 
 463              		.loc 5 175 0
 464 000e 4883C408 		addq	$8, %rsp
 465              		.cfi_def_cfa_offset 8
 466              	.L36:
 467 0012 F3C3     		rep ret
 468              		.cfi_endproc
 469              	.LFE1789:
 471              		.section	.text._ZNSt12_Vector_baseIiSaIiEED2Ev,"axG",@progbits,_ZNSt12_Vector_baseIiSaIiEED5Ev,com
 472              		.align 2
 473              		.weak	_ZNSt12_Vector_baseIiSaIiEED2Ev
 475              	_ZNSt12_Vector_baseIiSaIiEED2Ev:
 476              	.LFB1744:
 159:/usr/include/c++/4.8/bits/stl_vector.h ****       { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
 477              		.loc 5 159 0
 478              		.cfi_startproc
 479              	.LVL43:
 480 0000 4883EC08 		subq	$8, %rsp
 481              		.cfi_def_cfa_offset 16
 482              	.LBB6:
GAS LISTING /tmp/ccCle2Qt.s 			page 39


 161:/usr/include/c++/4.8/bits/stl_vector.h **** 
 483              		.loc 5 161 0
 484 0004 488B37   		movq	(%rdi), %rsi
 485 0007 488B5710 		movq	16(%rdi), %rdx
 486 000b 4829F2   		subq	%rsi, %rdx
 487 000e 48C1FA02 		sarq	$2, %rdx
 160:/usr/include/c++/4.8/bits/stl_vector.h **** 		      - this->_M_impl._M_start); }
 488              		.loc 5 160 0
 489 0012 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim
 489      00
 490              	.LVL44:
 491              	.LBE6:
 161:/usr/include/c++/4.8/bits/stl_vector.h **** 
 492              		.loc 5 161 0
 493 0017 4883C408 		addq	$8, %rsp
 494              		.cfi_def_cfa_offset 8
 495 001b C3       		ret
 496              		.cfi_endproc
 497              	.LFE1744:
 499              		.weak	_ZNSt12_Vector_baseIiSaIiEED1Ev
 500              		.set	_ZNSt12_Vector_baseIiSaIiEED1Ev,_ZNSt12_Vector_baseIiSaIiEED2Ev
 501              		.section	.text._ZNSt6vectorIiSaIiEED2Ev,"axG",@progbits,_ZNSt6vectorIiSaIiEED5Ev,comdat
 502              		.align 2
 503              		.weak	_ZNSt6vectorIiSaIiEED2Ev
 505              	_ZNSt6vectorIiSaIiEED2Ev:
 506              	.LFB1671:
 414:/usr/include/c++/4.8/bits/stl_vector.h ****       { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
 507              		.loc 5 414 0
 508              		.cfi_startproc
 509              	.LVL45:
 510 0000 4883EC08 		subq	$8, %rsp
 511              		.cfi_def_cfa_offset 16
 512              	.LBB7:
 416:/usr/include/c++/4.8/bits/stl_vector.h **** 
 513              		.loc 5 416 0
 514 0004 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEED2Ev
 514      00
 515              	.LVL46:
 516              	.LBE7:
 517 0009 4883C408 		addq	$8, %rsp
 518              		.cfi_def_cfa_offset 8
 519 000d C3       		ret
 520              		.cfi_endproc
 521              	.LFE1671:
 523              		.weak	_ZNSt6vectorIiSaIiEED1Ev
 524              		.set	_ZNSt6vectorIiSaIiEED1Ev,_ZNSt6vectorIiSaIiEED2Ev
 525              		.section	.text._ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_acc
 526              		.weak	_ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_itera
 528              	_ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag
 529              	.LFB1803:
 530              		.file 7 "/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
GAS LISTING /tmp/ccCle2Qt.s 			page 40


   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;
  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 **** 
GAS LISTING /tmp/ccCle2Qt.s 			page 41


  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 **** 
  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,
 531              		.loc 7 90 0
 532              		.cfi_startproc
 533              	.LVL47:
  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;
 534              		.loc 7 96 0
 535 0000 4889F0   		movq	%rsi, %rax
 536 0003 4829F8   		subq	%rdi, %rax
 537 0006 48C1F802 		sarq	$2, %rax
  97:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     }
 538              		.loc 7 97 0
 539 000a C3       		ret
 540              		.cfi_endproc
 541              	.LFE1803:
 543              		.section	.text._ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_,"axG",@progbits,
 544              		.weak	_ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_
 546              	_ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_:
 547              	.LFB1790:
  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
GAS LISTING /tmp/ccCle2Qt.s 			page 42


 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)
 548              		.loc 7 114 0
 549              		.cfi_startproc
 550              	.LVL48:
 551 0000 4883EC18 		subq	$24, %rsp
 552              		.cfi_def_cfa_offset 32
 115:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     {
 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));
 553              		.loc 7 118 0
 554 0004 C6042400 		movb	$0, (%rsp)
 555 0008 E8000000 		call	_ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterat
 555      00
 556              	.LVL49:
 119:/usr/include/c++/4.8/bits/stl_iterator_base_funcs.h ****     }
 557              		.loc 7 119 0
 558 000d 4883C418 		addq	$24, %rsp
 559              		.cfi_def_cfa_offset 8
 560 0011 C3       		ret
 561              		.cfi_endproc
 562              	.LFE1790:
 564              		.section	.text._ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv,"axG",@progbits,_ZNK9__gnu_cxx13new_all
 565              		.align 2
 566              		.weak	_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv
 568              	_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv:
 569              	.LFB1812:
 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
 570              		.loc 6 113 0
 571              		.cfi_startproc
 572              	.LVL50:
 114:/usr/include/c++/4.8/ext/new_allocator.h ****       { return size_t(-1) / sizeof(_Tp); }
 573              		.loc 6 114 0
 574 0000 48B8FFFF 		movabsq	$4611686018427387903, %rax
 574      FFFFFFFF 
 574      FF3F
 575 000a C3       		ret
 576              		.cfi_endproc
 577              	.LFE1812:
 579              		.section	.text._ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv,"axG",@progbits,_ZN9__gnu_cxx13new_al
 580              		.align 2
 581              		.weak	_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv
 583              	_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv:
 584              	.LFB1804:
  99:/usr/include/c++/4.8/ext/new_allocator.h ****       { 
 585              		.loc 6 99 0
 586              		.cfi_startproc
GAS LISTING /tmp/ccCle2Qt.s 			page 43


 587              	.LVL51:
 588 0000 53       		pushq	%rbx
 589              		.cfi_def_cfa_offset 16
 590              		.cfi_offset 3, -16
 591 0001 4889F3   		movq	%rsi, %rbx
 101:/usr/include/c++/4.8/ext/new_allocator.h **** 	  std::__throw_bad_alloc();
 592              		.loc 6 101 0
 593 0004 E8000000 		call	_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv
 593      00
 594              	.LVL52:
 595 0009 4839D8   		cmpq	%rbx, %rax
 596 000c 7305     		jae	.L46
 102:/usr/include/c++/4.8/ext/new_allocator.h **** 
 597              		.loc 6 102 0
 598 000e E8000000 		call	_ZSt17__throw_bad_allocv
 598      00
 599              	.LVL53:
 600              	.L46:
 104:/usr/include/c++/4.8/ext/new_allocator.h ****       }
 601              		.loc 6 104 0
 602 0013 488D3C9D 		leaq	0(,%rbx,4), %rdi
 602      00000000 
 603 001b E8000000 		call	_Znwm
 603      00
 604              	.LVL54:
 105:/usr/include/c++/4.8/ext/new_allocator.h **** 
 605              		.loc 6 105 0
 606 0020 5B       		popq	%rbx
 607              		.cfi_def_cfa_offset 8
 608              	.LVL55:
 609 0021 C3       		ret
 610              		.cfi_endproc
 611              	.LFE1804:
 613              		.section	.text._ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm,"axG",@progbits,_ZNSt12_Vector_baseIiSaI
 614              		.align 2
 615              		.weak	_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm
 617              	_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm:
 618              	.LFB1791:
 167:/usr/include/c++/4.8/bits/stl_vector.h ****       { return __n != 0 ? _M_impl.allocate(__n) : 0; }
 619              		.loc 5 167 0
 620              		.cfi_startproc
 621              	.LVL56:
 168:/usr/include/c++/4.8/bits/stl_vector.h **** 
 622              		.loc 5 168 0
 623 0000 B8000000 		movl	$0, %eax
 623      00
 624 0005 4885F6   		testq	%rsi, %rsi
 625 0008 7412     		je	.L53
 167:/usr/include/c++/4.8/bits/stl_vector.h ****       { return __n != 0 ? _M_impl.allocate(__n) : 0; }
 626              		.loc 5 167 0 discriminator 1
 627 000a 4883EC08 		subq	$8, %rsp
 628              		.cfi_def_cfa_offset 16
 168:/usr/include/c++/4.8/bits/stl_vector.h **** 
 629              		.loc 5 168 0 discriminator 1
 630 000e BA000000 		movl	$0, %edx
 630      00
 631 0013 E8000000 		call	_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv
GAS LISTING /tmp/ccCle2Qt.s 			page 44


 631      00
 632              	.LVL57:
 633 0018 4883C408 		addq	$8, %rsp
 634              		.cfi_def_cfa_offset 8
 635              	.L53:
 168:/usr/include/c++/4.8/bits/stl_vector.h **** 
 636              		.loc 5 168 0 is_stmt 0 discriminator 3
 637 001c F3C3     		rep ret
 638              		.cfi_endproc
 639              	.LFE1791:
 641              		.section	.text._ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_,"axG",@progbits,_ZNSt10_Iter_baseIPKiLb0EE7_
 642              		.weak	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
 644              	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_:
 645              	.LFB1835:
 646              		.file 8 "/usr/include/c++/4.8/bits/stl_iterator_base_types.h"
   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
GAS LISTING /tmp/ccCle2Qt.s 			page 45


  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 ****  */
  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 { };
GAS LISTING /tmp/ccCle2Qt.s 			page 46


 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?)
 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 ****     };
GAS LISTING /tmp/ccCle2Qt.s 			page 47


 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
 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)
 647              		.loc 8 212 0 is_stmt 1
GAS LISTING /tmp/ccCle2Qt.s 			page 48


 648              		.cfi_startproc
 649              	.LVL58:
 650 0000 4889F8   		movq	%rdi, %rax
 213:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       { return __it; }
 651              		.loc 8 213 0
 652 0003 C3       		ret
 653              		.cfi_endproc
 654              	.LFE1835:
 656              		.section	.text._ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_,"axG",@progbits,_ZSt
 657              		.weak	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
 659              	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_:
 660              	.LFB1833:
 661              		.file 9 "/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 **** 
   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
GAS LISTING /tmp/ccCle2Qt.s 			page 49


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


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


 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);
 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&
GAS LISTING /tmp/ccCle2Qt.s 			page 52


 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.
 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>
GAS LISTING /tmp/ccCle2Qt.s 			page 53


 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
 288:/usr/include/c++/4.8/bits/stl_algobase.h ****     __miter_base(_Iterator __it)
 662              		.loc 9 288 0
 663              		.cfi_startproc
 664              	.LVL59:
 665 0000 4883EC08 		subq	$8, %rsp
 666              		.cfi_def_cfa_offset 16
 289:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Miter_base<_Iterator>::_S_base(__it); }
 667              		.loc 9 289 0
 668 0004 E8000000 		call	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
 668      00
 669              	.LVL60:
 670 0009 4883C408 		addq	$8, %rsp
 671              		.cfi_def_cfa_offset 8
 672 000d C3       		ret
 673              		.cfi_endproc
 674              	.LFE1833:
 676              		.section	.text._ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_,"axG",@progbits,_ZSt
 677              		.weak	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
 679              	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_:
 680              	.LFB1836:
 277:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Niter_base<_Iterator>::_S_base(__it); }
 681              		.loc 9 277 0
 682              		.cfi_startproc
 683              	.LVL61:
 684 0000 4883EC08 		subq	$8, %rsp
 685              		.cfi_def_cfa_offset 16
 278:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 686              		.loc 9 278 0
 687 0004 E8000000 		call	_ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
 687      00
 688              	.LVL62:
 689 0009 4883C408 		addq	$8, %rsp
 690              		.cfi_def_cfa_offset 8
 691 000d C3       		ret
 692              		.cfi_endproc
 693              	.LFE1836:
 695              		.section	.text._ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_,"axG",@progbits,_ZNSt10_Iter_baseIPiLb0EE7_S_
 696              		.weak	_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_
 698              	_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_:
 699              	.LFB1839:
 212:/usr/include/c++/4.8/bits/stl_iterator_base_types.h ****       { return __it; }
 700              		.loc 8 212 0
GAS LISTING /tmp/ccCle2Qt.s 			page 54


 701              		.cfi_startproc
 702              	.LVL63:
 703 0000 4889F8   		movq	%rdi, %rax
 704              		.loc 8 213 0
 705 0003 C3       		ret
 706              		.cfi_endproc
 707              	.LFE1839:
 709              		.section	.text._ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_,"axG",@progbits,_ZSt1
 710              		.weak	_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_
 712              	_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_:
 713              	.LFB1837:
 277:/usr/include/c++/4.8/bits/stl_algobase.h ****     { return std::_Niter_base<_Iterator>::_S_base(__it); }
 714              		.loc 9 277 0
 715              		.cfi_startproc
 716              	.LVL64:
 717 0000 4883EC08 		subq	$8, %rsp
 718              		.cfi_def_cfa_offset 16
 278:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 719              		.loc 9 278 0
 720 0004 E8000000 		call	_ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_
 720      00
 721              	.LVL65:
 722 0009 4883C408 		addq	$8, %rsp
 723              		.cfi_def_cfa_offset 8
 724 000d C3       		ret
 725              		.cfi_endproc
 726              	.LFE1837:
 728              		.section	.text._ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S
 729              		.weak	_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_
 731              	_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_:
 732              	.LFB1840:
 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
GAS LISTING /tmp/ccCle2Qt.s 			page 55


 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)
 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)
 733              		.loc 9 368 0
 734              		.cfi_startproc
 735              	.LVL66:
 736 0000 55       		pushq	%rbp
GAS LISTING /tmp/ccCle2Qt.s 			page 56


 737              		.cfi_def_cfa_offset 16
 738              		.cfi_offset 6, -16
 739 0001 53       		pushq	%rbx
 740              		.cfi_def_cfa_offset 24
 741              		.cfi_offset 3, -24
 742 0002 4883EC08 		subq	$8, %rsp
 743              		.cfi_def_cfa_offset 32
 744 0006 4889D5   		movq	%rdx, %rbp
 745              	.LBB8:
 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;
 746              		.loc 9 370 0
 747 0009 4829FE   		subq	%rdi, %rsi
 748              	.LVL67:
 749 000c 4889F3   		movq	%rsi, %rbx
 750 000f 48C1FB02 		sarq	$2, %rbx
 751              	.LVL68:
 371:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  if (_Num)
 752              		.loc 9 371 0
 753 0013 4885DB   		testq	%rbx, %rbx
 754 0016 7413     		je	.L63
 372:/usr/include/c++/4.8/bits/stl_algobase.h **** 	    __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
 755              		.loc 9 372 0
 756 0018 488D149D 		leaq	0(,%rbx,4), %rdx
 756      00000000 
 757              	.LVL69:
 758 0020 4889FE   		movq	%rdi, %rsi
 759 0023 4889EF   		movq	%rbp, %rdi
 760              	.LVL70:
 761 0026 E8000000 		call	memmove
 761      00
 762              	.LVL71:
 763              	.L63:
 373:/usr/include/c++/4.8/bits/stl_algobase.h **** 	  return __result + _Num;
 764              		.loc 9 373 0
 765 002b 488D449D 		leaq	0(%rbp,%rbx,4), %rax
 765      00
 766              	.LBE8:
 374:/usr/include/c++/4.8/bits/stl_algobase.h **** 	}
 767              		.loc 9 374 0
 768 0030 4883C408 		addq	$8, %rsp
 769              		.cfi_def_cfa_offset 24
 770 0034 5B       		popq	%rbx
 771              		.cfi_def_cfa_offset 16
 772              	.LVL72:
 773 0035 5D       		popq	%rbp
 774              		.cfi_def_cfa_offset 8
 775              	.LVL73:
 776 0036 C3       		ret
 777              		.cfi_endproc
 778              	.LFE1840:
 780              		.section	.text._ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_,"axG",@progbits,_ZSt13__copy_move_aILb0E
 781              		.weak	_ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_
 783              	_ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_:
 784              	.LFB1838:
 375:/usr/include/c++/4.8/bits/stl_algobase.h ****     };
 376:/usr/include/c++/4.8/bits/stl_algobase.h **** 
GAS LISTING /tmp/ccCle2Qt.s 			page 57


 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)
 785              		.loc 9 379 0
 786              		.cfi_startproc
 787              	.LVL74:
 788 0000 4883EC08 		subq	$8, %rsp
 789              		.cfi_def_cfa_offset 16
 790              	.LVL75:
 791              	.LBB9:
 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)
 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);
 792              		.loc 9 390 0
 793 0004 E8000000 		call	_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_
 793      00
 794              	.LVL76:
 795              	.LBE9:
 391:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 796              		.loc 9 391 0
 797 0009 4883C408 		addq	$8, %rsp
 798              		.cfi_def_cfa_offset 8
 799 000d C3       		ret
 800              		.cfi_endproc
 801              	.LFE1838:
 803              		.section	.text._ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_,"axG",@progbits,_ZSt14__copy_move_a2ILb
 804              		.weak	_ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_
 806              	_ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_:
 807              	.LFB1834:
 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, 
GAS LISTING /tmp/ccCle2Qt.s 			page 58


 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)
 808              		.loc 9 424 0
 809              		.cfi_startproc
 810              	.LVL77:
 811 0000 4154     		pushq	%r12
 812              		.cfi_def_cfa_offset 16
 813              		.cfi_offset 12, -16
 814 0002 55       		pushq	%rbp
 815              		.cfi_def_cfa_offset 24
 816              		.cfi_offset 6, -24
 817 0003 53       		pushq	%rbx
 818              		.cfi_def_cfa_offset 32
 819              		.cfi_offset 3, -32
 820 0004 4989FC   		movq	%rdi, %r12
 821 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)));
 822              		.loc 9 428 0
 823 000a 4889D7   		movq	%rdx, %rdi
 824              	.LVL78:
 825 000d E8000000 		call	_ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_
 825      00
 826              	.LVL79:
 827 0012 4889C5   		movq	%rax, %rbp
 828 0015 4889DF   		movq	%rbx, %rdi
 829 0018 E8000000 		call	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
 829      00
 830              	.LVL80:
 831 001d 4889C3   		movq	%rax, %rbx
 832              	.LVL81:
 833 0020 4C89E7   		movq	%r12, %rdi
 834 0023 E8000000 		call	_ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
 834      00
 835              	.LVL82:
 836 0028 4889EA   		movq	%rbp, %rdx
 837 002b 4889DE   		movq	%rbx, %rsi
 838 002e 4889C7   		movq	%rax, %rdi
 839 0031 E8000000 		call	_ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_
 839      00
 840              	.LVL83:
 429:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 841              		.loc 9 429 0
 842 0036 5B       		popq	%rbx
GAS LISTING /tmp/ccCle2Qt.s 			page 59


 843              		.cfi_def_cfa_offset 24
 844 0037 5D       		popq	%rbp
 845              		.cfi_def_cfa_offset 16
 846 0038 415C     		popq	%r12
 847              		.cfi_def_cfa_offset 8
 848              	.LVL84:
 849 003a C3       		ret
 850              		.cfi_endproc
 851              	.LFE1834:
 853              		.section	.text._ZSt4copyIPKiPiET0_T_S4_S3_,"axG",@progbits,_ZSt4copyIPKiPiET0_T_S4_S3_,comdat
 854              		.weak	_ZSt4copyIPKiPiET0_T_S4_S3_
 856              	_ZSt4copyIPKiPiET0_T_S4_S3_:
 857              	.LFB1824:
 430:/usr/include/c++/4.8/bits/stl_algobase.h **** 
 431:/usr/include/c++/4.8/bits/stl_algobase.h ****   /**
 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)
 858              		.loc 9 450 0
 859              		.cfi_startproc
 860              	.LVL85:
 861 0000 4154     		pushq	%r12
 862              		.cfi_def_cfa_offset 16
 863              		.cfi_offset 12, -16
 864 0002 55       		pushq	%rbp
 865              		.cfi_def_cfa_offset 24
 866              		.cfi_offset 6, -24
 867 0003 53       		pushq	%rbx
 868              		.cfi_def_cfa_offset 32
 869              		.cfi_offset 3, -32
 870 0004 4989FC   		movq	%rdi, %r12
 871 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),
GAS LISTING /tmp/ccCle2Qt.s 			page 60


 460:/usr/include/c++/4.8/bits/stl_algobase.h **** 	       __result));
 872              		.loc 9 460 0
 873 000a 4889F7   		movq	%rsi, %rdi
 874              	.LVL86:
 875 000d E8000000 		call	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
 875      00
 876              	.LVL87:
 877 0012 4889C3   		movq	%rax, %rbx
 878 0015 4C89E7   		movq	%r12, %rdi
 879 0018 E8000000 		call	_ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
 879      00
 880              	.LVL88:
 881 001d 4889EA   		movq	%rbp, %rdx
 882 0020 4889DE   		movq	%rbx, %rsi
 883 0023 4889C7   		movq	%rax, %rdi
 884 0026 E8000000 		call	_ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_
 884      00
 885              	.LVL89:
 461:/usr/include/c++/4.8/bits/stl_algobase.h ****     }
 886              		.loc 9 461 0
 887 002b 5B       		popq	%rbx
 888              		.cfi_def_cfa_offset 24
 889 002c 5D       		popq	%rbp
 890              		.cfi_def_cfa_offset 16
 891              	.LVL90:
 892 002d 415C     		popq	%r12
 893              		.cfi_def_cfa_offset 8
 894              	.LVL91:
 895 002f C3       		ret
 896              		.cfi_endproc
 897              	.LFE1824:
 899              		.section	.text._ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_,"axG",@progbits
 900              		.weak	_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_
 902              	_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_:
 903              	.LFB1813:
 904              		.file 10 "/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;
GAS LISTING /tmp/ccCle2Qt.s 			page 61


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


  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,
 905              		.loc 10 91 0
 906              		.cfi_startproc
 907              	.LVL92:
 908 0000 4883EC08 		subq	$8, %rsp
 909              		.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); }
 910              		.loc 10 93 0
 911 0004 E8000000 		call	_ZSt4copyIPKiPiET0_T_S4_S3_
 911      00
 912              	.LVL93:
 913 0009 4883C408 		addq	$8, %rsp
 914              		.cfi_def_cfa_offset 8
 915 000d C3       		ret
 916              		.cfi_endproc
 917              	.LFE1813:
 919              		.section	.text._ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_,"axG",@progbits,_ZSt18uninitialized_copy
 920              		.weak	_ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_
 922              	_ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_:
 923              	.LFB1805:
  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,
 924              		.loc 10 107 0
 925              		.cfi_startproc
 926              	.LVL94:
 927 0000 4883EC08 		subq	$8, %rsp
 928              		.cfi_def_cfa_offset 16
 929              	.LBB10:
 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;
GAS LISTING /tmp/ccCle2Qt.s 			page 63


 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);
 930              		.loc 10 117 0
 931 0004 E8000000 		call	_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_
 931      00
 932              	.LVL95:
 933              	.LBE10:
 118:/usr/include/c++/4.8/bits/stl_uninitialized.h ****     }
 934              		.loc 10 118 0
 935 0009 4883C408 		addq	$8, %rsp
 936              		.cfi_def_cfa_offset 8
 937 000d C3       		ret
 938              		.cfi_endproc
 939              	.LFE1805:
 941              		.section	.text._ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E,"axG",@progbits,_ZSt22__uni
 942              		.weak	_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E
 944              	_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E:
 945              	.LFB1792:
 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 ****   /**
GAS LISTING /tmp/ccCle2Qt.s 			page 64


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


 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 ****     }
 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,
 946              		.loc 10 256 0
 947              		.cfi_startproc
 948              	.LVL96:
 949 0000 4883EC08 		subq	$8, %rsp
 950              		.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); }
 951              		.loc 10 258 0
 952 0004 E8000000 		call	_ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_
 952      00
 953              	.LVL97:
GAS LISTING /tmp/ccCle2Qt.s 			page 66


 954 0009 4883C408 		addq	$8, %rsp
 955              		.cfi_def_cfa_offset 8
 956 000d C3       		ret
 957              		.cfi_endproc
 958              	.LFE1792:
 960              		.section	.text._ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag,"axG"
 961              		.align 2
 962              		.weak	_ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag
 964              	_ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag:
 965              	.LFB1746:
 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 ****       /**
 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
GAS LISTING /tmp/ccCle2Qt.s 			page 67


 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
 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.
GAS LISTING /tmp/ccCle2Qt.s 			page 68


 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
 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
GAS LISTING /tmp/ccCle2Qt.s 			page 69


 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
 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)
 771:/usr/include/c++/4.8/bits/stl_vector.h ****       { return *(this->_M_impl._M_start + __n); }
 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
GAS LISTING /tmp/ccCle2Qt.s 			page 70


 776:/usr/include/c++/4.8/bits/stl_vector.h ****        *  accessed.
 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 ****       }
GAS LISTING /tmp/ccCle2Qt.s 			page 71


 833:/usr/include/c++/4.8/bits/stl_vector.h **** 
 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
GAS LISTING /tmp/ccCle2Qt.s 			page 72


 890:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
 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.
GAS LISTING /tmp/ccCle2Qt.s 			page 73


 947:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __args  Arguments.
 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 ****        */
GAS LISTING /tmp/ccCle2Qt.s 			page 74


1004:/usr/include/c++/4.8/bits/stl_vector.h ****       void
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.
GAS LISTING /tmp/ccCle2Qt.s 			page 75


1061:/usr/include/c++/4.8/bits/stl_vector.h ****        *  @param  __position  Iterator pointing to element to be erased.
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 **** 
GAS LISTING /tmp/ccCle2Qt.s 			page 76


1118:/usr/include/c++/4.8/bits/stl_vector.h ****       /**
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 ****         {
GAS LISTING /tmp/ccCle2Qt.s 			page 77


1175:/usr/include/c++/4.8/bits/stl_vector.h **** 	  typedef typename std::iterator_traits<_InputIterator>::
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,
 966              		.loc 5 1197 0
 967              		.cfi_startproc
 968              	.LVL98:
 969 0000 4156     		pushq	%r14
 970              		.cfi_def_cfa_offset 16
 971              		.cfi_offset 14, -16
 972 0002 4155     		pushq	%r13
 973              		.cfi_def_cfa_offset 24
 974              		.cfi_offset 13, -24
 975 0004 4154     		pushq	%r12
 976              		.cfi_def_cfa_offset 32
 977              		.cfi_offset 12, -32
 978 0006 55       		pushq	%rbp
 979              		.cfi_def_cfa_offset 40
 980              		.cfi_offset 6, -40
 981 0007 53       		pushq	%rbx
 982              		.cfi_def_cfa_offset 48
 983              		.cfi_offset 3, -48
 984 0008 4889FB   		movq	%rdi, %rbx
 985 000b 4989F4   		movq	%rsi, %r12
 986 000e 4989D5   		movq	%rdx, %r13
 987              	.LBB11:
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);
 988              		.loc 5 1200 0
 989 0011 4889D6   		movq	%rdx, %rsi
 990              	.LVL99:
 991 0014 4C89E7   		movq	%r12, %rdi
 992              	.LVL100:
 993 0017 E8000000 		call	_ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_
 993      00
 994              	.LVL101:
 995 001c 4989C6   		movq	%rax, %r14
GAS LISTING /tmp/ccCle2Qt.s 			page 78


 996              	.LVL102:
1201:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_start = this->_M_allocate(__n);
 997              		.loc 5 1201 0
 998 001f 4889C6   		movq	%rax, %rsi
 999 0022 4889DF   		movq	%rbx, %rdi
 1000 0025 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm
 1000      00
 1001              	.LVL103:
 1002 002a 4889C5   		movq	%rax, %rbp
 1003 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;
 1004              		.loc 5 1202 0
 1005 0030 4A8D04B0 		leaq	(%rax,%r14,4), %rax
 1006 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());
 1007              		.loc 5 1206 0
 1008 0038 4889DF   		movq	%rbx, %rdi
 1009 003b E8000000 		call	_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv
 1009      00
 1010              	.LVL104:
 1011 0040 4889C1   		movq	%rax, %rcx
 1012 0043 4889EA   		movq	%rbp, %rdx
 1013 0046 4C89EE   		movq	%r13, %rsi
 1014 0049 4C89E7   		movq	%r12, %rdi
 1015 004c E8000000 		call	_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E
 1015      00
 1016              	.LVL105:
1203:/usr/include/c++/4.8/bits/stl_vector.h **** 	  this->_M_impl._M_finish =
 1017              		.loc 5 1203 0
 1018 0051 48894308 		movq	%rax, 8(%rbx)
 1019              	.LBE11:
1207:/usr/include/c++/4.8/bits/stl_vector.h **** 	}
 1020              		.loc 5 1207 0
 1021 0055 5B       		popq	%rbx
 1022              		.cfi_def_cfa_offset 40
 1023              	.LVL106:
 1024 0056 5D       		popq	%rbp
 1025              		.cfi_def_cfa_offset 32
 1026 0057 415C     		popq	%r12
 1027              		.cfi_def_cfa_offset 24
 1028              	.LVL107:
 1029 0059 415D     		popq	%r13
 1030              		.cfi_def_cfa_offset 16
 1031              	.LVL108:
 1032 005b 415E     		popq	%r14
 1033              		.cfi_def_cfa_offset 8
 1034              	.LVL109:
 1035 005d C3       		ret
 1036              		.cfi_endproc
 1037              	.LFE1746:
 1039              		.section	.text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_,"axG",@progbits,_ZNSt6vectorIiS
 1040              		.align 2
 1041              		.weak	_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_
 1043              	_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_:
GAS LISTING /tmp/ccCle2Qt.s 			page 79


 1044              	.LFB1668:
 364:/usr/include/c++/4.8/bits/stl_vector.h **** 	     const allocator_type& __a = allocator_type())
 1045              		.loc 5 364 0
 1046              		.cfi_startproc
 1047              		.cfi_personality 0x3,__gxx_personality_v0
 1048              		.cfi_lsda 0x3,.LLSDA1668
 1049              	.LVL110:
 1050 0000 55       		pushq	%rbp
 1051              		.cfi_def_cfa_offset 16
 1052              		.cfi_offset 6, -16
 1053 0001 53       		pushq	%rbx
 1054              		.cfi_def_cfa_offset 24
 1055              		.cfi_offset 3, -24
 1056 0002 4883EC28 		subq	$40, %rsp
 1057              		.cfi_def_cfa_offset 64
 1058 0006 4889FB   		movq	%rdi, %rbx
 1059 0009 48897424 		movq	%rsi, 16(%rsp)
 1059      10
 1060 000e 48895424 		movq	%rdx, 24(%rsp)
 1060      18
 1061              	.LBB12:
 366:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 1062              		.loc 5 366 0
 1063 0013 4889CE   		movq	%rcx, %rsi
 1064 0016 E8000000 		call	_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
 1064      00
 1065              	.LVL111:
 369:/usr/include/c++/4.8/bits/stl_vector.h ****       }
 1066              		.loc 5 369 0
 1067 001b 488D7C24 		leaq	16(%rsp), %rdi
 1067      10
 1068 0020 E8000000 		call	_ZNKSt16initializer_listIiE3endEv
 1068      00
 1069              	.LVL112:
 1070 0025 4889C5   		movq	%rax, %rbp
 1071 0028 488D7C24 		leaq	16(%rsp), %rdi
 1071      10
 1072 002d E8000000 		call	_ZNKSt16initializer_listIiE5beginEv
 1072      00
 1073              	.LVL113:
 368:/usr/include/c++/4.8/bits/stl_vector.h **** 			    random_access_iterator_tag());
 1074              		.loc 5 368 0
 1075 0032 C6042400 		movb	$0, (%rsp)
 1076 0036 4889EA   		movq	%rbp, %rdx
 1077 0039 4889C6   		movq	%rax, %rsi
 1078 003c 4889DF   		movq	%rbx, %rdi
 1079              	.LEHB0:
 1080 003f E8000000 		call	_ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag
 1080      00
 1081              	.LEHE0:
 1082              	.LVL114:
 1083 0044 EB13     		jmp	.L82
 1084              	.L81:
 1085 0046 4889C5   		movq	%rax, %rbp
 366:/usr/include/c++/4.8/bits/stl_vector.h ****       {
 1086              		.loc 5 366 0
 1087 0049 4889DF   		movq	%rbx, %rdi
GAS LISTING /tmp/ccCle2Qt.s 			page 80


 1088 004c E8000000 		call	_ZNSt12_Vector_baseIiSaIiEED2Ev
 1088      00
 1089              	.LVL115:
 1090 0051 4889EF   		movq	%rbp, %rdi
 1091              	.LEHB1:
 1092 0054 E8000000 		call	_Unwind_Resume
 1092      00
 1093              	.LEHE1:
 1094              	.LVL116:
 1095              	.L82:
 1096              	.LBE12:
 370:/usr/include/c++/4.8/bits/stl_vector.h **** #endif
 1097              		.loc 5 370 0
 1098 0059 4883C428 		addq	$40, %rsp
 1099              		.cfi_def_cfa_offset 24
 1100 005d 5B       		popq	%rbx
 1101              		.cfi_def_cfa_offset 16
 1102              	.LVL117:
 1103 005e 5D       		popq	%rbp
 1104              		.cfi_def_cfa_offset 8
 1105 005f C3       		ret
 1106              		.cfi_endproc
 1107              	.LFE1668:
 1108              		.globl	__gxx_personality_v0
 1109              		.section	.gcc_except_table._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_,"aG",@progbits,_ZNS
 1110              	.LLSDA1668:
 1111 0000 FF       		.byte	0xff
 1112 0001 FF       		.byte	0xff
 1113 0002 01       		.byte	0x1
 1114 0003 08       		.uleb128 .LLSDACSE1668-.LLSDACSB1668
 1115              	.LLSDACSB1668:
 1116 0004 3F       		.uleb128 .LEHB0-.LFB1668
 1117 0005 05       		.uleb128 .LEHE0-.LEHB0
 1118 0006 46       		.uleb128 .L81-.LFB1668
 1119 0007 00       		.uleb128 0
 1120 0008 54       		.uleb128 .LEHB1-.LFB1668
 1121 0009 05       		.uleb128 .LEHE1-.LEHB1
 1122 000a 00       		.uleb128 0
 1123 000b 00       		.uleb128 0
 1124              	.LLSDACSE1668:
 1125              		.section	.text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_,"axG",@progbits,_ZNSt6vectorIiS
 1127              		.weak	_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_
 1128              		.set	_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_,_ZNSt6vectorIiSaIiEEC2ESt16initializer_li
 1129              		.section	.rodata.str1.1,"aMS",@progbits,1
 1130              	.LC0:
 1131 0000 72616E67 		.string	"rangeLoop "
 1131      654C6F6F 
 1131      702000
 1132              		.text
 1133              		.globl	_Z9rangeLoopv
 1135              	_Z9rangeLoopv:
 1136              	.LFB1601:
   5:range-loop.cpp **** 
 1137              		.loc 1 5 0
 1138              		.cfi_startproc
 1139              		.cfi_personality 0x3,__gxx_personality_v0
 1140              		.cfi_lsda 0x3,.LLSDA1601
GAS LISTING /tmp/ccCle2Qt.s 			page 81


 1141 0034 55       		pushq	%rbp
 1142              		.cfi_def_cfa_offset 16
 1143              		.cfi_offset 6, -16
 1144 0035 53       		pushq	%rbx
 1145              		.cfi_def_cfa_offset 24
 1146              		.cfi_offset 3, -24
 1147 0036 4883EC58 		subq	$88, %rsp
 1148              		.cfi_def_cfa_offset 112
 1149              	.LBB13:
   7:range-loop.cpp ****   int a[4] = {5,6,7,8};
 1150              		.loc 1 7 0
 1151 003a 488D4C24 		leaq	32(%rsp), %rcx
 1151      20
 1152 003f BE000000 		movl	$._85, %esi
 1152      00
 1153 0044 BA040000 		movl	$4, %edx
 1153      00
 1154 0049 488D7C24 		leaq	48(%rsp), %rdi
 1154      30
 1155              	.LEHB2:
 1156 004e E8000000 		call	_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_
 1156      00
 1157              	.LEHE2:
 1158              	.LVL118:
   8:range-loop.cpp **** 
 1159              		.loc 1 8 0
 1160 0053 C7442420 		movl	$5, 32(%rsp)
 1160      05000000 
 1161 005b C7442424 		movl	$6, 36(%rsp)
 1161      06000000 
 1162 0063 C7442428 		movl	$7, 40(%rsp)
 1162      07000000 
 1163 006b C744242C 		movl	$8, 44(%rsp)
 1163      08000000 
  10:range-loop.cpp ****   for (auto i : v ) {
 1164              		.loc 1 10 0
 1165 0073 BE000000 		movl	$.LC0, %esi
 1165      00
 1166 0078 BF000000 		movl	$_ZSt4cout, %edi
 1166      00
 1167              	.LEHB3:
 1168 007d E8000000 		call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
 1168      00
 1169              	.LVL119:
 1170              	.LBB14:
  11:range-loop.cpp ****     std::cout << i;
 1171              		.loc 1 11 0
 1172 0082 488D7C24 		leaq	48(%rsp), %rdi
 1172      30
 1173              	.LVL120:
 1174 0087 E8000000 		call	_ZNSt6vectorIiSaIiEE5beginEv
 1174      00
 1175              	.LVL121:
 1176 008c 48890424 		movq	%rax, (%rsp)
 1177 0090 488D7C24 		leaq	48(%rsp), %rdi
 1177      30
 1178              	.LVL122:
GAS LISTING /tmp/ccCle2Qt.s 			page 82


 1179 0095 E8000000 		call	_ZNSt6vectorIiSaIiEE3endEv
 1179      00
 1180              	.LVL123:
 1181 009a 48894424 		movq	%rax, 16(%rsp)
 1181      10
 1182 009f EB1C     		jmp	.L85
 1183              	.L86:
  11:range-loop.cpp ****     std::cout << i;
 1184              		.loc 1 11 0 is_stmt 0 discriminator 3
 1185 00a1 4889E7   		movq	%rsp, %rdi
 1186 00a4 E8000000 		call	_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv
 1186      00
 1187              	.LVL124:
  12:range-loop.cpp ****   }
 1188              		.loc 1 12 0 is_stmt 1 discriminator 3
 1189 00a9 8B30     		movl	(%rax), %esi
 1190 00ab BF000000 		movl	$_ZSt4cout, %edi
 1190      00
 1191 00b0 E8000000 		call	_ZNSolsEi
 1191      00
 1192              	.LVL125:
  11:range-loop.cpp ****     std::cout << i;
 1193              		.loc 1 11 0
 1194 00b5 4889E7   		movq	%rsp, %rdi
 1195 00b8 E8000000 		call	_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv
 1195      00
 1196              	.LVL126:
 1197              	.L85:
  11:range-loop.cpp ****     std::cout << i;
 1198              		.loc 1 11 0 is_stmt 0 discriminator 1
 1199 00bd 488D7424 		leaq	16(%rsp), %rsi
 1199      10
 1200 00c2 4889E7   		movq	%rsp, %rdi
 1201 00c5 E8000000 		call	_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_
 1201      00
 1202              	.LVL127:
 1203 00ca 84C0     		testb	%al, %al
 1204 00cc 75D3     		jne	.L86
 1205              	.LBE14:
 1206              	.LBB15:
  14:range-loop.cpp ****     std::cout << &j;
 1207              		.loc 1 14 0 is_stmt 1
 1208 00ce 488D7C24 		leaq	48(%rsp), %rdi
 1208      30
 1209              	.LVL128:
 1210 00d3 E8000000 		call	_ZNSt6vectorIiSaIiEE5beginEv
 1210      00
 1211              	.LVL129:
 1212 00d8 48894424 		movq	%rax, 16(%rsp)
 1212      10
 1213 00dd 488D7424 		leaq	16(%rsp), %rsi
 1213      10
 1214 00e2 4889E7   		movq	%rsp, %rdi
 1215 00e5 E8000000 		call	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC1IPiEERKNS0_IT_NS_11__enable_ifIXsrSt1
 1215      00
 1216              	.LVL130:
 1217 00ea EB15     		jmp	.L87
GAS LISTING /tmp/ccCle2Qt.s 			page 83


 1218              	.L88:
  15:range-loop.cpp ****   }
 1219              		.loc 1 15 0
 1220 00ec 4889E6   		movq	%rsp, %rsi
 1221 00ef BF000000 		movl	$_ZSt4cout, %edi
 1221      00
 1222 00f4 E8000000 		call	_ZNSolsEPKv
 1222      00
 1223              	.LVL131:
  14:range-loop.cpp ****     std::cout << &j;
 1224              		.loc 1 14 0
 1225 00f9 4889E7   		movq	%rsp, %rdi
 1226 00fc E8000000 		call	_ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEppEv
 1226      00
 1227              	.LVL132:
 1228              	.L87:
  14:range-loop.cpp ****     std::cout << &j;
 1229              		.loc 1 14 0 is_stmt 0 discriminator 1
 1230 0101 488D7C24 		leaq	48(%rsp), %rdi
 1230      30
 1231              	.LVL133:
 1232 0106 E8000000 		call	_ZNSt6vectorIiSaIiEE3endEv
 1232      00
 1233              	.LVL134:
 1234 010b 48894424 		movq	%rax, 16(%rsp)
 1234      10
 1235 0110 488D7424 		leaq	16(%rsp), %rsi
 1235      10
 1236 0115 4889E7   		movq	%rsp, %rdi
 1237 0118 E8000000 		call	_ZN9__gnu_cxxltIPKiPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T1_EERKNS7_IT0_S9_EE
 1237      00
 1238              	.LVL135:
 1239 011d 84C0     		testb	%al, %al
 1240 011f 75CB     		jne	.L88
 1241              	.LVL136:
 1242 0121 488D5C24 		leaq	32(%rsp), %rbx
 1242      20
 1243              	.LVL137:
 1244              	.LBE15:
 1245              	.LBB16:
  18:range-loop.cpp ****     std::cout << i;
 1246              		.loc 1 18 0 is_stmt 1
 1247 0126 488D6C24 		leaq	48(%rsp), %rbp
 1247      30
 1248              	.LVL138:
 1249              	.L90:
  19:range-loop.cpp ****   }
 1250              		.loc 1 19 0 discriminator 2
 1251 012b 8B33     		movl	(%rbx), %esi
 1252 012d BF000000 		movl	$_ZSt4cout, %edi
 1252      00
 1253 0132 E8000000 		call	_ZNSolsEi
 1253      00
 1254              	.LVL139:
 1255 0137 4883C304 		addq	$4, %rbx
 1256              	.LVL140:
  18:range-loop.cpp ****     std::cout << i;
GAS LISTING /tmp/ccCle2Qt.s 			page 84


 1257              		.loc 1 18 0
 1258 013b 4839DD   		cmpq	%rbx, %rbp
 1259 013e 75EB     		jne	.L90
 1260 0140 488D5C24 		leaq	32(%rsp), %rbx
 1260      20
 1261              	.LVL141:
 1262              	.LBE16:
 1263              	.LBB17:
  22:range-loop.cpp ****     ++r;
 1264              		.loc 1 22 0
 1265 0145 488D6C24 		leaq	48(%rsp), %rbp
 1265      30
 1266              	.LVL142:
 1267              	.L92:
  23:range-loop.cpp ****     std::cout << r;
 1268              		.loc 1 23 0 discriminator 2
 1269 014a 8B03     		movl	(%rbx), %eax
 1270 014c 8D7001   		leal	1(%rax), %esi
 1271 014f 8933     		movl	%esi, (%rbx)
  24:range-loop.cpp ****   }
 1272              		.loc 1 24 0 discriminator 2
 1273 0151 BF000000 		movl	$_ZSt4cout, %edi
 1273      00
 1274 0156 E8000000 		call	_ZNSolsEi
 1274      00
 1275              	.LVL143:
 1276 015b 4883C304 		addq	$4, %rbx
 1277              	.LVL144:
  22:range-loop.cpp ****     ++r;
 1278              		.loc 1 22 0
 1279 015f 4839DD   		cmpq	%rbx, %rbp
 1280 0162 75E6     		jne	.L92
 1281              	.LBE17:
  27:range-loop.cpp **** }
 1282              		.loc 1 27 0
 1283 0164 BE000000 		movl	$_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_, %esi
 1283      00
 1284 0169 BF000000 		movl	$_ZSt4cout, %edi
 1284      00
 1285 016e E8000000 		call	_ZNSolsEPFRSoS_E
 1285      00
 1286              	.LEHE3:
 1287              	.LVL145:
  27:range-loop.cpp **** }
 1288              		.loc 1 27 0 is_stmt 0 discriminator 1
 1289 0173 488D7C24 		leaq	48(%rsp), %rdi
 1289      30
 1290 0178 E8000000 		call	_ZNSt6vectorIiSaIiEED1Ev
 1290      00
 1291              	.LVL146:
 1292 017d EB15     		jmp	.L95
 1293              	.LVL147:
 1294              	.L94:
 1295 017f 4889C3   		movq	%rax, %rbx
  27:range-loop.cpp **** }
 1296              		.loc 1 27 0
 1297 0182 488D7C24 		leaq	48(%rsp), %rdi
GAS LISTING /tmp/ccCle2Qt.s 			page 85


 1297      30
 1298 0187 E8000000 		call	_ZNSt6vectorIiSaIiEED1Ev
 1298      00
 1299              	.LVL148:
 1300 018c 4889DF   		movq	%rbx, %rdi
 1301              	.LEHB4:
 1302 018f E8000000 		call	_Unwind_Resume
 1302      00
 1303              	.LEHE4:
 1304              	.LVL149:
 1305              	.L95:
 1306              	.LBE13:
 1307              		.loc 1 28 0 is_stmt 1
 1308 0194 4883C458 		addq	$88, %rsp
 1309              		.cfi_def_cfa_offset 24
 1310 0198 5B       		popq	%rbx
 1311              		.cfi_def_cfa_offset 16
 1312              	.LVL150:
 1313 0199 5D       		popq	%rbp
 1314              		.cfi_def_cfa_offset 8
 1315              	.LVL151:
 1316 019a C3       		ret
 1317              		.cfi_endproc
 1318              	.LFE1601:
 1319              		.section	.gcc_except_table,"a",@progbits
 1320              	.LLSDA1601:
 1321 0000 FF       		.byte	0xff
 1322 0001 FF       		.byte	0xff
 1323 0002 01       		.byte	0x1
 1324 0003 0F       		.uleb128 .LLSDACSE1601-.LLSDACSB1601
 1325              	.LLSDACSB1601:
 1326 0004 1A       		.uleb128 .LEHB2-.LFB1601
 1327 0005 05       		.uleb128 .LEHE2-.LEHB2
 1328 0006 00       		.uleb128 0
 1329 0007 00       		.uleb128 0
 1330 0008 49       		.uleb128 .LEHB3-.LFB1601
 1331 0009 F601     		.uleb128 .LEHE3-.LEHB3
 1332 000b CB02     		.uleb128 .L94-.LFB1601
 1333 000d 00       		.uleb128 0
 1334 000e DB02     		.uleb128 .LEHB4-.LFB1601
 1335 0010 05       		.uleb128 .LEHE4-.LEHB4
 1336 0011 00       		.uleb128 0
 1337 0012 00       		.uleb128 0
 1338              	.LLSDACSE1601:
 1339              		.text
 1342              	_GLOBAL__sub_I__Z9rangeLoopv:
 1343              	.LFB1842:
 1344              		.loc 1 28 0
 1345              		.cfi_startproc
 1346 019b 4883EC08 		subq	$8, %rsp
 1347              		.cfi_def_cfa_offset 16
 1348              		.loc 1 28 0
 1349 019f BEFFFF00 		movl	$65535, %esi
 1349      00
 1350 01a4 BF010000 		movl	$1, %edi
 1350      00
 1351 01a9 E852FEFF 		call	_Z41__static_initialization_and_destruction_0ii
GAS LISTING /tmp/ccCle2Qt.s 			page 86


 1351      FF
 1352              	.LVL152:
 1353 01ae 4883C408 		addq	$8, %rsp
 1354              		.cfi_def_cfa_offset 8
 1355 01b2 C3       		ret
 1356              		.cfi_endproc
 1357              	.LFE1842:
 1359              		.section	.init_array,"aw"
 1360              		.align 8
 1361 0000 00000000 		.quad	_GLOBAL__sub_I__Z9rangeLoopv
 1361      00000000 
 1362              		.section	.rodata
 1363              		.align 16
 1366              	._85:
 1367 0000 01000000 		.long	1
 1368 0004 02000000 		.long	2
 1369 0008 03000000 		.long	3
 1370 000c 04000000 		.long	4
 1371              		.local	_ZStL8__ioinit
 1372              		.comm	_ZStL8__ioinit,1,1
 1373              		.text
 1374              	.Letext0:
 1375              		.file 11 "/usr/include/libio.h"
 1376              		.file 12 "/usr/include/stdio.h"
 1377              		.file 13 "<built-in>"
 1378              		.file 14 "/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h"
 1379              		.file 15 "/usr/include/wchar.h"
 1380              		.file 16 "/usr/include/c++/4.8/cwchar"
 1381              		.file 17 "/usr/include/c++/4.8/bits/exception_ptr.h"
 1382              		.file 18 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h"
 1383              		.file 19 "/usr/include/c++/4.8/type_traits"
 1384              		.file 20 "/usr/include/c++/4.8/bits/stl_pair.h"
 1385              		.file 21 "/usr/include/c++/4.8/bits/char_traits.h"
 1386              		.file 22 "/usr/include/c++/4.8/cstdint"
 1387              		.file 23 "/usr/include/c++/4.8/clocale"
 1388              		.file 24 "/usr/include/c++/4.8/cstdlib"
 1389              		.file 25 "/usr/include/c++/4.8/cstdio"
 1390              		.file 26 "/usr/include/c++/4.8/bits/ios_base.h"
 1391              		.file 27 "/usr/include/c++/4.8/cwctype"
 1392              		.file 28 "/usr/include/c++/4.8/bits/ostream.tcc"
 1393              		.file 29 "/usr/include/c++/4.8/ostream"
 1394              		.file 30 "/usr/include/c++/4.8/bits/allocator.h"
 1395              		.file 31 "/usr/include/c++/4.8/bits/ptr_traits.h"
 1396              		.file 32 "/usr/include/c++/4.8/bits/alloc_traits.h"
 1397              		.file 33 "/usr/include/c++/4.8/ext/alloc_traits.h"
 1398              		.file 34 "/usr/include/c++/4.8/bits/vector.tcc"
 1399              		.file 35 "/usr/include/c++/4.8/iosfwd"
 1400              		.file 36 "/usr/include/x86_64-linux-gnu/bits/wchar2.h"
 1401              		.file 37 "/usr/include/c++/4.8/bits/functexcept.h"
 1402              		.file 38 "/usr/include/time.h"
 1403              		.file 39 "/usr/include/c++/4.8/ext/numeric_traits.h"
 1404              		.file 40 "/usr/include/c++/4.8/debug/debug.h"
 1405              		.file 41 "/usr/include/stdint.h"
 1406              		.file 42 "/usr/include/locale.h"
 1407              		.file 43 "/usr/include/x86_64-linux-gnu/bits/types.h"
 1408              		.file 44 "/usr/include/x86_64-linux-gnu/c++/4.8/bits/atomic_word.h"
 1409              		.file 45 "/usr/include/stdlib.h"
GAS LISTING /tmp/ccCle2Qt.s 			page 87


 1410              		.file 46 "/usr/include/x86_64-linux-gnu/bits/stdlib.h"
 1411              		.file 47 "/usr/include/_G_config.h"
 1412              		.file 48 "/usr/include/x86_64-linux-gnu/bits/stdio2.h"
 1413              		.file 49 "/usr/include/wctype.h"
 1414              		.file 50 "/usr/include/c++/4.8/new"
GAS LISTING /tmp/ccCle2Qt.s 			page 88


DEFINED SYMBOLS
                            *ABS*:0000000000000000 range-loop.cpp
     /tmp/ccCle2Qt.s:5      .text:0000000000000000 _Z41__static_initialization_and_destruction_0ii
                             .bss:0000000000000000 _ZStL8__ioinit
     /tmp/ccCle2Qt.s:42     .text._ZNKSt16initializer_listIiE5beginEv:0000000000000000 _ZNKSt16initializer_listIiE5beginEv
     /tmp/ccCle2Qt.s:58     .text._ZNKSt16initializer_listIiE4sizeEv:0000000000000000 _ZNKSt16initializer_listIiE4sizeEv
     /tmp/ccCle2Qt.s:73     .text._ZNKSt16initializer_listIiE3endEv:0000000000000000 _ZNKSt16initializer_listIiE3endEv
     /tmp/ccCle2Qt.s:110    .text._ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv
     /tmp/ccCle2Qt.s:128    .text._ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv:0000000000000000 _ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv
     /tmp/ccCle2Qt.s:143    .text._ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEppEv:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEppEv
     /tmp/ccCle2Qt.s:160    .text._ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv
     /tmp/ccCle2Qt.s:176    .text._ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_
     /tmp/ccCle2Qt.s:176    .text._ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC1ERKS1_
     /tmp/ccCle2Qt.s:196    .text._ZNSt6vectorIiSaIiEE5beginEv:0000000000000000 _ZNSt6vectorIiSaIiEE5beginEv
     /tmp/ccCle2Qt.s:220    .text._ZNSt6vectorIiSaIiEE3endEv:0000000000000000 _ZNSt6vectorIiSaIiEE3endEv
     /tmp/ccCle2Qt.s:244    .text._ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv:0000000000000000 _ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv
     /tmp/ccCle2Qt.s:258    .text._ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_:0000000000000000 _ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_
     /tmp/ccCle2Qt.s:297    .text._ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPiEERKNS0_IT_NS_11__enable_ifIXsrSt10__are_sameIS9_S8_E7__valueES5_E6__typeEEE:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPiEERKNS0_IT_NS_11__enable_ifIXsrSt10__are_sameIS9_S8_E7__valueES5_E6__typeEEE
     /tmp/ccCle2Qt.s:297    .text._ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC2IPiEERKNS0_IT_NS_11__enable_ifIXsrSt10__are_sameIS9_S8_E7__valueES5_E6__typeEEE:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC1IPiEERKNS0_IT_NS_11__enable_ifIXsrSt10__are_sameIS9_S8_E7__valueES5_E6__typeEEE
     /tmp/ccCle2Qt.s:328    .text._ZNK9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEE4baseEv:0000000000000000 _ZNK9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEE4baseEv
     /tmp/ccCle2Qt.s:342    .text._ZN9__gnu_cxxltIPKiPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T1_EERKNS7_IT0_S9_EE:0000000000000000 _ZN9__gnu_cxxltIPKiPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T1_EERKNS7_IT0_S9_EE
     /tmp/ccCle2Qt.s:381    .text._ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_
     /tmp/ccCle2Qt.s:381    .text._ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1ERKS0_
     /tmp/ccCle2Qt.s:402    .text._ZNSt12_Vector_baseIiSaIiEEC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEEC2ERKS0_
     /tmp/ccCle2Qt.s:402    .text._ZNSt12_Vector_baseIiSaIiEEC2ERKS0_:0000000000000000 _ZNSt12_Vector_baseIiSaIiEEC1ERKS0_
     /tmp/ccCle2Qt.s:426    .text._ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim:0000000000000000 _ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim
     /tmp/ccCle2Qt.s:449    .text._ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim
     /tmp/ccCle2Qt.s:475    .text._ZNSt12_Vector_baseIiSaIiEED2Ev:0000000000000000 _ZNSt12_Vector_baseIiSaIiEED2Ev
     /tmp/ccCle2Qt.s:475    .text._ZNSt12_Vector_baseIiSaIiEED2Ev:0000000000000000 _ZNSt12_Vector_baseIiSaIiEED1Ev
     /tmp/ccCle2Qt.s:505    .text._ZNSt6vectorIiSaIiEED2Ev:0000000000000000 _ZNSt6vectorIiSaIiEED2Ev
     /tmp/ccCle2Qt.s:505    .text._ZNSt6vectorIiSaIiEED2Ev:0000000000000000 _ZNSt6vectorIiSaIiEED1Ev
     /tmp/ccCle2Qt.s:528    .text._ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag:0000000000000000 _ZSt10__distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag
     /tmp/ccCle2Qt.s:546    .text._ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_:0000000000000000 _ZSt8distanceIPKiENSt15iterator_traitsIT_E15difference_typeES3_S3_
     /tmp/ccCle2Qt.s:568    .text._ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv:0000000000000000 _ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv
     /tmp/ccCle2Qt.s:583    .text._ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv:0000000000000000 _ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv
     /tmp/ccCle2Qt.s:617    .text._ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm
     /tmp/ccCle2Qt.s:644    .text._ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_:0000000000000000 _ZNSt10_Iter_baseIPKiLb0EE7_S_baseES1_
     /tmp/ccCle2Qt.s:659    .text._ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_:0000000000000000 _ZSt12__miter_baseIPKiENSt11_Miter_baseIT_E13iterator_typeES3_
     /tmp/ccCle2Qt.s:679    .text._ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_:0000000000000000 _ZSt12__niter_baseIPKiENSt11_Niter_baseIT_E13iterator_typeES3_
     /tmp/ccCle2Qt.s:698    .text._ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_:0000000000000000 _ZNSt10_Iter_baseIPiLb0EE7_S_baseES0_
     /tmp/ccCle2Qt.s:712    .text._ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_:0000000000000000 _ZSt12__niter_baseIPiENSt11_Niter_baseIT_E13iterator_typeES2_
     /tmp/ccCle2Qt.s:731    .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/ccCle2Qt.s:783    .text._ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_:0000000000000000 _ZSt13__copy_move_aILb0EPKiPiET1_T0_S4_S3_
     /tmp/ccCle2Qt.s:806    .text._ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_:0000000000000000 _ZSt14__copy_move_a2ILb0EPKiPiET1_T0_S4_S3_
     /tmp/ccCle2Qt.s:856    .text._ZSt4copyIPKiPiET0_T_S4_S3_:0000000000000000 _ZSt4copyIPKiPiET0_T_S4_S3_
     /tmp/ccCle2Qt.s:902    .text._ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_:0000000000000000 _ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPKiPiEET0_T_S6_S5_
     /tmp/ccCle2Qt.s:922    .text._ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_:0000000000000000 _ZSt18uninitialized_copyIPKiPiET0_T_S4_S3_
     /tmp/ccCle2Qt.s:944    .text._ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E:0000000000000000 _ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E
     /tmp/ccCle2Qt.s:964    .text._ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag:0000000000000000 _ZNSt6vectorIiSaIiEE19_M_range_initializeIPKiEEvT_S5_St20forward_iterator_tag
     /tmp/ccCle2Qt.s:1043   .text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_:0000000000000000 _ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_
     /tmp/ccCle2Qt.s:1043   .text._ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_:0000000000000000 _ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_
     /tmp/ccCle2Qt.s:1135   .text:0000000000000034 _Z9rangeLoopv
     /tmp/ccCle2Qt.s:1366   .rodata:0000000000000000 ._85
     /tmp/ccCle2Qt.s:1342   .text:000000000000019b _GLOBAL__sub_I__Z9rangeLoopv
                           .group:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC5ERKS1_
                           .group:0000000000000000 _ZN9__gnu_cxx17__normal_iteratorIPKiSt6vectorIiSaIiEEEC5IPiEERKNS0_IT_NS_11__enable_ifIXsrSt10__are_sameIS9_S8_E7__valueES5_E6__typeEEE
                           .group:0000000000000000 _ZNSt12_Vector_baseIiSaIiEE12_Vector_implC5ERKS0_
GAS LISTING /tmp/ccCle2Qt.s 			page 89


                           .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
__gxx_personality_v0
_Unwind_Resume
_ZSt4cout
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
_ZNSolsEi
_ZNSolsEPKv
_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
_ZNSolsEPFRSoS_E