c++/10888: [3.3/3.4 warning regression] inlining failure for allocate in ~vector()

Matthias Klose <[email protected]>
Newsgroups gmane.comp.gcc.prs,gmane.linux.debian.devel.gcc
Message-ID <[email protected]>
>Number:         10888
>Category:       c++
>Synopsis:       [3.3/3.4 warning regression] inlining failure for allocate in ~vector()
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 20 21:45:59 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Laurent Bonnaud <[email protected]>
>Release:        3.3 (Debian) (Debian testing/unstable)
>Organization:
The Debian Project
>Environment:
System: Debian GNU/Linux (unstable)
Architecture: i686

>Description:
 [ Reported to the Debian BTS as report #193049.
   Please CC [email protected] on replies.
   Log of report can be found at http://bugs.debian.org/193049 ]
	

This program generates warnings with 3.3 and CVS 20030501 whereas it
did not with g++ 3.2:

// Compile with: g++-3.3 -O -Winline essai.cpp

#include <vector>

using namespace std;

int main(void)
{
  vector<int> v(10);

}

$ g++-3.3 -O -Winline essai.cpp
essai.cpp: In member function `std::allocator<_Alloc>::~allocator() [with _Tp =
   int]':
essai.cpp:232:   instantiated from `static _Tp* std::__simple_alloc<_Tp, _Alloc>::allocate(unsigned int) [with _Tp = int, _Alloc = std::__default_alloc_template<true, 0>]'
essai.cpp:233:   instantiated from `_Tp* std::_Vector_alloc_base<_Tp, _Allocator, true>::_M_allocate(unsigned int) [with _Tp = int, _Allocator = std::allocator<int>]'
essai.cpp:127:   instantiated from `std::_Vector_base<_Tp, _Alloc>::_Vector_base(unsigned int, typename std::_Vector_alloc_base<_Tp, _Alloc, std::_Alloc_traits<_Tp, _Allocator>::_S_instanceless>::allocator_type&) [with _Tp = int, _Alloc = std::allocator<int>]'
essai.cpp:158:   instantiated from `std::vector<_Tp, _Alloc>::vector(unsigned int) [with _Tp = int, _Alloc = std::allocator<int>]'
essai.cpp:253:   instantiated from here
/usr/include/c++/3.3/bits/stl_alloc.h:388: warning: inlining failed in call to
   `static void* std::__default_alloc_template<__threads,
   __inst>::allocate(unsigned int) [with bool __threads = true, int __inst = 0]
   '
essai.cpp:232: warning: called from here
essai.cpp: In member function `std::_Vector_base<_Tp, _Alloc>::~_Vector_base()
   [with _Tp = int, _Alloc = std::allocator<int>]':
essai.cpp:242:   instantiated from `static void std::__simple_alloc<_Tp, _Alloc>::deallocate(_Tp*, unsigned int) [with _Tp = int, _Alloc = std::__default_alloc_template<true, 0>]'
essai.cpp:242:   instantiated from `void std::_Vector_alloc_base<_Tp, _Allocator, true>::_M_deallocate(_Tp*, unsigned int) [with _Tp = int, _Allocator = std::allocator<int>]'
essai.cpp:130:   instantiated from `std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = int, _Alloc = std::allocator<int>]'
essai.cpp:253:   instantiated from `std::vector<_Tp, _Alloc>::vector(unsigned int) [with _Tp = int, _Alloc = std::allocator<int>]'
essai.cpp:253:   instantiated from here
/usr/include/c++/3.3/bits/stl_alloc.h:429: warning: inlining failed in call to
   `static void std::__default_alloc_template<__threads,
   __inst>::deallocate(void*, unsigned int) [with bool __threads = true, int
   __inst = 0]'
essai.cpp:242: warning: called from here
essai.cpp: In member function `std::vector<_Tp, _Alloc>::~vector() [with _Tp =
   int, _Alloc = std::allocator<int>]':
essai.cpp:242:   instantiated from `static void std::__simple_alloc<_Tp, _Alloc>::deallocate(_Tp*, unsigned int) [with _Tp = int, _Alloc = std::__default_alloc_template<true, 0>]'
essai.cpp:242:   instantiated from `void std::_Vector_alloc_base<_Tp, _Allocator, true>::_M_deallocate(_Tp*, unsigned int) [with _Tp = int, _Allocator = std::allocator<int>]'
essai.cpp:130:   instantiated from `std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = int, _Alloc = std::allocator<int>]'
essai.cpp:162:   instantiated from `std::vector<_Tp, _Alloc>::~vector() [with _Tp = int, _Alloc = std::allocator<int>]'
essai.cpp:7:   instantiated from here
/usr/include/c++/3.3/bits/stl_alloc.h:429: warning: inlining failed in call to
   `static void std::__default_alloc_template<__threads,
   __inst>::deallocate(void*, unsigned int) [with bool __threads = true, int
   __inst = 0]'
essai.cpp:242: warning: called from here

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.