[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