another mangling issue

Alain Miniussi alainm at cup.hp.com
Sat Apr 15 00:36:10 UTC 2000


Here is the text:

[ description of the numbering ]
All substitutable components are so numbered, except 
those that have been substituted already, but the 
substitution occurs only if "S<seq-id>_" (or "S_") 
is strictly shorter than the unsubstituted encoding.
A component is less recent than the structure of which 
it is a part. For example: 

   "_ZN1N1TIiiE2mfES2_IddE": Ret? N::T<int, int>::mf(N::T<double,
double>)

since at the point where S2_ appears: 

   "S_" == N::T<int, int>::mf
   "S0_" == N::T<int, int>
   "S1_" == int
   "S2_" == N::T (template is less recent than template-id)
   "S3_" == N (qualifier is less recent than qualified entity)


	1) why does "int" appears only once ? since the second one is 
not a substituted (its direct encoding being shorter than the 
substitution), I would expect:
   "S_" == N::T<int, int>::mf
   "S0_" == N::T<int, int>
   "S1_" == int
   "S2_" == int
   "S3_" == N::T (template is less recent than template-id)
   "S4_" == N (qualifier is less recent than qualified entity)

or is it that, since the first "int" is a "potential" source 
for substitution, the second one is not ? ifthat's the case,
maybe  "except those that have been substituted already"
should be replace with sometyhing like "except those that
are been seen as substituable already" ?
 
Alain




More information about the cxx-abi-dev mailing list