[PATCH] D132136: [clang] Perform implicit lvalue-to-rvalue cast with new interpreter

2022-08-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Can I get another opinion on this before the weekend? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132136/new/ https://reviews.llvm.org/D132136 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.ll

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, shafik, erichkeane, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. It took me a pretty long time to get the patch this

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:553 +if (!visitArrayInitializer(Init)) + return false; +if (!this->emitPopPtr(Init)) I've been wondering about a macro to simplify code like this, e.g. `d

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.h:43 protected: - // Emitters for opcodes of various arities. - using NullaryFn = bool (ByteCodeExprGen::*)(const SourceInfo &); - using UnaryFn = bool (ByteCodeExprGen::*)(PrimType, const SourceI

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

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

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

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

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/arrays.cpp:56 +// LValuePath correctly. +//static_assert(data[0] == 4); + tbaeder wrote: > This is quite unfortunate, but it only fails when evaluating `data[0]` by > itself, when printing the extr

[PATCH] D132739: [clang][Interp] Implement IntegralToBoolean casts

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, tahonermann. Herald added a subscriber: inglorion. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Redo how we d

[PATCH] D132727: [clang][Interp] Implement array initializers and subscript expressions

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:535 + + // TODO: Fillers? + if (const auto *InitList = dyn_cast(Initializer)) { erichkeane wrote: > Heh, THIS is a huge "TODO" here. The ArrayFillers go through a ton of > twi

[PATCH] D132739: [clang][Interp] Implement IntegralToBoolean casts

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Opcodes.td:433 +def ToCastTypeClass : TypeClass { + let Types = [Sint32, Bool]; } erichkeane wrote: > Not sure how this works... but is this ONLY int-32 to bool and vice versa? > The implementati

[PATCH] D132739: [clang][Interp] Implement IntegralToBoolean casts

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Opcodes.td:433 +def ToCastTypeClass : TypeClass { + let Types = [Sint32, Bool]; } erichkeane wrote: > tbaeder wrote: > > erichkeane wrote: > > > Not sure how this works... but is this ONLY int-32 t

[PATCH] D132739: [clang][Interp] Implement IntegralToBoolean casts

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 455897. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132739/new/ https://reviews.llvm.org/D132739 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Opcodes.td clang/test/AST/Interp/literals.c

[PATCH] D132739: [clang][Interp] Implement IntegralToBoolean casts

