[all-commits] [llvm/llvm-project] eaef65: [CIR] Implement handling for CXXConstructLValue ex...

Andy Kaylor via All-commits all-commits at lists.llvm.org
Fri Jun 12 10:26:25 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: eaef650f57900b36751dea4e0383de1e73cdff29
      https://github.com/llvm/llvm-project/commit/eaef650f57900b36751dea4e0383de1e73cdff29
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-06-12 (Fri, 12 Jun 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    A clang/test/CIR/CodeGen/cxx-construct-lvalue.cpp

  Log Message:
  -----------
  [CIR] Implement handling for CXXConstructLValue expressions (#203402)

This implements the handling to emit an l-value for CXXConstructExpr and
CXXTemporaryObjectExpr expressions. This is a simple copy from the
equivalent code in classic codegen and uses existing CIR code for most
of the actual work.

A multi-argument constructor call written with explicit type syntax
produces a CXXTemporaryObjectExpr. Using it as the base of a member
access reaches emitLValue with that expression class. A single-argument
constructor call performs a constructor conversion, so the base of the
member access is a CXXFunctionalCastExpr whose subexpression is a
CXXConstructExpr. emitCastLValue forwards to the subexpression, reaching
emitLValue with the CXXConstructExpr class.



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