------- Comment #10 from mikael at gcc dot gnu dot org  2009-09-11 19:39 -------
(In reply to comment #5)
> Can you define what you mean by works? 
The following change in the provided testcase (fixed form):

--- pr41335.f.old       2009-09-11 23:12:01.000000000 +0200
+++ pr41335.f   2009-09-11 22:32:07.000000000 +0200
@@ -1,6 +1,6 @@
       PROGRAM VolatileTest
         double precision :: uA, uB
-        volatile double precision a
+        double precision, volatile :: a
         double precision :: b
         double precision :: c

produces the following difference in the code generated:

--- pr41335.f.003t.original.old 2009-09-11 22:36:44.000000000 +0200
+++ pr41335.f.003t.original     2009-09-11 22:38:02.000000000 +0200
@@ -1,6 +1,6 @@
 volatiletest ()
 {
-  real(kind=4) a;
+  volatile real(kind=8) a;
   real(kind=8) b;
   real(kind=8) c;
   real(kind=8) ua;
@@ -20,9 +20,9 @@
     _gfortran_transfer_real (&dt_parm.1, &ub, 8);
     _gfortran_st_read_done (&dt_parm.1);
   }
-  a = (real(kind=4)) (ua * ua);
+  a = (volatile real(kind=8)) (ua * ua);
   b = ub * ub;
-  c = (real(kind=8)) a - b;
+  c = a - b;
   {
     struct __st_parameter_dt dt_parm.2;


that is : variable a loses its volatile and double precision attribute
In fact, a is implicitly typed ;
Adding implicit none, I get :

pr41335_test.f:11.9:

        a = uA*uA                                                       
         1
Error: Symbol 'a' at (1) has no IMPLICIT type
pr41335_test.f:4.35:

        volatile double precision a                                     
                                   1
Error: Symbol 'doubleprecisiona' at (1) has no IMPLICIT type


But I think plain volatile double precision is invalid (f2008) :
   type-declaration-stmt is declaration-type-spec [ [ , attr-spec ] ... :: ]
entity-decl -list

Only the comma/double-colon version should be allowed
confirmed as diagnostic bug, though I'm wondering if this shouldn't be simply
closed as invalid.


By the way, ALWAYS USE IMPLICIT NONE!


-- 

mikael at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |diagnostic
   Last reconfirmed|0000-00-00 00:00:00         |2009-09-11 19:39:11
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41335

Reply via email to