OSDN Git Service

2007-06-22 Daniel Franke <franke.daniel@gmail.com>
authordfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Jun 2007 18:33:35 +0000 (18:33 +0000)
committerdfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Jun 2007 18:33:35 +0000 (18:33 +0000)
        PR fortran/31473
        * symbol.c (gfc_copy_attr): Emit errors for duplicate
        EXTERNAL/INTRINSIC statements.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125954 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/symbol.c

index f323886..d0cbd0a 100644 (file)
@@ -1,3 +1,9 @@
+2007-06-22  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/31473
+       * symbol.c (gfc_copy_attr): Emit errors for duplicate 
+       EXTERNAL/INTRINSIC statements.
+
 2007-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR fortran/32360
index 5215c3e..3c11b64 100644 (file)
@@ -1436,14 +1436,11 @@ gfc_copy_attr (symbol_attribute * dest, symbol_attribute * src, locus * where)
     goto fail;
   if (src->cray_pointee && gfc_add_cray_pointee (dest, where) == FAILURE)
     goto fail;    
-  
-  /* The subroutines that set these bits also cause flavors to be set,
-     and that has already happened in the original, so don't let it
-     happen again.  */
-  if (src->external)
-    dest->external = 1;
-  if (src->intrinsic)
-    dest->intrinsic = 1;
+
+  if (src->external && gfc_add_external (dest, where) == FAILURE)
+    goto fail;
+  if (src->intrinsic && gfc_add_intrinsic (dest, where) == FAILURE)
+    goto fail;
 
   return SUCCESS;