aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/mangle.c
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2002-03-13 17:18:16 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2002-03-13 17:18:16 +0000
commit049e687916f964f8b933d6f7491d61d99d6abd1f (patch)
treec2e42d6c739a01441647ab4601250ebedcaee2f1 /gcc/cp/mangle.c
parent7a8de19b4c54f6920786b650892e3bd591b53f81 (diff)
downloadgcc-049e687916f964f8b933d6f7491d61d99d6abd1f.zip
gcc-049e687916f964f8b933d6f7491d61d99d6abd1f.tar.gz
gcc-049e687916f964f8b933d6f7491d61d99d6abd1f.tar.bz2
mangle.c (write_builtin_type): Handle 128-bit integers even if they are not a standard integer type.
* mangle.c (write_builtin_type): Handle 128-bit integers even if they are not a standard integer type. From-SVN: r50743
Diffstat (limited to 'gcc/cp/mangle.c')
-rw-r--r--gcc/cp/mangle.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 360e1fc..239714d 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1506,8 +1506,8 @@ write_CV_qualifiers_for_type (type)
::= m # unsigned long
::= x # long long, __int64
::= y # unsigned long long, __int64
- ::= n # __int128 [not supported]
- ::= o # unsigned __int128 [not supported]
+ ::= n # __int128
+ ::= o # unsigned __int128
::= f # float
::= d # double
::= e # long double, __float80
@@ -1552,13 +1552,18 @@ write_builtin_type (type)
write_char (integer_type_codes[itk]);
break;
}
-
+
if (itk == itk_none)
{
tree t = type_for_mode (TYPE_MODE (type), TREE_UNSIGNED (type));
if (type == t)
- /* Couldn't find this type. */
- abort ();
+ {
+ if (TYPE_PRECISION (type) == 128)
+ write_char (TREE_UNSIGNED (type) ? 'o' : 'n');
+ else
+ /* Couldn't find this type. */
+ abort ();
+ }
type = t;
goto iagain;
}