[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 501506. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142630/new/ https://reviews.llvm.org/D142630 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/C

[PATCH] D142617: [clang][Interp] Check This pointer without creating InterpFrame

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 501502. tbaeder added a comment. Added an `aligned()` assertion and renamed the old `peek(unsigned Offset)` returning a `void*` to `peekData()`, so both `peek` overloads are now public member functions. CHANGES SINCE LAST ACTION https://reviews.llvm.org/

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG8d09bd616be8: [clang][Interp] This pointers are writable in de-/constructors (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136751/new/

[PATCH] D141472: [clang][Interp] Add function pointers

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141472/new/ https://reviews.llvm.org/D141472 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D141591: [clang][Interp] Properly identify not-yet-defined functions

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1486 bool IsBeingCompiled = Func && !Func->isFullyCompiled(); - bool WasNotDefined = Func && !Func->hasBody(); + bool WasNotDefined = Func && !Func->isConstexpr() && !Func->hasBody(); -

[PATCH] D142617: [clang][Interp] Check This pointer without creating InterpFrame

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142617/new/ https://reviews.llvm.org/D142617 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142630/new/ https://reviews.llvm.org/D142630 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D143334: [clang][Interp] Fix diagnosing uninitialized ctor record arrays

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143334/new/ https://reviews.llvm.org/D143334 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D143466: [clang][Interp] Fix initializing base class members

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143466/new/ https://reviews.llvm.org/D143466 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D143480: [clang][Interp] Fix derived-to-base casts for >1 levels

2023-03-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143480/new/ https://reviews.llvm.org/D143480 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-02-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 501380. tbaeder marked 2 inline comments as done. tbaeder added a comment. Added the new test case. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136751/new/ https://reviews.llvm.org/D136751 Files: clang/lib/AST/Interp/Function.h clang/lib/AST/

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-02-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136751/new/ https://reviews.llvm.org/D136751 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D138275: [clang][Interp] Avoid leaking init maps of local primitive arrays

2023-02-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138275/new/ https://reviews.llvm.org/D138275 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D138802: [clang][Interp] Implement DecompositionDecls

2023-02-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138802/new/ https://reviews.llvm.org/D138802 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D140803: [clang][Interp] Implement C++ Range-for loops

2023-02-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140803/new/ https://reviews.llvm.org/D140803 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D144943: [clang][Interp] Implement bitcasts (WIP)

2023-02-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:92 + // FIXME: Diagnostics. + if (*ToT == PT_Ptr) +return false; One of the problems here is that right now, //all// diagnostics are emitted during interpretation time. =

[PATCH] D144943: [clang][Interp] Implement bitcasts (WIP)

2023-02-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafi.ahmad. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This implements bitcasts by traversing the poi

[PATCH] D144272: [clang][Interp] Ignore StaticAssertDecls

2023-02-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D144272/new/ https://reviews.llvm.org/D144272 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D144457: [clang][Interp] Handle global composite temporaries

2023-02-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Thinking about this some more, the new `Pointer::toRValue()` is probably just the same thing we're already doing in `EvalEmitter::emtiRetValue()`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D144457/new/ https://reviews.l

[PATCH] D144457: [clang][Interp] Handle global composite temporaries

2023-02-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. We only did this for primitive temporaries.

[PATCH] D144272: [clang][Interp] Ignore StaticAssertDecls

2023-02-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, tahonermann, erichkeane, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. They have already been handled before, but we can

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-02-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.cpp:264-270 + const Function *Func = S.Current->getFunction(); + if (Func && Func->isConstructor()) { +// The This pointer is writable in constructors, even if +// isConst() returns true. +if (Pt

[PATCH] D144164: [clang][Interp] Handle PtrMemOps

2023-02-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is a result of the discussions in https://revi

[PATCH] D144136: Add a "remark" to report on array accesses

2023-02-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. What would the information be useful for? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D144136/new/ https://reviews.llvm.org/D144136 ___ cfe-commits mailing list cfe-commits@list

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-02-14 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:1560 + // is the furthest we might go up in the hierarchy. + ThisPtr = ThisPtr.getDeclPtr(); +} I think this test case was from the function pointer review, but this fixes: ```

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-02-14 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 497276. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142630/new/ https://reviews.llvm.org/D142630 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/Context.h clang/lib/AST/Interp/Descriptor

[PATCH] D143630: [clang] update test case

2023-02-14 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Added Nikita as reviewer, since this is about opaque pointers. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143630/new/ https://reviews.llvm.org/D143630 ___ cfe-commits mailing

[PATCH] D141472: [clang][Interp] Add function pointers

2023-02-08 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D141472#4107008 , @aaron.ballman wrote: > In D141472#4106091 , @tbaeder wrote: > >>> Member pointers (for functions or for data) are weird in that they're not >>> the typical pointer

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-02-08 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 495789. tbaeder set the repository for this revision to rG LLVM Github Monorepo. tbaeder added a comment. Fixed all the new test cases by adding a new `CallVirt` opcode and only using that if appropriate. Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D141472: [clang][Interp] Add function pointers

2023-02-08 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 495786. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141472/new/ https://reviews.llvm.org/D141472 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/Descriptor.cpp clang/lib/AST/Interp/Funct

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-02-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Hmm, this doesn't work if the callee is somewhere in between the path from the dynamic to the static type, e.g. struct A { virtual constexpr int foo() const { return 1; } }; struct B : A { virtual constexpr int foo() const { return A::foo(); } };

[PATCH] D143480: [clang][Interp] Fix derived-to-base casts for >1 levels

2023-02-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. The GetPtrBasePop op we were using only works for

[PATCH] D143466: [clang][Interp] Fix initializing base class members

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. For the given test case, we were trying to initia

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.cpp:264-270 + const Function *Func = S.Current->getFunction(); + if (Func && Func->isConstructor()) { +// The This pointer is writable in constructors, even if +// isConst() returns true. +if (Pt

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 495147. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136751/new/ https://reviews.llvm.org/D136751 Files: clang/lib/AST/Interp/Function.h clang/lib/AST/Interp/Interp.cpp clang/lib/AST/Interp/Pointer.h

[PATCH] D142277: [clang][Interp] Clear metadata when destroying locals

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder abandoned this revision. tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/EvalEmitter.cpp:260-261 +// local variable is used after being destroyed. +InlineDescriptor &ID = *reinterpret_cast(B->rawData()); +

[PATCH] D142617: [clang][Interp] Check This pointer without creating InterpFrame

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142617/new/ https://reviews.llvm.org/D142617 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 495059. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142630/new/ https://reviews.llvm.org/D142630 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/Context.h clang/lib/AST/Interp/Function.h

[PATCH] D141472: [clang][Interp] Add function pointers

2023-02-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. > Member pointers (for functions or for data) are weird in that they're not the > typical pointer width. They're actually a pointer and between one-to-three > other fields in a trenchcoat, depending on the circumstances. You generally > need the function pointer, but yo

[PATCH] D143334: [clang][Interp] Fix diagnosing uninitialized ctor record arrays

2023-02-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. No idea why I used `isa(ElemType.getTypePtr())` her

[PATCH] D142606: Lazyly initialize uncommon toolchain detector

2023-02-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/Driver/ToolChains/LazyDetector.h:36 +} +return &Detector.value(); + } Is the `.value()` here permitted? AFAIK the convention is to always use `operator*`. And I think @aaron.ballman would tell you to

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-02-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142630/new/ https://reviews.llvm.org/D142630 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D140723: [clang][Interp] Only check constructors for global variables

2023-02-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140723/new/ https://reviews.llvm.org/D140723 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D138802: [clang][Interp] Implement DecompositionDecls

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 2 inline comments as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:34-35 + virtual ~DeclScope() override { this->emitDestruction(); } + void addExtended(const Scope::Local &Local) override { aaron.b

[PATCH] D137070: [clang][Interp] Support destructors

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 494660. tbaeder marked an inline comment as done. tbaeder added a comment. No surprises I think. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137070/new/ https://reviews.llvm.org/D137070 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/li

[PATCH] D140874: [clang][Interp] Support pointer types in compound assignment operations

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG4a2c4acb9869: [clang][Interp] Support pointers in compound assignment operators (authored by tbaeder). Changed prior to commit: https://reviews.ll

[PATCH] D142694: [clang][Interp] Only generate disassembly in debug builds

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG60dcc70e48fa: [clang][Interp] Only generate disassembly in debug builds (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D142694: [clang][Interp] Only generate disassembly in debug builds

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142694/new/ https://reviews.llvm.org/D142694 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D136751: [clang][Interp] This pointers are writable in constructors

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136751/new/ https://reviews.llvm.org/D136751 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D136017: [clang][Interp] Materializing primitive temporaries

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG7bb615ea0ec0: [clang][Interp] Materializing primitive temporaries (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D136017

[PATCH] D141858: [clang][Interp] Fix Pointer::toAPValue() for expressions

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGf63138d44429: [clang][Interp] Fix Pointer::toAPValue() for expressions (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE L

[PATCH] D141591: [clang][Interp] Properly identify not-yet-defined functions

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/functions.cpp:158-174 +struct F { + constexpr bool ok() const { +return okRecurse(); + } + constexpr bool okRecurse() const { +return true; + } aaron.ballman wrote: > Should we have some

[PATCH] D137070: [clang][Interp] Support destructors

2023-02-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1915-1916 + +if (const CXXDestructorDecl *Dtor = ElemRecord->getDestructor(); +Dtor && !Dtor->isTrivial()) { + for (size_t I = 0, E = Des

[PATCH] D138802: [clang][Interp] Implement DecompositionDecls

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 494517. tbaeder marked 7 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138802/new/ https://reviews.llvm.org/D138802 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/In

[PATCH] D142448: [clang][Interp] Handle TypeTraitExprs

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 494504. tbaeder marked an inline comment as done. tbaeder added a comment. Nope, no surprises. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142448/new/ https://reviews.llvm.org/D142448 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/

[PATCH] D142277: [clang][Interp] Clear metadata when destroying locals

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/EvalEmitter.cpp:260-261 +// local variable is used after being destroyed. +InlineDescriptor &ID = *reinterpret_cast(B->rawData()); +std::memset(&ID, 0, sizeof(InlineDescriptor)); } aar

[PATCH] D138802: [clang][Interp] Implement DecompositionDecls

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 494235. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138802/new/ https://reviews.llvm.org/D138802 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/I

[PATCH] D138802: [clang][Interp] Implement DecompositionDecls

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1417-1418 + assert(!BD->getHoldingVar()); // FIXME + if (!this->allocateVariable(BD, BD->getBinding())) +return false; +} aaron.ballman wrote: > tbaeder wrot

[PATCH] D137070: [clang][Interp] Support destructors

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137070/new/ https://reviews.llvm.org/D137070 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D142448: [clang][Interp] Handle TypeTraitExprs

2023-02-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142448/new/ https://reviews.llvm.org/D142448 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D141858: [clang][Interp] Fix Pointer::toAPValue() for expressions

2023-01-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. It's a bit involved since without working `MaterializeTemporaryExpr`s, this code is a no-op, but without this code, the MTEs don't properly work, usually. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141858/new/ https://reviews.llvm.org/D141858 __

[PATCH] D140874: [clang][Interp] Support pointer types in compound assignment operations

2023-01-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140874/new/ https://reviews.llvm.org/D140874 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D141591: [clang][Interp] Properly identify not-yet-defined functions

2023-01-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141591/new/ https://reviews.llvm.org/D141591 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D141858: [clang][Interp] Fix Pointer::toAPValue() for expressions

2023-01-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141858/new/ https://reviews.llvm.org/D141858 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D141472: [clang][Interp] Add function pointers

2023-01-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D141472#4091662 , @aaron.ballman wrote: > Design question -- do you anticipate this class handling *all* function > pointers, including pointer to member functions that might be virtual: > https://godbolt.org/z/hT8fMY37n I

[PATCH] D142694: [clang][Interp] Only generate disassembly in debug builds

2023-01-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. With the current set of opcodes, this saves 3460

[PATCH] D141193: [clang][Interp] Implement __builtin_assume

2023-01-26 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG760136ff13ba: [clang][Interp] Implement __builtin_assume (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION h

[PATCH] D142630: [clang][Interp] Implement virtual function calls

2023-01-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. @aaron.ballman Not sure if this (the added early re

[PATCH] D142617: [clang][Interp] Check This pointer without creating InterpFrame

2023-01-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. The InterpFrame was only created so early so we c

[PATCH] D141472: [clang][Interp] Add function pointers

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 492338. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141472/new/ https://reviews.llvm.org/D141472 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/D

[PATCH] D141472: [clang][Interp] Add function pointers

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:138-139 case CK_IntegralToPointer: { if (isa(SubExpr)) return this->visit(SubExpr); aaron.ballman wrote: > Can we still

[PATCH] D137706: [clang][Interp] Implement IntegralToPointer casts

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Note that according to https://clang.llvm.org/docs/ConstantInterpreter.html#pointers, such pointers had their own pointer type (`TargetPointer`), so I'm not sure if the approach here is the right one. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137706/new/

[PATCH] D140845: [clang][Interp] Fix left-/right-shifting more than sizeof(unsigned)

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG00e967f6c2d6: [clang][Interp] Fix left-/right-shifting more than sizeof(unsigned) (authored by tbaeder). Repository: rG LLVM Github Monorepo CHAN

[PATCH] D140809: [clang][Interp] Implement logical and/or operators

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGd2ea8ae5d43e: [clang][Interp] Implement logical and/or operators (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D140809?

[PATCH] D142550: Fix sizeof of boolean vector

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/SemaCXX/vector-bool.cpp:95 +void Sizeof() { + using FourBools = bool __attribute__((ext_vector_type(8))); + static_assert(sizeof(FourBools) == 1); Should be 4 instead of 8, shouldn't it? Repository: rG L

[PATCH] D140724: [clang][Interp] Add back Run() call

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGcb703434cbdc: [clang][Interp] Add back Run() call (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://

[PATCH] D140377: [clang][Interp] Compound assign operators for FP values

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGaf3a171dcffd: [clang][Interp] Compound assign operators for FP values (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D14

[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG62f43c3eae24: [clang][Interp] Support floating-point values (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D134859?vs=48

[PATCH] D137488: [clang][Interp] Array initialization via string literal

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG0a3243de62c1: [clang][Interp] Array initialization via string literal (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D13

[PATCH] D137487: [clang][Interp] Start implementing builtin functions

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. tbaeder marked an inline comment as done. Closed by commit rGa7a4463acbe1: [clang][Interp] Start implementing builtin functions (authored by tbaeder). Repository: rG

[PATCH] D137415: [clang][Interp] Implement switch statements

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG024e4f16ca79: [clang][Interp] Implement switch statements (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D137415?vs=4788

[PATCH] D137386: [clang][Interp] Reject invalid declarations and expressions

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGf4a6842c5a4d: [clang][Interp] Reject invalid declarations and expressions (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org

[PATCH] D137235: [clang][Interp] Fix ImplicitValueInitExprs for pointer types

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG2725e2c0323f: [clang][Interp] Fix ImplicitValueInitExprs for pointer types (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D137235?vs=472545&id=492049#toc Repository: rG LLVM

[PATCH] D137232: [clang][Interp] Support inc/dec operators on pointers

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG7348bb36c557: [clang][Interp] Support inc/dec operators for pointers (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D137

[PATCH] D137082: [clang][Interp] Fix dereferencing arrays with no offset applied

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGad2fb01cb68d: [clang][Interp] Fix dereferencing arrays with no offset applied (authored by tbaeder). Changed prior to commit: https://reviews.llvm

[PATCH] D142328: [clang][Interp] Fix compound assign operator types

2023-01-25 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGde3a3cb987f1: [clang][Interp] Fix compound assign operator types (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST AC

[PATCH] D142328: [clang][Interp] Fix compound assign operator types

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Thanks! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142328/new/ https://reviews.llvm.org/D142328 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D142328: [clang][Interp] Fix compound assign operator types

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. I know it hasn't been a week yet, but can someone take a look at this? It would unblock pushing more of the approved patches. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142328/new/ https://reviews.llvm.org/D142328 ___

[PATCH] D137070: [clang][Interp] Support destructors

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 491709. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137070/new/ https://reviews.llvm.org/D137070 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/test/AST/

[PATCH] D137070: [clang][Interp] Support destructors

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 3 inline comments as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1915-1916 + +if (const CXXDestructorDecl *Dtor = ElemRecord->getDestructor(); +Dtor && !Dtor->isTrivial()) { + for (size_t I = 0, E = Des

[PATCH] D142448: [clang][Interp] Handle TypeTraitExprs

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, tahonermann, erichkeane, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Only light testing here, since the value we're emit

[PATCH] D140803: [clang][Interp] Implement C++ Range-for loops

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 491674. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140803/new/ https://reviews.llvm.org/D140803 Files: clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.h clang/test/AST/Interp/loops.cpp Index: clang/test/AST/Int

[PATCH] D138802: [clang][Interp] Implement DecompositionDecls

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1417-1418 + assert(!BD->getHoldingVar()); // FIXME + if (!this->allocateVariable(BD, BD->getBinding())) +return false; +} aaron.ballman wrote: > Is this corr

[PATCH] D141194: [clang][Interp] Implement bitcasts

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Note that this "implementation" is based on my knowledge about what bitcasts are, so no idea. Is that documented anywhere or should I check `ExprConstant.cpp`, //or// is this implementation fine for the time being (IIRC this was needed to make a stdlib header work)? R

[PATCH] D140803: [clang][Interp] Implement C++ Range-for loops

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/test/AST/Interp/loops.cpp:278 + +namespace RangeForLoop { + constexpr int localArray() { aaron.ballman wrote: > You should also add failure tests where the range-based for

[PATCH] D140803: [clang][Interp] Implement C++ Range-for loops

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeStmtGen.cpp:418-419 + this->emitLabel(IncLabel); + if (Inc && !this->discard(Inc)) +return false; + if (!this->jump(CondLabel)) aaron.ballman

[PATCH] D140803: [clang][Interp] Implement C++ Range-for loops

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 491643. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140803/new/ https://reviews.llvm.org/D140803 Files: clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.h clang/test/AST/I

[PATCH] D140874: [clang][Interp] Support pointer types in compound assignment operations

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:727-728 +this->emitSubOffset(*RT, E); + else +return false; + aaron.ballman wrote: > Should this be an early return before we visit anything? Or an assert on the > assum

[PATCH] D140845: [clang][Interp] Fix left-/right-shifting more than sizeof(unsigned)

2023-01-24 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 491633. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140845/new/ https://reviews.llvm.org/D140845 Files: clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/test/AST/Interp/shifts.cpp

[PATCH] D140874: [clang][Interp] Support pointer types in compound assignment operations

2023-01-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 491619. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140874/new/ https://reviews.llvm.org/D140874 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/test/AST/I

<    6   7   8   9   10   11   12   13   14   15   >