[all-commits] [llvm/llvm-project] 3637dc: [clang][CodeGen] Consistently return nullptr Value...
zero9178 via All-commits
all-commits at lists.llvm.org
Mon Oct 24 12:41:27 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3637dc601c4923721a69426187aa69dd6a71a053
https://github.com/llvm/llvm-project/commit/3637dc601c4923721a69426187aa69dd6a71a053
Author: Markus Böck <markus.boeck02 at gmail.com>
Date: 2022-10-24 (Mon, 24 Oct 2022)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGExprScalar.cpp
A clang/test/CodeGen/pr53127.cpp
Log Message:
-----------
[clang][CodeGen] Consistently return nullptr Values for void builtins and scalar initalization
A common post condition of the various visitor functions in CodeGen is that instructions, that do not return any values, simply return a nullptr Value as a sentinel. This has not been the case however for calls to some builtins returning void, as well as for an initializer expression of the form `void()`. This would then lead to ICEs in CodeGen on code relying on nullptr being returned for void values, which is eg. the case for conditional expressions [0].
This patch fixes that by returning nullptr Values for intrinsics known not to return any values as well as for a scalar initializer returning void.
Fixes https://github.com/llvm/llvm-project/issues/53127
[0] https://github.com/llvm/llvm-project/blob/266ec801fb23f9f5f1d61ca9466e0805fbdb78a7/clang/lib/CodeGen/CGExprScalar.cpp#L4849-L4892
Differential Revision: https://reviews.llvm.org/D136548
More information about the All-commits
mailing list