It emits several warnings about types mismatch
In below compile warnings most important are [-Wlto-type-mismatch] however it would be good to clean the code to calm down all other warnings as well
dotlock.c: In function 'use_hardlinks_p':
dotlock.c:624:10: warning: ignoring return value of 'link', declared with attribute warn_unused_result [-Wunused-result]
624 | (void) link (tname, lname);
| ^~~~~~~~~~~~~~~~~~~
dotlock.c: In function 'dotlock_take_unix':
dotlock.c:1071:14: warning: ignoring return value of 'link', declared with attribute warn_unused_result [-Wunused-result]
1071 | (void) link (h->tname, h->lockname);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
signal.c: In function 'got_fatal_signal':
signal.c:111:9: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
111 | (void)write (2, "\n", 1 );
| ^~~~~~~~~~~~~~~~~~~
signal.c:114:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
114 | (void)write(2, s, strlen (s));
| ^~~~~~~~~~~~~~~~~~~~~~~
signal.c:115:9: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
115 | (void)write (2, ": signal ", 9 );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
signal.c:118:12: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
118 | (void) write (2, s, strlen(s) );
| ^~~~~~~~~~~~~~~~~~~~~~~~
signal.c:128:15: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
128 | (void)write (2, "?", 1);
| ^~~~~~~~~~~~~~~~~
signal.c:137:25: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
137 | (void)write (2, &"0123456789"[value/i], 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
signal.c:145:9: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
145 | (void)write (2, " caught ... exiting\n", 20);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dotlock.c: In function 'use_hardlinks_p':
dotlock.c:624:10: warning: ignoring return value of 'link', declared with attribute warn_unused_result [-Wunused-result]
624 | (void) link (tname, lname);
| ^~~~~~~~~~~~~~~~~~~
dotlock.c: In function 'dotlock_take_unix':
dotlock.c:1071:14: warning: ignoring return value of 'link', declared with attribute warn_unused_result [-Wunused-result]
1071 | (void) link (h->tname, h->lockname);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
signal.c: In function 'got_fatal_signal':
signal.c:111:9: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
111 | (void)write (2, "\n", 1 );
| ^~~~~~~~~~~~~~~~~~~
signal.c:114:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
114 | (void)write(2, s, strlen (s));
| ^~~~~~~~~~~~~~~~~~~~~~~
signal.c:115:9: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
115 | (void)write (2, ": signal ", 9 );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
signal.c:118:12: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
118 | (void) write (2, s, strlen(s) );
| ^~~~~~~~~~~~~~~~~~~~~~~~
signal.c:128:15: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
128 | (void)write (2, "?", 1);
| ^~~~~~~~~~~~~~~~~
signal.c:137:25: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
137 | (void)write (2, &"0123456789"[value/i], 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
signal.c:145:9: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
145 | (void)write (2, " caught ... exiting\n", 20);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
t-exechelp.c: In function 'test_close_all_fds':
t-exechelp.c:96:3: warning: ignoring return value of 'dup', declared with attribute warn_unused_result [-Wunused-result]
96 | dup (1);
| ^~~~~~~
t-exechelp.c:97:3: warning: ignoring return value of 'dup', declared with attribute warn_unused_result [-Wunused-result]
97 | dup (1);
| ^~~~~~~
t-exechelp.c:99:3: warning: ignoring return value of 'dup', declared with attribute warn_unused_result [-Wunused-result]
99 | dup (1);
| ^~~~~~~
t-exechelp.c:140:9: warning: ignoring return value of 'dup', declared with attribute warn_unused_result [-Wunused-result]
140 | dup (1);
| ^~~~~~~
t-exechelp.c:147:11: warning: ignoring return value of 'dup', declared with attribute warn_unused_result [-Wunused-result]
147 | dup (1);
| ^~~~~~~
photoid.h:31:6: warning: type of 'show_photos' does not match original declaration [-Wlto-type-mismatch]
31 | void show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count,
| ^
test-stubs.c:355:1: note: type mismatch in parameter 2
355 | show_photos (const struct user_attribute *attrs, int count, PKT_public_key *pk)
| ^
test-stubs.c:355:1: note: 'show_photos' was previously declared here
keyserver-internal.h:31:24: warning: type of 'parse_keyserver_uri' does not match original declaration [-Wlto-type-mismatch]
31 | struct keyserver_spec *parse_keyserver_uri (const char *string,
| ^
test-stubs.c:337:1: note: type mismatch in parameter 3
337 | parse_keyserver_uri (const char *uri, int require_scheme,
| ^
test-stubs.c:337:1: note: 'parse_keyserver_uri' was previously declared here
keyserver-internal.h:53:5: warning: type of 'keyserver_import_ldap' does not match original declaration [-Wlto-type-mismatch]
53 | int keyserver_import_ldap (ctrl_t ctrl, const char *name,
| ^
test-stubs.c:237:1: note: type mismatch in parameter 2
237 | keyserver_import_ldap (const char *name)
| ^
test-stubs.c:237:1: note: 'keyserver_import_ldap' was previously declared here
keyserver-internal.h:50:5: warning: type of 'keyserver_import_name' does not match original declaration [-Wlto-type-mismatch]
50 | int keyserver_import_name (ctrl_t ctrl,
| ^
test-stubs.c:229:1: note: type mismatch in parameter 3
229 | keyserver_import_name (const char *name,struct keyserver_spec *spec)
| ^
test-stubs.c:229:1: note: 'keyserver_import_name' was previously declared here
keyserver-internal.h:46:13: warning: type of 'keyserver_import_pka' does not match original declaration [-Wlto-type-mismatch]
46 | gpg_error_t keyserver_import_pka (ctrl_t ctrl, const char *name,
| ^
test-stubs.c:209:1: note: return value type mismatch
209 | keyserver_import_pka (const char *name,unsigned char *fpr)
| ^
test-stubs.c:209:1: note: type 'int' should match type 'gpg_error_t'
test-stubs.c:209:1: note: 'keyserver_import_pka' was previously declared here
keyserver-internal.h:44:5: warning: type of 'keyserver_import_cert' does not match original declaration [-Wlto-type-mismatch]
44 | int keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
| ^
test-stubs.c:202:1: note: type mismatch in parameter 2
202 | keyserver_import_cert (const char *name)
| ^
test-stubs.c:202:1: note: 'keyserver_import_cert' was previously declared here
keyserver-internal.h:39:5: warning: type of 'keyserver_import_keyid' does not match original declaration [-Wlto-type-mismatch]
39 | int keyserver_import_keyid (ctrl_t ctrl, u32 *keyid,
| ^
test-stubs.c:181:1: note: type mismatch in parameter 3
181 | keyserver_import_keyid (u32 *keyid, void *dummy, int quick)
| ^
test-stubs.c:181:1: note: 'keyserver_import_keyid' was previously declared here
photoid.h:31:6: warning: type of 'show_photos' does not match original declaration [-Wlto-type-mismatch]
31 | void show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count,
| ^
test-stubs.c:355:1: note: type mismatch in parameter 2
355 | show_photos (const struct user_attribute *attrs, int count, PKT_public_key *pk)
| ^
test-stubs.c:355:1: note: 'show_photos' was previously declared here
keyserver-internal.h:31:24: warning: type of 'parse_keyserver_uri' does not match original declaration [-Wlto-type-mismatch]
31 | struct keyserver_spec *parse_keyserver_uri (const char *string,
| ^
test-stubs.c:337:1: note: type mismatch in parameter 3
337 | parse_keyserver_uri (const char *uri, int require_scheme,
| ^
test-stubs.c:337:1: note: 'parse_keyserver_uri' was previously declared here
keyserver-internal.h:53:5: warning: type of 'keyserver_import_ldap' does not match original declaration [-Wlto-type-mismatch]
53 | int keyserver_import_ldap (ctrl_t ctrl, const char *name,
| ^
test-stubs.c:237:1: note: type mismatch in parameter 2
237 | keyserver_import_ldap (const char *name)
| ^
test-stubs.c:237:1: note: 'keyserver_import_ldap' was previously declared here
keyserver-internal.h:50:5: warning: type of 'keyserver_import_name' does not match original declaration [-Wlto-type-mismatch]
50 | int keyserver_import_name (ctrl_t ctrl,
| ^
test-stubs.c:229:1: note: type mismatch in parameter 3
229 | keyserver_import_name (const char *name,struct keyserver_spec *spec)
| ^
test-stubs.c:229:1: note: 'keyserver_import_name' was previously declared here
keyserver-internal.h:46:13: warning: type of 'keyserver_import_pka' does not match original declaration [-Wlto-type-mismatch]
46 | gpg_error_t keyserver_import_pka (ctrl_t ctrl, const char *name,
| ^
test-stubs.c:209:1: note: return value type mismatch
209 | keyserver_import_pka (const char *name,unsigned char *fpr)
| ^
test-stubs.c:209:1: note: type 'int' should match type 'gpg_error_t'
test-stubs.c:209:1: note: 'keyserver_import_pka' was previously declared here
keyserver-internal.h:44:5: warning: type of 'keyserver_import_cert' does not match original declaration [-Wlto-type-mismatch]
44 | int keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
| ^
test-stubs.c:202:1: note: type mismatch in parameter 2
202 | keyserver_import_cert (const char *name)
| ^
test-stubs.c:202:1: note: 'keyserver_import_cert' was previously declared here
keyserver-internal.h:39:5: warning: type of 'keyserver_import_keyid' does not match original declaration [-Wlto-type-mismatch]
39 | int keyserver_import_keyid (ctrl_t ctrl, u32 *keyid,
| ^
test-stubs.c:181:1: note: type mismatch in parameter 3
181 | keyserver_import_keyid (u32 *keyid, void *dummy, int quick)
| ^
test-stubs.c:181:1: note: 'keyserver_import_keyid' was previously declared here
photoid.h:31:6: warning: type of 'show_photos' does not match original declaration [-Wlto-type-mismatch]
31 | void show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count,
| ^
test-stubs.c:355:1: note: type mismatch in parameter 2
355 | show_photos (const struct user_attribute *attrs, int count, PKT_public_key *pk)
| ^
test-stubs.c:355:1: note: 'show_photos' was previously declared here
keyserver-internal.h:31:24: warning: type of 'parse_keyserver_uri' does not match original declaration [-Wlto-type-mismatch]
31 | struct keyserver_spec *parse_keyserver_uri (const char *string,
| ^
test-stubs.c:337:1: note: type mismatch in parameter 3
337 | parse_keyserver_uri (const char *uri, int require_scheme,
| ^
test-stubs.c:337:1: note: 'parse_keyserver_uri' was previously declared here
keyserver-internal.h:53:5: warning: type of 'keyserver_import_ldap' does not match original declaration [-Wlto-type-mismatch]
53 | int keyserver_import_ldap (ctrl_t ctrl, const char *name,
| ^
test-stubs.c:237:1: note: type mismatch in parameter 2
237 | keyserver_import_ldap (const char *name)
| ^
test-stubs.c:237:1: note: 'keyserver_import_ldap' was previously declared here
keyserver-internal.h:50:5: warning: type of 'keyserver_import_name' does not match original declaration [-Wlto-type-mismatch]
50 | int keyserver_import_name (ctrl_t ctrl,
| ^
test-stubs.c:229:1: note: type mismatch in parameter 3
229 | keyserver_import_name (const char *name,struct keyserver_spec *spec)
| ^
test-stubs.c:229:1: note: 'keyserver_import_name' was previously declared here
keyserver-internal.h:46:13: warning: type of 'keyserver_import_pka' does not match original declaration [-Wlto-type-mismatch]
46 | gpg_error_t keyserver_import_pka (ctrl_t ctrl, const char *name,
| ^
test-stubs.c:209:1: note: return value type mismatch
209 | keyserver_import_pka (const char *name,unsigned char *fpr)
| ^
test-stubs.c:209:1: note: type 'int' should match type 'gpg_error_t'
test-stubs.c:209:1: note: 'keyserver_import_pka' was previously declared here
keyserver-internal.h:44:5: warning: type of 'keyserver_import_cert' does not match original declaration [-Wlto-type-mismatch]
44 | int keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
| ^
test-stubs.c:202:1: note: type mismatch in parameter 2
202 | keyserver_import_cert (const char *name)
| ^
test-stubs.c:202:1: note: 'keyserver_import_cert' was previously declared here
keyserver-internal.h:39:5: warning: type of 'keyserver_import_keyid' does not match original declaration [-Wlto-type-mismatch]
39 | int keyserver_import_keyid (ctrl_t ctrl, u32 *keyid,
| ^
test-stubs.c:181:1: note: type mismatch in parameter 3
181 | keyserver_import_keyid (u32 *keyid, void *dummy, int quick)
| ^
test-stubs.c:181:1: note: 'keyserver_import_keyid' was previously declared here
photoid.h:31:6: warning: type of 'show_photos' does not match original declaration [-Wlto-type-mismatch]
31 | void show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count,
| ^
gpgv.c:592:1: note: type mismatch in parameter 2
592 | show_photos (const struct user_attribute *attrs, int count, PKT_public_key *pk)
| ^
gpgv.c:592:1: note: 'show_photos' was previously declared here
keyserver-internal.h:31:24: warning: type of 'parse_keyserver_uri' does not match original declaration [-Wlto-type-mismatch]
31 | struct keyserver_spec *parse_keyserver_uri (const char *string,
| ^
gpgv.c:574:1: note: type mismatch in parameter 3
574 | parse_keyserver_uri (const char *uri, int require_scheme,
| ^
gpgv.c:574:1: note: 'parse_keyserver_uri' was previously declared here
keyserver-internal.h:53:5: warning: type of 'keyserver_import_ldap' does not match original declaration [-Wlto-type-mismatch]
53 | int keyserver_import_ldap (ctrl_t ctrl, const char *name,
| ^
gpgv.c:472:1: note: type mismatch in parameter 2
472 | keyserver_import_ldap (const char *name)
| ^
gpgv.c:472:1: note: 'keyserver_import_ldap' was previously declared here
keyserver-internal.h:50:5: warning: type of 'keyserver_import_name' does not match original declaration [-Wlto-type-mismatch]
50 | int keyserver_import_name (ctrl_t ctrl,
| ^
gpgv.c:464:1: note: type mismatch in parameter 3
464 | keyserver_import_name (const char *name,struct keyserver_spec *spec)
| ^
gpgv.c:464:1: note: 'keyserver_import_name' was previously declared here
keyserver-internal.h:46:13: warning: type of 'keyserver_import_pka' does not match original declaration [-Wlto-type-mismatch]
46 | gpg_error_t keyserver_import_pka (ctrl_t ctrl, const char *name,
| ^
gpgv.c:444:1: note: return value type mismatch
444 | keyserver_import_pka (const char *name,unsigned char *fpr)
| ^
gpgv.c:444:1: note: type 'int' should match type 'gpg_error_t'
gpgv.c:444:1: note: 'keyserver_import_pka' was previously declared here
keyserver-internal.h:44:5: warning: type of 'keyserver_import_cert' does not match original declaration [-Wlto-type-mismatch]
44 | int keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
| ^
gpgv.c:437:1: note: type mismatch in parameter 2
437 | keyserver_import_cert (const char *name)
| ^
gpgv.c:437:1: note: 'keyserver_import_cert' was previously declared here
keyserver-internal.h:39:5: warning: type of 'keyserver_import_keyid' does not match original declaration [-Wlto-type-mismatch]
39 | int keyserver_import_keyid (ctrl_t ctrl, u32 *keyid,
| ^
gpgv.c:416:1: note: type mismatch in parameter 3
416 | keyserver_import_keyid (u32 *keyid, void *dummy, int quick)
| ^
gpgv.c:416:1: note: 'keyserver_import_keyid' was previously declared here
cvt-openpgp.h:27:13: warning: type of 'convert_from_openpgp_native' does not match original declaration [-Wlto-type-mismatch]
27 | gpg_error_t convert_from_openpgp_native (ctrl_t ctrl,
| ^
t-protect.c:343:1: note: type mismatch in parameter 4
343 | convert_from_openpgp_native (gcry_sexp_t s_pgp, const char *passphrase,
| ^
t-protect.c:343:1: note: 'convert_from_openpgp_native' was previously declared here
scdaemon.c: In function 'handle_connections':
scdaemon.c:1391:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result]
1391 | read (pipe_fd[0], buf, sizeof buf);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scdaemon.c: In function 'scd_kick_the_loop':
scdaemon.c:1232:3: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
1232 | write (notify_fd, "", 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
dns.c:4282:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before '#pragma'
4282 | #pragma GCC diagnostic ignored "-Wstrict-prototypes"
| ^~~
dns.c:4310:15: error: expected ';' before 'static'
4310 | DNS_PRAGMA_POP /*(-Wstrict-prototypes)*/
| ^
| ;
......
4314 | static const struct dns_rrtype *dns_rrtype(enum dns_type type) {
| ~~~~~~
dns.c:6038:1: error: unknown type name 'DNS_PRAGMA_PUSH'
6038 | DNS_PRAGMA_PUSH
| ^~~~~~~~~~~~~~~
dns.c:6039:17: error: expected ';' before 'static'
6039 | DNS_PRAGMA_QUIET
| ^
| ;
6040 |
6041 | static int dns_nssconf_k2c(int k) {
| ~~~~~~
dns.c:6073:15: error: expected ';' before 'int'
6073 | DNS_PRAGMA_POP
| ^
| ;
......
6076 | int dns_nssconf_loadfile(struct dns_resolv_conf *resconf, FILE *fp) {
| ~~~
make[2]: *** [Makefile:994: dns.o] Error 1
make[2]: *** Waiting for unfinished jobs....
dns.c:4282:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before '#pragma'
4282 | #pragma GCC diagnostic ignored "-Wstrict-prototypes"
| ^~~
dns.c:4310:15: error: expected ';' before 'static'
4310 | DNS_PRAGMA_POP /*(-Wstrict-prototypes)*/
| ^
| ;
......
4314 | static const struct dns_rrtype *dns_rrtype(enum dns_type type) {
| ~~~~~~
dns.c:6038:1: error: unknown type name 'DNS_PRAGMA_PUSH'
6038 | DNS_PRAGMA_PUSH
| ^~~~~~~~~~~~~~~
dns.c:6039:17: error: expected ';' before 'static'
6039 | DNS_PRAGMA_QUIET
| ^
| ;
6040 |
6041 | static int dns_nssconf_k2c(int k) {
| ~~~~~~
dns.c:6073:15: error: expected ';' before 'int'
6073 | DNS_PRAGMA_POP
| ^
| ;
......
6076 | int dns_nssconf_loadfile(struct dns_resolv_conf *resconf, FILE *fp) {
| ~~~