This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: Remove make_function_rtl



This patch removes make_function_rtl, which did exactly what
make_decl_rtl did when passed the same parameters.

The third parameter to make_decl_rtl was misguided.  This parameter
was used to indicate whether or not a variable was "toplevel", i.e.,
whether or not it had file scope.  That data was then misused (for
example, we would not object to C++ static data members placed in a
register, since the entity was not "toplevel", even though it might as
well be).

In addition, toplevel-ness is something that can be directly observed
from the DECL: the variable is file-scoped if and only if it has a
NULL DECL_CONTEXT.

Finally, being able to compute RTL for a DECL without additional
inputs is useful in that I want to compute RTL lazily, so that I can
compute mangled names lazily, in C++.  (This will save much memory.)

Most of the attached patch simply changes callers; look at the
varasm.c bits to see the real meat.

Bootsrapped and tested on i686-pc-linux-gnu.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

2001-01-10  Mark Mitchell  <mark@codesourcery.com>

	* output.h (make_function_rtl): Remove prototype.
	(make_decl_rtl): Likewise.
	* varasm.c (make_function_rtl): Remove.
	(make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather
	than from a third parameter.
	* tree.h (make_decl_rtl): Remove last parameter.
	* c-decl.c (builtin_function): Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	(start_function): Likewise.
	* except.c (call_get_eh_context): Likewise.
	* expr.c (emit_block_move): Likewise.
	(clear_storage): Likewise.
	* profile.c (output_func_start_profiler): Likewise.
	* toplev.c (rest_of_decl_compilation): Likewise.
	* objc/objc-act.c (create_builtin_decl): Likewise.
	(synth_module_prologue): Likewise.
	(generate_static_reference): Likewise.
	(build_selector_reference_decl): Likewise.
	(build_class_reference_decl): Likewise.
	(build_objc_string_decl): Likewise.
	(build_protocol_reference): Likewise.

2001-01-10  Mark Mitchell  <mark@codesourcery.com>

	* class.c (finish_struct_1):  Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	* decl.c (builtin_function): Likewise.
	(build_cp_library_fn): Likewise.
	(check_initializer): Likewise.
	(make_rtl_for_nonlocal_decl): Likewise.
	(cp_finish_decl): Likewise.
	(start_function): Likewise.
	* decl2.c (finish_anon_union): Likewise.
	* friend.c (do_friend): Likewise.
	* init.c (build_java_class_ref): Likewise.
	* method.c (make_thunk): Likewise.
	* pt.c (tsubst_friend_function): Likewise.
	* semantics.c (expand_body): Likewise.

Wed Jan 10 14:39:45 2001  Mark Mitchell  <mark@codesourcery.com>

	* com.c (ffecom_init_zero_):  Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	(ffecom_lookup_label_): Likewise.
	(builtin_function): Likewise.
	(start_function): Likewise.

2001-01-10  Mark Mitchell  <mark@codesourcery.com>

	* class.c (build_utf8_ref): Remove last argument in call to
	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
	(build_class_ref): Likewise.
	(build_static_field_ref): Likewise.
	(get_dispatch_table): Likewise.
	(layout_class_method): Likewise.
	(emit_register_classes): Likewise.
	* constants.c (build_constant_data_ref): Likewise.
	* decl.c (builtin_function): Likewise.
	(create_primitive_vtable): Likewise.
	* expr.c (build_known_method_def): Likewise.
	(build_jni_stub): Likewise.
	(java_lang_expand_expr): Likewise.
	
Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-decl.c,v
retrieving revision 1.200
diff -c -p -r1.200 c-decl.c
*** c-decl.c	2001/01/07 23:15:46	1.200
--- c-decl.c	2001/01/10 22:19:56
*************** builtin_function (name, type, function_c
*** 3152,3158 ****
      DECL_BUILT_IN_NONANSI (decl) = 1;
    if (library_name)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (library_name);
!   make_decl_rtl (decl, NULL_PTR, 1);
    pushdecl (decl);
    DECL_BUILT_IN_CLASS (decl) = class;
    DECL_FUNCTION_CODE (decl) = function_code;
--- 3152,3158 ----
      DECL_BUILT_IN_NONANSI (decl) = 1;
    if (library_name)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (library_name);
!   make_decl_rtl (decl, NULL_PTR);
    pushdecl (decl);
    DECL_BUILT_IN_CLASS (decl) = class;
    DECL_FUNCTION_CODE (decl) = function_code;
*************** start_function (declspecs, declarator, p
*** 5951,5957 ****
    declare_parm_level (1);
    current_binding_level->subblocks_tag_transparent = 1;
  
!   make_function_rtl (current_function_decl);
  
    restype = TREE_TYPE (TREE_TYPE (current_function_decl));
    /* Promote the value to int before returning it.  */
--- 5951,5957 ----
    declare_parm_level (1);
    current_binding_level->subblocks_tag_transparent = 1;
  
!   make_decl_rtl (current_function_decl, NULL);
  
    restype = TREE_TYPE (TREE_TYPE (current_function_decl));
    /* Promote the value to int before returning it.  */
Index: except.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/except.c,v
retrieving revision 1.140
diff -c -p -r1.140 except.c
*** except.c	2000/12/03 23:58:44	1.140
--- except.c	2001/01/10 22:19:59
*************** call_get_eh_context ()
*** 1156,1162 ****
        TREE_PUBLIC (fn) = 1;
        DECL_ARTIFICIAL (fn) = 1;
        TREE_READONLY (fn) = 1;
!       make_decl_rtl (fn, NULL_PTR, 1);
        assemble_external (fn);
  
        ggc_add_tree_root (&fn, 1);
--- 1156,1162 ----
        TREE_PUBLIC (fn) = 1;
        DECL_ARTIFICIAL (fn) = 1;
        TREE_READONLY (fn) = 1;
!       make_decl_rtl (fn, NULL_PTR);
        assemble_external (fn);
  
        ggc_add_tree_root (&fn, 1);
Index: expr.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/expr.c,v
retrieving revision 1.286
diff -c -p -r1.286 expr.c
*** expr.c	2001/01/02 16:46:26	1.286
--- expr.c	2001/01/10 22:20:05
*************** emit_block_move (x, y, size, align)
*** 1758,1764 ****
  	  DECL_EXTERNAL (fn) = 1;
  	  TREE_PUBLIC (fn) = 1;
  	  DECL_ARTIFICIAL (fn) = 1;
! 	  make_decl_rtl (fn, NULL_PTR, 1);
  	  assemble_external (fn);
  	}
  
--- 1758,1764 ----
  	  DECL_EXTERNAL (fn) = 1;
  	  TREE_PUBLIC (fn) = 1;
  	  DECL_ARTIFICIAL (fn) = 1;
! 	  make_decl_rtl (fn, NULL_PTR);
  	  assemble_external (fn);
  	}
  
*************** clear_storage (object, size, align)
*** 2655,2661 ****
  	      DECL_EXTERNAL (fn) = 1;
  	      TREE_PUBLIC (fn) = 1;
  	      DECL_ARTIFICIAL (fn) = 1;
! 	      make_decl_rtl (fn, NULL_PTR, 1);
  	      assemble_external (fn);
  	    }
  
