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