[all-commits] [llvm/llvm-project] ca148b: [clang][bytecode] Support ObjC blocks (#104551)

Timm Baeder via All-commits all-commits at lists.llvm.org
Mon Aug 19 21:09:14 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ca148b21505e97f07787c13ec00ffc086d4658d0
      https://github.com/llvm/llvm-project/commit/ca148b21505e97f07787c13ec00ffc086d4658d0
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/ByteCodeEmitter.cpp
    M clang/lib/AST/ByteCode/ByteCodeEmitter.h
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Compiler.h
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/Function.cpp
    M clang/lib/AST/ByteCode/Function.h
    M clang/lib/AST/ByteCode/FunctionPointer.h
    M clang/lib/AST/ByteCode/Interp.h
    M clang/test/Sema/block-misc.c
    M clang/test/Sema/block-return.c
    M clang/test/SemaCXX/consteval-cleanup.cpp

  Log Message:
  -----------
  [clang][bytecode] Support ObjC blocks (#104551)

I started out by adding a new pointer type for blocks, and I was fully
prepared to compile their AST to bytecode and later call them.

... then I found out that the current interpreter doesn't support
calling blocks at all. So we reuse `Function` to support sources other
than `FunctionDecl`s and classify `BlockPointerType` as `PT_FnPtr`.



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