mirror of git://gcc.gnu.org/git/gcc.git
re PR middle-end/71907 (missing buffer overflow warnings with -flto)
2016-07-19 Richard Biener <rguenther@suse.de> PR lto/71907 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks with an abstract origin that is not an inlined function outer scope add a self-reference as abstract origin. * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise. From-SVN: r238456
This commit is contained in:
parent
a8f7a89526
commit
f6918a8b63
|
|
@ -1,3 +1,11 @@
|
||||||
|
2016-07-19 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR lto/71907
|
||||||
|
* lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
|
||||||
|
with an abstract origin that is not an inlined function outer
|
||||||
|
scope add a self-reference as abstract origin.
|
||||||
|
* tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
|
||||||
|
|
||||||
2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
|
2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||||
|
|
||||||
PR target/71493
|
PR target/71493
|
||||||
|
|
|
||||||
|
|
@ -890,12 +890,16 @@ DFS::DFS_write_tree_body (struct output_block *ob,
|
||||||
/* Follow BLOCK_ABSTRACT_ORIGIN for the limited cases we can
|
/* Follow BLOCK_ABSTRACT_ORIGIN for the limited cases we can
|
||||||
handle - those that represent inlined function scopes.
|
handle - those that represent inlined function scopes.
|
||||||
For the drop rest them on the floor instead of ICEing
|
For the drop rest them on the floor instead of ICEing
|
||||||
in dwarf2out.c. */
|
in dwarf2out.c, but keep the notion of whether the block
|
||||||
|
is an inlined block by refering to itself for the sake of
|
||||||
|
tree_nonartificial_location. */
|
||||||
if (inlined_function_outer_scope_p (expr))
|
if (inlined_function_outer_scope_p (expr))
|
||||||
{
|
{
|
||||||
tree ultimate_origin = block_ultimate_origin (expr);
|
tree ultimate_origin = block_ultimate_origin (expr);
|
||||||
DFS_follow_tree_edge (ultimate_origin);
|
DFS_follow_tree_edge (ultimate_origin);
|
||||||
}
|
}
|
||||||
|
else if (BLOCK_ABSTRACT_ORIGIN (expr))
|
||||||
|
DFS_follow_tree_edge (expr);
|
||||||
/* Do not follow BLOCK_NONLOCALIZED_VARS. We cannot handle debug
|
/* Do not follow BLOCK_NONLOCALIZED_VARS. We cannot handle debug
|
||||||
information for early inlined BLOCKs so drop it on the floor instead
|
information for early inlined BLOCKs so drop it on the floor instead
|
||||||
of ICEing in dwarf2out.c. */
|
of ICEing in dwarf2out.c. */
|
||||||
|
|
|
||||||
|
|
@ -807,14 +807,17 @@ write_ts_block_tree_pointers (struct output_block *ob, tree expr, bool ref_p)
|
||||||
|
|
||||||
/* Stream BLOCK_ABSTRACT_ORIGIN for the limited cases we can handle - those
|
/* Stream BLOCK_ABSTRACT_ORIGIN for the limited cases we can handle - those
|
||||||
that represent inlined function scopes.
|
that represent inlined function scopes.
|
||||||
For the rest them on the floor instead of ICEing in dwarf2out.c. */
|
For the rest them on the floor instead of ICEing in dwarf2out.c, but
|
||||||
|
keep the notion of whether the block is an inlined block by refering
|
||||||
|
to itself for the sake of tree_nonartificial_location. */
|
||||||
if (inlined_function_outer_scope_p (expr))
|
if (inlined_function_outer_scope_p (expr))
|
||||||
{
|
{
|
||||||
tree ultimate_origin = block_ultimate_origin (expr);
|
tree ultimate_origin = block_ultimate_origin (expr);
|
||||||
stream_write_tree (ob, ultimate_origin, ref_p);
|
stream_write_tree (ob, ultimate_origin, ref_p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
stream_write_tree (ob, NULL_TREE, ref_p);
|
stream_write_tree (ob, (BLOCK_ABSTRACT_ORIGIN (expr)
|
||||||
|
? expr : NULL_TREE), ref_p);
|
||||||
/* Do not stream BLOCK_NONLOCALIZED_VARS. We cannot handle debug information
|
/* Do not stream BLOCK_NONLOCALIZED_VARS. We cannot handle debug information
|
||||||
for early inlined BLOCKs so drop it on the floor instead of ICEing in
|
for early inlined BLOCKs so drop it on the floor instead of ICEing in
|
||||||
dwarf2out.c. */
|
dwarf2out.c. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue