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 8e4a8677 for rejecting some code, but that code was invalid and Clang was previously incorrectly accepting it.
Loading
Please sign in to comment