Implement if consteval (P1938)Modify the IfStmt node to suppoort constant evaluated expressions.Add a new ExpressionEvaluationContext::ImmediateFunctionContext tokeep track of immediate function
Implement if consteval (P1938)Modify the IfStmt node to suppoort constant evaluated expressions.Add a new ExpressionEvaluationContext::ImmediateFunctionContext tokeep track of immediate function contexts.This proved easier/better/probably more efficient than walking the ASTbackward as it allows diagnosing nested if consteval statements.
show more ...
[ConstExprPreter] Removed the flag forcing the use of the interpreterSummary:Removed the ```-fforce-experimental-new-constant-interpreter flag```, leavingonly the ```-fexperimental-new-constant-i
[ConstExprPreter] Removed the flag forcing the use of the interpreterSummary:Removed the ```-fforce-experimental-new-constant-interpreter flag```, leavingonly the ```-fexperimental-new-constant-interpreter``` one. The interpreternow always emits an error on an unsupported feature.Allowing the interpreter to bail out would require a mapping from APValue tointerpreter memory, which will not be necessary in the final version. It ismore sensible to always emit an error if the interpreter fails.Reviewers: jfb, Bigcheese, rsmith, dexonsmithSubscribers: cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D70071
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consistin
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consisting ofif statements. The interpreter is described in more detail in theRFC. Further patches will add more features.Reviewers: Bigcheese, jfb, rsmithSubscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D64146llvm-svn: 371834
Revert "[Clang Interpreter] Initial patch for the constexpr interpreter"Breaks BUILD_SHARED_LIBS build, introduces cycles in library dependencygraphs. (clangInterp depends on clangAST which depend
Revert "[Clang Interpreter] Initial patch for the constexpr interpreter"Breaks BUILD_SHARED_LIBS build, introduces cycles in library dependencygraphs. (clangInterp depends on clangAST which depends on clangInterp)This reverts r370839, which is an yet another recommit of D64146.llvm-svn: 370874
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consisting ofif statements. The interpreter is described in more detail in theRFC. Further patches will add more features.Reviewers: Bigcheese, jfb, rsmithSubscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D64146llvm-svn: 370839
Revert [Clang Interpreter] Initial patch for the constexpr interpreterThis reverts r370636 (git commit 8327fed9475a14c3376b4860c75370c730e08f33)llvm-svn: 370642
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consisting ofif statements. The interpreter is described in more detail in theRFC. Further patches will add more features.Reviewers: Bigcheese, jfb, rsmithSubscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D64146llvm-svn: 370636
Revert [Clang Interpreter] Initial patch for the constexpr interpreterThis reverts r370584 (git commit afcb3de117265a69d21e5673356e925a454d7d02)llvm-svn: 370588
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consisting ofif statements. The interpreter is described in more detail in theRFC. Further patches will add more features.Reviewers: Bigcheese, jfb, rsmithSubscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D64146llvm-svn: 370584
Revert [Clang Interpreter] Initial patch for the constexpr interpreterThis reverts r370531 (git commit d4c1002e0bbbbab50f6891cdd2f5bd3a8f3a3584)llvm-svn: 370535
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consisting ofif statements. The interpreter is described in more detail in theRFC. Further patches will add more features.Reviewers: Bigcheese, jfb, rsmithSubscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D64146llvm-svn: 370531
Revert [Clang Interpreter] Initial patch for the constexpr interpreterThis reverts r370476 (git commit a5590950549719d0d9ea69ed164b0c8c0f4e02e6)llvm-svn: 370481
[Clang Interpreter] Initial patch for the constexpr interpreterSummary:This patch introduces the skeleton of the constexpr interpreter,capable of evaluating a simple constexpr functions consisting ofif statements. The interpreter is described in more detail in theRFC. Further patches will add more features.Reviewers: Bigcheese, jfb, rsmithSubscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D64146llvm-svn: 370476