diff options
| author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-13 17:18:16 +0000 |
|---|---|---|
| committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-13 17:18:16 +0000 |
| commit | 52eb8ed3e4d8cc0da55f8f5c1d376ca4eff9e7d8 (patch) | |
| tree | c2e42d6c739a01441647ab4601250ebedcaee2f1 | |
| parent | cee68eb12f67394f89388b9acffc550a01f15428 (diff) | |
| download | ppe42-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/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/mangle.c | 15 |
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; } |

