[clang][Interp] Implement This pointer passing to methods
authorTimm Bäder <tbaeder@redhat.com>
Sun, 18 Sep 2022 18:40:27 +0000 (20:40 +0200)
committerTimm Bäder <tbaeder@redhat.com>
Fri, 14 Oct 2022 08:21:53 +0000 (10:21 +0200)
commit0ddd13acc9e9b820c8f610c9006ef59aef8e5320
tree3f43b45fd0b6ed604fdd3ba1d7fb2bb0c216b1ba
parent1942a2538b86fe55b9723800db950391cc05402b
[clang][Interp] Implement This pointer passing to methods

Implement passing the this pointer to member functions and constructors.
The this pointer is passed via the stack. This changes the functions to
explicitly track whether they have a RVO pointer and a this pointer.

Differential Revision: https://reviews.llvm.org/D134699
12 files changed:
clang/lib/AST/Interp/ByteCodeEmitter.cpp
clang/lib/AST/Interp/ByteCodeExprGen.cpp
clang/lib/AST/Interp/ByteCodeExprGen.h
clang/lib/AST/Interp/ByteCodeStmtGen.cpp
clang/lib/AST/Interp/Disasm.cpp
clang/lib/AST/Interp/EvalEmitter.cpp
clang/lib/AST/Interp/Function.cpp
clang/lib/AST/Interp/Function.h
clang/lib/AST/Interp/Interp.cpp
clang/lib/AST/Interp/InterpFrame.cpp
clang/lib/AST/Interp/InterpFrame.h
clang/test/AST/Interp/records.cpp