Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cxx-abi-dev] restrict & overloading


  • To: Daveed Vandevoorde <daveed@xxxxxxx>
  • Subject: Re: [cxx-abi-dev] restrict & overloading
  • From: Mark Mitchell <mark@xxxxxxxxxxxxxxxx>
  • Date: Wed, 18 Feb 2004 12:56:13 -0800

Daveed Vandevoorde wrote:

One of the J16 reflectors is currently discussing
"restrict."  I went looking to the IA-64 ABI spec
and was surprised to see it saying the following:

  The restrict qualifier is part of the C99 standard,
  but is strictly an extension to C++ at this time.
  There is no standard specification of whether the
  restrict attribute is part of the type for overloading
  purposes. An implementation should include its encoding
  in the mangled name if and only if it also treats it as
  a distinguishing attribute for overloading purposes.
  This ABI does not specify that choice.

I would think that even though restrict does not
make a type overload-distinguishable, it should
be encoded in the mangled name (at least, if it
has nontrivial semantics).

The C++ ABI already differs from what is perhaps the EDG philosophy in this regard.

For example, the ABI explicitly does not encode implicit instantiations and explicit specializations differently, even though that would provide a way of checking a rule in the standard -- and even though the EDG front end could do that in its Cfront-based ABI.

--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@xxxxxxxxxxxxxxxx