[all-commits] [llvm/llvm-project] 5777c0: [clang] Perform implicit lvalue-to-rvalue cast wit...

Timm Bäder via All-commits all-commits at lists.llvm.org
Wed Sep 7 22:31:54 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5777c05d16098cb690decef95ad6c20c695a5fa9
      https://github.com/llvm/llvm-project/commit/5777c05d16098cb690decef95ad6c20c695a5fa9
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/AST/Interp/literals.cpp
    M clang/unittests/AST/EvaluateAsRValueTest.cpp

  Log Message:
  -----------
  [clang] Perform implicit lvalue-to-rvalue cast with new interpreter

The EvaluateAsRValue() documentation mentions that an implicit
lvalue-to-rvalue cast is being performed if the result is an lvalue.
However, that was not being done if the new constant interpreter was in
use.

Just always do it.

Differential Revision: https://reviews.llvm.org/D132136


  Commit: 8e41e6a4eafa2b667ec37ece33a85493fe0156c2
      https://github.com/llvm/llvm-project/commit/8e41e6a4eafa2b667ec37ece33a85493fe0156c2
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/lib/AST/Interp/EvalEmitter.cpp
    M clang/lib/AST/Interp/Function.h
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/InterpFrame.h
    M clang/lib/AST/Interp/Opcodes.td
    M clang/test/AST/Interp/cxx20.cpp
    A clang/test/AST/Interp/functions.cpp
    M clang/utils/TableGen/ClangOpcodesEmitter.cpp

  Log Message:
  -----------
  [clang][Interp] Implement function calls

Add Call() and CallVoid() ops and use them to call functions. Only
FunctionDecls are supported for now.

Differential Revision: https://reviews.llvm.org/D132286


  Commit: 95e6a407d92bbb1d977351cc6ee39aa990ed50c5
      https://github.com/llvm/llvm-project/commit/95e6a407d92bbb1d977351cc6ee39aa990ed50c5
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/Boolean.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Opcodes.td
    M clang/test/AST/Interp/literals.cpp

  Log Message:
  -----------
  [clang][Interp] Implement IntegralToBoolean casts

Redo how we do IntegralCasts and implement IntegralToBoolean casts using
the already existing cast op.

Differential Revision: https://reviews.llvm.org/D132739


  Commit: 4d700ffe67be03220487604785ee2049570ba6db
      https://github.com/llvm/llvm-project/commit/4d700ffe67be03220487604785ee2049570ba6db
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/lib/AST/Interp/Opcodes.td
    A clang/test/AST/Interp/arrays.cpp

  Log Message:
  -----------
  [clang][Interp] Implement ImplicitValueInitExprs

Take the existing Zero opcode and emit it.

Differential Revision: https://reviews.llvm.org/D132829


  Commit: 5c4dbff0b6c3943dfbcba930986e23e015df97c5
      https://github.com/llvm/llvm-project/commit/5c4dbff0b6c3943dfbcba930986e23e015df97c5
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/test/AST/Interp/functions.cpp

  Log Message:
  -----------
  [clang][Interp] Handle SubstNonTypeTemplateParmExprs

Differential Revision: https://reviews.llvm.org/D132831


  Commit: aa7c5c9c4e5e56fc668b055ce40c1a65fae1e38e
      https://github.com/llvm/llvm-project/commit/aa7c5c9c4e5e56fc668b055ce40c1a65fae1e38e
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeStmtGen.cpp
    M clang/lib/AST/Interp/Function.h
    M clang/test/AST/Interp/cxx20.cpp

  Log Message:
  -----------
  [clang][Interp] Handle missing local initializers better

This is illegal in a constexpr context. We can already figure that out,
but we'd still run into an assertion later on when trying to visit the
missing initializer or run the invalid function.

Differential Revision: https://reviews.llvm.org/D132832


  Commit: 3a7d476087df175b6fe056e7c20ac9707019e92b
      https://github.com/llvm/llvm-project/commit/3a7d476087df175b6fe056e7c20ac9707019e92b
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/lib/AST/Interp/ByteCodeStmtGen.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/lib/AST/Interp/Program.cpp
    M clang/test/AST/Interp/arrays.cpp

  Log Message:
  -----------
  [clang][Interp] Implement array initializers and subscript expressions

Differential Revision: https://reviews.llvm.org/D132727


  Commit: 0da7e409e0cb09ea955d9751d2601449244cc53f
      https://github.com/llvm/llvm-project/commit/0da7e409e0cb09ea955d9751d2601449244cc53f
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/Context.cpp
    M clang/lib/AST/Interp/Context.h

  Log Message:
  -----------
  [clang][Interp][NFC] Context::classify() can be const


  Commit: 651f4ce7b186079e78de20d7de903112ea78d846
      https://github.com/llvm/llvm-project/commit/651f4ce7b186079e78de20d7de903112ea78d846
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M clang/lib/AST/Interp/Integral.h

  Log Message:
  -----------
  [clang][Interp][NFC] Use constexpr if when possible in Integral.h


Compare: https://github.com/llvm/llvm-project/compare/f48931f3a86d...651f4ce7b186


More information about the All-commits mailing list