[ 
https://issues.apache.org/jira/browse/TS-5?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leif Hedstrom resolved TS-5.
----------------------------

    Resolution: Fixed

Closing. I'll review TS-3 tomorrow morning, and then hopefully we'll have the 
Ubuntu build all done and taken care of.

(Note that this was reviewed and tested by Bryan Call before checkin, the bug 
just didn't get updated).

> 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
>            Assignee: Leif Hedstrom
>            Priority: Minor
>         Attachments: 
> 0002-TS-5-Avoid-warnings-on-unused-return-values.-This-st.patch, 
> 0003-TS-5-More-fixes-for-Ubuntu-port.patch
>
>
> 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