Bug 575368 - Exception when opening GCov coverage files on Cygwin GCC

- rename GCOV_TAG_OBJECT_SYMMARY to GCC_TAG_OBJECT_SUMMARY in
  GcdaRecordsParser
- add support for the CWD and supports_has_unexecuted_blocks field
  in header for gcc >= 8.1 and 9.1 respectively

Change-Id: I3df0cac7f158f31c55bc53ddb6d7765244bc76a4
Reviewed-on: https://git.eclipse.org/r/c/linuxtools/org.eclipse.linuxtools/+/184247
Tested-by: Linux Tools Bot <linuxtools-bot@eclipse.org>
Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
diff --git a/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcdaRecordsParser.java b/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcdaRecordsParser.java
index d4b1cea..a202391 100644
--- a/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcdaRecordsParser.java
+++ b/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcdaRecordsParser.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2019 STMicroelectronics and others.
+ * Copyright (c) 2009, 2021 STMicroelectronics and others.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -32,7 +32,7 @@
     private static final int GCOV_DATA_MAGIC = 0x67636461; // en ASCII: 67=g 63=c 64=d 61=a
     private static final int GCOV_TAG_FUNCTION = 0x01000000;
     private static final int GCOV_COUNTER_ARCS = 0x01a10000;
-    private static final int GCOV_TAG_OBJECT_SYMMARY = 0xa1000000;
+    private static final int GCOV_TAG_OBJECT_SUMMARY = 0xa1000000;
     private static final int GCOV_TAG_PROGRAM_SUMMARY = 0xa3000000;
 
 	private static final int GCC_VER_900 = 1094266922; // GCC 9.0.0 ('A90*')
@@ -207,7 +207,7 @@
                     break;
                 }
 
-                case GCOV_TAG_OBJECT_SYMMARY: {
+                case GCOV_TAG_OBJECT_SUMMARY: {
 					if (version >= GCC_VER_900) {
 						objSmryNbrPgmRuns = (stream.readInt() & MasksGenerator.UNSIGNED_INT_MASK);
 						objSmrySumMax = (stream.readInt() & MasksGenerator.UNSIGNED_INT_MASK);
diff --git a/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcnoRecordsParser.java b/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcnoRecordsParser.java
index e59557b..07d6f71 100644
--- a/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcnoRecordsParser.java
+++ b/gcov/org.eclipse.linuxtools.gcov.core/src/org/eclipse/linuxtools/internal/gcov/parser/GcnoRecordsParser.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2018 STMicroelectronics and others.
+ * Copyright (c) 2009, 2021 STMicroelectronics and others.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -90,6 +90,14 @@
         // stamp = stream.readInt();
         stream.readInt();
 
+		if (version >= GCC_VER_910) {
+			GcovStringReader.readString(stream); // cwd
+		}
+
+		if (version >= GCC_VER_810) {
+			stream.readInt(); // supports_has_unexecuted_blocks
+		}
+
         /*------------------------------------------------------------------------------
         System.out.println("Gcno LE, Magic "+magic+" version "+version+" stamp "+stamp);
          */