[PATCH] D135513: [clang][Interp] Check instance pointers before calling functions on them

2022-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 467997. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135513/new/ https://reviews.llvm.org/D135513 Files: clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Interp/Function.cpp clang/lib/AST/Interp/Interp.cpp clang/lib/AST/Interp/Interp.h c

[PATCH] D136012: [clang][Interp] Fix record members of reference type

2022-10-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. When assigning to them, we can't classify the exp

[PATCH] D136013: [clang][Interp] Fix ignoring unary operators and This exprs

2022-10-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. Randomly noticed this. We need to honor DiscardResu

[PATCH] D136012: [clang][Interp] Fix record members of reference type

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

[PATCH] D136013: [clang][Interp] Fix ignoring expression return values

2022-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 468001. tbaeder retitled this revision from "[clang][Interp] Fix ignoring unary operators and This exprs" to "[clang][Interp] Fix ignoring expression return values". CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136013/new/ https://reviews.llvm.org/

[PATCH] D136013: [clang][Interp] Fix ignoring expression return values

2022-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 468006. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136013/new/ https://reviews.llvm.org/D136013 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/literals.cpp clang/test/AST/Interp/records.cpp Index: clang/test/AST/Inter

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

2022-10-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. Utilitze the existing support for temporary declara

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ah it's the array filler which we don't handle at all right now :( CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 ___ cfe-commits mailing list cfe-commits@lists.llvm.org htt

[PATCH] D135858: [clang][Interp] Support pointer arithmethic in binary operators

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

[PATCH] D135858: [clang][Interp] Support pointer arithmethic in binary operators

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

[PATCH] D135858: [clang][Interp] Support pointer arithmethic in binary operators

2022-10-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:970 + if (!Pointer::hasSameArray(LHS, RHS)) { +// TODO: Diagnose. +return false; This is also not being diagnosed (only rejected) by the current interpreter. But would be nice to h

[PATCH] D136022: [clang] Add time profile for constant evaluation

2022-10-16 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/ExprConstant.cpp:15257 + }); + // FIXME: Evaluating initializers for large array and record types can cause what about `Expr::EvaluateASRvalue` and `Expr::isPotentialConstantExpression`? Repository:

[PATCH] D135025: [clang][Interp] Support base class constructors

2022-10-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added a comment. In D135025#3862031 , @aaron.ballman wrote: > Do you think we should address some of the FIXMEs with base class ctor > functionality as part of this patch, given that the failures all see

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

2022-12-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 5 inline comments as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:607 +if (*LT == PT_Float) { + if (!this->emitAddf(getRoundingMode(E), E)) +return false; sepavloff wrote: > As discussed

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

2022-12-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 483802. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen

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

2022-12-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik, sepavloff. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. I'm not quite sure I got the different

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-12-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 484212. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135750/new/ https://reviews.llvm.org/D135750 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-12-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 4 inline comments as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:835 IsTemporary = true; Ty = E->getType(); } shafik wrote: > tbaeder wrote: > > shafik wrote: > > > Do we really want to the

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-12-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 484499. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135750/new/ https://reviews.llvm.org/D135750 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/

[PATCH] D136815: [clang][Interp] Unify visiting variable declarations

2022-12-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1218 +auto GlobalIndex = P.getGlobal(VD); +assert(GlobalIndex); // visitVarDecl() didn't return false. +if (!this->emitGetPtrGlobal(*GlobalIndex, VD)) shafik wrote: >

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

2022-12-21 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:30 /// Scope used to handle temporaries in toplevel variable declarations. -template class DeclScope final : public LocalScope { +template class DeclSc

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

2022-12-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 484500. 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] D135750: [clang][Interp] Track initialization state of local variables

2022-12-22 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:918 return false; + if (!Ptr.isRoot()) +Ptr.initialize(); shafik wrote: > tbaeder wrote: > > shafik wrote: > > > Can you explain what is going on here? Why do we need to initialize

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

2022-12-26 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 485271. tbaeder added a comment. Add missing inline descriptor handling to local variables created in the EvalEmitter. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135750/new/ https://reviews.llvm.org/D135750 Files: clang/lib/AST/Interp/ByteCod