2022-08-26 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/Boolean.h:90 + template static Boolean from(T Value) { +if constexpr (std::is_integral::value) + return Boolean(Value != 0); shafik wrote: > This

[PATCH] D132136: [clang] Perform implicit lvalue-to-rvalue cast with new interpreter

2022-08-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D132136#3751702 , @erichkeane wrote: > Would be great if we had a better test here... is there anything we can do to > validate this is happening other than checking for that one note? `EvaluateAsRValue` is called from `Expr

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. I can see that `HandleSizeOf()` uses 1 for void and function types as a gcc extension, but I can't reproduce that: https://godbolt.org/z/njG9zh6PM Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:290 +return this->emitConst( +E, Ctx.get

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460648. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133934/new/ https://reviews.llvm.org/D133934 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Opco

[PATCH] D133991: add new function to release notes

2022-09-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D133991#3793762 , @anderslanglands wrote: > Sorry, this was supposed to update https://reviews.llvm.org/D13392. How do I > delete this? At the bottom of the page, there's a drop-down right above the comment textview. Select

[PATCH] D133924: add clang_CXXMethod_isDeleted function

2022-09-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Looks like the new version you uploaded is //only// the changes to the last version. You need to merge that into your previous commit and upload a patch of that. (e.g. using `git rebase -i` or even just `git commit --amend`). Repository: rG LLVM Github Monorepo CHAN

[PATCH] D133941: [clang][Interp] Record item types in InterpStack

2022-09-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460654. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133941/new/ https://reviews.llvm.org/D133941 Files: clang/lib/AST/Interp/InterpStack.h Index: clang/lib/AST/Interp/InterpStack.h =

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-16 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. Handle `DeclRefExpr`s pointing to `EnumConstantDecl

[PATCH] D133941: [clang][Interp] Record item types in InterpStack

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D133941#3794441 , @junaire wrote: > Do you think `std::is_same_v` will be even better? I don't really have a preference. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133941/new/ https://reviews.llvm.org/D133941 __

[PATCH] D133924: add clang_CXXMethod_isDeleted function

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/docs/ReleaseNotes.rst:323 +- Introduced the new function `clang_CXXMethod_isDeleted`, which queries + whether the method is declared `= delete. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D133941: [clang][Interp] Record item types in InterpStack

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460689. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133941/new/ https://reviews.llvm.org/D133941 Files: clang/lib/AST/Interp/InterpStack.h Index: clang/lib/AST/Interp/InterpStack.h

[PATCH] D133941: [clang][Interp] Record item types in InterpStack

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460697. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133941/new/ https://reviews.llvm.org/D133941 Files: clang/lib/AST/Interp/InterpStack.h Index: clang/lib/AST/Interp/InterpStack.h ===

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D134020#3795091 , @erichkeane wrote: > I can't come up with a way to get a reference to one of these, so the logic > in the rest of the DeclRefExpr handling is a little MORE awkward looking now. > I think I'm OK with this,

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-16 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:290 + +if (!ArgType->isConstantSizeType() || +ArgType->isDependentType()) erichkeane wrote: > Documentation for `isConstantSi

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460758. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133934/new/ https://reviews.llvm.org/D133934 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Opco

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:290 + +if (!ArgType->isConstantSizeType() || +ArgType->isDependentType()) erichkeane wrote: > tbaeder wrote: > > erichkeane wrote: > > > Documentation for `isConstantS

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:290 + +if (!ArgType->isConstantSizeType() || +ArgType->isDependentType()) tbaeder wrote: > erichkeane wrote: > > tbaeder wrote: > > > erichkeane wrote: > > > > Documen

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460766. tbaeder marked 11 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133934/new/ https://reviews.llvm.org/D133934 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/By

[PATCH] D134054: [clang][Interp] Properly destruct allocated Records

2022-09-16 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. As discussed with @aaron.ballman on IRC. This reve

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-16 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 just a humble beginning of course. Posting

[PATCH] D134054: [clang][Interp] Properly destruct allocated Records

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Program.h:48 +// here manually so they are properly freeing their resources. +for (auto It : Records) + It.second->~Record(); erichkeane wrote: > I SUSPECT that by a reading of our rules

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Boolean.h:50 explicit operator unsigned() const { return V; } + explicit operator int8_t() const { return V; } aaron.ballman wrote: > At some point, do we want to rename this (and int) to use u

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:861 + +return this->emitConst(T, getIntWidth(ECD->getType()), ECD->getInitVal(), + E); shafik wrote: > If I check out `IntExprEvaluator::CheckReferen

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:316 + // Base above gives us a pointer on the stack. + const auto *FD = dyn_cast(Member); + assert(FD); erichkeane wrote: > I THINK Member is a ValueDecl because it could be a

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:861 + +return this->emitConst(T, getIntWidth(ECD->getType()), ECD->getInitVal(), + E); tbaeder wrote: > shafik wrote: > > If I check out `IntExprEval

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 460972. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134057/new/ https://reviews.llvm.org/D134057 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Recor

[PATCH] D134057: [clang][Interp] Start implementing record types

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

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added a comment. @erichkeane Anything else still missing here? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133934/new/ https://reviews.llvm.org/D133934 ___ cfe-commits mailing list cfe-commi

[PATCH] D134057: [clang][Interp] Start implementing record types

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

[PATCH] D134057: [clang][Interp] Start implementing record types

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

[PATCH] D134057: [clang][Interp] Start implementing record types

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

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 461148. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134057/new/ https://reviews.llvm.org/D134057 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/In

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:673 + if (Optional T = classify(Init->getType())) { +if (!this->emitDupPtr(Initializer)) + return false; shafik wrote: > This section of code looks duplicate

[PATCH] D134175: [clang][Interp] Implement record instance functions and returning struct types

2022-09-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Continuation of https://reviews.llvm.org/D134057. I

[PATCH] D134175: [clang][Interp] Implement record instance functions and returning struct types

2022-09-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 461205. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134175/new/ https://reviews.llvm.org/D134175 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/test/AST/Interp/records.cpp Index: clang/test/AST

[PATCH] D133856: [clang][Interp] Pass initializer through when creating variables

2022-09-19 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/D133856/new/ https://reviews.llvm.org/D133856 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D134311: [clang] handle extended integer constant expressions in _Static_assert (PR #57687)

2022-09-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/Sema/SemaDeclCXX.cpp:16733 + while (auto *BaseCast = dyn_cast(BaseExpr)) +BaseExpr = BaseCast->getSubExpr(); +} There is `Expr::ignoreParenImpCasts()` or `Expr::ImpCasts()` that should do this

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Anything still missing here? (CI failure is because one of the other patches is missing) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134020/new/ https://reviews.llvm.org/D134020 _

[PATCH] D134361: [clang][Interp] Fix copy constructors of structs with array members

2022-09-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This implements `ArrayInitLoopExpr`s in initializer

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-21 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:642 + +for (const auto *Init : Ctor->inits()) { + const FieldDecl *Member = Init->getMember(); aaron.ballman wrote: > Do we have

[PATCH] D134523: [clang][Interp] Fix copy constructors with record array members

2022-09-23 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Previously, we were only handling arrays of arrays

[PATCH] D134629: [clang][Interp] Fix Pointer::toAPValue() LValuePath order

2022-09-25 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. See the comment I added for an explanation. This fi

[PATCH] D134523: [clang][Interp] Fix copy constructors with record array members

2022-09-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/records.cpp:160-163 +//static_assert(LT2.v[0].first == false, ""); +//static_assert(LT2.v[0].second == false, ""); +//static_assert(LT2.v[2].first == true, ""); +//static_assert(LT2.v[2].second == false, ""); --

[PATCH] D134629: [clang][Interp] Fix Pointer::toAPValue() LValuePath order

2022-09-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 462823. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134629/new/ https://reviews.llvm.org/D134629 Files: clang/lib/AST/Interp/Pointer.cpp clang/test/AST/Interp/records.cpp Index: clang/test/AST/Interp/records.cpp ==

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 462826. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134020/new/ https://reviews.llvm.org/D134020 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/enums.cpp Index: clang/test/AST/I

[PATCH] D134699: [clang][Interp] Implement This pointer passing to methods

2022-09-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. Seems like I completely forgot to post this to phab

[PATCH] D134057: [clang][Interp] Start implementing record types

2022-09-26 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:689 +const Decl *Callee = CE->getCalleeDecl(); +const Function *Func = P.getFunction(dyn_cast(Callee)); + aaron.ballman wrote: >

[PATCH] D134523: [clang][Interp] Fix copy constructors with record array members

2022-09-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463094. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134523/new/ https://reviews.llvm.org/D134523 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Pointer.cpp clang/test/AST/Interp/records.cp

[PATCH] D134523: [clang][Interp] Fix copy constructors with record array members

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:332 + // ArrayIndex might not be set if a ArrayInitIndexExpr is being evaluated + // stand-alone, e.g. via EvaluateAsInt(). + if (!ArrayIndex) erichkeane wrote: > For my edific

[PATCH] D134175: [clang][Interp] Implement record instance functions and returning struct types

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

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Something easier to review I hope :) Implement an

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463245. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134744/new/ https://reviews.llvm.org/D134744 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463251. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134744/new/ https://reviews.llvm.org/D134744 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Integral.h:213 + static bool rem(Integral A, Integral B, unsigned OpBits, Integral *R) { +*R = Integral(A.V % B.V); erichkeane wrote: > Its a touch weird we return 'bool' in all these places,

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 7 inline comments as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Integral.h:213 + static bool rem(Integral A, Integral B, unsigned OpBits, Integral *R) { +*R = Integral(A.V % B.V); erichkeane wrote: > tbaeder wrote:

[PATCH] D134749: [clang][Interp] Implement Div opcode

2022-09-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. Same as the `rem` patch basically. Repository:

[PATCH] D134749: [clang][Interp] Implement Div opcode

2022-09-27 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:189 + const unsigned Bits = RHS.bitWidth() * 2; + T Result; + if (!T::div(LHS, RHS, Bits, &Result)) { Could use a helper function here and in `Rem` to reduce code duplication. Repositor

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463456. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134744/new/ https://reviews.llvm.org/D134744 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/In

[PATCH] D134361: [clang][Interp] Fix copy constructors of structs with array members

2022-09-28 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/D134361/new/ https://reviews.llvm.org/D134361 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463467. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134744/new/ https://reviews.llvm.org/D134744 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:173 +APSInt RHSInt = RHS.toAPSInt(); +APSInt Result = LHSInt % RHSInt; + `Result`is unused in here now I guess. Also `RHSInt` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463472. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134744/new/ https://reviews.llvm.org/D134744 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td

[PATCH] D134801: [clang][Interp] Implement ConditionalOperators

2022-09-28 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. Implement visiting `ConditionalOperator`s. This al

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/literals.cpp:161 +// expected-note {{division by zero}} + + aaron.ballman wrote: > Same question here as with div in regards to testing float behavior. (If yo

[PATCH] D134804: [clang][Interp] Implement bitwise Not operations

2022-09-28 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. Repository: rG LLVM Github Monorepo https://revi

[PATCH] D134804: [clang][Interp] Implement bitwise Not operations

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463515. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134804/new/ https://reviews.llvm.org/D134804 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td

[PATCH] D134361: [clang][Interp] Fix copy constructors of structs with array members

2022-09-28 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:654-664 + if (!this->emitDupPtr(SubExpr)) +return false; + + if (!this->visit(SubExpr)) +return false; + + if (!this->emitI

[PATCH] D134361: [clang][Interp] Fix copy constructors of structs with array members

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463522. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134361/new/ https://reviews.llvm.org/D134361 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/test/AST/

[PATCH] D134175: [clang][Interp] Implement record instance functions and returning struct types

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/records.cpp:52 static_assert(!ints2.c, ""); constexpr Ints ints3 = getInts(); aaron.ballman wrote: > Can you think of a reasonable way for us to test that you're handling the RVO > pointer prop

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/literals.cpp:161 +// expected-note {{division by zero}} + + aaron.ballman wrote: > tbaeder wrote: > > aaron.ballman wrote: > > > Same question here as with di

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463543. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134744/new/ https://reviews.llvm.org/D134744 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td

[PATCH] D134744: [clang][Interp] Implement rem opcode

2022-09-28 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/literals.cpp:161 +// expected-note {{division by zero}} + + aaron.ballman wrote: > tbaeder wrote: > > aaron.ballman

[PATCH] D134361: [clang][Interp] Fix copy constructors of structs with array members

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:649 + +if (!ElemT) + return false; shafik wrote: > Curious what case requires this check? I don't think there's a real test case for this, we could as well change the in

[PATCH] D134801: [clang][Interp] Implement ConditionalOperators

2022-09-28 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:357 + + if (!this->visit(Condition)) +return false; shafik wrote: > Maybe I am misunderstanding what this is doing but can't we just check the > result of the condition and

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

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, shafik, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This only handles floats for now, so 32 bit floatin

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

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463785. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Cont

[PATCH] D134804: [clang][Interp] Implement bitwise Not operations

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463791. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134804/new/ https://reviews.llvm.org/D134804 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Integral.h clang/lib/AST/Interp/In

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

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Context.cpp:130 + if (T->isFloatingType()) { +unsigned Bytes = getASTContext().getTypeSize(T); +if (Bytes == 32) Comment at: clang/lib/AST/Interp/Floating.h:106 + // ---

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

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463807. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Cont

[PATCH] D133856: [clang][Interp] Pass initializer through when creating variables

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGda62ed6ceb12: [clang][Interp] Pass initializer when creating globals (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D133856?vs=460057&id=463834#toc Repository: rG LLVM Githu

[PATCH] D133934: [clang][Interp] Handle sizeof() expressions

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGee2e414d66a4: [clang][Interp] Handle sizeof() (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133934/new/ https://reviews.llvm.org/D133

[PATCH] D133941: [clang][Interp] Record item types in InterpStack

2022-09-29 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 rGdf1cc801da05: [clang][Interp] Record item types in InterpStack (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D133941?vs

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-29 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 rGc090295916a9: [clang][Interp] Handle enums (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews

[PATCH] D134054: [clang][Interp] Properly destruct allocated Records

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG84f1df8aacd0: [clang][Interp] Properly destruct allocated Records (authored by tbaeder). Changed prior to commit: https://reviews.llvm.org/D134054?vs=460813&id=463839#toc Repository: rG LLVM Github M

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

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 463846. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/lib/AST/Interp/Cont

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/enums.cpp:25 + SIX = FIVE + 2, + +}; shafik wrote: > Maybe some edge case values for enumerators like `__INT_MAX__ *2U +1U` > (UINT_MAX) > > and > > ``` > enum E { // warning: enumeration val

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/enums.cpp:25 + SIX = FIVE + 2, + +}; aaron.ballman wrote: > tbaeder wrote: > > shafik wrote: > > > Maybe some edge case values for enumerators like `__INT_MAX__ *2U +1U` > > > (UINT_MAX) > > >

[PATCH] D134020: [clang][Interp] Handle enums

2022-09-29 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/AST/Interp/enums.cpp:25 + SIX = FIVE + 2, + +}; aaron.ballman wrote: > tbaeder wrote: > > aaron.ballman wrote: > > > tbaeder wrote: > > > > shafik wrote: > > > > > Maybe some edge case values for enumerators

<    1   2   3   4   5   6   7   8   9   10   >