This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH C++: speed up templates
- From: Ziemowit Laski <zlaski at apple dot com>
- To: Mark Mitchell <mark at codesourcery dot com>
- Cc: Matt Austern <austern at apple dot com>, Mike Stump <mrs at apple dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 20 Feb 2003 17:59:11 -0800
- Subject: Re: PATCH C++: speed up templates
On Thursday, Feb 20, 2003, at 10:53 US/Pacific, Mark Mitchell wrote:
--On Thursday, February 20, 2003 10:49:28 AM -0800 Matt Austern
<austern at apple dot com> wrote:
Giving a friendlier diagnostic for incorrect code, at the cost of
being
slower when compiling correct programs, isn't obviously a good
tradeoff.
It's not a friendlier diagnostic -- the compiler now *terminates*.
Running forever is pretty unfriendly.
Well... I'm having difficulty reproducing the infinite loop which your
patch purports to fix!
I checked out the sources as of 2002-11-08T01:00-0000, i.e., right
_before_ your patch went in, and built the compiler.
Then, I tried compiling your crash2.C test case with it, expecting the
compiler to hang. No such luck (see below).
This is all under RedHat Linux 8.0.
So, can you point me to a date or release tag where the bug is
reproducible?
Thanks,
--Zem
========================================================================
=======
zlaski at johada4:tests> cat mark.templ.crash2.C
// { dg-options "" }
template <class EnumType>
class A
{
public:
static const EnumType size = max; // { dg-error "" }
int table[size];
};
template <class EnumType>
const EnumType A<EnumType>::size;
namespace N
{
enum E { max = 5 };
struct B
{
A<E> a; // { dg-error "" }
};
}
int
main()
{
N::B b;
return 0;
}
zlaski at johada4:tests> gcc_r 2002.11.08.01.00.00 g++ -c
mark.templ.crash2.C
+ /home/zlaski/fsf/dst/gcc/2002.11.08.01.00.00/bin/g++ -c
mark.templ.crash2.C
mark.templ.crash2.C: In instantiation of `A<N::E>':
mark.templ.crash2.C:20: instantiated from here
mark.templ.crash2.C:7: error: `max' was not declared in this scope
real 0m0.021s
user 0m0.014s
sys 0m0.008s
+ exit 1
--------------------------------------------------------------
Ziemowit Laski 1 Infinite Loop, MS 301-2K
Mac OS X Compiler Group Cupertino, CA USA 95014-2083
Apple Computer, Inc. +1.408.974.6229 Fax .5477