JacksonAllan / Verstable

A versatile, performance-oriented generic hash table library for C.
MIT License
78 stars 9 forks source link

cast discards 'const' qualifier from pointer target type #6

Closed rsmarples closed 4 months ago

rsmarples commented 4 months ago
../vendor/verstable/verstable.h: In function 'vt_first_nonzero_uint16':
../vendor/verstable/verstable.h:474:8: error: cast discards 'const' qualifier from pointer target type [-Werror=cast-qual]
  474 |   if( *(char *)&endian_checker ) // Little-endian (the compiler will optimize away the check at -O1 and above).
      |        ^
../vendor/verstable/verstable.h: In function 'path_access_map_init':
../vendor/verstable/verstable.h:902:21: error: cast discards 'const' qualifier from pointer target type [-Werror=cast-qual]
  902 |   table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum;
      |                     ^
../vendor/verstable/verstable.h: In function 'path_access_map_init_clone':
../vendor/verstable/verstable.h:948:23: error: cast discards 'const' qualifier from pointer target type [-Werror=cast-qual]
  948 |     table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum;
      |                       ^
../vendor/verstable/verstable.h: In function 'path_access_map_shrink':
../vendor/verstable/verstable.h:1627:23: error: cast discards 'const' qualifier from pointer target type [-Werror=cast-qual]
 1627 |     table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum;
      |                       ^
JacksonAllan commented 4 months ago

I've addressed the discarding of const in the endian-checking function in v2.1.0 because it was an easy fix. Regarding table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum;, I'm going to close this issue in order to centralize discussion about optional compiler diagnostics here.