stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-100) [aCC 3, 5] extern template inconsistently mangled
Date Sat, 07 Jan 2006 00:26:16 GMT
    [ http://issues.apache.org/jira/browse/STDCXX-100?page=comments#action_12362024 ] 

Martin Sebor commented on STDCXX-100:
-------------------------------------

-------- Original Message --------
Subject: Re: aCC 3.52 extern template inconsistently mangled
Date: Wed, 3 Nov 2004 15:54:13 -0800 (PST)
From: Dennis Handly <dhandly@cup.hp.com>
To: sebor@roguewave.com
CC: acxx-beta@cup.hp.com

>From: Martin Sebor <sebor@roguewave.com>
>The test case does not instantiate any members, either.
>It instantiates a non-member function.

Since explicit specialization forward can be used for individual functions
we thought the only use for extern template is for extern template class.
And that's all we implemented.

>I certainly did :) See the attached email.

Rat's I still have a copy too.

>If nothing else, it should be compatible with g++ and MSVC.

We are for aCC6.

>In any case, if this isn't just a bug, could you please open an
>enhancement request for me?
Martin

Ok, but it probably won't be done for PA.  CR JAGaf45746:
Implement extern template for non-classes, bad mangling

> [aCC 3, 5] extern template inconsistently mangled
> -------------------------------------------------
>
>          Key: STDCXX-100
>          URL: http://issues.apache.org/jira/browse/STDCXX-100
>      Project: STDCXX
>         Type: Bug
>   Components: External
>     Versions: 4.1.2
>  Environment: HP aCC 3, 5
>     Reporter: Martin Sebor
>     Priority: Critical

>
> ****Created By: sebor @ Nov 01, 2004 03:00:09 PM****
> -------- Original Message --------
> Subject: aCC 3.52 extern template inconsistently mangled
> Date: Mon, 01 Nov 2004 11:49:12 -0700
> From: Martin Sebor <sebor@roguewave.com>
> To: acxx-beta@cup.hp.com
> Hi,
> I came across this bug after I worked around JAGaf22319:
> $ cat t.cpp && aCC -Dextern="" -V -c t.cpp && nm t.o | grep foo &&
aCC
> -AA -c t.cpp && nm t.o | grep foo
> namespace N {
> template <class T> struct A { };
> }
> namespace M {
> template <class T, class V>
> N::A<T>& foo (N::A<T>&, V);
> extern template N::A<char>& foo (N::A<char>&, int);
> }
> #ifndef extern
> int main ()
> {
>    N::A<char> a;
>    M::foo (a, 0);
> }
> #else
> namespace M {
> template <class T, class V>
> N::A<T>& foo (N::A<T> &a, V) { return a; }
> }
> #endif
> aCC: HP ANSI C++ B3910B A.03.52
> foo__1MXTcTi_FRQ2_1N1AXTc_i|         0|extern|entry  |$CODE$
> foo__1MFRQ2_1N1AXTc_i|          |undef |code   |
> FWIW, this is how gcc 3.4 mangles the symbol:
> foo__H2ZcZi_1MRQ21Nt1A1ZX01X11_RQ21Nt1A1ZX01
> Martin

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message