Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix gcc warnings (hercules-team#842)
* src/augprint.c: Fix reallocarray warnings GCC 14.2.1 gives lots of warnings of this sort about the order of parameters of reallocarray being the wrong way round: augprint.c: In function ‘find_or_create_group’: augprint.c:462:60: error: ‘reallocarray’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 462 | all_groups_realloc = reallocarray(all_groups, sizeof(struct group *), num_groups_newsize); | ^~~~~~ augprint.c:462:60: note: earlier argument should specify number of elements, later size of each element Signed-off-by: Richard W.M. Jones <rjones@redhat.com> * acinclude.m4: Disable -Winline warnings GCC 14.2.1 gives warnings like: In file included from memory.h:26, from augmatch.c:30: In function ‘guess_lens_name’, inlined from ‘main’ at augmatch.c:396:16: internal.h:229:19: error: inlining failed in call to ‘streqv’: call is unlikely and code size would grow [-Werror=inline] 229 | static inline int streqv(const char *a, const char *b) { | ^~~~~~ augmatch.c:294:9: note: called from here 294 | if (streqv(ext, ".json")) { | ^~~~~~~~~~~~~~~~~~~~ These warnings don't seem very useful in Augeas, since we are not so sensitive to code size and don't care about inlining "purity". Rather than attempting to "fix" code which isn't really broken, I chose to disable an unhelpful warning. Signed-off-by: Richard W.M. Jones <rjones@redhat.com> * src/get.c: Disable false GCC warning GCC 14.2.1 doesn't seem to be able to analyze this stack frame code correctly. When compiling augeas with --enable-compile-warnings=error that causes the build to fail with the errors below. Disable the error around this code. In file included from /usr/include/string.h:548, from ../gnulib/lib/string.h:41, from internal.h:31, from get.c:30: In function ‘memset’, inlined from ‘push_frame’ at get.c:1095:5: /usr/include/bits/string_fortified.h:59:10: error: ‘__builtin_memset’ offset [0, 31] is out of the bounds [0, 0] [-Werror=array-bounds=] 59 | return __builtin___memset_chk (__dest, __ch, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60 | __glibc_objsize0 (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ If you disable -Warray-bounds only then you get this instead: In file included from /usr/include/string.h:548, from ../gnulib/lib/string.h:41, from internal.h:31, from get.c:30: In function ‘memset’, inlined from ‘push_frame’ at get.c:1100:5: /usr/include/bits/string_fortified.h:59:10: error: ‘__builtin_memset’ writing 32 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] 59 | return __builtin___memset_chk (__dest, __ch, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60 | __glibc_objsize0 (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ In function ‘push_frame’: cc1: note: destination object is likely at address zero Signed-off-by: Richard W.M. Jones <rjones@redhat.com> * tests/test-api.c: Fix calloc warning GCC 14.2.1 gives: test-api.c: In function ‘testAugPreview’: test-api.c:867:39: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 867 | hosts_txt = calloc(sizeof(char),4096); | ^~~~ test-api.c:867:39: note: earlier argument should specify number of elements, later size of each element Signed-off-by: Richard W.M. Jones <rjones@redhat.com> --------- Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
- Loading branch information