tianshilei1992 added a comment.

In D123235#3513430 <https://reviews.llvm.org/D123235#3513430>, @koops wrote:

> I have tried on x64 RH and x64 SuSe. I could not reproduce the failures seen 
> on x64 debian.  https://reviews.llvm.org/D118550 also has similar failures on 
> x64 debian. There is a comment " I think the test failures are spurious (but 
> not 100% sure)"  So, are these failures pre-existing before the changes in 
> the current support for "atomic compare fail: Parser & Support" were done?

Those tests should be irrelevant.



================
Comment at: clang/include/clang/AST/ASTNodeTraverser.h:228
 
+  void Visit(const OMPFailClause *C) {
+    getNodeDelegate().AddChild([=] {
----------------
koops wrote:
> tianshilei1992 wrote:
> > Why would we want a dedicated function since it is only called once?
> The code for this method cannot be put into any other method because it 
> handles only OMPFailClause. All other Visit methods handle either the 
> generalized OMPClause or other types of Clauses.
I mean, it's only used by the function above, no?


================
Comment at: clang/include/clang/AST/ASTNodeTraverser.h:231-232
+      getNodeDelegate().Visit(C);
+      const OMPClause *mOC = C->const_getMemoryOrderClause();
+      Visit(mOC);
+    });
----------------



================
Comment at: clang/include/clang/Parse/Parser.h:434
 
+  OMPClause *ParseOpenMPFailClause(OMPClause *clause);
+
----------------



================
Comment at: clang/lib/AST/OpenMPClause.cpp:417-432
+OMPFailClause *OMPFailClause::Create(const ASTContext &C,
+                                     SourceLocation StartLoc,
+                                     SourceLocation EndLoc) {
+  void *Mem =
+      C.Allocate(totalSizeToAlloc<SourceLocation, OpenMPClauseKind>(2, 1), 
alignof(OMPFailClause));
+  auto *Clause =
+      new (Mem) OMPFailClause(StartLoc, EndLoc);
----------------
clang-format plz


================
Comment at: clang/lib/Basic/OpenMPKinds.cpp:370
+  case OMPC_fail: {
+    OpenMPClauseKind ck = static_cast<OpenMPClauseKind>(Type);
+    switch (ck) {
----------------
maybe something like `CK`? `ck` doesn't conform with LLVM standard.


================
Comment at: clang/lib/Parse/ParseOpenMP.cpp:3622
+
+  OMPFailClause *failClause = static_cast<OMPFailClause *>(clause);
+  SourceLocation LParenLoc;
----------------



================
Comment at: clang/lib/Parse/ParseOpenMP.cpp:3691
     return nullptr;
-  return Actions.ActOnOpenMPClause(Kind, Loc, Tok.getLocation());
+  OMPClause *clause = Actions.ActOnOpenMPClause(Kind, Loc, Tok.getLocation());
+  if (Kind == llvm::omp::Clause::OMPC_fail) {
----------------
ditto


================
Comment at: clang/lib/Sema/SemaOpenMP.cpp:11999
+                                             SourceLocation *ErrorLoc) {
+  int no_of_fails = 0;
+  ErrorNo = 0;
----------------
ditto


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123235/new/

https://reviews.llvm.org/D123235

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to