[PATCH] D140668: [clang][Interp] Implement remaining bits for MaterializeTemporaryExprs

2022-12-26 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. I still have this mixed up with the `CompoundLitera

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

2022-12-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. This is a follow-up to https://reviews.llvm.org/D13

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

2022-12-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. We need to run the functions we compiled immediat

[PATCH] D140776: [clang][Interp] Handle defined functions without a body

2022-12-30 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. Turns out that this happens when explicitly default

[PATCH] D140776: [clang][Interp] Handle defined functions without a body

2022-12-30 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 485714. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140776/new/ https://reviews.llvm.org/D140776 Files: clang/lib/AST/Interp/ByteCodeEmitter.cpp clang/test/AST/Interp/records.cpp Index: clang/test/AST/Interp/records.cpp ==

[PATCH] D140776: [clang][Interp] Handle defined functions without a body

2022-12-30 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. CI fails because other patches are missing, most likely https://reviews.llvm.org/D140668. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140776/new/ https://reviews.llvm.org/D140776 ___ cfe-commits mailing list cfe-co

[PATCH] D140668: [clang][Interp] Implement remaining bits for MaterializeTemporaryExprs

2022-12-31 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 485769. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140668/new/ https://reviews.llvm.org/D140668 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGen.h clang/test/AST/Interp/literals.cpp clang/test/AST/Interp

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

2022-12-31 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] D140805: [clang][Interp] Add ArrayElemPtr{,Pop} opcode

2022-12-31 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 usually access array elements in the same patt

[PATCH] D140807: [clang][Interp] Skip calling simple destructors

2022-12-31 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. Calling them isn't needed if I understand correctly

[PATCH] D140808: [clang][Interp] Handle record initialization via CastExpr

2022-12-31 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. In particular, via a `CXXFunctionalCastExpr`. Rep

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

2022-12-31 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] D140845: [clang][Interp] Fix left-/right-shifting more than sizeof(unsigned)

2023-01-02 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 were just casting to `unsigned` before, so tha

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

2023-01-03 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 was still missing. Repository: rG LLVM Git

[PATCH] D140807: [clang][Interp] Skip calling simple destructors

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

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

2023-01-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Looks like I have to actually go up the class chain and emit all destructors manually. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137070/new/ https://reviews.llvm.org/D137070 ___ cfe-commits mailing list cfe-commi

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

2023-01-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 486525. tbaeder marked an inline comment as done. tbaeder set the repository for this revision to rG LLVM Github Monorepo. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137070/new/ https://reviews.llvm.org/D13707

[PATCH] D140807: [clang][Interp] Skip calling simple destructors

2023-01-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder abandoned this revision. tbaeder added a comment. I added the `isTrivial()` checks to the new version in https://reviews.llvm.org/D137070. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140807/new/ https://reviews.llvm.org/D140807

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

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

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

2023-01-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. Just ignore it. As part of this, move the Re

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

2023-01-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. I really don't know much about these, so limited te

[PATCH] D141192: [Clang] Add warnings on bad shifts inside enums.

2023-01-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D141192#4033591 , @shafik wrote: > So it looks like in `handleIntIntBinOp` we do hit this code: > > unsigned SA = (unsigned) RHS.getLimitedValue(LHS.getBitWidth()-1); >if (SA != RHS) { > Info.CCEDiag(E, diag::note_co

[PATCH] D141283: [clang] Improve diagnostic for "initializer-string for char array is too long"

2023-01-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. When grepping `clang/test/` for "for char array is too long", I get a bunch of other hits for this diagnostic, are the those tests not failing for you (e.g. `clang/test/Sema/array-init.c:149`)? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://

[PATCH] D139185: [clang][Interp] Use placement new to construct opcode args into vector

2023-01-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139185/new/ https://reviews.llvm.org/D139185 ___ 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-11 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. This adds a `FunctionPointer` class as well as a ne

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

2023-01-11 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 488135. 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/Inter

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

2023-01-11 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 488139. 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] D141497: [clang][Interp] Record initialization via conditional operator

2023-01-11 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. Factor this out into a `visitConditional()` that ca

[PATCH] D141497: [clang][Interp] Record initialization via conditional operator

2023-01-11 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:920 + + Condition->dump(); + if (!this->visit(Condition)) erichkeane wrote: > This meant to be here? Nope! :( Comment at: clang/lib/AST/Interp/ByteCodeExprGen

[PATCH] D137071: [clang][Interp] Implement missing compound assign operators

2022-11-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472503. tbaeder marked 3 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137071/new/ https://reviews.llvm.org/D137071 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/literals.cpp Index: clang/test/AST

[PATCH] D136936: [clang][Interp] Handle undefined functions better

2022-11-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeEmitter.cpp:30 if (!FuncDecl->isDefined(FuncDecl) || - (!FuncDecl->hasBody() && FuncDecl->willHaveBody())) -return nullptr; + (FuncDecl->hasBody() && FuncDecl->willHaveBody())) +HasBody =

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

2022-11-02 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. I think this is pretty uncommon so I was trying to

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

2022-11-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472526. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137232/new/ https://reviews.llvm.org/D137232 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Interp.h clang/lib/AST/Interp/Opcodes.td clang/test/AST/Interp/arrays.cpp

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

2022-11-02 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 previously ran into an "unknown type" assert

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-02 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 test is just a copy of `clang/test/SemaCXX/clas

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472562. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137240/new/ https://reviews.llvm.org/D137240 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/class-layout.cpp Index: clang/test/AST/Interp/class-layout.cpp =

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472563. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137240/new/ https://reviews.llvm.org/D137240 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/class-layout.cpp Index: clang/test/AST/Interp/class-layout.cpp =

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-02 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472564. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137240/new/ https://reviews.llvm.org/D137240 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/class-layout.cpp Index: clang/test/AST/Interp/class-layout.cpp =

