public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/13549] New: Regression compiling Boost.Python test
@ 2004-01-02 18:48 rwgk at yahoo dot com
  2004-01-02 18:49 ` [Bug c++/13549] " rwgk at yahoo dot com
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: rwgk at yahoo dot com @ 2004-01-02 18:48 UTC (permalink / raw)
  To: gcc-bugs

gcc snapshot from 2003/12/30, ca. 7:40am PST
Configured with: ../gcc/configure --prefix=/usr/local_cci/gcc_cvs_2003_12_30 --
enable-languages=c,c++
Redhat Linux 8.0

One of our regression test for Boost.Python does not compile with g++
(GCC) 3.4.0 20031230 (experimental). We are puzzled by the error
message. David Abrahams, principle author of the Boost.Python library,
writes:

>I don't have a clue.  It seems to be failing to find the overload of
>the get function in make_constructor.hpp.
>
><shrug>

The same code works with many other compilers incl. earlier gcc's. I
will attach a preprocessed file that can be used to reproduce the
problem:

% g++ -fPIC -ftemplate-depth-120 -w -DNDEBUG -O3 -DBOOST_PYTHON_MAX_BASES=2 -
I/net/worm/scratch1/rwgk/rc1310/boost -I/usr/include/python2.2 -
E /net/worm/scratch1/rwgk/rc1310/boost/libs/python/test/injected.cpp > 
injected_pp.cpp

% g++ -fPIC -ftemplate-depth-120 -w -O3 injected_pp.cpp >& injected_pp_error

% g++ -fPIC -ftemplate-depth-120 -w -O3 injected_pp.cpp |& perl 
~/stlfilt/gSTLFilt.pl > injected_pp_error_stlfilt

The files are also available here:

http://cci.lbl.gov/~rwgk/bugs/gcc340/injected_pp.cpp
http://cci.lbl.gov/~rwgk/bugs/gcc340/injected_pp_error
http://cci.lbl.gov/~rwgk/bugs/gcc340/injected_pp_error_stlfilt

The full source code (complete boost tree, release candidate branch for
version 1.31.0) is also available:

http://cci.lbl.gov/~rwgk/bugs/gcc340/boost_rc1310_2004_01_02_1016.tar.gz

Remark: the release candidate is patched already to work around
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13530

-- 
           Summary: Regression compiling Boost.Python test
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rwgk at yahoo dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: g++ (GCC) 3.4.0 20031230 (experimental)
  GCC host triplet: i686-gnu-linux
GCC target triplet: i686-gnu-linux


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


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

* [Bug c++/13549] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
@ 2004-01-02 18:49 ` rwgk at yahoo dot com
  2004-01-02 18:50 ` rwgk at yahoo dot com
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: rwgk at yahoo dot com @ 2004-01-02 18:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rwgk at yahoo dot com  2004-01-02 18:49 -------
Created an attachment (id=5401)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5401&action=view)
Preprocessed source, gzipped


-- 


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


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

* [Bug c++/13549] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
  2004-01-02 18:49 ` [Bug c++/13549] " rwgk at yahoo dot com
@ 2004-01-02 18:50 ` rwgk at yahoo dot com
  2004-01-02 18:51 ` rwgk at yahoo dot com
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: rwgk at yahoo dot com @ 2004-01-02 18:50 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rwgk at yahoo dot com  2004-01-02 18:50 -------
Created an attachment (id=5402)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5402&action=view)
g++ error message


-- 


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


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

* [Bug c++/13549] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
  2004-01-02 18:49 ` [Bug c++/13549] " rwgk at yahoo dot com
  2004-01-02 18:50 ` rwgk at yahoo dot com
@ 2004-01-02 18:51 ` rwgk at yahoo dot com
  2004-01-02 19:05 ` rwgk at yahoo dot com
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: rwgk at yahoo dot com @ 2004-01-02 18:51 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rwgk at yahoo dot com  2004-01-02 18:51 -------
Created an attachment (id=5403)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5403&action=view)
g++ error message, reformatted using stlfilt


-- 


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


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

* [Bug c++/13549] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (2 preceding siblings ...)
  2004-01-02 18:51 ` rwgk at yahoo dot com
@ 2004-01-02 19:05 ` rwgk at yahoo dot com
  2004-01-02 21:16 ` pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: rwgk at yahoo dot com @ 2004-01-02 19:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rwgk at yahoo dot com  2004-01-02 19:05 -------
Another remark: we had to apply two trivial patches to the original
Boost.Python code in order to make gcc 3.4.0 work for all other
regression tests:

http://cvs.sourceforge.net/viewcvs.py/boost/boost/boost/python/long.hpp?
r1=1.11&r2=1.12
http://cvs.sourceforge.net/viewcvs.py/boost/boost/libs/python/src/module.cpp?
r1=1.21&r2=1.22

Could there be a general problem with the gcc 3.4.0 parser?
Could bug 13549 be just another manifestation of the same problem?


-- 


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


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

* [Bug c++/13549] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (3 preceding siblings ...)
  2004-01-02 19:05 ` rwgk at yahoo dot com
