Skip to content

Commit

Permalink
[InstrProf] Ignore -Wcast-qual after D153911 to fix build failure (NFC)
Browse files Browse the repository at this point in the history
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:46:60: error: cast from 'const char *' to 'struct __llvm_profile_header *' drops const qualifier [-Werror,-Wcast-qual]
  __llvm_profile_header *Header = (__llvm_profile_header *)ProfileData;
                                                           ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:49:30: error: cast from 'const char *' to 'struct __llvm_profile_data *' drops const qualifier [-Werror,-Wcast-qual]
      (__llvm_profile_data *)(ProfileData + sizeof(__llvm_profile_header) +
                             ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:77:41: error: cast from 'const struct __llvm_profile_data *' to 'struct __llvm_profile_data *' drops const qualifier [-Werror,-Wcast-qual]
       DstData = (__llvm_profile_data *)__llvm_profile_begin_data();
                                        ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:109:60: error: cast from 'const char *' to 'struct __llvm_profile_header *' drops const qualifier [-Werror,-Wcast-qual]
  __llvm_profile_header *Header = (__llvm_profile_header *)ProfileData;
                                                           ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:116:30: error: cast from 'const char *' to 'struct __llvm_profile_data *' drops const qualifier [-Werror,-Wcast-qual]
      (__llvm_profile_data *)(ProfileData + sizeof(__llvm_profile_header) +
                             ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:129:40: error: cast from 'const struct __llvm_profile_data *' to 'struct __llvm_profile_data *' drops const qualifier [-Werror,-Wcast-qual]
      DstData = (__llvm_profile_data *)__llvm_profile_begin_data(),
                                       ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:179:34: error: cast from 'const char *' to 'struct ValueProfData *' drops const qualifier [-Werror,-Wcast-qual]
    VPMergeHook((ValueProfData *)SrcValueProfData, DstData);
                                 ^
/data/llvm-project/compiler-rt/lib/profile/InstrProfilingMerge.c:181:46: error: cast from 'const char *' to 'struct ValueProfData *' drops const qualifier [-Werror,-Wcast-qual]
        SrcValueProfData + ((ValueProfData *)SrcValueProfData)->TotalSize;
                                             ^
...
  • Loading branch information
DamonFool committed Jul 19, 2023
1 parent 2167ae9 commit 51c8cac
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
14 changes: 14 additions & 0 deletions compiler-rt/lib/profile/InstrProfilingFile.c
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,14 @@ static void initializeProfileForContinuousMode(void) {
static const char *DefaultProfileName = "default.profraw";
static void resetFilenameToDefault(void) {
if (lprofCurFilename.FilenamePat && lprofCurFilename.OwnsFilenamePat) {
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif
free((void *)lprofCurFilename.FilenamePat);
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
}
memset(&lprofCurFilename, 0, sizeof(lprofCurFilename));
lprofCurFilename.FilenamePat = DefaultProfileName;
Expand Down Expand Up @@ -691,13 +698,20 @@ static int parseFilenamePattern(const char *FilenamePat,
int MergingEnabled = 0;
int FilenamePatLen = strlen(FilenamePat);

#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif
/* Clean up cached prefix and filename. */
if (lprofCurFilename.ProfilePathPrefix)
free((void *)lprofCurFilename.ProfilePathPrefix);

if (lprofCurFilename.FilenamePat && lprofCurFilename.OwnsFilenamePat) {
free((void *)lprofCurFilename.FilenamePat);
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif

memset(&lprofCurFilename, 0, sizeof(lprofCurFilename));

Expand Down
9 changes: 9 additions & 0 deletions compiler-rt/lib/profile/InstrProfilingMerge.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ uint64_t lprofGetLoadModuleSignature(void) {
__llvm_profile_get_magic();
}

#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif

/* Returns 1 if profile is not structurally compatible. */
COMPILER_RT_VISIBILITY
int __llvm_profile_check_compatibility(const char *ProfileData,
Expand Down Expand Up @@ -183,3 +188,7 @@ int __llvm_profile_merge_from_buffer(const char *ProfileData,

return 0;
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
7 changes: 7 additions & 0 deletions compiler-rt/lib/profile/InstrProfilingValue.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,14 @@ COMPILER_RT_VISIBILITY void lprofSetMaxValsPerSite(uint32_t MaxVals) {
COMPILER_RT_VISIBILITY void
__llvm_profile_set_num_value_sites(__llvm_profile_data *Data,
uint32_t ValueKind, uint16_t NumValueSites) {
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif
*((uint16_t *)&Data->NumValueSites[ValueKind]) = NumValueSites;
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
}

/* This method is only used in value profiler mock testing. */
Expand Down

0 comments on commit 51c8cac

Please sign in to comment.