]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix ICE in libgomp.oacc-c++/ref-1.C
authorKwok Cheung Yeung <kcy@codesourcery.com>
Thu, 12 Mar 2020 14:38:02 +0000 (07:38 -0700)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Tue, 9 Jun 2020 22:32:04 +0000 (15:32 -0700)
2020-03-12  Kwok Cheung Yeung  <kcy@codesourcery.com>

gcc/
* omp-sese.c (install_var_field): Generate a field name for a VAR_DECL
using the DECL_UID if it does not have a DECL_NAME.

gcc/ChangeLog.omp
gcc/omp-sese.c

index 68df18de6476173a9375eb47c26c650418d82b64..a9689b77fbe9c64ca08ed38c7cfcfebd5c044eb4 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-12  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * omp-sese.c (install_var_field): Generate a field name for a VAR_DECL
+       using the DECL_UID if it does not have a DECL_NAME.
+
 2019-10-21  Julian Brown  <julian@codesourcery.com>
 
        * omp-oacc-kernels.c (decompose_kernels_region_body): Add
index 6e9f7316c83701525474bc3b8e72dffa297f31d6..620ca8985ff70011f669da4e4abf8f616dc4b9cf 100644 (file)
@@ -544,20 +544,28 @@ install_var_field (tree var, tree record_type)
   char tmp[20];
 
   if (TREE_CODE (var) == SSA_NAME)
-    name = SSA_NAME_IDENTIFIER (var);
+    {
+      name = SSA_NAME_IDENTIFIER (var);
+      if (!name)
+       {
+         sprintf (tmp, "_%u", (unsigned) SSA_NAME_VERSION (var));
+         name = get_identifier (tmp);
+       }
+    }
   else if (TREE_CODE (var) == VAR_DECL)
-    name = DECL_NAME (var);
+    {
+      name = DECL_NAME (var);
+      if (!name)
+       {
+         sprintf (tmp, "D_%u", (unsigned) DECL_UID (var));
+         name = get_identifier (tmp);
+       }
+    }
   else
     gcc_unreachable ();
 
   gcc_assert (!fields->get (var));
 
-  if (!name)
-    {
-      sprintf (tmp, "_%u", (unsigned) SSA_NAME_VERSION (var));
-      name = get_identifier (tmp);
-    }
-
   tree type = TREE_TYPE (var);
 
   if (POINTER_TYPE_P (type)