[Sema] Fix using old initializer during switch statement transformation.
authorVolodymyr Sapsai <vsapsai@apple.com>
Thu, 21 Sep 2017 17:58:27 +0000 (17:58 +0000)
committerVolodymyr Sapsai <vsapsai@apple.com>
Thu, 21 Sep 2017 17:58:27 +0000 (17:58 +0000)
commitddf524c031947ffd495ff4fda9f78be28b05959f
treebcafdae05a2496cc0283cc90ca1a1ab8b1410ed0
parent4c9e14f6c47a401d35e9e33bab19d5f36b1db2d2
[Sema] Fix using old initializer during switch statement transformation.

It fixes a crash in CodeGen when we are trying to generate code for
initializer expression created before template instantiation, like

    CallExpr '<dependent type>'
    |-UnresolvedLookupExpr '<overloaded function type>' lvalue (ADL) = 'parse'
    `-DeclRefExpr 'Buffer<N>' lvalue ParmVar 'buffer' 'Buffer<N>'

rdar://problem/33888545

Reviewers: rsmith, ahatanak

Reviewed By: ahatanak

Subscribers: aemerson, kristof.beyls, cfe-commits

Differential Revision: https://reviews.llvm.org/D38009

llvm-svn: 313896
clang/lib/Sema/TreeTransform.h
clang/test/SemaCXX/cxx1z-init-statement-template.cpp [new file with mode: 0644]