@ 2004-01-02 21:16 ` pinskia at gcc dot gnu dot org
  2004-01-02 22:25 ` [Bug c++/13549] [3.4 Regression] " pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-02 21:16 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-02 21:15 -------
Could you make the next release candidate not have the work around for PR 13530 aka bug 12573  
as it will be fixed before the release of 3.4?

But aways the problem looks like is that PyObject* get(offset_args<BaseArgs,Offset> const& args_ ) 
is not defined until after 47482 (line numbers do not match but that does not matter) (this is where 
the invalid initialization of reference error is) until line 61811.

I do not know if this should work like this or if this is really a problem in GCC.

-- 


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


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

* [Bug c++/13549] [3.4 Regression] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (4 preceding siblings ...)
  2004-01-02 21:16 ` pinskia at gcc dot gnu dot org
@ 2004-01-02 22:25 ` pinskia at gcc dot gnu dot org
  2004-01-02 22:40 ` dave at boost-consulting dot com
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-02 22:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-02 22:24 -------
I found a simple testcase which shows this:

template <typename T> int g(int);
class h{};
template <typename T> int l(){h j; return g<T>(j);}
template <typename T> int g(const h&);
class j{};
int jj(){return l<j>();}

I can confirm this on the mainline.
>From Phil's regression hunter: Search converges between 2002-12-27-trunk (#177) and 
2002-12-28-trunk (#178).  That is when the new parser went in.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |critical
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |rejects-valid
   Last reconfirmed|0000-00-00 00:00:00         |2004-01-02 22:25:03
               date|                            |
            Summary|Regression compiling        |[3.4 Regression] Regression
                   |Boost.Python test           |compiling Boost.Python test
   Target Milestone|---                         |3.4.0


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


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

* [Bug c++/13549] [3.4 Regression] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (5 preceding siblings ...)
  2004-01-02 22:25 ` [Bug c++/13549] [3.4 Regression] " pinskia at gcc dot gnu dot org
@ 2004-01-02 22:40 ` dave at boost-consulting dot com
  2004-01-03  1:49 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: dave at boost-consulting dot com @ 2004-01-02 22:40 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dave at boost-consulting dot com  2004-01-02 22:40 -------
I think the main question here is: must a function invoked with explicitly-
specified template arguments be found in phase 1 in order to be considered as 
candidates?

I think this program captures the question:

template <int n>
int f(char*);

template <class T>
int g(T x)
{
   return f<1>(x);
}


I'm not sure how to interpret 14.6.4.2, but I believe it is relevant.

-- 


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


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

* [Bug c++/13549] [3.4 Regression] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (6 preceding siblings ...)
  2004-01-02 22:40 ` dave at boost-consulting dot com
@ 2004-01-03  1:49 ` pinskia at gcc dot gnu dot org
  2004-01-03  2:55 ` dave at boost-consulting dot com
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-03  1:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-03 01:49 -------
I let someone else really decide but with my reading of 3.4.1 which 14.6.4.2 says apply, 
the code is invalid.
Most likely:
In all the cases listed in 3.4.1, the scopes are searched for a declaration in the order 
listed in each of the respective categories; name lookup ends as soon as a declaration is 
found for the name. If no declaration is found, the program is ill-formed. 
The scopes are before the template but then again ICC 6.0 accpets this.

-- 


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


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

* [Bug c++/13549] [3.4 Regression] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (7 preceding siblings ...)
  2004-01-03  1:49 ` pinskia at gcc dot gnu dot org
@ 2004-01-03  2:55 ` dave at boost-consulting dot com
  2004-01-03  3:00 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: dave at boost-consulting dot com @ 2004-01-03  2:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dave at boost-consulting dot com  2004-01-03 02:55 -------
It's not that simple.  There are two searches, one at the point of definition 
and another at the point of instantiation.  One way to read this is that in my 
little example, the first search finds the "f" that's defined there.  Since 
there has been no instantiation of g, the second search is never performed in 
the little example.  In the testcase, the required definition of "get" shows 
up before the point of instantiation.