[PATCH] D136936: [clang][Interp] Handle undefined functions better

2022-11-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472853. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136936/new/ https://reviews.llvm.org/D136936 Files: clang/lib/AST/Interp/ByteCodeEmitter.cpp clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Context.cpp clang/lib/AST/Interp/

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:444 +// alignment of the referenced type. +if (const ReferenceType *Ref = ArgType->getAs()) + ArgType = Ref->getPointeeType(); aaron.ballman wrote: > You're missi

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472855. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137240/new/ https://reviews.llvm.org/D137240 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/class-layout.cpp Index: clang/test/AST/Interp/class-layout.cpp =

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

2022-11-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.h:966-967 return false; - S.Stk.push(Ptr.deref()); + // When getting the first value of an array, we need to offset to the + // first element. + if (Ptr.inArray() && Ptr.isRoot()) aar

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

2022-11-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 472887. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137082/new/ https://reviews.llvm.org/D137082 Files: clang/lib/AST/Interp/Pointer.h clang/test/AST/Interp/arrays.cpp Index: clang/test/AST/Interp/arrays.cpp ==

[PATCH] D136815: [clang][Interp] Unify visiting variable declarations

2022-11-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.h:282 + bool isGlobalDecl(const VarDecl *VD) const { +return !VD->hasLocalStorage() || VD->isConstexpr(); + } shafik wrote: > tbaeder wrote: > > shafik wrote: > > > tbaeder wrot

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

2022-11-03 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. I'm not really sure if this is the right thing to d

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

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

[PATCH] D135750: [clang][Interp] Track initialization state of local variables

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

[PATCH] D136457: [clang][Interp] Fix discarding non-primitive function call return values

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

[PATCH] D136694: [clang][Interp] Check that constructor calls initialize all record fields

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

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

2022-11-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] D137392: [clang][Interp] Explicitly handle RVO Pointer

2022-11-03 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 calling convention is: [RVO pointer] [

[PATCH] D136936: [clang][Interp] Handle undefined functions better

2022-11-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeEmitter.cpp:24-31 + bool HasBody = true; + + // Function is not defined at all or not yet. We will + // create a Function instance but not compile the body. That + // will (maybe) happen later. if (!Fu

[PATCH] D137399: [clang][Interp] Emit negated integers directly as constants

2022-11-04 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] D137415: [clang][Interp] Implement switch statements

