[SFN] propagate single-nondebug-stmt's side effects to enclosing list
commit276c438bd46b895ba812d68e8e79323d919c5f2b
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Dec 2017 18:14:06 +0000 (21 18:14 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Dec 2017 18:14:06 +0000 (21 18:14 +0000)
tree1fc2746b579d67b45f98cfb65ac4f0839237650a
parent7e9224311201da016ec3194b33d42d1e660e0c55
[SFN] propagate single-nondebug-stmt's side effects to enclosing list

Statements without side effects, preceded by debug begin stmt markers,
would become a statement list with side effects, although the stmt on
its own would be extracted from the list and remain not having side
effects.  This causes debug info and possibly codegen differences.
This patch fixes it, identifying the situation in which the stmt would
have been extracted from the stmt list, and propagating the side
effects flag from the stmt to the list.

for  gcc/ChangeLog

PR debug/83419
* c-family/c-semantics.c (pop_stmt_list): Propagate side
effects from single nondebug stmt to container list.

for  gcc/testsuite/ChangeLog

PR debug/83419
* gcc.dg/pr83419.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255947 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/c-family/c-semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr83419.c [new file with mode: 0644]