[ 
https://issues.apache.org/jira/browse/STDCXX-487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513391
 ] 

Martin Sebor commented on STDCXX-487:
-------------------------------------

Here's an enhanced test case showing that some warnings can be silenced by 
casting the expression to bool: 

$ cat t.cpp && icc -V t.cpp
int main ()
{
    ("") ? (void)0 : (void)1;
    ((bool)"") ? (void)0 : (void)1;
    (bool ("")) ? (void)0 : (void)1;
    (static_cast<bool>("")) ? (void)0 : (void)1;
}
Intel(R) C Compiler for applications running on Intel(R) 64, Version 10.0    
Build 20070613 Package ID: l_cc_c_10.0.025
Copyright (C) 1985-2007 Intel Corporation.  All rights reserved.

Edison Design Group C/C++ Front End, version 3.8 (Jun 13 2007 18:48:37)
Copyright 1988-2006 Edison Design Group, Inc.

t.cpp(3): warning #279: controlling expression is constant
      ("") ? (void)0 : (void)1;
      ^

GNU ld version 2.15.92.0.2 20040927


> [Intel C++/Linux] bogus/inconsistent warning #279 on !"..."
> -----------------------------------------------------------
>
>                 Key: STDCXX-487
>                 URL: https://issues.apache.org/jira/browse/STDCXX-487
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: External
>         Environment: Intel C++ 9 and 10/Linux
>            Reporter: Martin Sebor
>
> From https://premier.intel.com/premier/IssueDetail.aspx?IssueID=431380:
> The warning below is not justified and should not be issued. It produces 
> noise for the common idiom: assert(!"...") used, for example, in case and 
> switch statements to indicate unhandled cases. (I believe more recent 
> versions of the EDG front end than the one used by icc 9 do not issue the 
> warning anymore.)
> $ cat t.cpp && icc -V t.cpp
> int main (int argc, char**)
> {
> (!1 == argc) ? (void)0 : (void)0;
> (!"" == argc) ? (void)0 : (void)0;
> }
> Intel(R) C Compiler for Intel(R) EM64T-based applications, Version 9.1 Build 
> 20070320 Package ID: l_cc_c_9.1.049
> Copyright (C) 1985-2007 Intel Corporation. All rights reserved.
> Edison Design Group C/C++ Front End, version 3.6 (Mar 22 2007 02:18:08)
> Copyright 1988-2005 Edison Design Group, Inc.
> t.cpp(4): warning #279: controlling expression is constant
> (!"" == argc) ? (void)0 : (void)0;
> ^
> GNU ld version 2.15.92.0.2 20040927

-- 
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