[all-commits] [llvm/llvm-project] 5d800d: [clang] Fix type of the MaterializeTemporaryExpr w...

Eli Friedman via All-commits all-commits at lists.llvm.org
Wed Jul 8 15:57:07 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5d800d3285c1dd8cd438346d5256c35528d744c4
      https://github.com/llvm/llvm-project/commit/5d800d3285c1dd8cd438346d5256c35528d744c4
  Author: Eli Friedman <efriedma at qti.qualcomm.com>
  Date:   2026-07-08 (Wed, 08 Jul 2026)

  Changed paths:
    M clang/lib/Sema/SemaInit.cpp
    A clang/test/AST/ast-dump-init.cpp

  Log Message:
  -----------
  [clang] Fix type of the MaterializeTemporaryExpr with incomplete array type. (#187618)

This affects constructs like `int f(int (&&x)[]); int z = f({1});`.

A temporary logically can't have incomplete type: if we don't know the
type, we can't materialize it. Rearrange the casts to make more sense.

I'm not sure this has any practical effects at the moment due to the way
we use skipRValueSubobjectAdjustments; we usually end up ignoring the
type of the MaterializeTemporaryExpr.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list