--- 2655,2661 ----
  	      DECL_EXTERNAL (fn) = 1;
  	      TREE_PUBLIC (fn) = 1;
  	      DECL_ARTIFICIAL (fn) = 1;
! 	      make_decl_rtl (fn, NULL_PTR);
  	      assemble_external (fn);
  	    }
  
Index: output.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/output.h,v
retrieving revision 1.52
diff -c -p -r1.52 output.h
*** output.h	2000/10/06 06:01:27	1.52
--- output.h	2001/01/10 22:20:06
*************** extern void function_section		PARAMS ((t
*** 202,212 ****
  /* Tell assembler to switch to the section for the exception table.  */
  extern void exception_section		PARAMS ((void));
  
- /* Create the rtl to represent a function, for a function definition.
-    DECL is a FUNCTION_DECL node which describes which function.
-    The rtl is stored into DECL.  */
- extern void make_function_rtl		PARAMS ((tree));
- 
  /* Declare DECL to be a weak symbol.  */
  extern void declare_weak		PARAMS ((tree));
  #endif /* TREE_CODE */
--- 202,207 ----
*************** extern void weak_finish			PARAMS ((void)
*** 224,238 ****
  extern int decode_reg_name		PARAMS ((const char *));
  
  #ifdef TREE_CODE
- /* Create the DECL_RTL for a declaration for a static or external variable
-    or static or external function.
-    ASMSPEC, if not 0, is the string which the user specified
-    as the assembler symbol name.
-    TOP_LEVEL is nonzero if this is a file-scope variable.
- 
-    This is never called for PARM_DECL nodes.  */
- extern void make_decl_rtl		PARAMS ((tree, const char *, int));
- 
  /* Make the rtl for variable VAR be volatile.
     Use this only for static variables.  */
  extern void make_var_volatile		PARAMS ((tree));
--- 219,224 ----
Index: profile.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/profile.c,v
retrieving revision 1.50
diff -c -p -r1.50 profile.c
*** profile.c	2000/12/07 01:58:23	1.50
--- profile.c	2001/01/10 22:20:06
*************** output_func_start_profiler ()
*** 1117,1123 ****
    announce_function (fndecl);
    current_function_decl = fndecl;
    DECL_INITIAL (fndecl) = error_mark_node;
!   make_function_rtl (fndecl);
    init_function_start (fndecl, input_filename, lineno);
    pushlevel (0);
    expand_function_start (fndecl, 0);
--- 1117,1123 ----
    announce_function (fndecl);
    current_function_decl = fndecl;
    DECL_INITIAL (fndecl) = error_mark_node;
!   make_decl_rtl (fndecl, NULL);
    init_function_start (fndecl, input_filename, lineno);
    pushlevel (0);
    expand_function_start (fndecl, 0);
Index: toplev.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/toplev.c,v
retrieving revision 1.414
diff -c -p -r1.414 toplev.c
*** toplev.c	2001/01/09 10:53:59	1.414
--- toplev.c	2001/01/10 22:20:10
*************** rest_of_decl_compilation (decl, asmspec,
*** 2579,2585 ****
        || TREE_CODE (decl) == FUNCTION_DECL)
      {
        timevar_push (TV_VARCONST);
!       make_decl_rtl (decl, asmspec, top_level);
        /* Initialized extern variable exists to be replaced
  	 with its value, or represents something that will be
  	 output in another file.  */
--- 2579,2585 ----
        || TREE_CODE (decl) == FUNCTION_DECL)
      {
        timevar_push (TV_VARCONST);
!       make_decl_rtl (decl, asmspec);
        /* Initialized extern variable exists to be replaced
  	 with its value, or represents something that will be
  	 output in another file.  */
*************** rest_of_decl_compilation (decl, asmspec,
*** 2606,2618 ****
        if (decode_reg_name (asmspec) >= 0)
  	{
  	  DECL_RTL (decl) = 0;
! 	  make_decl_rtl (decl, asmspec, top_level);
  	}
        else
  	{
  	  error ("invalid register name `%s' for register variable", asmspec);
  	  DECL_REGISTER (decl) = 0;
! 	  make_decl_rtl (decl, NULL, top_level);
  	}
      }
  #if defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)
--- 2606,2618 ----
        if (decode_reg_name (asmspec) >= 0)
  	{
  	  DECL_RTL (decl) = 0;
! 	  make_decl_rtl (decl, asmspec);
  	}
        else
  	{
  	  error ("invalid register name `%s' for register variable", asmspec);
  	  DECL_REGISTER (decl) = 0;
! 	  make_decl_rtl (decl, NULL);
  	}
      }
  #if defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)
Index: tree.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/tree.h,v
retrieving revision 1.216
diff -c -p -r1.216 tree.h
*** tree.h	2001/01/09 10:54:00	1.216
--- tree.h	2001/01/10 22:20:12
*************** extern void set_yydebug			PARAMS ((int))
*** 2766,2772 ****
  extern void fixup_signed_type		PARAMS ((tree));
  
  /* varasm.c */
! extern void make_decl_rtl		PARAMS ((tree, const char *, int));
  extern void make_decl_one_only		PARAMS ((tree));
  extern int supports_one_only		PARAMS ((void));
  extern void variable_section		PARAMS ((tree, int));
--- 2766,2772 ----
  extern void fixup_signed_type		PARAMS ((tree));
  
  /* varasm.c */
! extern void make_decl_rtl		PARAMS ((tree, const char *));
  extern void make_decl_one_only		PARAMS ((tree));
  extern int supports_one_only		PARAMS ((void));
  extern void variable_section		PARAMS ((tree, int));
Index: varasm.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/varasm.c,v
retrieving revision 1.155
diff -c -p -r1.155 varasm.c
*** varasm.c	2001/01/06 01:00:22	1.155
--- varasm.c	2001/01/10 22:20:14
*************** exception_section ()
*** 515,597 ****
  #endif
  }
  
- /* Create the rtl to represent a function, for a function definition.
-    DECL is a FUNCTION_DECL node which describes which function.
-    The rtl is stored into DECL.  */
- 
- void
- make_function_rtl (decl)
-      tree decl;
- {
-   const char *name;
-   const char *new_name;
- 
-   if (DECL_RTL (decl) != 0)
-     {
-       /* ??? Another way to do this would be to do what halfpic.c does
- 	 and maintain a hashed table of such critters.  */
-       /* ??? Another way to do this would be to pass a flag bit to
- 	 ENCODE_SECTION_INFO saying whether this is a new decl or not.  */
-       /* Let the target reassign the RTL if it wants.
- 	 This is necessary, for example, when one machine specific
- 	 decl attribute overrides another.  */
- #ifdef REDO_SECTION_INFO_P
-       if (REDO_SECTION_INFO_P (decl))
- 	ENCODE_SECTION_INFO (decl);
- #endif
-       return;
-     }
- 
-   name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-   new_name = name;
- 
-   /* Rename a nested function to avoid conflicts, unless it's a member of
-      a local class, in which case the class name is already unique.  */
-   if (decl_function_context (decl) != 0
-       && ! TYPE_P (DECL_CONTEXT (decl))
-       && DECL_INITIAL (decl) != 0
-       && DECL_RTL (decl) == 0)
-     {
-       char *label;
-       ASM_FORMAT_PRIVATE_NAME (label, name, var_labelno);
-       var_labelno++;
-       new_name = label;
-     }
-   /* When -fprefix-function-name is used, every function name is
-      prefixed.  Even static functions are prefixed because they
-      could be declared latter.  Note that a nested function name
-      is not prefixed.  */
-   else if (flag_prefix_function_name)
-     {
-       size_t name_len = IDENTIFIER_LENGTH (DECL_ASSEMBLER_NAME (decl));
-       char *pname;
- 
-       pname = alloca (name_len + CHKR_PREFIX_SIZE + 1);
-       memcpy (pname, CHKR_PREFIX, CHKR_PREFIX_SIZE);
-       memcpy (pname + CHKR_PREFIX_SIZE, name, name_len + 1);
-       new_name = pname;
-     }
- 
-   if (name != new_name)
-     {
-       DECL_ASSEMBLER_NAME (decl) = get_identifier (new_name);
-       name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-     }
- 
-   DECL_RTL (decl)
-     = gen_rtx_MEM (DECL_MODE (decl),
- 		   gen_rtx_SYMBOL_REF (Pmode, name));
- 
-   /* Optionally set flags or add text to the name to record
-      information such as that it is a function name.  If the name
-      is changed, the macro ASM_OUTPUT_LABELREF will have to know
-      how to strip this information.  */
- #ifdef ENCODE_SECTION_INFO
-   ENCODE_SECTION_INFO (decl);
- #endif
- }
- 
- 
  /* Given NAME, a putative register name, discard any customary prefixes.  */
  
  static const char *
--- 515,520 ----
*************** decode_reg_name (asmspec)
*** 671,686 ****
     or static or external function.
     ASMSPEC, if not 0, is the string which the user specified
     as the assembler symbol name.
-    TOP_LEVEL is nonzero if this is a file-scope variable.
  
     This is never called for PARM_DECL nodes.  */
  
  void
! make_decl_rtl (decl, asmspec, top_level)
       tree decl;
       const char *asmspec;
-      int top_level;
  {
    const char *name = 0;
    const char *new_name = 0;
    int reg_number;
--- 594,608 ----
     or static or external function.
     ASMSPEC, if not 0, is the string which the user specified
     as the assembler symbol name.
  
     This is never called for PARM_DECL nodes.  */
  
  void
! make_decl_rtl (decl, asmspec)
       tree decl;
       const char *asmspec;
  {
+   int top_level = (DECL_CONTEXT (decl) == NULL_TREE);
    const char *name = 0;
    const char *new_name = 0;
    int reg_number;
*************** make_decl_rtl (decl, asmspec, top_level)
*** 741,747 ****
  	{
  	  int nregs;
  
! 	  if (DECL_INITIAL (decl) != 0 && top_level)
  	    {
  	      DECL_INITIAL (decl) = 0;
  	      error ("global register variable has initial value");
--- 663,669 ----
  	{
  	  int nregs;
  
! 	  if (DECL_INITIAL (decl) != 0 && !TREE_STATIC (decl))
  	    {
  	      DECL_INITIAL (decl) = 0;
  	      error ("global register variable has initial value");
*************** make_decl_rtl (decl, asmspec, top_level)
*** 760,766 ****
  	  REGNO (DECL_RTL (decl)) = reg_number;
  	  REG_USERVAR_P (DECL_RTL (decl)) = 1;
  
! 	  if (top_level)
  	    {
  	      /* Make this register global, so not usable for anything
  		 else.  */
--- 682,688 ----
  	  REGNO (DECL_RTL (decl)) = reg_number;
  	  REG_USERVAR_P (DECL_RTL (decl)) = 1;
  
! 	  if (TREE_STATIC (decl))
  	    {
  	      /* Make this register global, so not usable for anything
  		 else.  */
*************** assemble_alias (decl, target)
*** 4890,4896 ****
  {
    const char *name;
  
!   make_decl_rtl (decl, (char *) 0, 1);
    name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
  
  #ifdef ASM_OUTPUT_DEF
--- 4812,4818 ----
  {
    const char *name;
  
!   make_decl_rtl (decl, (char *) 0);
    name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
  
  #ifdef ASM_OUTPUT_DEF
Index: cp/class.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/class.c,v
retrieving revision 1.353
diff -c -p -r1.353 class.c
*** class.c	2001/01/09 11:37:06	1.353
--- class.c	2001/01/10 22:20:20
*************** finish_struct_1 (t)
*** 5224,5230 ****
  	  && TREE_TYPE (x) == t)
  	{
  	  DECL_MODE (x) = TYPE_MODE (t);
! 	  make_decl_rtl (x, NULL, 0);
  	}
      }
  
--- 5224,5230 ----
  	  && TREE_TYPE (x) == t)
  	{
  	  DECL_MODE (x) = TYPE_MODE (t);
! 	  make_decl_rtl (x, NULL);
  	}
      }
  
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/decl.c,v
retrieving revision 1.734
diff -c -p -r1.734 decl.c
*** decl.c	2001/01/08 14:41:00	1.734
--- decl.c	2001/01/10 22:20:28
*************** builtin_function (name, type, code, clas
*** 6671,6677 ****
       function in the namespace.  */
    if (libname)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (libname);
!   make_function_rtl (decl);
  
    /* Warn if a function in the namespace for users
       is used without an occasion to consider it declared.  */
--- 6671,6677 ----
       function in the namespace.  */
    if (libname)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (libname);
!   make_decl_rtl (decl, NULL);
  
    /* Warn if a function in the namespace for users
       is used without an occasion to consider it declared.  */
*************** build_library_fn (name, type)
*** 6709,6715 ****
       tree type;
  {
    tree fn = build_library_fn_1 (name, ERROR_MARK, type);
!   make_function_rtl (fn);
    return fn;
  }
  
--- 6709,6715 ----
       tree type;
  {
    tree fn = build_library_fn_1 (name, ERROR_MARK, type);
!   make_decl_rtl (fn, NULL);
    return fn;
  }
  
*************** build_cp_library_fn (name, operator_code
*** 6725,6731 ****
    TREE_NOTHROW (fn) = TYPE_NOTHROW_P (type);
    DECL_CONTEXT (fn) = FROB_CONTEXT (current_namespace);
    set_mangled_name_for_decl (fn);
!   make_function_rtl (fn);
    return fn;
  }
  
--- 6725,6731 ----
    TREE_NOTHROW (fn) = TYPE_NOTHROW_P (type);
    DECL_CONTEXT (fn) = FROB_CONTEXT (current_namespace);
    set_mangled_name_for_decl (fn);
!   make_decl_rtl (fn, NULL);
    return fn;
  }
  
*************** check_initializer (decl, init)
*** 7612,7618 ****
    else if (!DECL_EXTERNAL (decl) && TREE_CODE (type) == REFERENCE_TYPE)
      {
        if (TREE_STATIC (decl))
! 	make_decl_rtl (decl, NULL_PTR, toplevel_bindings_p ());
        grok_reference_init (decl, type, init);
        init = NULL_TREE;
      }
--- 7612,7618 ----
    else if (!DECL_EXTERNAL (decl) && TREE_CODE (type) == REFERENCE_TYPE)
      {
        if (TREE_STATIC (decl))
! 	make_decl_rtl (decl, NULL_PTR);
        grok_reference_init (decl, type, init);
        init = NULL_TREE;
      }
*************** make_rtl_for_nonlocal_decl (decl, init, 
*** 7739,7745 ****
    /* If we're deferring the variable, just make RTL.  Do not actually
       emit the variable.  */
    if (defer_p)
!     make_decl_rtl (decl, asmspec, toplev);
    /* If we're not deferring, go ahead and assemble the variable.  */
    else
      rest_of_decl_compilation (decl, asmspec, toplev, at_eof);
--- 7739,7745 ----
    /* If we're deferring the variable, just make RTL.  Do not actually
       emit the variable.  */
    if (defer_p)
!     make_decl_rtl (decl, asmspec);
    /* If we're not deferring, go ahead and assemble the variable.  */
    else
      rest_of_decl_compilation (decl, asmspec, toplev, at_eof);
*************** cp_finish_decl (decl, init, asmspec_tree
*** 8020,8026 ****
  	 grokclassfn.  Lay this out fresh.  */
        DECL_RTL (TREE_TYPE (decl)) = NULL_RTX;
        DECL_ASSEMBLER_NAME (decl) = get_identifier (asmspec);
!       make_decl_rtl (decl, asmspec, 0);
      }
  
    /* Deduce size of array from initialization, if not already known.  */
--- 8020,8026 ----
  	 grokclassfn.  Lay this out fresh.  */
        DECL_RTL (TREE_TYPE (decl)) = NULL_RTX;
        DECL_ASSEMBLER_NAME (decl) = get_identifier (asmspec);
!       make_decl_rtl (decl, asmspec);
      }
  
    /* Deduce size of array from initialization, if not already known.  */
*************** start_function (declspecs, declarator, a
*** 13598,13604 ****
  
    /* We need to do this even if we aren't expanding yet so that
       assemble_external works.  */
!   make_function_rtl (decl1);
  
    /* Promote the value to int before returning it.  */
    if (C_PROMOTING_INTEGER_TYPE_P (restype))
--- 13598,13604 ----
  
    /* We need to do this even if we aren't expanding yet so that
       assemble_external works.  */
!   make_decl_rtl (decl1, NULL);
  
    /* Promote the value to int before returning it.  */
    if (C_PROMOTING_INTEGER_TYPE_P (restype))
Index: cp/decl2.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/decl2.c,v
retrieving revision 1.424
diff -c -p -r1.424 decl2.c
*** decl2.c	2001/01/09 10:54:01	1.424
--- decl2.c	2001/01/10 22:20:31
*************** finish_anon_union (anon_union_decl)
*** 2232,2238 ****
  
    if (static_p)
      {
!       make_decl_rtl (main_decl, 0, toplevel_bindings_p ());
        DECL_RTL (anon_union_decl) = DECL_RTL (main_decl);
        expand_anon_union_decl (anon_union_decl, 
  			      NULL_TREE,
--- 2232,2238 ----
  
    if (static_p)
      {
!       make_decl_rtl (main_decl, 0);
        DECL_RTL (anon_union_decl) = DECL_RTL (main_decl);
        expand_anon_union_decl (anon_union_decl, 
  			      NULL_TREE,
Index: cp/friend.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/friend.c,v
retrieving revision 1.62
diff -c -p -r1.62 friend.c
*** friend.c	2000/09/17 07:38:20	1.62
--- friend.c	2001/01/10 22:20:32
***************
*** 1,5 ****
  /* Help friends in C++.
!    Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
--- 1,5 ----
  /* Help friends in C++.
!    Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
*************** do_friend (ctype, declarator, decl, parm
*** 409,415 ****
  	    }
  	}
  
!       make_decl_rtl (decl, NULL_PTR, 1);
        add_friend (current_class_type, 
  		  is_friend_template ? DECL_TI_TEMPLATE (decl) : decl);
        DECL_FRIEND_P (decl) = 1;
--- 409,415 ----
  	    }
  	}
  
!       make_decl_rtl (decl, NULL_PTR);
        add_friend (current_class_type, 
  		  is_friend_template ? DECL_TI_TEMPLATE (decl) : decl);
        DECL_FRIEND_P (decl) = 1;
Index: cp/init.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/init.c,v
retrieving revision 1.224
diff -c -p -r1.224 init.c
*** init.c	2001/01/03 03:28:50	1.224
--- init.c	2001/01/10 22:20:34
*************** build_java_class_ref (type)
*** 2217,2223 ****
        DECL_ARTIFICIAL (class_decl) = 1;
        DECL_IGNORED_P (class_decl) = 1;
        pushdecl_top_level (class_decl);
!       make_decl_rtl (class_decl, NULL_PTR, 1);
      }
    return class_decl;
  }
--- 2217,2223 ----
        DECL_ARTIFICIAL (class_decl) = 1;
        DECL_IGNORED_P (class_decl) = 1;
        pushdecl_top_level (class_decl);
!       make_decl_rtl (class_decl, NULL_PTR);
      }
    return class_decl;
  }
Index: cp/method.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/method.c,v
retrieving revision 1.184
diff -c -p -r1.184 method.c
*** method.c	2001/01/03 14:39:08	1.184
--- method.c	2001/01/10 22:20:35
*************** make_thunk (function, delta, vcall_index
*** 2177,2183 ****
        /* So that finish_file can write out any thunks that need to be: */
        pushdecl_top_level (thunk);
        /* Create RTL for this thunk so that its address can be taken.  */
!       make_function_rtl (thunk);
      }
    return thunk;
  }
--- 2177,2183 ----
        /* So that finish_file can write out any thunks that need to be: */
        pushdecl_top_level (thunk);
        /* Create RTL for this thunk so that its address can be taken.  */
!       make_decl_rtl (thunk, NULL);
      }
    return thunk;
  }
Index: cp/pt.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/pt.c,v
retrieving revision 1.499
diff -c -p -r1.499 pt.c
*** pt.c	2001/01/08 14:41:01	1.499
--- pt.c	2001/01/10 22:20:41
*************** tsubst_friend_function (decl, args)
*** 4525,4531 ****
      {
        set_mangled_name_for_decl (new_friend);
        DECL_RTL (new_friend) = 0;
!       make_decl_rtl (new_friend, NULL_PTR, 1);
      }
        
    if (DECL_NAMESPACE_SCOPE_P (new_friend))
--- 4525,4531 ----
      {
        set_mangled_name_for_decl (new_friend);
        DECL_RTL (new_friend) = 0;
!       make_decl_rtl (new_friend, NULL_PTR);
      }
        
    if (DECL_NAMESPACE_SCOPE_P (new_friend))
*************** tsubst_decl (t, args, type, in_decl)
*** 5789,5795 ****
  	      }
  	    
  	    DECL_RTL (r) = 0;
! 	    make_decl_rtl (r, NULL_PTR, 1);
  	    
  	    /* Like grokfndecl.  If we don't do this, pushdecl will
  	       mess up our TREE_CHAIN because it doesn't find a
--- 5789,5795 ----
  	      }
  	    
  	    DECL_RTL (r) = 0;
! 	    make_decl_rtl (r, NULL_PTR);
  	    
  	    /* Like grokfndecl.  If we don't do this, pushdecl will
  	       mess up our TREE_CHAIN because it doesn't find a
Index: cp/semantics.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/semantics.c,v
retrieving revision 1.184
diff -c -p -r1.184 semantics.c
*** semantics.c	2000/12/22 14:51:22	1.184
--- semantics.c	2001/01/10 22:20:43
***************
*** 3,9 ****
     building RTL.  These routines are used both during actual parsing
     and during the instantiation of template functions. 
  
!    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
     Written by Mark Mitchell (mmitchell@usa.net) based on code found
     formerly in parse.y and pt.c.  
  
--- 3,9 ----
     building RTL.  These routines are used both during actual parsing
     and during the instantiation of template functions. 
  
!    Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
     Written by Mark Mitchell (mmitchell@usa.net) based on code found
     formerly in parse.y and pt.c.  
  
*************** expand_body (fn)
*** 2367,2373 ****
      {
        /* Give the function RTL now so that we can assign it to a
  	 function pointer, etc.  */
!       make_function_rtl (fn);
        /* Set DECL_EXTERNAL so that assemble_external will be called as
  	 necessary.  We'll clear it again in finish_file.  */
        if (!DECL_EXTERNAL (fn))
--- 2367,2373 ----
      {
        /* Give the function RTL now so that we can assign it to a
  	 function pointer, etc.  */
!       make_decl_rtl (fn, NULL);
        /* Set DECL_EXTERNAL so that assemble_external will be called as
  	 necessary.  We'll clear it again in finish_file.  */
        if (!DECL_EXTERNAL (fn))
Index: f/com.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/f/com.c,v
retrieving revision 1.104
diff -c -p -r1.104 com.c
*** com.c	2001/01/09 10:54:01	1.104
--- com.c	2001/01/10 22:20:51
*************** ffecom_init_zero_ (tree decl)
*** 6460,6466 ****
  
    if (incremental)
      {
!       make_decl_rtl (decl, NULL, TREE_PUBLIC (decl) ? 1 : 0);
        assemble_variable (decl, TREE_PUBLIC (decl) ? 1 : 0, 0, 1);
      }
  
--- 6460,6466 ----
  
    if (incremental)
      {
!       make_decl_rtl (decl, NULL);
        assemble_variable (decl, TREE_PUBLIC (decl) ? 1 : 0, 0, 1);
      }
  
*************** ffecom_lookup_label (ffelab label)
*** 12266,12272 ****
  	  TREE_STATIC (glabel) = 1;
  	  DECL_CONTEXT (glabel) = 0;
  	  DECL_INITIAL (glabel) = NULL;
! 	  make_decl_rtl (glabel, NULL, 0);
  	  expand_decl (glabel);
  
  	  ffecom_save_tree_forever (glabel);
--- 12266,12272 ----
  	  TREE_STATIC (glabel) = 1;
  	  DECL_CONTEXT (glabel) = 0;
  	  DECL_INITIAL (glabel) = NULL;
! 	  make_decl_rtl (glabel, NULL);
  	  expand_decl (glabel);
  
  	  ffecom_save_tree_forever (glabel);
*************** builtin_function (const char *name, tree
*** 13568,13574 ****
    TREE_PUBLIC (decl) = 1;
    if (library_name)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (library_name);
!   make_decl_rtl (decl, NULL_PTR, 1);
    pushdecl (decl);
    DECL_BUILT_IN_CLASS (decl) = class;
    DECL_FUNCTION_CODE (decl) = function_code;
--- 13568,13574 ----
    TREE_PUBLIC (decl) = 1;
    if (library_name)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (library_name);
!   make_decl_rtl (decl, NULL_PTR);
    pushdecl (decl);
    DECL_BUILT_IN_CLASS (decl) = class;
    DECL_FUNCTION_CODE (decl) = function_code;
*************** start_function (tree name, tree type, in
*** 14426,14432 ****
  
    if (TREE_CODE (current_function_decl) != ERROR_MARK)
      {
!       make_function_rtl (current_function_decl);
  
        restype = TREE_TYPE (TREE_TYPE (current_function_decl));
        DECL_RESULT (current_function_decl)
--- 14426,14432 ----
  
    if (TREE_CODE (current_function_decl) != ERROR_MARK)
      {
!       make_decl_rtl (current_function_decl, NULL);
  
        restype = TREE_TYPE (TREE_TYPE (current_function_decl));
        DECL_RESULT (current_function_decl)
Index: java/class.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/class.c,v
retrieving revision 1.82
diff -c -p -r1.82 class.c
*** class.c	2001/01/08 23:28:56	1.82
--- class.c	2001/01/10 22:20:53
***************
*** 1,5 ****
  /* Functions related to building classes and their related objects.
!    Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
--- 1,5 ----
  /* Functions related to building classes and their related objects.
!    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
*************** build_utf8_ref (name)
*** 855,861 ****
    pushdecl (decl);
    rest_of_decl_compilation (decl, (char*) 0, global_bindings_p (), 0);
    utf8_decl_list = decl;
!   make_decl_rtl (decl, (char*) 0, 1);
    ref = build1 (ADDR_EXPR, utf8const_ptr_type, decl);
    IDENTIFIER_UTF8_REF (name) = ref;
    return ref;
--- 855,861 ----
    pushdecl (decl);
    rest_of_decl_compilation (decl, (char*) 0, global_bindings_p (), 0);
    utf8_decl_list = decl;
!   make_decl_rtl (decl, (char*) 0);
    ref = build1 (ADDR_EXPR, utf8const_ptr_type, decl);
    IDENTIFIER_UTF8_REF (name) = ref;
    return ref;
*************** build_class_ref (type)
*** 891,897 ****
  	      DECL_IGNORED_P (decl) = 1;
  	      DECL_ARTIFICIAL (decl) = 1;
  	      DECL_ASSEMBLER_NAME (decl) = mangle_class_field (type);
! 	      make_decl_rtl (decl, NULL, 1);
  	      pushdecl_top_level (decl);
  	      if (is_compiled == 1)
  		DECL_EXTERNAL (decl) = 1;
--- 891,897 ----
  	      DECL_IGNORED_P (decl) = 1;
  	      DECL_ARTIFICIAL (decl) = 1;
  	      DECL_ASSEMBLER_NAME (decl) = mangle_class_field (type);
! 	      make_decl_rtl (decl, NULL);
  	      pushdecl_top_level (decl);
  	      if (is_compiled == 1)
  		DECL_EXTERNAL (decl) = 1;
*************** build_class_ref (type)
*** 943,949 ****
  	      decl = build_decl (VAR_DECL, decl_name, class_type_node);
  	      TREE_STATIC (decl) = 1;
  	      TREE_PUBLIC (decl) = 1;
! 	      make_decl_rtl (decl, NULL, 1);
  	      pushdecl_top_level (decl);
  	      if (is_compiled == 1)
  		DECL_EXTERNAL (decl) = 1;
--- 943,949 ----
  	      decl = build_decl (VAR_DECL, decl_name, class_type_node);
  	      TREE_STATIC (decl) = 1;
  	      TREE_PUBLIC (decl) = 1;
! 	      make_decl_rtl (decl, NULL);
  	      pushdecl_top_level (decl);
  	      if (is_compiled == 1)
  		DECL_EXTERNAL (decl) = 1;
*************** build_static_field_ref (fdecl)
*** 974,980 ****
      {
        if (DECL_RTL (fdecl) == 0)
  	{
! 	  make_decl_rtl (fdecl, NULL, 1);
  	  if (is_compiled == 1)
  	    DECL_EXTERNAL (fdecl) = 1;
  	}
--- 974,980 ----
      {
        if (DECL_RTL (fdecl) == 0)
  	{
! 	  make_decl_rtl (fdecl, NULL);
  	  if (is_compiled == 1)
  	    DECL_EXTERNAL (fdecl) = 1;
  	}
*************** get_dispatch_table (type, this_class_add
*** 1222,1228 ****
        else
  	{
  	  if (DECL_RTL (method) == 0)
! 	    make_decl_rtl (method, NULL, 1);
  	  method = build1 (ADDR_EXPR, nativecode_ptr_type_node, method);
  	}
        list = tree_cons (NULL_TREE /*DECL_VINDEX (method) + 2*/,
--- 1222,1228 ----
        else
  	{
  	  if (DECL_RTL (method) == 0)
! 	    make_decl_rtl (method, NULL);
  	  method = build1 (ADDR_EXPR, nativecode_ptr_type_node, method);
  	}
        list = tree_cons (NULL_TREE /*DECL_VINDEX (method) + 2*/,
*************** layout_class_method (this_class, super_c
*** 2122,2128 ****
    if (! METHOD_ABSTRACT (method_decl) 
        || (CLASS_INTERFACE (TYPE_NAME (this_class)) 
  	  && (DECL_CLINIT_P (method_decl))))
!     make_function_rtl (method_decl);
    obstack_free (&temporary_obstack, asm_name);
  
    if (ID_INIT_P (method_name))
--- 2122,2128 ----
    if (! METHOD_ABSTRACT (method_decl) 
        || (CLASS_INTERFACE (TYPE_NAME (this_class)) 
  	  && (DECL_CLINIT_P (method_decl))))
!     make_decl_rtl (method_decl, NULL);
    obstack_free (&temporary_obstack, asm_name);
  
    if (ID_INIT_P (method_name))
*************** emit_register_classes ()
*** 2219,2225 ****
    /*  DECL_EXTERNAL (init_decl) = 1;*/
    TREE_PUBLIC (init_decl) = 1;
    pushlevel (0);
!   make_function_rtl (init_decl);
    init_function_start (init_decl, input_filename, 0);
    expand_function_start (init_decl, 0);
  
--- 2219,2225 ----
    /*  DECL_EXTERNAL (init_decl) = 1;*/
    TREE_PUBLIC (init_decl) = 1;
    pushlevel (0);
!   make_decl_rtl (init_decl, NULL);
    init_function_start (init_decl, input_filename, 0);
    expand_function_start (init_decl, 0);
  
Index: java/constants.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/constants.c,v
retrieving revision 1.14
diff -c -p -r1.14 constants.c
*** constants.c	2000/10/13 06:26:45	1.14
--- constants.c	2001/01/10 22:20:53
***************
*** 1,5 ****
  /* Handle the constant pool of the Java(TM) Virtual Machine.
!    Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
--- 1,5 ----
  /* Handle the constant pool of the Java(TM) Virtual Machine.
!    Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
*************** build_constant_data_ref ()
*** 402,408 ****
  			 build_array_type (ptr_type_node,
  					   one_elt_array_domain_type));
        TREE_STATIC (decl) = 1;
!       make_decl_rtl (decl, NULL, 1);
        TYPE_CPOOL_DATA_REF (current_class) = current_constant_pool_data_ref
  	= build1 (ADDR_EXPR, ptr_type_node, decl);
      }
--- 402,408 ----
  			 build_array_type (ptr_type_node,
  					   one_elt_array_domain_type));
        TREE_STATIC (decl) = 1;
!       make_decl_rtl (decl, NULL);
        TYPE_CPOOL_DATA_REF (current_class) = current_constant_pool_data_ref
  	= build1 (ADDR_EXPR, ptr_type_node, decl);
      }
Index: java/decl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/decl.c,v
retrieving revision 1.81
diff -c -p -r1.81 decl.c
*** decl.c	2001/01/08 23:28:56	1.81
--- decl.c	2001/01/10 22:20:54
***************
*** 1,6 ****
  /* Process declarations and variables for the GNU compiler for the
     Java(TM) language.
!    Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
--- 1,6 ----
  /* Process declarations and variables for the GNU compiler for the
     Java(TM) language.
!    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
*************** builtin_function (name, type, function_c
*** 399,405 ****
    TREE_PUBLIC (decl) = 1;
    if (library_name)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (library_name);
!   make_decl_rtl (decl, NULL_PTR, 1);
    pushdecl (decl);
    DECL_BUILT_IN_CLASS (decl) = class;
    DECL_FUNCTION_CODE (decl) = function_code;
--- 399,405 ----
    TREE_PUBLIC (decl) = 1;
    if (library_name)
      DECL_ASSEMBLER_NAME (decl) = get_identifier (library_name);
!   make_decl_rtl (decl, NULL_PTR);
    pushdecl (decl);
    DECL_BUILT_IN_CLASS (decl) = class;
    DECL_FUNCTION_CODE (decl) = function_code;
*************** create_primitive_vtable (name)
*** 417,423 ****
    sprintf (buf, "_Jv_%sVTable", name);
    r = build_decl (VAR_DECL, get_identifier (buf), ptr_type_node);
    DECL_EXTERNAL (r) = 1;
!   make_decl_rtl (r, buf, 1);
    return r;
  }
  
--- 417,423 ----
    sprintf (buf, "_Jv_%sVTable", name);
    r = build_decl (VAR_DECL, get_identifier (buf), ptr_type_node);
    DECL_EXTERNAL (r) = 1;
!   make_decl_rtl (r, buf);
    return r;
  }
  
Index: java/expr.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/expr.c,v
retrieving revision 1.92
diff -c -p -r1.92 expr.c
*** expr.c	2000/12/24 00:43:40	1.92
--- expr.c	2001/01/10 22:20:56
***************
*** 1,5 ****
  /* Process expressions for the GNU compiler for the Java(TM) language.
!    Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
--- 1,5 ----
  /* Process expressions for the GNU compiler for the Java(TM) language.
!    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  
  This file is part of GNU CC.
  
*************** build_known_method_ref (method, method_t
*** 1680,1686 ****
    tree func;
    if (is_compiled_class (self_type))
      {
!       make_decl_rtl (method, NULL, 1);
        func = build1 (ADDR_EXPR, method_ptr_type_node, method);
      }
    else
--- 1680,1686 ----
    tree func;
    if (is_compiled_class (self_type))
      {
!       make_decl_rtl (method, NULL);
        func = build1 (ADDR_EXPR, method_ptr_type_node, method);
      }
    else
*************** build_jni_stub (method)
*** 2000,2006 ****
    TREE_STATIC (meth_var) = 1;
    TREE_PUBLIC (meth_var) = 0;
    DECL_EXTERNAL (meth_var) = 0;
!   make_decl_rtl (meth_var, NULL, 0);
    meth_var = pushdecl_top_level (meth_var);
  
    /* One strange way that the front ends are different is that they
--- 2000,2006 ----
    TREE_STATIC (meth_var) = 1;
    TREE_PUBLIC (meth_var) = 0;
    DECL_EXTERNAL (meth_var) = 0;
!   make_decl_rtl (meth_var, NULL);
    meth_var = pushdecl_top_level (meth_var);
  
    /* One strange way that the front ends are different is that they
*************** java_lang_expand_expr (exp, target, tmod
*** 2364,2370 ****
  	    DECL_IGNORED_P (init_decl) = 1;
  	    TREE_READONLY (init_decl) = 1;
  	    TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (init_decl)) = 1;
! 	    make_decl_rtl (init_decl, NULL, 1);
  	    init = build1 (ADDR_EXPR, TREE_TYPE (exp), init_decl);
  	    r = expand_expr (init, target, tmode, modifier);
  	    return r;
--- 2364,2370 ----
  	    DECL_IGNORED_P (init_decl) = 1;
  	    TREE_READONLY (init_decl) = 1;
  	    TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (init_decl)) = 1;
! 	    make_decl_rtl (init_decl, NULL);
  	    init = build1 (ADDR_EXPR, TREE_TYPE (exp), init_decl);
  	    r = expand_expr (init, target, tmode, modifier);
  	    return r;
*************** java_lang_expand_expr (exp, target, tmod
*** 2387,2393 ****
  	    DECL_IGNORED_P (init_decl) = 1;
  	    TREE_READONLY (init_decl) = 1;
  	    TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (init_decl)) = 1;
! 	    make_decl_rtl (init_decl, NULL, 1);
  	    init = init_decl;
  	  }
  	expand_assignment (build (COMPONENT_REF, TREE_TYPE (data_fld),
--- 2387,2393 ----
  	    DECL_IGNORED_P (init_decl) = 1;
  	    TREE_READONLY (init_decl) = 1;
  	    TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (init_decl)) = 1;
! 	    make_decl_rtl (init_decl, NULL);
  	    init = init_decl;
  	  }
  	expand_assignment (build (COMPONENT_REF, TREE_TYPE (data_fld),
Index: objc/objc-act.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/objc/objc-act.c,v
retrieving revision 1.62
diff -c -p -r1.62 objc-act.c
*** objc-act.c	2001/01/09 10:54:01	1.62
--- objc-act.c	2001/01/10 22:21:00
*************** create_builtin_decl (code, type, name)
*** 1226,1232 ****
    if (code == VAR_DECL)
      {
        TREE_STATIC (decl) = 1;
!       make_decl_rtl (decl, 0, 1);
        pushdecl (decl);
      }
  
--- 1226,1232 ----
    if (code == VAR_DECL)
      {
        TREE_STATIC (decl) = 1;
!       make_decl_rtl (decl, 0);
        pushdecl (decl);
      }
  
*************** synth_module_prologue ()
*** 1304,1310 ****
        if (flag_traditional && TAG_MSGSEND[0] != '_')
  	DECL_BUILT_IN_NONANSI (umsg_decl) = 1;
  
!       make_decl_rtl (umsg_decl, NULL_PTR, 1);
        pushdecl (umsg_decl);
      }
    else
--- 1304,1310 ----
        if (flag_traditional && TAG_MSGSEND[0] != '_')
  	DECL_BUILT_IN_NONANSI (umsg_decl) = 1;
  
!       make_decl_rtl (umsg_decl, NULL_PTR);
        pushdecl (umsg_decl);
      }
    else
*************** generate_static_references ()
*** 1977,1983 ****
  
        type = build_array_type (build_pointer_type (void_type_node), 0);
        decl = build_decl (VAR_DECL, ident, type);
!       make_decl_rtl (decl, 0, 1);
        TREE_USED (decl) = 1;
        decls
  	= tree_cons (NULL_TREE, build_unary_op (ADDR_EXPR, decl, 1), decls);
--- 1977,1983 ----
  
        type = build_array_type (build_pointer_type (void_type_node), 0);
        decl = build_decl (VAR_DECL, ident, type);
!       make_decl_rtl (decl, 0);
        TREE_USED (decl) = 1;
        decls
  	= tree_cons (NULL_TREE, build_unary_op (ADDR_EXPR, decl, 1), decls);
*************** build_selector_reference_decl ()
*** 2070,2076 ****
    DECL_ARTIFICIAL (decl) = 1;
    DECL_CONTEXT (decl) = 0;
  
!   make_decl_rtl (decl, 0, 1);
    pushdecl_top_level (decl);
  
    return decl;
--- 2070,2076 ----
    DECL_ARTIFICIAL (decl) = 1;
    DECL_CONTEXT (decl) = 0;
  
!   make_decl_rtl (decl, 0);
    pushdecl_top_level (decl);
  
    return decl;
*************** build_class_reference_decl ()
*** 2292,2298 ****
    DECL_CONTEXT (decl) = 0;
    DECL_ARTIFICIAL (decl) = 1;
  
!   make_decl_rtl (decl, 0, 1);
    pushdecl_top_level (decl);
  
    return decl;
--- 2292,2298 ----
    DECL_CONTEXT (decl) = 0;
    DECL_ARTIFICIAL (decl) = 1;
  
!   make_decl_rtl (decl, 0);
    pushdecl_top_level (decl);
  
    return decl;
*************** build_objc_string_decl (section)
*** 2435,2441 ****
    DECL_CONTEXT (decl) = 0;
    DECL_ARTIFICIAL (decl) = 1;
   
!   make_decl_rtl (decl, 0, 1);
    pushdecl_top_level (decl);
  
    return decl;
--- 2435,2441 ----
    DECL_CONTEXT (decl) = 0;
    DECL_ARTIFICIAL (decl) = 1;
   
!   make_decl_rtl (decl, 0);
    pushdecl_top_level (decl);
  
    return decl;
*************** build_protocol_reference (p)
*** 5329,5335 ****
        TREE_USED (decl) = 1;
        DECL_ARTIFICIAL (decl) = 1;
  
!       make_decl_rtl (decl, 0, 1);
        pushdecl_top_level (decl);
     }
  
--- 5329,5335 ----
        TREE_USED (decl) = 1;
        DECL_ARTIFICIAL (decl) = 1;
  
!       make_decl_rtl (decl, 0);
        pushdecl_top_level (decl);
     }
  

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]