[ 
https://issues.apache.org/jira/browse/STDCXX-695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12559342#action_12559342
 ] 

Martin Sebor commented on STDCXX-695:
-------------------------------------

Dennis' comments:

-------- Original Message --------
Subject: Re: aCC 6.15 bogus remark #3348
Date: Fri, 11 Jan 2008 18:03:44 -0800 (PST)
From: Dennis Handly <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED], [EMAIL PROTECTED]
CC: [EMAIL PROTECTED]

>From: Martin Sebor <[EMAIL PROTECTED]>
>We get over 800 of these remarks in each of our builds. I haven't
>analyzed them all but I did reduce one to a test case showing that
>at least in some instances the warning is wrong.

I've seen cases where it was right but we know what we are doing.  :-)
And a few broken cases.

struct S { enum { X }; };
template <class T>
int foo() {
     const int X = 1;
     return X;
}
int main() { return foo<int>(); }
aCC: HP C/aC++ B3910B A.06.14 [Feb 22 2007]
line 4: remark #3348-D: declaration hides constant "S::X" (declared at line 1)
       const int X = 1;
      detected during instantiation of "int foo<T>() [with T=int]" at line 8

So this is an enum X that is in struct S, not even in scope here.

We released a new compiler A.06.15 in Sept, with a patch A.06.16 in Dec.

>From: "Xiaohua zhang" <[EMAIL PROTECTED]>
>This bug has been fixed in ToT, you can try next week's weekly tarball to 

Martin doesn't get them.

>From: Martin Sebor <[EMAIL PROTECTED]>
>Btw., I just counted the number of remarks we get in stdcxx builds
>with aCC 6.15 and put together a breakdown. You might find the
>results interesting:
   http://issues.apache.org/jira/browse/STDCXX-695

Well, interesting in that you haven't figured out that you should just
suppress some of them.  ;-)

You do know that there is a command "cadvise report logs ..." that
can produce a nice summary??

#2177-D: 8 variable was declared but never referenced
#2550-D: 28 variable was set but never used
#2826-D: 44 parameter was never referenced

Suppress with +W2177,2550,2826.

#2181-D: 9 argument is incompatible with corresponding format string conversion

This is usually your bug.

#3235-D: 1 nonstandard conversion between pointer to function and pointer to 
data

This isn't legal.  You must use a type pun, or bigger hammer.

#3348-D: 799 declaration hides constant or variable

As you said, most are bogus.

#4219-D: 250 64 bit migration: type conversion may truncate value
#4298-D: 124 64 bit migration: addition result could be truncated before cast 
to bigger sized type
#4299-D: 20 64 bit migration: multiply result could be truncated before cast to 
bigger sized type

Probably not helpful.  We have removed it from +wlint.

#4244-D: 4 extern storage class used with a function definition

A useless coding standard that no right thinking developer would want.
We are thinking of hiding it.

#4296-D: 695 arithmetic operation on boolean type
#4297-D: 1220 boolean value is used as array index
Another two that might not be useful.

#4282-D: 34 virtual function is called from constructor/destructor

A comment in that these aren't virtual.

#4300-D: 60 Overflow while computing constant in left shift operation

Probably a bug.

#4315-D: 60 while loop without body, did you insert an extra ';'?

An attempt to find typos.


> [HP aCC 6.15] lots of noise due to compiler remarks
> ---------------------------------------------------
>
>                 Key: STDCXX-695
>                 URL: https://issues.apache.org/jira/browse/STDCXX-695
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 4.2.0
>         Environment: HP aCC 6.15
>            Reporter: Martin Sebor
>
> The latest HP compiler on IPF issues lots of remarks, making our builds 
> exceedingly noisy.
> Here's a breakdown of all the remarks we get in a recent 12S build along with 
> the number of each:
> F=hpux-11.31-ia64-acc-6.15-12S-610576-log; \
> R=`sed -n "s/.*: remark \(#[1-9][0-9]*-.\): .*/\1/p" $F | sort | uniq`; \
> for r in $R; do \
>     n=`grep ": remark $r: " $F | wc -l`; echo $r: $n; \
> done
> #2177-D: 8   variable was declared but never referenced
> #2181-D: 9   argument is incompatible with corresponding format string 
> conversion
> #2550-D: 28   variable was set but never used
> #2826-D: 44   parameter was never referenced
> #2961-D: 1   use of a type with no linkage to declare a variable with linkage
> #3235-D: 1   nonstandard conversion between pointer to function and pointer 
> to data
> #3348-D: 799   declaration hides constant or variable
> #4217-D: 3   comparison of enum (represented as an unsigned integer) with zero
> #4219-D: 250   64 bit migration: type conversion may truncate value
> #4234-D: 28   type conversion may lose significant bits
> #4239-D: 2   case type mismatch with switch expression type
> #4244-D: 4   extern storage class used with a function definition
> #4248-D: 4   comparison of unsigned integer with a signed integer
> #4271-D: 780   type conversion may lose sign
> #4273-D: 18   floating-point equality and inequality comparisons may be 
> inappropriate due to roundoff common in floating-point computation
> #4278-D: 3   the subexpression in logical expression is a constant
> #4282-D: 34   virtual function is called from constructor/destructor
> #4283-D: 3   access global variable in constructor
> #4296-D: 695   arithmetic operation on boolean type
> #4297-D: 1220   boolean value is used as array index
> #4298-D: 124   64 bit migration: addition result could be truncated before 
> cast to bigger sized type
> #4299-D: 20   64 bit migration: multiply result could be truncated before 
> cast to bigger sized type
> #4300-D: 60   Overflow while computing constant in left shift operation
> #4315-D: 60   while loop without body, did you insert an extra ';'?

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