Solaris warning cleanup

VERIFIED FIXED in Q3 11 - Serrano

Status

P3
normal
VERIFIED FIXED
9 years ago
9 years ago

People

(Reporter: lhansen, Assigned: lhansen)

Tracking

unspecified
Q3 11 - Serrano
Sun
All

Details

Attachments

(1 obsolete attachment)

(Assignee)

Description

9 years ago
The Solaris warning situation is out of control.  We can do a lot with little, though.  I have some fixes, will attach them here.
(Assignee)

Comment 1

9 years ago
Created attachment 422965 [details] [diff] [review]
Patch

Remove the bulk of the Solaris warnings:

Add a flag to turn off warnings about locals hiding member variables.

Remove the trailing comma at the end of two enums.  We could disable this warning but since there were only two instances I assume we've been trying to clean up.  I don't know what the current state of C++ is but the trailing comma in enums used to be illegal.
Attachment #422965 - Flags: review?(stejohns)
(Assignee)

Comment 2

9 years ago
These are the remaining warnings in a DD avmshell build:

MMgc/GCHeap.cpp:83: attribute aligned is unsupported and will be skipped..
core/AbcParser.cpp:1998: Types cannot be declared in anonymous union.
core/jit-calls.h:663: Too few arguments in macro _nvprof.
core/jit-calls.h:667: Too few arguments in macro _nvprof.
core/jit-calls.h:683: Too few arguments in macro _nvprof.
core/jit-calls.h:688: Too few arguments in macro _nvprof.
core/jit-calls.h:699: Too few arguments in macro _nvprof.
core/CodegenLIR.cpp:5874: Too few arguments in macro _nvprof.
core/CodegenLIR.cpp:6001: Too few arguments in macro _nvprof.
core/CodegenLIR.cpp:6383: Too few arguments in macro _nvprof.
core/CodegenLIR.cpp:6385: Too few arguments in macro _nvprof.
core/Traits.cpp:1906: Goto failure bypasses a variable (or an exception) initialization.
core/instr.cpp:192: Too few arguments in macro _nvprof.
core/instr.cpp:201: Too few arguments in macro _nvprof.
core/instr.cpp:206: Too few arguments in macro _nvprof.
vprof/vprof.h:241: attribute aligned is unsupported and will be skipped..
vprof/vprof.h:242: attribute aligned is unsupported and will be skipped..
vprof/vprof.cpp:214: Anachronism: Formal argument 1 of type extern "C" void(*)() in call to std::atexit(extern "C" void(*)()) is being passed void(*)().
vprof/vprof.cpp:301: Anachronism: Formal argument 1 of type extern "C" void(*)() in call to std::atexit(extern "C" void(*)()) is being passed void(*)().
nanojit/CodeAlloc.cpp:74: Too few arguments in macro _nvprof.
nanojit/CodeAlloc.cpp:141: Too few arguments in macro _nvprof.
nanojit/CodeAlloc.cpp:237: Too few arguments in macro _nvprof.
nanojit/CodeAlloc.cpp:466: Too few arguments in macro _nvprof.
(Assignee)

Comment 3

9 years ago
The ones in AbcParser.cpp and Traits.cpp are easily fixed and no great cause for concern.

The alignment warnings are curious; unix-platform.h has a case specifically for the SunPro compiler.  The issue could be a compiler version problem.  Needs investigation - the warnings probaby don't matter in vprof but the one in GCHeap.cpp could be important.

The remaining warnings are all related to vprof.  Edwin says vprof has probably never been tested on Solaris.

Comment 4

9 years ago
(In reply to comment #3)
> The alignment warnings are curious; unix-platform.h has a case specifically for
> the SunPro compiler.  The issue could be a compiler version problem.

This is the compiler version that we are using on the buildslaves:
CC: Sun C++ 5.9 SunOS_sparc Patch 124863-17 2009/10/27
(Assignee)

Comment 5

9 years ago
The warning about 'align' in GCHeap.cpp is probably not important - the annotation is on a large global array of byte, which - this being SPARC - is probably aligned on an 8-byte boundary.

The __attribute__ ((whatever)) structure is not documented in the Sun C++ User's Guide, so it may just be some GCC compatibility stuff the compiler understands, warns about, and ignores.  Instead the docs suggest that we use "#pragma align n(name)" where n is the alignment and name is the mangled(!) name of the global variable.  I'm not sure this is really amenable to our AVMPLUS_ALIGN8(name) macro.

(We have an AVMPLUS_ALIGN16 macro too but it's only used in the x86 / x86_64 jits.)
(Assignee)

Updated

9 years ago
Priority: -- → P3
Target Milestone: --- → flash10.2

Comment 6

9 years ago
(In reply to comment #1)
> Remove the trailing comma at the end of two enums.  We could disable this
> warning but since there were only two instances I assume we've been trying to
> clean up.  I don't know what the current state of C++ is but the trailing comma
> in enums used to be illegal.

It's still theoretically illegal, though many compilers allow it.

Updated

9 years ago
Attachment #422965 - Flags: review?(stejohns) → review+
(Assignee)

Comment 7

9 years ago
Comment on attachment 422965 [details] [diff] [review]
Patch

redux changeset:   3707:03f6c0d274d4
Attachment #422965 - Attachment is obsolete: true
(Assignee)

Comment 8

9 years ago
Closing this as "good enough for now".
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED

Comment 9

9 years ago
Yes, going from almost 4,000 lines of output for a compilation of the shell to around 350 lines is "good enough". Thanks for getting this cleaned up.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.