]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/39309 (.mod file versioning causes error instead of overwritting the...
authorTobias Burnus <burnus@net-b.de>
Fri, 27 Feb 2009 06:44:59 +0000 (07:44 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 27 Feb 2009 06:44:59 +0000 (07:44 +0100)
2009-02-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39309
        * module.c (read_md5_from_module_file): Include mod version
        in had-changed test.

From-SVN: r144461

gcc/fortran/ChangeLog
gcc/fortran/module.c

index 4bf462504725dd351aa7136f3c19a40df4342dc8..5d972c2eddaae4c329b341f6a84d48506bea47c4 100644 (file)
@@ -1,3 +1,9 @@
+2009-02-27  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39309
+       * module.c (read_md5_from_module_file): Include mod version
+       in had-changed test.
+
 2009-02-26  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/39295
index bfc4ef9f0d2b7c799c5614900423daea36338b08..c234879a2a1cffaa6d37ffea29a8c1c2f42ae96a 100644 (file)
@@ -4739,8 +4739,18 @@ read_md5_from_module_file (const char * filename, unsigned char md5[16])
     return -1;
 
   /* Read two lines.  */
-  if (fgets (buf, sizeof (buf) - 1, file) == NULL
-      || fgets (buf, sizeof (buf) - 1, file) == NULL)
+  if (fgets (buf, sizeof (buf) - 1, file) == NULL)
+    {
+      fclose (file);
+      return -1;
+    }
+
+  /* The file also needs to be overwritten if the version number changed.  */
+  n = strlen ("GFORTRAN module version " MOD_VERSION " created");
+  if (strncmp (buf, "GFORTRAN module version " MOD_VERSION " created", n) != 0)
+    return -1;
+  if (fgets (buf, sizeof (buf) - 1, file) == NULL)
     {
       fclose (file);
       return -1;