^(build-aux/syntax-check\.mk|tests/virfilemock\.c)$$
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
- ^(docs/advanced-tests\.rst|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock|commandhelper)\.c|tools/wireshark/src/packet-libvirt\.c|tools/nss/libvirt_nss(_leases|_macs)?\.c)$$
+ ^(meson\.build|docs/advanced-tests\.rst|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock|commandhelper)\.c|tools/wireshark/src/packet-libvirt\.c|tools/nss/libvirt_nss(_leases|_macs)?\.c)$$
exclude_file_name_regexp--sc_prohibit_readlink = \
^src/(util/virutil|lxc/lxc_container)\.c$$
supported_cc_flags += [ '-Wno-unused-function' ]
endif
+ if supported_cc_flags.contains('-Wunused-but-set-variable')
+ # Clang complains about unused variables in many scenarios related
+ # to attribute((cleanup)) aka g_auto*
+ w_unused_but_set_var_args = [ '-Wunused-but-set-variable', '-Werror' ]
+ w_unused_but_set_var_code = '''
+ static inline void free_pointer (void *p) {
+ void **pp = (void**)p;
+ free (*pp);
+ }
+
+ int main(void) {
+ __attribute__((cleanup(free_pointer))) char *buffer = 0x0;
+ buffer = 0x1;
+ }
+ '''
+ # We previously turned on unused-but-set-variable, so we must turn
+ # it off again explicitly now.
+ if not cc.compiles(w_unused_but_set_var_code, args: w_unused_but_set_var_args)
+ supported_cc_flags += [ '-Wno-unused-but-set-variable' ]
+ endif
+ endif
endif
add_project_arguments(supported_cc_flags, language: 'c')