Incidentally, not only ICC6 but also EDG's latest compiler accepts this code 
(http://www.comeaucomputing.com/tryitout).  EDG's Steve Adamczyk is sometimes 
known as "Mr. name lookup", so maybe you should ask him.


-- 


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


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

* [Bug c++/13549] [3.4 Regression] Regression compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (8 preceding siblings ...)
  2004-01-03  2:55 ` dave at boost-consulting dot com
@ 2004-01-03  3:00 ` pinskia at gcc dot gnu dot org
  2004-01-04 23:02 ` [Bug c++/13549] Problem " mmitchel at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-03  3:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-03 03:00 -------
But that is why I said I would should let someone else to decide this for real.

-- 


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


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

* [Bug c++/13549] Problem compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (9 preceding siblings ...)
  2004-01-03  3:00 ` pinskia at gcc dot gnu dot org
@ 2004-01-04 23:02 ` mmitchel at gcc dot gnu dot org
  2004-02-16  5:22 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-01-04 23:02 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-01-04 23:02 -------
The standard does not answer this question.

14.6.4.2 does not apply because that entire section applies only to a name that
"is an unqualified-id, but not a template-id".  In these test cases, the name is
a template-id, such as "g<T>".

I believe that a core issue should be opened for this case; I will send email to
the right people about that.

Until there is a resolution, I don't see a compelling reason to make a change to
G++, so I've removed the regression tags, and marked this bug as suspended.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |SUSPENDED
            Summary|[3.4 Regression] Regression |Problem compiling
                   |compiling Boost.Python test |Boost.Python test
   Target Milestone|3.4.0                       |---


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


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

* [Bug c++/13549] Problem compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (10 preceding siblings ...)
  2004-01-04 23:02 ` [Bug c++/13549] Problem " mmitchel at gcc dot gnu dot org
@ 2004-02-16  5:22 ` pinskia at gcc dot gnu dot org
  2004-02-23  1:06 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-16  5:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-16 05:22 -------
I almost think DR 197, 213, and 225 is related.

-- 


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


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

* [Bug c++/13549] Problem compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (11 preceding siblings ...)
  2004-02-16  5:22 ` pinskia at gcc dot gnu dot org
@ 2004-02-23  1:06 ` pinskia at gcc dot gnu dot org
  2004-03-06 14:19 ` Woebbeking at web dot de
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-23  1:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-23 01:06 -------
*** Bug 14242 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |debian-gcc at lists dot
                   |                            |debian dot org


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


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

* [Bug c++/13549] Problem compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (12 preceding siblings ...)
  2004-02-23  1:06 ` pinskia at gcc dot gnu dot org
@ 2004-03-06 14:19 ` Woebbeking at web dot de
  2004-03-06 19:15 ` giovannibajo at libero dot it
  2004-05-26 17:13 ` pinskia at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: Woebbeking at web dot de @ 2004-03-06 14:19 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 595 bytes --]


------- Additional Comments From Woebbeking at web dot de  2004-03-06 14:19 -------
(In reply to comment #11) 
> Until there is a resolution, I don't see a compelling reason to make a 
change to 
> G++, so I've removed the regression tags, and marked this bug as suspended. 
 
I'm not sure if my BR #14242 is the same but it compiles on all other 
compilers I'm using (GCC < 3.4.0, Intel 7 and 8, MSVC 6 - 7.1), and I can't 
believe that bla(const double&) must be declared or even defined before the 
definition of foo(). 
 
 
André 

-- 


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


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

* [Bug c++/13549] Problem compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (13 preceding siblings ...)
  2004-03-06 14:19 ` Woebbeking at web dot de
@ 2004-03-06 19:15 ` giovannibajo at libero dot it
  2004-05-26 17:13 ` pinskia at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: giovannibajo at libero dot it @ 2004-03-06 19:15 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-03-06 19:15 -------
Dave, your testcase in comment #7 is slightly different because the argument is 
dependent. In the reduced testcase proposed by Andrew in comment #6, the 
argument is not dependent. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dave at boost-consulting dot
                   |                            |com


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


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

* [Bug c++/13549] Problem compiling Boost.Python test
  2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
                   ` (14 preceding siblings ...)
  2004-03-06 19:15 ` giovannibajo at libero dot it
@ 2004-05-26 17:13 ` pinskia at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-26 17:13 UTC (permalink / raw)
  To: gcc-bugs



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


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


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

end of thread, other threads:[~2004-05-26 11:39 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-02 18:48 [Bug c++/13549] New: Regression compiling Boost.Python test rwgk at yahoo dot com
2004-01-02 18:49 ` [Bug c++/13549] " rwgk at yahoo dot com
2004-01-02 18:50 ` rwgk at yahoo dot com
2004-01-02 18:51 ` rwgk at yahoo dot com
2004-01-02 19:05 ` rwgk at yahoo dot com
2004-01-02 21:16 ` pinskia at gcc dot gnu dot org
2004-01-02 22:25 ` [Bug c++/13549] [3.4 Regression] " pinskia at gcc dot gnu dot org
2004-01-02 22:40 ` dave at boost-consulting dot com
2004-01-03  1:49 ` pinskia at gcc dot gnu dot org
2004-01-03  2:55 ` dave at boost-consulting dot com
2004-01-03  3:00 ` pinskia at gcc dot gnu dot org
2004-01-04 23:02 ` [Bug c++/13549] Problem " mmitchel at gcc dot gnu dot org
2004-02-16  5:22 ` pinskia at gcc dot gnu dot org
2004-02-23  1:06 ` pinskia at gcc dot gnu dot org
2004-03-06 14:19 ` Woebbeking at web dot de
2004-03-06 19:15 ` giovannibajo at libero dot it
2004-05-26 17:13 ` pinskia 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).