diff options
author | Artem Dergachev <artem.dergachev@gmail.com> | 2019-03-26 00:36:53 +0000 |
---|---|---|
committer | Artem Dergachev <artem.dergachev@gmail.com> | 2019-03-26 00:36:53 +0000 |
commit | bef9f8aac31405a2ac069321ad6ab2020d500bad (patch) | |
tree | a3094a0ec7b213a3f9688cbdc273303101994675 /lldb/source/Plugins/ScriptInterpreter/Python | |
parent | 210949a221fc7864c8330cb6763c62c88ecebc7f (diff) | |
download | bcm5719-llvm-bef9f8aac31405a2ac069321ad6ab2020d500bad.tar.gz bcm5719-llvm-bef9f8aac31405a2ac069321ad6ab2020d500bad.zip |
[CFG] [analyzer] pr41142: C++17: Skip transparent InitListExprs in ExprEngine.
r356634 didn't fix all the problems caused by r356222 - even though simple
constructors involving transparent init-list expressions are now evaluated
precisely, many more complicated constructors aren't, for other reasons.
The attached test case is an example of a constructor that will never be
evaluated precisely - simply because there isn't a constructor there (instead,
the program invokes run-time undefined behavior by returning without a return
statement that should have constructed the return value).
Fix another part of the problem for such situations: evaluate transparent
init-list expressions transparently, so that to avoid creating ill-formed
"transparent" nonloc::CompoundVals.
Differential Revision: https://reviews.llvm.org/D59622
llvm-svn: 356969
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions