[Scummvm-devel] Wii & Gamecube (resp. PowerPC) vs. unaligned memory access
Johannes Schickel
lordhoto at scummvm.org
Sun May 8 18:28:56 CEST 2011
> Regarding 3: According to some googling, the "may_alias" attribute has been
> around since GCC 3.3 (and "packed" since 2.x). Any reason we restrict this
> codepath in endian.h to GCC 4.x ? And out of curiosity, why the trick with
> the packed struct (a comment in endian.h explaining that would be helpful
> for future generations, too ;).
>
As explained in the comments above the code you talk about starting with gcc
4.0, the code generators should output CPU specific instructions for unaligned
data with the code used in that path. Since the idea behind that code path was
back then to use the (probably) more efficient CPU specific instructions it was
only limited to alignment requiring CPU types. The aliasing might have been a
problem which was overlooked (or not occuring!) for the non-alignment code
path.
In fact our READ_FOO/WRITE_FOO inline functions might be unproblemtatic in
some cases:
- They are used on character "arrays" (thus uint8 * etc.), since a character
type is allowed to alias every other type
- They are used on the respective uint16/int16 type in case of READ_UINT16 or
uint32/int32 type in case of READ_UINT32
In any case it might be safer to just not enforce ANSI aliasing rules. So I
have no problem passing -fno-strict-aliasing for g++.
> Anybody know what the status here is with regards to clang, MSVC, ICC, ...
> ?
>
icpc (Intel's C++ compiler) supports non-ansi-aliasing rules too and it
defaults to that. In fact it supports many of the gcc option arguments, thus
when we pass -fstrict-aliasing, it also assumes we conform to ANSI's aliasing
rules. Since we do not pass -fstrict-aliasing (or I am too blind to see where)
all that shouldn't be an issue for icpc, especially since icpc does not
enabled -fstrict-aliasing with optimization levels like g++ does.
Furthermore icc/icpc does not support "__may_alias__", at least it says it's
ignored in the tests I made.
Like g++ icpc supports printing warnings when the aliasing rules might be
violated, but it seems it throws out a whole lot of false positives. At least
it warns about instances like these:
../git_scummvm/base/plugins.cpp(388) (col. 15): warning #2102: violation of
ansi-alias rules
../git_scummvm/base/plugins.cpp(388) (col. 15): warning #2102: violation of
ansi-alias rules
I suspect it might use plain C rules here and thus throw warnings in case C++
has different rules.
Anyway I attached all the warnings I got with icpc and with g++ about possible
code which violates aliasing. I ran g++ with -Wstrict-aliasing=1, so it is the
least accurate version of g++'s warnings about that, but it has better chances
of detecting all possible problems as far as I understand the man page. Both
were made on an amd64 system on Linux.
// Johannes
-------------- next part --------------
../git_scummvm/base/plugins.cpp:625:92: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/base/plugins.cpp:636:90: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/scumm/imuse/imuse.cpp:814:44: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/scumm/imuse/imuse.cpp:901:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/scumm/imuse/imuse.cpp:920:13: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/scumm/player_v1.cpp:357:33: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/scumm/player_v1.cpp:358:35: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/agi/detection.cpp:205:71: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/agi/detection.cpp:480:38: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/agos/detection.cpp:149:75: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/cine/detection.cpp:125:75: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/cruise/detection.cpp:328:83: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/animation.cpp:527:47: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/game.cpp:245:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/game.cpp:418:71: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/game.cpp:720:70: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/game.cpp:997:67: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/game.cpp:1010:66: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/game.cpp:1039:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/script.cpp:710:76: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/draci/script.cpp:1192:70: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/drascula/detection.cpp:313:91: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/gob/detection.cpp:142:71: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/groovie/detection.cpp:243:69: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/hugo/detection.cpp:185:63: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/hugo/detection.cpp:186:66: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/kyra/detection.cpp:122:63: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/kyra/resource_intern.cpp:876:25: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/kyra/items_lol.cpp:243:49: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/kyra/scene_lol.cpp:529:38: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/lastexpress/data/subtitle.cpp:124:60: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/lastexpress/data/subtitle.cpp:126:60: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/lure/detection.cpp:240:75: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/m4/detection.cpp:431:67: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/m4/mads_logic.cpp:178:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/made/detection.cpp:586:75: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/mohawk/detection.cpp:247:83: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/detection.cpp:282:107: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:304:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/parallaction/parser.h:406:77: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/saga/detection.cpp:188:75: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/autoroute.cpp:248:71: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/compact.cpp:182:39: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/compact.cpp:224:44: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/compact.cpp:323:55: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/compact.cpp:363:60: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1166:104: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1215:79: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1345:105: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1354:106: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1356:32: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1363:55: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/control.cpp:1366:47: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/debug.cpp:1330:123: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/debug.cpp:1335:86: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:137:86: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:142:59: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:265:85: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:271:58: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:390:58: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:407:72: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:460:72: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:1417:64: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:1422:64: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:1569:71: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:2061:58: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:2150:58: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:2151:46: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:2222:51: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:2303:55: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/logic.cpp:2520:72: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/mouse.cpp:240:63: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/screen.cpp:552:71: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/screen.cpp:616:51: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/screen.cpp:642:59: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sky/text.cpp:113:62: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword1/control.cpp:1140:31: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword1/control.cpp:1312:58: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword1/sound.cpp:517:14: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/gfx/image/art.cpp:1122:50: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/gfx/image/art.cpp:1182:50: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/gfx/image/art.cpp:1209:50: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/math/geometry_script.cpp:381:95: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:65:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:148:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:219:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:219:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:224:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:224:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:451:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:499:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:524:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:553:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:584:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:610:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:626:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:629:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:667:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:681:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:694:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:717:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:717:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:723:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:723:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:723:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:723:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:753:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:759:12: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:759:12: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:845:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:999:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:1030:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:1082:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lapi.cpp:1082:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lcode.cpp:244:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lcode.cpp:244:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lcode.cpp:252:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lcode.cpp:275:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldebug.cpp:187:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldebug.cpp:252:10: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldo.cpp:54:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldo.cpp:58:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldo.cpp:236:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldo.cpp:410:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ldo.cpp:503:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:25:16: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:35:16: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:46:16: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:61:11: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:62:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:72:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:100:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lfunc.cpp:117:16: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:79:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:79:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:80:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:80:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:164:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:164:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:174:17: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:214:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:214:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:225:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:225:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:234:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:234:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:236:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:236:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:465:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:496:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:496:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:506:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:506:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:519:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:519:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:536:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:536:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:677:17: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:697:17: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:703:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lgc.cpp:703:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lobject.cpp:105:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lobject.cpp:117:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:151:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:151:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:151:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:151:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:199:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:199:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:199:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:199:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:319:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:319:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:319:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:319:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:349:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lparser.cpp:351:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstate.cpp:74:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstate.cpp:75:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstate.cpp:121:16: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstate.cpp:150:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstate.cpp:170:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstring.cpp:67:17: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lstring.cpp:108:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ltable.cpp:361:16: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ltable.cpp:428:3: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/ltable.cpp:531:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lundump.cpp:124:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lundump.cpp:165:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:54:5: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:144:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:305:7: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:431:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:442:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:450:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:450:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:460:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:711:11: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/lua/lvm.cpp:735:9: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pdep.cpp:33:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pdep.cpp:58:15: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:266:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:278:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:285:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:292:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:992:26: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1028:58: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1029:27: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1043:31: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1056:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1074:76: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1075:32: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1396:32: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/sword25/util/pluto/pluto.cpp:1398:27: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/background.cpp:168:32: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/background.cpp:208:36: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/background.cpp:211:39: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/background.cpp:238:38: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/detection.cpp:185:83: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/detection.cpp:339:50: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tinsel/detection.cpp:341:50: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/engines/tsage/detection.cpp:118:80: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/backends/midi/timidity.cpp:317:38: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:577:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:578:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:579:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:580:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:691:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:692:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:693:19: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:694:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1088:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1089:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1090:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1091:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1092:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1093:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1094:28: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/indeo3.cpp:1095:22: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:642:32: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:700:32: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:848:37: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:849:34: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:881:36: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:882:33: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:3121:51: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/video/codecs/qdm2.cpp:3125:76: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
../git_scummvm/audio/softsynth/ym2612.cpp:662:21: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: alias_icpc.bz2
Type: application/x-bzip
Size: 28576 bytes
Desc: not available
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20110508/2067f54d/attachment.bin>
More information about the Scummvm-devel
mailing list