c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P on the RESULT_DECL.
authorRichard Henderson <rth@redhat.com>
Sun, 25 Jul 2004 08:10:28 +0000 (01:10 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 25 Jul 2004 08:10:28 +0000 (01:10 -0700)
        * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
        on the RESULT_DECL.
        * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
        * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
        DECL_IGNORED_P to new decl.
ada/
        * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
        DECL_IGNORED_P on RESULT_DECL.
cp/
        * decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
        DECL_IGNORED_P on RESULT_DECL.
        * semantics.c (finalize_nrv): Copy them too.
fortran/
        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
        and DECL_IGNORED_P on RESULT_DECL.
        (gfc_generate_constructors): Likewise.
java/
        * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.

From-SVN: r85145

13 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/utils.c
gcc/c-decl.c
gcc/cgraphunit.c
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/semantics.c
gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/integrate.c
gcc/java/ChangeLog
gcc/java/decl.c

index 2af48d1dec32cbbf10ffa2ae5cf33b03c64120b2..a6719d35b020fcd34fb4ce4e976e6cc438d74c13 100644 (file)
@@ -1,3 +1,11 @@
+2004-07-25  Richard Henderson  <rth@redhat.com>
+
+       * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
+       on the RESULT_DECL.
+       * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
+       * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
+       DECL_IGNORED_P to new decl.
+
 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
 
        * config/ia64/ia64.c (general_xfmode_operand)
index 28445a82c8f98a5014d1a23d77d9ca4e1b2512ec..651ff90c188826f2534fa9ba27b141c9844818e5 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-25  Richard Henderson  <rth@redhat.com>
+
+       * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
+       DECL_IGNORED_P on RESULT_DECL.
+
 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
 
        * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
index 3d525a07b7c2adb14edd69998e947df9e4bfc83a..e307def7e800625ef0fa91f9f914c3091736abc0 100644 (file)
@@ -1687,6 +1687,8 @@ create_subprog_decl (tree subprog_name, tree asm_name,
   TREE_SIDE_EFFECTS (subprog_decl) = TYPE_VOLATILE (subprog_type);
   DECL_ARGUMENTS (subprog_decl) = param_decl_list;
   DECL_RESULT (subprog_decl)    = build_decl (RESULT_DECL, 0, return_type);
+  DECL_ARTIFICIAL (DECL_RESULT (subprog_decl)) = 1;
+  DECL_IGNORED_P (DECL_RESULT (subprog_decl)) = 1;
 
   if (inline_flag)
     DECL_DECLARED_INLINE_P (subprog_decl) = 1;
index 41e7df0c01af57a26012282089d3deedfbd3c932..62a464ee305acab6666e915c3b9bbd96e1e90016 100644 (file)
@@ -5661,7 +5661,7 @@ int
 start_function (tree declspecs, tree declarator, tree attributes)
 {
   tree decl1, old_decl;
-  tree restype;
+  tree restype, resdecl;
 
   current_function_returns_value = 0;  /* Assume, until we see it does.  */
   current_function_returns_null = 0;
@@ -5857,8 +5857,11 @@ start_function (tree declspecs, tree declarator, tree attributes)
       else
        restype = integer_type_node;
     }
-  DECL_RESULT (current_function_decl)
-    = build_decl (RESULT_DECL, NULL_TREE, restype);
+
+  resdecl = build_decl (RESULT_DECL, NULL_TREE, restype);
+  DECL_ARTIFICIAL (resdecl) = 1;
+  DECL_IGNORED_P (resdecl) = 1;
+  DECL_RESULT (current_function_decl) = resdecl;
 
   start_fname_decls ();
 
index 79d5553aa9c1978ad11467eb2e289d78c03a3b21..2d962b8c83972f499398418cc7ef26f1679fc7cb 100644 (file)
@@ -1796,7 +1796,7 @@ cgraph_build_static_cdtor (char which, tree body, int priority)
 {
   static int counter = 0;
   char which_buf[16];
-  tree decl, name;
+  tree decl, name, resdecl;
 
   sprintf (which_buf, "%c_%d", which, counter++);
   name = get_file_function_name_long (which_buf);
@@ -1805,7 +1805,11 @@ cgraph_build_static_cdtor (char which, tree body, int priority)
                     build_function_type (void_type_node, void_list_node));
   current_function_decl = decl;
 
-  DECL_RESULT (decl) = build_decl (RESULT_DECL, NULL_TREE, void_type_node);
+  resdecl = build_decl (RESULT_DECL, NULL_TREE, void_type_node);
+  DECL_ARTIFICIAL (resdecl) = 1;
+  DECL_IGNORED_P (resdecl) = 1;
+  DECL_RESULT (decl) = resdecl;
+
   allocate_struct_function (decl);
 
   TREE_STATIC (decl) = 1;
index 0d65baeaaded2d8b7373ba00165d6087f5bad0fd..6512f4e46374339f9cf6d38aded0adba6402fe91 100644 (file)
@@ -1,3 +1,9 @@
+2004-07-25  Richard Henderson  <rth@redhat.com>
+
+       * decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
+       DECL_IGNORED_P on RESULT_DECL.
+       * semantics.c (finalize_nrv): Copy them too.
+
 2004-07-23  Nathan Sidwell  <nathan@codesourcery.com>
 
        * search.c (lookup_conversion_operator): Avoid two loops.
index e39ceb10c1bfd9324284a2c1ec9f24ea35c86fde..64217cf98f03915a9dcf21362478493a2d957bda 100644 (file)
@@ -9689,10 +9689,14 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
     restype = type_promotes_to (restype);
   if (DECL_RESULT (decl1) == NULL_TREE)
     {
-      DECL_RESULT (decl1)
-       = build_decl (RESULT_DECL, 0, TYPE_MAIN_VARIANT (restype));
-      c_apply_type_quals_to_decl (cp_type_quals (restype),
-                                 DECL_RESULT (decl1));
+      tree resdecl;
+
+      resdecl = build_decl (RESULT_DECL, 0, TYPE_MAIN_VARIANT (restype));
+      DECL_ARTIFICIAL (resdecl) = 1;
+      DECL_IGNORED_P (resdecl) = 1;
+      DECL_RESULT (decl1) = resdecl;
+
+      c_apply_type_quals_to_decl (cp_type_quals (restype), resdecl);
     }
 
   /* Initialize RTL machinery.  We cannot do this until
index 3d8c643585361cd18d34e007a071b0648e86e5f2..f6f71759478b5d17813d03b7625ba74e62046210 100644 (file)
@@ -3050,6 +3050,8 @@ finalize_nrv (tree *tp, tree var, tree result)
 
   /* Copy debugging information from VAR to RESULT.  */
   DECL_NAME (result) = DECL_NAME (var);
+  DECL_ARTIFICIAL (result) = DECL_ARTIFICIAL (var);
+  DECL_IGNORED_P (result) = DECL_IGNORED_P (var);
   DECL_SOURCE_LOCATION (result) = DECL_SOURCE_LOCATION (var);
   DECL_ABSTRACT_ORIGIN (result) = DECL_ABSTRACT_ORIGIN (var);
   /* Don't forget that we take its address.  */
index 01cedd8f1af549a0ecb7692c88002e056336d1a3..1e0d825cf68f12cc3ed13565175841a16f48e755 100644 (file)
@@ -1,3 +1,9 @@
+2004-07-25  Richard Henderson  <rth@redhat.com>
+
+       * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
+       and DECL_IGNORED_P on RESULT_DECL.
+       (gfc_generate_constructors): Likewise.
+
 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
 
        PR fortran/16465
index 655c48b1ee6136892e2939cb5df46adb38156e06..7883bdea2d86694a8ca154738c771e15ae9d3290 100644 (file)
@@ -1030,6 +1030,8 @@ gfc_build_function_decl (gfc_symbol * sym)
     }
 
   result_decl = build_decl (RESULT_DECL, result_decl, type);
+  DECL_ARTIFICIAL (result_decl) = 1;
+  DECL_IGNORED_P (result_decl) = 1;
   DECL_CONTEXT (result_decl) = fndecl;
   DECL_RESULT (fndecl) = result_decl;
 
@@ -2124,6 +2126,8 @@ gfc_generate_constructors (void)
   TREE_PUBLIC (fndecl) = 1;
 
   decl = build_decl (RESULT_DECL, NULL_TREE, void_type_node);
+  DECL_ARTIFICIAL (decl) = 1;
+  DECL_IGNORED_P (decl) = 1;
   DECL_CONTEXT (decl) = fndecl;
   DECL_RESULT (fndecl) = decl;
 
index 2fa5164bec55cfe906ae0e9c6c4143b47fb9db8d..d9e66f340fbac1c21a9b242c14e1f88a1f3d4499 100644 (file)
@@ -141,6 +141,11 @@ copy_decl_for_inlining (tree decl, tree from_fn, tree to_fn)
        }
     }
 
