[Python-Dev] Compiler warnings for 64-bit portability problems (original) (raw)

Neal Norwitz nnorwitz at gmail.com
Sun Jan 8 01:58:30 CET 2006


On 1/6/06, von Löwis Martin <Martin.vonLoewis at hpi.uni-potsdam.de> wrote:

I just found that the intel compiler (icc 9.0) also supports compiler warnings for portability problems.

Cool. Thanks for the info. It would be nice if Intel would provide Python developers with a permanent icc license for Python. Can anyone help with that?

4. don't try the Intel install.sh, it won't work (atleast, it didn't work for me)

I don't follow directions very well (I'm also a doubter), so I had to try it myself. :-) It worked for me on gentoo amd64 non-root install.

I needed to set LD_LIBRARY_PATH to ~/intel/cce/9.0/lib, but otherwise it was pretty painless.

This worked: CC=icc ./configure --without-cxx But I think this should work too: CC=icc CXX=icc ./configure

I've fixed a bunch of problems on HEAD. I think I will move to ssize branch since that will be a much bigger help. I have some outstanding modifications, but here are the results of make: http://python.org/neal/icc-warnings.txt

Summary (type, warning count, description):

warning.#170: 2 pointer points outside of underlying object (obmalloc.c PT(0)) warning.#188: 14 enumerated type mixed with another type warning.#810: 1478 conversion from "long" to "int" may lose significant bits warning.#1418: 137 external definition with no prior declaration warning.#1419: 53 external declaration in primary source file warning.#1684: 285 conversion from pointer to same-sized integral type (potential portability problem) -- all due to offsetof()

remark.#111: 121 statement is unreachable remark.#177: 1 func "marshal_write_mod" was declared but never referenced remark.#181: 9 arg is incompatible w/corresponding format string conversion remark.#279: 862 controlling expression is constant remark.#593: 17 variable set, but not used remark.#869: 1317 parameter not used remark.#981: 130 operands are evaluated in unspecified order remark.#1469: 10 "cc" clobber ignored (wtf? use of htons() causes this msg) remark.#1572: 111 floating-point equality/inequality comparisons are unreliable remark.#1599: 30 declaration hides parameter

Note there are a lot of warning even when we mask off the higher bits (e.g., x = y & 0xff still generats a warning if x is a char).

n



More information about the Python-Dev mailing list