aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov-io.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-05-28 08:16:58 +0200
committerMartin Liska <mliska@suse.cz>2020-05-28 08:18:21 +0200
commit17d1594bfe08f3c768e024b180816cbe37ac08ac (patch)
treef16e3c2caa50407dafc752f7e7b5eac59522a328 /gcc/gcov-io.c
parent61f3b60556e8d4da298906ac4f4effc3d18c6ea1 (diff)
downloadgcc-17d1594bfe08f3c768e024b180816cbe37ac08ac.zip
gcc-17d1594bfe08f3c768e024b180816cbe37ac08ac.tar.gz
gcc-17d1594bfe08f3c768e024b180816cbe37ac08ac.tar.bz2
gcov-tool: Flexible endian adjustment for merging coverage data
gcc/ChangeLog: 2020-05-27 Dong JianQiang <dongjianqiang2@huawei.com> PR gcov-profile/95332 * gcov-io.c (gcov_var::endian): Move field. (from_file): Add IN_GCOV_TOOL check. * gcov-io.h (gcov_magic): Ditto. libgcc/ChangeLog: 2020-05-27 Dong JianQiang <dongjianqiang2@huawei.com> PR gcov-profile/95332 * libgcov-util.c (read_gcda_file): Call gcov_magic. * libgcov.h (gcov_magic): Disable GCC poison.
Diffstat (limited to 'gcc/gcov-io.c')
-rw-r--r--gcc/gcov-io.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
index 213c413..ac60f9b 100644
--- a/gcc/gcov-io.c
+++ b/gcc/gcov-io.c
@@ -48,6 +48,7 @@ struct gcov_var
unsigned overread; /* Number of words overread. */
int error; /* < 0 overflow, > 0 disk error. */
int mode; /* < 0 writing, > 0 reading */
+ int endian; /* Swap endianness. */
#if IN_LIBGCOV
/* Holds one block plus 4 bytes, thus all coverage reads & writes
fit within this buffer and we always can transfer GCOV_BLOCK_SIZE
@@ -55,7 +56,6 @@ struct gcov_var
or 8 byte objects. */
gcov_unsigned_t buffer[GCOV_BLOCK_SIZE + 1];
#else
- int endian; /* Swap endianness. */
/* Holds a variable length block, as the compiler can write
strings and needs to backtrack. */
size_t alloc;
@@ -100,7 +100,7 @@ gcov_rewrite (void)
static inline gcov_unsigned_t from_file (gcov_unsigned_t value)
{
-#if !IN_LIBGCOV
+#if !IN_LIBGCOV || defined (IN_GCOV_TOOL)
if (gcov_var.endian)
{
value = (value >> 16) | (value << 16);
@@ -222,7 +222,7 @@ gcov_close (void)
return gcov_var.error;
}
-#if !IN_LIBGCOV
+#if !IN_LIBGCOV || defined (IN_GCOV_TOOL)
/* Check if MAGIC is EXPECTED. Use it to determine endianness of the
file. Returns +1 for same endian, -1 for other endian and zero for
not EXPECTED. */