+  /* Don't generate debug information for the copy if we wouldn't have
+     generated it for the copy either.  */
+  DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (decl);
+  DECL_IGNORED_P (copy) = DECL_IGNORED_P (decl);
+
   /* Set the DECL_ABSTRACT_ORIGIN so the debugging routines know what
      declaration inspired this copy.  */
   DECL_ABSTRACT_ORIGIN (copy) = DECL_ORIGIN (decl);
index dc1ae7e19e2cafb4bd83a9978c2d7cfef573e80c..b8e6eec6dcb4507afbfe2ddbd197f60b08f2c19d 100644 (file)
@@ -1,3 +1,7 @@
+2004-07-25  Richard Henderson  <rth@redhat.com>
+
+       * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
+
 2004-07-23  Mike Stump  <mrs@apple.com>
 
        * boehm.c (set_bit): Improve type safety wrt unsignedness.
index 33708bdc629479ca5a40b736687ad01c63e01386..c61d42653f70dc63049656d2fba298ab6928a25b 100644 (file)
@@ -1804,6 +1804,8 @@ build_result_decl (tree fndecl)
          && TYPE_PRECISION (restype) < TYPE_PRECISION (integer_type_node))
        restype = integer_type_node;
       result = build_decl (RESULT_DECL, NULL_TREE, restype);
+      DECL_ARTIFICIAL (result) = 1;
+      DECL_IGNORED_P (result) = 1;
       DECL_CONTEXT (result) = fndecl;
       DECL_RESULT (fndecl) = result;
     }