]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Ensure that optional-arguments check is specific to Fortran
authorKwok Cheung Yeung <kcy@codesourcery.com>
Thu, 31 Jan 2019 15:54:58 +0000 (07:54 -0800)
committerThomas Schwinge <thomas@codesourcery.com>
Tue, 3 Mar 2020 11:15:26 +0000 (12:15 +0100)
gcc/
* omp-general.c (omp_is_optional_argument): Add comment.  Add extra
check for Fortran language.

Reviewed-by: Julian Brown <julian@codesourcery.com>
(cherry picked from openacc-gcc-9-branch commit
abe09848284672b86613258711044b5019fadeb6)

gcc/ChangeLog.omp
gcc/omp-general.c

index 36cabca9860ec828e39b1f432d27498c8ed8761a..94da6334a7096ef085f5a43cce2e9418eaf6a72c 100644 (file)
@@ -1,3 +1,8 @@
+2019-01-31  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * omp-general.c (omp_is_optional_argument): Add comment.  Add extra
+       check for Fortran language.
+
 2019-01-30  Kwok Cheung Yeung <kcy@codesourcery.com>
 
        * omp-general.c (omp_is_optional_argument): New.
index 64559fa6d9f0b56c969fe0c910fb0b6d37db2cc9..17f3e0ad8f6b95d406ec1b2e96fc396e7a58f6bd 100644 (file)
@@ -53,7 +53,12 @@ omp_find_clause (tree clauses, enum omp_clause_code kind)
 bool
 omp_is_optional_argument (tree decl)
 {
-  return TREE_CODE (decl) == PARM_DECL && DECL_BY_REFERENCE (decl)
+  /* A passed-by-reference Fortran optional argument is similar to
+     a normal argument, but since it can be null the type is a
+     POINTER_TYPE rather than a REFERENCE_TYPE.  */
+  return lang_GNU_Fortran ()
+        && TREE_CODE (decl) == PARM_DECL
+        && DECL_BY_REFERENCE (decl)
         && TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE;
 }