[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Bill Wendling via Phabricator via cfe-commits
void added a subscriber: rsmith. void added a comment. I didn't see that during my tests. Probably different -W flags or something. I reverted that bit. I hope it fixes the problem. -bw Repository: rC Clang https://reviews.llvm.org/D53475 ___

Re: [PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Bill Wendling via cfe-commits
I didn't see that during my tests. Probably different -W flags or something. I reverted that bit. I hope it fixes the problem. -bw On Tue, Oct 30, 2018 at 10:02 PM Kristina Brooks via Phabricator < revi...@reviews.llvm.org> wrote: > kristina added a comment. > > Ah, it was causing this warning

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Kristina Brooks via Phabricator via cfe-commits
kristina added a comment. Ah, it was causing this warning during build: /SourceCache/llvm-trunk-8.0/tools/clang/include/clang/AST/Expr.h:903:1: warning: 'ConstantExpr' defined as a struct here but previously declared as a class [-Wmismatched-tags] Repository: rC Clang

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Bill Wendling via Phabricator via cfe-commits
void marked 4 inline comments as done. void added a comment. That change was intentional. But I guess it's causing issues. I'll change it to a `class`. Repository: rC Clang https://reviews.llvm.org/D53475 ___ cfe-commits mailing list

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Kristina Brooks via Phabricator via cfe-commits
kristina added a comment. I think you may have accidentally commited the wrong patch. +struct ConstantExpr : public FullExpr { Is causing a warning right now, not sure where that came from. Repository: rC Clang https://reviews.llvm.org/D53475

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Bill Wendling via Phabricator via cfe-commits
void closed this revision. void marked 2 inline comments as done. void added inline comments. Comment at: include/clang/AST/Expr.h:898 +class ConstantExpr : public FullExpr { + Stmt *Val; +public: rsmith wrote: > I think it'd be cleaner and simpler to move this

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Bill Wendling via Phabricator via cfe-commits
void added a comment. Thanks, Richard! :-) Repository: rC Clang https://reviews.llvm.org/D53475 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith accepted this revision. rsmith added a comment. This revision is now accepted and ready to land. Thanks, looks good. I don't mind if you address the comments below before this commit or in a separate commit. Comment at: include/clang/AST/Expr.h:898 +class ConstantExpr

[PATCH] D53475: Create ConstantExpr class

2018-10-30 Thread Bill Wendling via Phabricator via cfe-commits
void added a comment. Ping? Repository: rC Clang https://reviews.llvm.org/D53475 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D53475: Create ConstantExpr class

2018-10-28 Thread Bill Wendling via Phabricator via cfe-commits
void marked 6 inline comments as done. void added inline comments. Comment at: lib/AST/StmtProfile.cpp:1001 + VisitExpr(S); + VisitExpr(S->getSubExpr()); +} rsmith wrote: > This is unnecessary: this visitor visits the children of the node for you. If I don't

[PATCH] D53475: Create ConstantExpr class

2018-10-28 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 171417. void marked an inline comment as done. Repository: rC Clang https://reviews.llvm.org/D53475 Files: include/clang/AST/Expr.h include/clang/AST/ExprCXX.h include/clang/AST/RecursiveASTVisitor.h include/clang/AST/StmtDataCollectors.td

[PATCH] D53475: Create ConstantExpr class

2018-10-22 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment. Thanks, this is looking good. Comment at: include/clang/AST/Expr.h:874-875 + +/// FullExpression - Represents a "full-expression" node. +class FullExpression : public Expr { +protected: All of our expression classes have names ending

[PATCH] D53475: Create ConstantExpr class

2018-10-20 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 170325. Repository: rC Clang https://reviews.llvm.org/D53475 Files: include/clang/AST/Expr.h include/clang/AST/ExprCXX.h include/clang/AST/RecursiveASTVisitor.h include/clang/AST/StmtDataCollectors.td include/clang/Basic/StmtNodes.td

[PATCH] D53475: Create ConstantExpr class

2018-10-20 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 170324. void marked an inline comment as done. void added a comment. Create a "FullExpression" parent class and skip full expressions in all places we skip with ExprWithCleanups. Repository: rC Clang https://reviews.llvm.org/D53475 Files:

[PATCH] D53475: Create ConstantExpr class

2018-10-20 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment. Looks fine as far as it goes, but we're going to need to change all the places that skip past ExprWithCleanups to also step over this node. Since both nodes represent the boundary of a particular kind of full-expression, it'd make sense to me for them to at least have a

[PATCH] D53475: Create ConstantExpr class

2018-10-20 Thread Bill Wendling via Phabricator via cfe-commits
void updated this revision to Diff 170321. Repository: rC Clang https://reviews.llvm.org/D53475 Files: include/clang/AST/Expr.h include/clang/AST/RecursiveASTVisitor.h include/clang/AST/StmtDataCollectors.td include/clang/Basic/StmtNodes.td include/clang/Serialization/ASTBitCodes.h

[PATCH] D53475: Create ConstantExpr class

2018-10-20 Thread Bill Wendling via Phabricator via cfe-commits
void created this revision. void added a reviewer: rsmith. void added a project: clang. Herald added a subscriber: cfe-commits. A ConstantExpr class represents a full expression that's in a context where a constant expression is required. This class reflects the path the evaluator took to reach