public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/28048]  New: ICC on accessing member of dependent name
@ 2006-06-16  2:04 gcc dot gnu dot org at chosenones dot dyndns dot org
  2006-06-16 10:47 ` [Bug c++/28048] ICE " rguenth at gcc dot gnu dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: gcc dot gnu dot org at chosenones dot dyndns dot org @ 2006-06-16  2:04 UTC (permalink / raw)
  To: gcc-bugs

The testcase below generates a segmentation fault in g++ 4.0.0 to 4.2.0.

/tmp/test.cpp:3: internal compiler error: Segmentation fault

--GCC Info--
Version: g++ (GCC) 4.2.0 20060615 (experimental) SVN revision 114692
(Also tested on g++ (GCC) 4.0.2 20051125 (Red Hat 4.0.2-8))

Configure command: ../configure --prefix=`pwd`/../install
--enable-languages=c++
System: Linux 2.6.16-1.2111_FC4 #1 Sat May 20 19:59:40 EDT 2006 i686 i686 i386
GNU/Linux

--Testcase--
template<typename T> struct Boom;

template<typename T, bool D = Boom<T>::Internal::Value> // <--ICE
    struct Foo
{
};

template<typename T> struct Boom
{
    struct Internal
    {
        static const bool Value = false;
    };
};


-- 
           Summary: ICC on accessing member of dependent name
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gcc dot gnu dot org at chosenones dot dyndns dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug c++/28048] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
@ 2006-06-16 10:47 ` rguenth at gcc dot gnu dot org
  2006-06-16 13:06 ` [Bug c++/28048] [4.0/4.1/4.2 Regression] " gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-06-16 10:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from rguenth at gcc dot gnu dot org  2006-06-16 10:42 -------
Confirmed:

Program received signal SIGSEGV, Segmentation fault.
0x081c916f in perform_or_defer_access_check (binfo=0x0, decl=0xa7c21af8)
    at /home/richard/src/trunk/gcc/cp/semantics.c:315
warning: Source file is more recent than executable.
315       gcc_assert (TREE_CODE (binfo) == TREE_BINFO);

Looks invalid, as I think default arguments need to be bound immediately(?)


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |ice-on-invalid-code
      Known to fail|                            |4.0.4 4.1.0 4.2.0
   Last reconfirmed|0000-00-00 00:00:00         |2006-06-16 10:42:12
               date|                            |
            Summary|ICC on accessing member of  |ICE on accessing member of
                   |dependent name              |dependent name
   Target Milestone|---                         |4.0.4


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


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

* [Bug c++/28048] [4.0/4.1/4.2 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
  2006-06-16 10:47 ` [Bug c++/28048] ICE " rguenth at gcc dot gnu dot org
@ 2006-06-16 13:06 ` gcc dot gnu dot org at chosenones dot dyndns dot org
  2006-06-16 17:44 ` pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: gcc dot gnu dot org at chosenones dot dyndns dot org @ 2006-06-16 13:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from gcc dot gnu dot org at chosenones dot dyndns dot org  2006-06-16 12:59 -------
I'm not entirely sure myself, but:

Section 14.6.7
"When looking for the declaration of a name used in a template function
definition or static data member template definition, the usual lookup rules
_basic.lookup.unqual_, _basic.lookup.koenig_) are used for non-dependent names.
 The lookup of names dependent on the template  arguments  is  postponed  until
 the  actual  template  argument  is known (_temp.dep_)."

Section 14.6.2.3.1 seems to make this a value-dependent expression:
"1 Except as described below, a constant expression is value-dependent if
  any subexpression is value-dependent."

Section 14.6.2.4
"An integral non-type template argument is dependent  if  the  constant
expression it specifies is value-dependent."


So, it seems to be a dependent name, and in other contexts, the lookup of
dependent names is delayed. Also, existing practice and common sense seem to
suggest that this be default. In any case, an ICE is probably not what should
happen.

Comeau C/C++ 4.3.3: Compiles
MSVC 7.1: Compiles

That expression as
-- A static member initializer: Compiles
-- A default function argument: Compiles

A nested type expression of the same form as
-- A base class: Compiles
-- A nested type specifier [typedef]: Compiles
-- Function return type or argument type: Compiles


-- 


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


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

* [Bug c++/28048] [4.0/4.1/4.2 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
  2006-06-16 10:47 ` [Bug c++/28048] ICE " rguenth at gcc dot gnu dot org
  2006-06-16 13:06 ` [Bug c++/28048] [4.0/4.1/4.2 Regression] " gcc dot gnu dot org at chosenones dot dyndns dot org
@ 2006-06-16 17:44 ` pinskia at gcc dot gnu dot org
  2006-07-17  2:42 ` mmitchel at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-06-16 17:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2006-06-16 17:43 -------
(In reply to comment #1)
> Looks invalid, as I think default arguments need to be bound immediately(?)

No they don't, if they did then all of STL with allocators would be broken :).


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  GCC build triplet|i686-pc-linux-gnu           |
   GCC host triplet|i686-pc-linux-gnu           |
 GCC target triplet|i686-pc-linux-gnu           |
           Keywords|ice-on-invalid-code         |ice-on-valid-code


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


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

* [Bug c++/28048] [4.0/4.1/4.2 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (2 preceding siblings ...)
  2006-06-16 17:44 ` pinskia at gcc dot gnu dot org
@ 2006-07-17  2:42 ` mmitchel at gcc dot gnu dot org
  2006-07-19  0:35 ` mmitchel at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-17  2:42 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


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


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

* [Bug c++/28048] [4.0/4.1/4.2 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (3 preceding siblings ...)
  2006-07-17  2:42 ` mmitchel at gcc dot gnu dot org
@ 2006-07-19  0:35 ` mmitchel at gcc dot gnu dot org
  2006-07-19  5:15 ` mmitchel at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-19  0:35 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |mark at codesourcery dot com
                   |dot org                     |
             Status|NEW                         |ASSIGNED


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


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

* [Bug c++/28048] [4.0/4.1/4.2 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (4 preceding siblings ...)
  2006-07-19  0:35 ` mmitchel at gcc dot gnu dot org
@ 2006-07-19  5:15 ` mmitchel at gcc dot gnu dot org
  2006-07-19  5:18 ` [Bug c++/28048] [4.0/4.1 " mmitchel at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-19  5:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from mmitchel at gcc dot gnu dot org  2006-07-19 05:15 -------
Subject: Bug 28048

Author: mmitchel
Date: Wed Jul 19 05:14:25 2006
New Revision: 115579

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115579
Log:
        PR c++/28048
        * semantics.c (check_accessibility_of_qualified_id): Robustify.
        PR c++/28048
        * g++.dg/template/defarg9.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/template/defarg9.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/semantics.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug c++/28048] [4.0/4.1 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (5 preceding siblings ...)
  2006-07-19  5:15 ` mmitchel at gcc dot gnu dot org
@ 2006-07-19  5:18 ` mmitchel at gcc dot gnu dot org
  2006-07-19  6:43 ` mmitchel at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-19  5:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from mmitchel at gcc dot gnu dot org  2006-07-19 05:18 -------
Fixed in 4.2.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.0/4.1/4.2 Regression] ICE|[4.0/4.1 Regression] ICE on
                   |on accessing member of      |accessing member of
                   |dependent name              |dependent name


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


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

* [Bug c++/28048] [4.0/4.1 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (6 preceding siblings ...)
  2006-07-19  5:18 ` [Bug c++/28048] [4.0/4.1 " mmitchel at gcc dot gnu dot org
@ 2006-07-19  6:43 ` mmitchel at gcc dot gnu dot org
  2006-07-19  6:43 ` [Bug c++/28048] [4.0 " mmitchel at gcc dot gnu dot org
  2007-02-03 17:38 ` gdr at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-19  6:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from mmitchel at gcc dot gnu dot org  2006-07-19 06:43 -------
Subject: Bug 28048

Author: mmitchel
Date: Wed Jul 19 06:42:56 2006
New Revision: 115581

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115581
Log:
        PR c++/28048
        * semantics.c (check_accessibility_of_qualified_id): Robustify.
        PR c++/28048
        * g++.dg/template/defarg9.C: New test.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/defarg9.C
Modified:
    branches/gcc-4_1-branch/gcc/cp/ChangeLog
    branches/gcc-4_1-branch/gcc/cp/semantics.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug c++/28048] [4.0 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (7 preceding siblings ...)
  2006-07-19  6:43 ` mmitchel at gcc dot gnu dot org
@ 2006-07-19  6:43 ` mmitchel at gcc dot gnu dot org
  2007-02-03 17:38 ` gdr at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-07-19  6:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from mmitchel at gcc dot gnu dot org  2006-07-19 06:43 -------
Fixed in 4.1.2.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|mark at codesourcery dot com|unassigned at gcc dot gnu
                   |                            |dot org
             Status|ASSIGNED                    |NEW
            Summary|[4.0/4.1 Regression] ICE on |[4.0 Regression] ICE on
                   |accessing member of         |accessing member of
                   |dependent name              |dependent name


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


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

* [Bug c++/28048] [4.0 Regression] ICE on accessing member of dependent name
  2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
                   ` (8 preceding siblings ...)
  2006-07-19  6:43 ` [Bug c++/28048] [4.0 " mmitchel at gcc dot gnu dot org
@ 2007-02-03 17:38 ` gdr at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: gdr at gcc dot gnu dot org @ 2007-02-03 17:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from gdr at gcc dot gnu dot org  2007-02-03 17:38 -------
Fixed in GCC-4.1.2.


-- 

gdr at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|4.0.4                       |4.1.2


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


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

end of thread, other threads:[~2007-02-03 17:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-16  2:04 [Bug c++/28048] New: ICC on accessing member of dependent name gcc dot gnu dot org at chosenones dot dyndns dot org
2006-06-16 10:47 ` [Bug c++/28048] ICE " rguenth at gcc dot gnu dot org
2006-06-16 13:06 ` [Bug c++/28048] [4.0/4.1/4.2 Regression] " gcc dot gnu dot org at chosenones dot dyndns dot org
2006-06-16 17:44 ` pinskia at gcc dot gnu dot org
2006-07-17  2:42 ` mmitchel at gcc dot gnu dot org
2006-07-19  0:35 ` mmitchel at gcc dot gnu dot org
2006-07-19  5:15 ` mmitchel at gcc dot gnu dot org
2006-07-19  5:18 ` [Bug c++/28048] [4.0/4.1 " mmitchel at gcc dot gnu dot org
2006-07-19  6:43 ` mmitchel at gcc dot gnu dot org
2006-07-19  6:43 ` [Bug c++/28048] [4.0 " mmitchel at gcc dot gnu dot org
2007-02-03 17:38 ` gdr 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).