Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
authorFranz Sirl <Franz.Sirl-kernel@lauterbach.com>
Fri, 1 Oct 1999 01:46:41 +0000 (01:46 +0000)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 1 Oct 1999 01:46:41 +0000 (18:46 -0700)
        * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
        for the va_list record.

From-SVN: r29746

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index f6ef56aaee368bcdc8f70b1e8bc2d6bb086b85fd..d867659d2484e4f2457a76867cab26b23d443d36 100644 (file)
@@ -1,3 +1,8 @@
+Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
+       for the va_list record.
+
 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
 
        * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
index 3c8b81b85ff64ad42acafa5b5bb77efbf3f1b814..26ca580ccd33d4386da7c4454cd5a43319a88043 100644 (file)
@@ -1775,7 +1775,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl)
 tree
 rs6000_build_va_list ()
 {
-  tree f_gpr, f_fpr, f_ovf, f_sav, record;
+  tree f_gpr, f_fpr, f_ovf, f_sav, record, type_decl;
   tree uchar_type_node;
 
   /* Only SVR4 needs something special.  */
@@ -1783,6 +1783,7 @@ rs6000_build_va_list ()
     return ptr_type_node;
 
   record = make_node (RECORD_TYPE);
+  type_decl = build_decl (TYPE_DECL, get_identifier ("__va_list_tag"), record);
   uchar_type_node = make_unsigned_type (CHAR_TYPE_SIZE);
   
   f_gpr = build_decl (FIELD_DECL, get_identifier ("gpr"), uchar_type_node);
@@ -1797,6 +1798,8 @@ rs6000_build_va_list ()
   DECL_FIELD_CONTEXT (f_ovf) = record;
   DECL_FIELD_CONTEXT (f_sav) = record;
 
+  TREE_CHAIN (record) = type_decl;
+  TYPE_NAME (record) = type_decl;
   TYPE_FIELDS (record) = f_gpr;
   TREE_CHAIN (f_gpr) = f_fpr;
   TREE_CHAIN (f_fpr) = f_ovf;