aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard@metafoo.co.uk>2020-03-05 12:20:02 -0800
committerRichard Smith <richard@metafoo.co.uk>2020-03-09 16:57:07 -0700
commit2669e41b7b9c1561a01048d5ed0aba3c62432dfc (patch)
tree16ce7d7ca8956a75fba26e9d51bbf48d90c88823 /clang/lib/Frontend/CompilerInvocation.cpp
parentd93303b783befe92775e5c6910fe9a6600882028 (diff)
downloadllvm-2669e41b7b9c1561a01048d5ed0aba3c62432dfc.zip
llvm-2669e41b7b9c1561a01048d5ed0aba3c62432dfc.tar.gz
llvm-2669e41b7b9c1561a01048d5ed0aba3c62432dfc.tar.bz2
PR45083: Mark statement expressions as being dependent if they contain
dependent constructs. We previously assumed they were neither value- nor instantiation-dependent under any circumstances, which would lead to crashes and other misbehavior. This doesn't match GCC's behavior (where statement expressions appear to be treated as value-dependent if they appear in a dependent context), but seems to be the best thing we can do in the short term: it turns out to be remarkably difficult for us to correctly determine whether we are in a dependent context (and it's not even possible in some cases, such as in a generic lambda where we might not have seen the 'auto' yet). This was previously reverted in 8e4a867 for rejecting some code, but that code was invalid and Clang was previously incorrectly accepting it.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions