First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 15701
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: Mark Mitchell <mark@codesourcery.com>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Ivan Godard <igodard@pacbell.net>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
foo13 Compiler output (-v -save-temps) text/plain 2004-05-28 07:18 728 bytes Edit
testPowerset.ii Source code (-save-temps) text/plain 2004-05-28 07:19 103.90 KB Edit
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 15701 depends on: Show dependency tree
Show dependency graph
Bug 15701 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: 2004-05-28 12:08 Opened: 2004-05-28 07:17

    

------- Comment #1 From Ivan Godard 2004-05-28 07:18 -------
Created an attachment (id=6411) [edit]
Compiler output (-v -save-temps)

------- Comment #2 From Ivan Godard 2004-05-28 07:19 -------
Created an attachment (id=6412) [edit]
Source code (-save-temps)

------- Comment #3 From Volker Reichelt 2004-05-28 12:08 -------
Confirmed.

Here's a reduced testcase that segfaults since gcc 3.4.0:

===============================================================
template<template<int> class T> struct A : T<0>
{
    void foo();
    template<template<int> class U> friend void A<U>::foo();
};

template<int> struct B {};

A<B> a;
===============================================================

The problem seems to be related to the template template parameter.
If I make T, U, B regular classes, the code compiles.

------- Comment #4 From Mark Mitchell 2004-05-31 21:56 -------
Working on a fix.

------- Comment #5 From CVS Commits 2004-05-31 22:47 -------
Subject: Bug 15701

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	mmitchel@gcc.gnu.org	2004-05-31 22:47:16

Modified files:
	gcc/testsuite  : ChangeLog 
	gcc/cp         : ChangeLog friend.c 
Added files:
	gcc/testsuite/g++.dg/template: friend29.C 

Log message:
	PR c++/15701
	* friend.c (add_friend): Do not try to perform access checks for
	functions from dependent classes.
	
	PR c++/15701
	* g++.dg/template/friend29.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.190&r2=1.3389.2.191
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.110&r2=1.3892.2.111
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/friend.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.93.4.1&r2=1.93.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/friend29.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1


------- Comment #6 From CVS Commits 2004-05-31 22:48 -------
Subject: Bug 15701

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	mmitchel@gcc.gnu.org	2004-05-31 22:47:57

Modified files:
	gcc/cp         : friend.c 
Added files:
	gcc/testsuite/g++.dg/template: friend29.C 

Log message:
	PR c++/15701
	* friend.c (add_friend): Do not try to perform access checks for
	functions from dependent classes.
	
	PR c++/15701
	* g++.dg/template/friend29.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/friend.c.diff?cvsroot=gcc&r1=1.96&r2=1.97
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/friend29.C.diff?cvsroot=gcc&r1=1.1&r2=1.2


------- Comment #7 From CVS Commits 2004-05-31 22:48 -------
Subject: Bug 15701

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	mmitchel@gcc.gnu.org	2004-05-31 22:48:30

Modified files:
	gcc/cp         : ChangeLog 
	gcc/testsuite  : ChangeLog 

Log message:
	PR c++/15701
	* friend.c (add_friend): Do not try to perform access checks for
	functions from dependent classes.
	
	PR c++/15701
	* g++.dg/template/friend29.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4071&r2=1.4072
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3799&r2=1.3800


------- Comment #8 From Mark Mitchell 2004-05-31 22:57 -------
Fixed in GCC 3.4.1.

First Last Prev Next    No search results available      Search page      Enter new bug