summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-13 17:18:16 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-13 17:18:16 +0000
commit52eb8ed3e4d8cc0da55f8f5c1d376ca4eff9e7d8 (patch)
treec2e42d6c739a01441647ab4601250ebedcaee2f1
parentcee68eb12f67394f89388b9acffc550a01f15428 (diff)
downloadppe42-gcc-52eb8ed3e4d8cc0da55f8f5c1d376ca4eff9e7d8.tar.gz
ppe42-gcc-52eb8ed3e4d8cc0da55f8f5c1d376ca4eff9e7d8.zip
* mangle.c (write_builtin_type): Handle 128-bit integers even if
they are not a standard integer type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50743 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/mangle.c15
2 files changed, 15 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a6617a21e2c..b97a1a44310 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2002-03-12 Richard Sandiford <rsandifo@redhat.com>
+ * mangle.c (write_builtin_type): Handle 128-bit integers even if
+ they are not a standard integer type.
+
+2002-03-12 Richard Sandiford <rsandifo@redhat.com>
+
* cp-tree.h (init_init_processing): Remove declaration.
* init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
* decl.c (cxx_init_decl_processing): Don't call init_init_processing.
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 360e1fc759d..239714d77d1 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;
}
OpenPOWER on IntegriCloud