Compiler warnings on unused return values
-----------------------------------------

                 Key: TS-5
                 URL: https://issues.apache.org/jira/browse/TS-5
             Project: Traffic Server
          Issue Type: Improvement
          Components: Build
    Affects Versions: 2.0a
            Reporter: Leif Hedstrom
            Priority: Minor


GCC 4.3.3 is rather *insistent* when you ignore results declared with 
warn_unused_result. Cast-to-void doesn't do any good (google it). About 150 of 
those.

fgets() is the primary culprit (~100), then system(), then a smattering of 
random calls (pipe(), write(), ...). It's ugly, you end up needing the old 
"dummy" in some cases, e.g. for something like ink_stack_trace_dump() (what, 
write the problem about stderr onto some other FD? ;-) ) Of course some others 
are genuine.

Turn it off? Slog through it?

--- libinktomi++/ink_stack_trace.cc     (revision 831451)
+++ libinktomi++/ink_stack_trace.cc     (working copy)
@@ -76,13 +76,14 @@
 ink_stack_trace_dump(int sighandler_frame)
 {
   int btl;
+  int dummy;
 
   // Recopy and re-terminate the app name in case it has been trashed.
   char name[256];
   char *msg = " - STACK TRACE: \n";
   ink_strncpy(name, program_name, sizeof(name) - 2);
-  write(2, name, strlen(name));
-  write(2, msg, strlen(msg));
+  dummy = write(2, name, strlen(name));
+  dummy = write(2, msg, strlen(msg));
 
   void *stack[INK_STACK_TRACE_MAX_LEVELS + 1];
   memset(stack, 0, sizeof(stack));

Grepping through a make -k:

TimeConfig.cc:75: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:100: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:142: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:150: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:160: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:165: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:187: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:194: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:202: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:212: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:225: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:227: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:245: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:250: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
TimeConfig.cc:258: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:260: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:261: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:266: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
TimeConfig.cc:267: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
WebMgmtUtils.cc:1582: error: ignoring return value of 'int pipe(int*)', 
declared with attribute warn_unused_result
WebMgmtUtils.cc:1584: error: ignoring return value of 'int pipe(int*)', 
declared with attribute warn_unused_result
WebMgmtUtils.cc:1640: error: ignoring return value of 'ssize_t write(int, const 
void*, size_t)', declared with attribute warn_unused_result
WebHttp.cc:2962: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
WebHttp.cc:4799: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
WebHttpRender.cc:3716: error: ignoring return value of 'int system(const 
char*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:2974: error: ignoring return value of 'int pipe(int*)', 
declared with attribute warn_unused_result
../INKMgmtAPI.cc:3028: error: ignoring return value of 'int pipe(int*)', 
declared with attribute warn_unused_result
../INKMgmtAPI.cc:3146: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3244: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3264: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3340: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3361: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3427: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3478: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
../INKMgmtAPI.cc:3568: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
CoreAPIRemote.cc:221: error: ignoring return value of 'int system(const 
char*)', declared with attribute warn_unused_result
CoreAPIRemote.cc:255: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
APITestCliRemote.cc:2731: error: ignoring return value of 'char* fgets(char*, 
int, FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:2974: error: ignoring return value of 'int pipe(int*)', declared 
with attribute warn_unused_result
INKMgmtAPI.cc:3028: error: ignoring return value of 'int pipe(int*)', declared 
with attribute warn_unused_result
INKMgmtAPI.cc:3146: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3244: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3264: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3340: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3361: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3427: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3478: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
INKMgmtAPI.cc:3568: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
CliMgmtUtils.cc:598: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
CliMgmtUtils.cc:618: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3685: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3770: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3799: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3810: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3815: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3818: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3830: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3867: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3876: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3880: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3883: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3909: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3920: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3925: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
ConfigCmd.cc:3928: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:3940: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:5114: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:5146: error: ignoring return value of 'int getdomainname(char*, 
size_t)', declared with attribute warn_unused_result
ConfigCmd.cc:5184: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:5241: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:6326: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
ConfigCmd.cc:6350: error: ignoring return value of 'char* fgets(char*, int, 
FILE*)', declared with attribute warn_unused_result
UtilCmds.cc:184: error: ignoring return value of 'int system(const char*)', 
declared with attribute warn_unused_result
Main.cc:309: error: ignoring return value of 'char* fgets(char*, int, FILE*)', 
declared with attribute warn_unused_result
Main.cc:1470: error: ignoring return value of 'int chdir(const char*)', 
declared with attribute warn_unused_result
signals.cc:311: error: ignoring return value of 'ssize_t write(int, const 
void*, size_t)', declared with attribute warn_unused_result
signals.cc:311: error: ignoring return value of 'ssize_t write(int, const 
void*, size_t)', declared with attribute warn_unused_result
logstats.cc:2022: error: ignoring return value of 'ssize_t write(int, const 
void*, size_t)', declared with attribute warn_unused_result

--
Stephane Belmon <sbel...@websense.com>
Principal Software Engineer
Websense, inc.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to