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