<div dir="ltr"><div>GCC version is 4.8.1</div><div><br></div>I was compiling Git master on my laptop for some testing and saw these warnings:<div><div><br></div><div>cfg/cfg_ctx.c: In function ‘cfg_set_now’:</div><div>cfg/cfg_ctx.c:490:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> group_inst = (cfg_group_inst_t *)translate_pointer((char *)new_array,</div><div> ^</div><div>cfg/cfg_ctx.c:494:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> CFG_GROUP_META(block, group)->array = new_array;</div><div> ^</div><div>cfg/cfg_ctx.c:564:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (block && (CFG_GROUP_META(block, group)->array != CFG_GROUP_META(*cfg_global, group)->array))</div>
<div> ^</div><div>cfg/cfg_ctx.c:564:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div>cfg/cfg_ctx.c:565:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> new_array = CFG_GROUP_META(block, group)->array;</div><div> ^</div><div>cfg/cfg_ctx.c:584:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[i] = CFG_GROUP_META(*cfg_global, group)->array;</div>
<div> ^</div><div>cfg/cfg_ctx.c: In function ‘cfg_commit’:</div><div>cfg/cfg_ctx.c:1125:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (!(CFG_GROUP_META(block, group)->array = </div>
<div> ^</div><div>cfg/cfg_ctx.c:1133:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[replaced_num] = CFG_GROUP_META(*cfg_global, group)->array;</div>
<div> ^</div><div>cfg/cfg_ctx.c:1185:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (CFG_GROUP_META(block, changed->group)->array != CFG_GROUP_META(*cfg_global, changed->group)->array)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1185:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div>cfg/cfg_ctx.c:1190:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> replaced[replaced_num] = CFG_GROUP_META(*cfg_global, group)->array;</div><div> ^</div><div>cfg/cfg_ctx.c:1225:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> if (CFG_GROUP_META(block, group)->array</div><div> ^</div><div>cfg/cfg_ctx.c:1226:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (CFG_GROUP_META(block, group)->array != CFG_GROUP_META(*cfg_global, group)->array)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1226:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div>cfg/cfg_ctx.c:1228:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> shm_free(CFG_GROUP_META(block, group)->array);cfg/cfg_ctx.c: In function ‘cfg_set_now’:</div><div>cfg/cfg_ctx.c:490:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> group_inst = (cfg_group_inst_t *)translate_pointer((char *)new_array,</div><div> ^</div><div>cfg/cfg_ctx.c:494:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> CFG_GROUP_META(block, group)->array = new_array;</div><div> ^</div><div>cfg/cfg_ctx.c:564:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (block && (CFG_GROUP_META(block, group)->array != CFG_GROUP_META(*cfg_global, group)->array))</div>
<div> ^</div><div>cfg/cfg_ctx.c:564:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div>cfg/cfg_ctx.c:565:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> new_array = CFG_GROUP_META(block, group)->array;</div><div> ^</div><div>cfg/cfg_ctx.c:584:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[i] = CFG_GROUP_META(*cfg_global, group)->array;</div>
<div> ^</div><div>cfg/cfg_ctx.c: In function ‘cfg_commit’:</div><div>cfg/cfg_ctx.c:1125:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (!(CFG_GROUP_META(block, group)->array = </div>
<div> ^</div><div>cfg/cfg_ctx.c:1133:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[replaced_num] = CFG_GROUP_META(*cfg_global, group)->array;</div>
<div> ^</div><div>cfg/cfg_ctx.c:1185:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (CFG_GROUP_META(block, changed->group)->array != CFG_GROUP_META(*cfg_global, changed->group)->array)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1185:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div>cfg/cfg_ctx.c:1190:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> replaced[replaced_num] = CFG_GROUP_META(*cfg_global, group)->array;</div><div> ^</div><div>cfg/cfg_ctx.c:1225:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> if (CFG_GROUP_META(block, group)->array</div><div> ^</div><div>cfg/cfg_ctx.c:1226:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (CFG_GROUP_META(block, group)->array != CFG_GROUP_META(*cfg_global, group)->array)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1226:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div>cfg/cfg_ctx.c:1228:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> shm_free(CFG_GROUP_META(block, group)->array);</div><div> ^</div><div>cfg/cfg_ctx.c: In function ‘cfg_add_group_inst’:</div><div>cfg/cfg_ctx.c:1582:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> CFG_GROUP_META(block, group)->array = new_array;</div><div> ^</div><div>cfg/cfg_ctx.c:1583:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> CFG_GROUP_META(block, group)->num++;</div>
<div> ^</div><div>cfg/cfg_ctx.c:1585:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (CFG_GROUP_META(*cfg_global, group)->array) {</div><div> ^</div><div>
cfg/cfg_ctx.c:1594:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[0] = CFG_GROUP_META(*cfg_global, group)->array;</div><div> ^</div><div>cfg/cfg_ctx.c: In function ‘cfg_del_group_inst’:</div>
<div>cfg/cfg_ctx.c:1678:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> CFG_GROUP_META(block, group)->array = new_array;</div><div> ^</div><div>cfg/cfg_ctx.c:1679:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> CFG_GROUP_META(block, group)->num--;</div><div> ^</div><div>cfg/cfg_ctx.c:1681:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (CFG_GROUP_META(*cfg_global, group)->array) {</div>
<div> ^</div><div>cfg/cfg_ctx.c:1692:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (*(char **)(group_inst->vars + var->offset) != NULL)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1710:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (*(char **)(group_inst->vars + var->offset) != NULL)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1712:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[num] = *(char **)(group_inst->vars + var->offset);</div>
<div> ^</div><div>cfg/cfg_ctx.c:1718:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[num] = CFG_GROUP_META(*cfg_global, group)->array;</div>
<div> ^</div><div><br></div><div> ^</div><div>cfg/cfg_ctx.c: In function ‘cfg_add_group_inst’:</div><div>cfg/cfg_ctx.c:1582:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> CFG_GROUP_META(block, group)->array = new_array;</div><div> ^</div><div>cfg/cfg_ctx.c:1583:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> CFG_GROUP_META(block, group)->num++;</div>
<div> ^</div><div>cfg/cfg_ctx.c:1585:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (CFG_GROUP_META(*cfg_global, group)->array) {</div><div> ^</div><div>
cfg/cfg_ctx.c:1594:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[0] = CFG_GROUP_META(*cfg_global, group)->array;</div><div> ^</div><div>cfg/cfg_ctx.c: In function ‘cfg_del_group_inst’:</div>
<div>cfg/cfg_ctx.c:1678:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> CFG_GROUP_META(block, group)->array = new_array;</div><div> ^</div><div>cfg/cfg_ctx.c:1679:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div>
<div> CFG_GROUP_META(block, group)->num--;</div><div> ^</div><div>cfg/cfg_ctx.c:1681:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> if (CFG_GROUP_META(*cfg_global, group)->array) {</div>
<div> ^</div><div>cfg/cfg_ctx.c:1692:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (*(char **)(group_inst->vars + var->offset) != NULL)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1710:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> && (*(char **)(group_inst->vars + var->offset) != NULL)</div>
<div> ^</div><div>cfg/cfg_ctx.c:1712:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[num] = *(char **)(group_inst->vars + var->offset);</div>
<div> ^</div><div>cfg/cfg_ctx.c:1718:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]</div><div> replaced[num] = CFG_GROUP_META(*cfg_global, group)->array;</div>
<div> ^</div></div><div><br></div><div><br></div><div>Regards,</div><div><br></div><div>Peter<br clear="all"><div><br></div>-- <br><div dir="ltr"><div><font face="courier new, monospace">Peter Dunkley</font></div><div><font face="courier new, monospace">Technical Director</font></div>
<div><font face="courier new, monospace">Crocodile RCS Ltd</font></div></div>
</div></div>