2022-11-04 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 creates a temporary local variable for the con

[PATCH] D125860: [clang] Only use major version in resource dir

2022-11-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473208. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 Files: clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt

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

2022-11-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473212. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137415/new/ https://reviews.llvm.org/D137415 Files: clang/lib/AST/Interp/ByteCodeStmtGen.cpp clang/lib/AST/Interp/ByteCodeStmtGen.h clang/test/AST/Interp/switch.cpp Index: clang/test/AST/In

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Oh, this doesn't work: void test_alignas_operand() { alignas(8) char dummy; static_assert(__alignof(dummy) == 8); } CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137240/new/ https://reviews.llvm.org/D137240 ___

[PATCH] D137240: [clang][Interp] Support alignof()

2022-11-04 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473316. tbaeder added a comment. It's not really all that interesting since the current interpreter already does all the work, but it works like this. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137240/new/ https://reviews.llvm.org/D137240 Files

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

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.cpp:487 + if (S.inConstantContext()) +return true; + jcranmer-intel wrote: > Not sure I understand the conditions that cause `S.inConstantContext()` to be > true, which gives me some cau

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

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473404. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/Interp/Boolean.h clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/ByteCodeExprGe

[PATCH] D136828: [clang][Interp] Diagnose uninitialized array record fields

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473405. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136828/new/ https://reviews.llvm.org/D136828 Files: clang/lib/AST/Interp/Interp.cpp clang/lib/AST/Interp/Pointer.h clang/test/AST/Interp/cxx20.cpp

[PATCH] D136828: [clang][Interp] Diagnose uninitialized array record fields

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Interp.cpp:446-448 +static void DiagnoseUninitializedSubobject(InterpState &S, const SourceInfo &SI, + QualType SubObjType, + Sourc

[PATCH] D136936: [clang][Interp] Handle undefined functions better

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeEmitter.cpp:24-31 + bool HasBody = true; + + // Function is not defined at all or not yet. We will + // create a Function instance but not compile the body. That + // will (maybe) happen later. if (!Fu

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

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473409. tbaeder added a comment. Added a `const-fpfeatures.cpp` test and added semantics converstion to `::add` as an example. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/CMakeL

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

2022-11-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. Another try at this. This time, only implement `__

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

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

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

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473443. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137487/new/ https://reviews.llvm.org/D137487 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/lib/AST/Interp/Function.h clang/lib/AST/Interp/Interp.cpp

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

2022-11-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:1138 +// FIXME: There is a certain code duplication between here +// and Porgram::createGlobalString(). +const size_t CharWidth = SL->getCharByteWidth(); tschuett wr

[PATCH] D135858: [clang][Interp] Support pointer arithmetic in binary operators

2022-11-06 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 rG10483ac743e6: [clang][Interp] Support pointer arithmethic in binary operators (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES

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

2022-11-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Opcodes.td:502 + let Types = [AluTypeClass]; + let Args = [ArgFltSemantics]; + let HasGroup = 1; sepavloff wrote: > tbaeder wrote: > > jcranmer-intel wrote: > > > Integer-to-floating point convers

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

2022-11-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473595. tbaeder added a comment. Return `opStatus` from `convertToInteger` as well, and add a test case to `floats.cpp` that tests float-to-integer conversion. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D1348

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

2022-11-07 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 473608. tbaeder added a comment. Report overflows when converting floats to integers. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134859/new/ https://reviews.llvm.org/D134859 Files: clang/lib/AST/CMakeLists.txt clang/lib/AST/Interp/Boolean.h

[PATCH] D137545: [clang][Interp] DerivedToBase casts

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

[PATCH] D137558: [clang][Interp] Reject reinterpret_casts

2022-11-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. An appropriate diagnostic has already been emitted

[PATCH] D137562: [clang][Interp] Start supporting virtual base classes

2022-11-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. As discussed on IRC. This is just the bare minimum

[PATCH] D137563: [clang][Interp] Check declarations for constexpr-ness in Load() instructions

2022-11-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. Refering to non-constexpr variables in a constant e

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