public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode
@ 2004-08-31 12:17 wyderski at ii dot uni dot wroc dot pl
  2004-08-31 16:08 ` [Bug c++/17248] [3.4 Regression] " pinskia at gcc dot gnu dot org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: wyderski at ii dot uni dot wroc dot pl @ 2004-08-31 12:17 UTC (permalink / raw)
  To: gcc-bugs

The C++ compiler fails when the -O0 optimization
mode and a method has the __always_inline__ attribute
specified. The command line used was:

gpp -O0 -c allocator.cpp -I./ -save temps

The version string:

Reading specs from c:/djgpp/bin/../lib/gcc/djgpp/3.41/specs
Configured with: /Build/gcc34/gnu/gcc-3.41/configure djgpp
--prefix=/dev/env/DJDIR --disable-nls --disable-libstdcxx-pch
Thread model: single
gcc version 3.4.1

It displays the following message:

./base/list.h: In destructor `base::list<traits>::~list() [with traits =
base::simple_list<mdl::expression_base*, 
false>::aux_simple_traits<mdl::expression_base*,  false>]':
./base/list.h:452:   instantiated from `base::list<traits>::~list() [with traits
= base::simple_list<mdl::expression_base*, 
false>::aux_simple_traits<mdl::expression_base*,  false>]'
ast.h:736:   instantiated from here
./base/list.h:431: sorry, unimplemented: inlining failed in call to 'static void
base::list<traits>::aux_erase_on_delete<T,  true>::apply(base::list<traits>&)
[with T = base::list<base::simple_list<mdl::expression_base*, 
false>::aux_simple_traits<mdl::expression_base*,  false> >, traits =
base::simple_list<mdl::expression_base*, 
false>::aux_simple_traits<mdl::expression_base*,  false>]': function body not
available
./base/list.h:452: sorry, unimplemented: called from here

The snippet has ~800KiB, so it is not included in this text, 
but here's a link to it:

http://www.ii.uni.wroc.pl/~wyderski/allocator.ii

-- 
           Summary: __always_inline__ throws "unimplemented" in -O0 mode
           Product: gcc
           Version: 3.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: wyderski at ii dot uni dot wroc dot pl
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: DJGPP, GCC 3.4.1
  GCC host triplet: IA-32 PC, Windows XP, GCC 3.4.1
GCC target triplet: IA-32 PC, Windows XP, GCC 3.4.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
@ 2004-08-31 16:08 ` pinskia at gcc dot gnu dot org
  2004-08-31 16:18 ` bangerth at dealii dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-31 16:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-31 16:08 -------
Reduced testcase:
            template <typename T, bool> struct aux_erase_on_delete;
            template <typename T> struct aux_erase_on_delete<T,true> {
                inline __attribute__((__always_inline__)) static void apply(){}
            };
int main()
  {
    aux_erase_on_delete<int,true>::apply();
  }

Confirmed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |rejects-valid
      Known to fail|                            |3.4.0 3.4.2
      Known to work|                            |3.3.3 3.5.0
   Last reconfirmed|0000-00-00 00:00:00         |2004-08-31 16:08:09
               date|                            |
            Summary|__always_inline__ throws    |[3.4 Regression]
                   |"unimplemented" in -O0 mode |__always_inline__ throws
                   |                            |"unimplemented" in -O0 mode
   Target Milestone|---                         |3.4.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
  2004-08-31 16:08 ` [Bug c++/17248] [3.4 Regression] " pinskia at gcc dot gnu dot org
@ 2004-08-31 16:18 ` bangerth at dealii dot org
  2004-08-31 16:32 ` reichelt at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: bangerth at dealii dot org @ 2004-08-31 16:18 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-08-31 16:18 -------
This is even a little simpler: 
---------------- 
template <typename T> 
inline __attribute__((__always_inline__)) void apply(T){} 
 
int main() { 
  apply(1); 
} 
---------------- 
 
g/x> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc 
x.cc: In function `int main()': 
x.cc:2: sorry, unimplemented: inlining failed in call to 'void apply(T) [with 
T = int]': function body not available 
x.cc:5: sorry, unimplemented: called from here 
 
W. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
  2004-08-31 16:08 ` [Bug c++/17248] [3.4 Regression] " pinskia at gcc dot gnu dot org
  2004-08-31 16:18 ` bangerth at dealii dot org
@ 2004-08-31 16:32 ` reichelt at gcc dot gnu dot org
  2004-08-31 17:03 ` reichelt at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-08-31 16:32 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2004-08-31 16:32 -------
You don't even need templates:

===================================================
__attribute__((__always_inline__)) void foo() {}

void bar()
{
    foo();
}
===================================================

Note, that this compiles fine with the C frontend.
The bug is target independent.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |reichelt at gcc dot gnu dot
                   |                            |org
           Severity|normal                      |critical
  GCC build triplet|DJGPP, GCC 3.4.1            |
   GCC host triplet|IA-32 PC, Windows XP, GCC   |
                   |3.4.1                       |
 GCC target triplet|IA-32 PC, Windows XP, GCC   |
                   |3.4.1                       |
           Keywords|                            |monitored


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
                   ` (2 preceding siblings ...)
  2004-08-31 16:32 ` reichelt at gcc dot gnu dot org
@ 2004-08-31 17:03 ` reichelt at gcc dot gnu dot org
  2004-10-31  2:43 ` mmitchel at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2004-08-31 17:03 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2004-08-31 17:03 -------
This was fixed on mainline by Jan's patch
  http://gcc.gnu.org/ml/gcc-cvs/2004-03/msg01308.html
Jan, does a backport make sense?


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
                   ` (3 preceding siblings ...)
  2004-08-31 17:03 ` reichelt at gcc dot gnu dot org
@ 2004-10-31  2:43 ` mmitchel at gcc dot gnu dot org
  2004-12-14  8:55 ` ebotcazou at gcc dot gnu dot org
  2005-05-19 17:41 ` mmitchel at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-10-31  2:43 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-10-31 02:43 -------
Postponed until GCC 3.4.4.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.4.3                       |3.4.4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
                   ` (4 preceding siblings ...)
  2004-10-31  2:43 ` mmitchel at gcc dot gnu dot org
@ 2004-12-14  8:55 ` ebotcazou at gcc dot gnu dot org
  2005-05-19 17:41 ` mmitchel at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-12-14  8:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-12-14 08:55 -------
This is not critical.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |normal


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/17248] [3.4 Regression] __always_inline__ throws "unimplemented" in -O0 mode
  2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
                   ` (5 preceding siblings ...)
  2004-12-14  8:55 ` ebotcazou at gcc dot gnu dot org
@ 2005-05-19 17:41 ` mmitchel at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-05-19 17:41 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.4.4                       |3.4.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17248


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2005-05-19 17:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-31 12:17 [Bug c++/17248] New: __always_inline__ throws "unimplemented" in -O0 mode wyderski at ii dot uni dot wroc dot pl
2004-08-31 16:08 ` [Bug c++/17248] [3.4 Regression] " pinskia at gcc dot gnu dot org
2004-08-31 16:18 ` bangerth at dealii dot org
2004-08-31 16:32 ` reichelt at gcc dot gnu dot org
2004-08-31 17:03 ` reichelt at gcc dot gnu dot org
2004-10-31  2:43 ` mmitchel at gcc dot gnu dot org
2004-12-14  8:55 ` ebotcazou at gcc dot gnu dot org
2005-05-19 17:41 ` mmitchel at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).