OSDN Git Service

* mangle.c (write_builtin_type): Handle 128-bit integers even if
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Mar 2002 17:18:16 +0000 (17:18 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Mar 2002 17:18:16 +0000 (17:18 +0000)
they are not a standard integer type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50743 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/mangle.c

index a6617a2..b97a1a4 100644 (file)
@@ -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.
index 360e1fc..239714d 100644 (file)
@@ -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;
            }