[all-commits] [llvm/llvm-project] d98c34: [clang] fix error recovery ICE on copy elision whe...
Matheus Izvekov via All-commits
all-commits at lists.llvm.org
Fri Sep 3 11:34:22 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d98c34f4d7950f531661ba3f498222ccf6239a0f
https://github.com/llvm/llvm-project/commit/d98c34f4d7950f531661ba3f498222ccf6239a0f
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2021-09-03 (Fri, 03 Sep 2021)
Changed paths:
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/test/CXX/class/class.init/class.copy.elision/p3.cpp
Log Message:
-----------
[clang] fix error recovery ICE on copy elision when returing invalid variable
See PR51708.
Attempting copy elision in dependent contexts with invalid variable,
such as a variable with incomplete type, would cause a crash when attempting
to calculate it's alignment.
The fix is to just skip this optimization on invalid VarDecl, as otherwise this
provides no benefit to error recovery: This functionality does not try to
diagnose anything, it only calculates a flag which will affect where the
variable will be allocated during codegen.
Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>
Reviewed By: rtrieu
Differential Revision: https://reviews.llvm.org/D109191
More information about the All-commits
mailing list