]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fortran: Fix parse-dump-tree for OpenMP ALLOCATE clause
authorTobias Burnus <tobias@codesourcery.com>
Tue, 20 Jun 2023 11:46:11 +0000 (13:46 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Tue, 20 Jun 2023 11:49:54 +0000 (13:49 +0200)
Commit r14-1301-gd64e8e1224708e added u2.allocator to gfc_omp_namelist
for better readability and to permit to use namelist->expr for code
like the following:
  !$omp allocators allocate(align(32) : dt%alloc_comp)
    allocate (dt%alloc_comp(5))
  !$omp allocate(dt%alloc_comp2) align(64)
    allocate (dt%alloc_comp2(10))
However, for the parse-tree dump the change was incomplete.

gcc/fortran/ChangeLog:

* dump-parse-tree.cc (show_omp_namelist): Fix dump of the allocator
modifier of OMP_LIST_ALLOCATE.

gcc/fortran/dump-parse-tree.cc

index 99c8bdaadce9febf47f94117a68e3f473d35bfbc..effcebe932589977feb114c69f181145d6f87948 100644 (file)
@@ -1374,7 +1374,7 @@ show_omp_namelist (int list_type, gfc_omp_namelist *n)
        }
       if (list_type == OMP_LIST_ALLOCATE)
        {
-         if (n->expr)
+         if (n->u2.allocator)
            {
              fputs ("allocator(", dumpfile);
              show_expr (n->u2.allocator);
@@ -1388,9 +1388,12 @@ show_omp_namelist (int list_type, gfc_omp_namelist *n)
              show_expr (n->u.align);
              fputc (')', dumpfile);
            }
-         if (n->expr || n->u.align)
+         if (n->u2.allocator || n->u.align)
            fputc (':', dumpfile);
-         fputs (n->sym->name, dumpfile);
+         if (n->expr)
+           show_expr (n->expr);
+         else
+           fputs (n->sym->name, dumpfile);
          if (n->next)
            fputs (") ALLOCATE(", dumpfile);
          continue;