[clang] 5e8b4be - [AST][NFC] Simplify a regression test

Jan Korous via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 16 12:07:46 PDT 2020


Author: Jan Korous
Date: 2020-07-16T12:07:18-07:00
New Revision: 5e8b4be9f8546884889b1f178a6a2c2a5c1c9d1f

URL: https://github.com/llvm/llvm-project/commit/5e8b4be9f8546884889b1f178a6a2c2a5c1c9d1f
DIFF: https://github.com/llvm/llvm-project/commit/5e8b4be9f8546884889b1f178a6a2c2a5c1c9d1f.diff

LOG: [AST][NFC] Simplify a regression test

Differential Revision: https://reviews.llvm.org/D83438

Added: 
    

Modified: 
    clang/test/AST/regression-new-expr-crash.cpp
    clang/unittests/AST/CMakeLists.txt

Removed: 
    clang/unittests/AST/HasSideEffectsTest.cpp


################################################################################
diff  --git a/clang/test/AST/regression-new-expr-crash.cpp b/clang/test/AST/regression-new-expr-crash.cpp
index 81dd193b93e8..e1d93f92a125 100644
--- a/clang/test/AST/regression-new-expr-crash.cpp
+++ b/clang/test/AST/regression-new-expr-crash.cpp
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only %s
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -verify %s
 
 struct Bar {int a;};
 const Bar arr[2] = {{1}};
@@ -11,3 +11,8 @@ void foo(int a) {
   Foo *foo_array;
   foo_array = new Foo[arr[0].a];
 }
+
+void Test(int N) {
+  int arr[N];
+  decltype([&arr]{}) *p; // expected-error {{lambda expression in an unevaluated operand}}
+}

diff  --git a/clang/unittests/AST/CMakeLists.txt b/clang/unittests/AST/CMakeLists.txt
index 185995d5b5a2..2e750ac9ea92 100644
--- a/clang/unittests/AST/CMakeLists.txt
+++ b/clang/unittests/AST/CMakeLists.txt
@@ -26,7 +26,6 @@ add_clang_unittest(ASTTests
   DeclTest.cpp
   EvaluateAsRValueTest.cpp
   ExternalASTSourceTest.cpp
-  HasSideEffectsTest.cpp
   NamedDeclPrinterTest.cpp
   RecursiveASTVisitorTest.cpp
   SizelessTypesTest.cpp

diff  --git a/clang/unittests/AST/HasSideEffectsTest.cpp b/clang/unittests/AST/HasSideEffectsTest.cpp
deleted file mode 100644
index 842afd8d7a9c..000000000000
--- a/clang/unittests/AST/HasSideEffectsTest.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===- unittest/AST/HasSideEffectsTest.cpp --------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/AST/RecursiveASTVisitor.h"
-#include "clang/AST/ASTConsumer.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/AST/Attr.h"
-#include "clang/Frontend/FrontendAction.h"
-#include "clang/Tooling/Tooling.h"
-#include "llvm/ADT/FunctionExtras.h"
-#include "llvm/ADT/STLExtras.h"
-#include "gmock/gmock.h"
-#include "gtest/gtest.h"
-#include <cassert>
-
-using namespace clang;
-
-namespace {
-class ProcessASTAction : public clang::ASTFrontendAction {
-public:
-  ProcessASTAction(llvm::unique_function<void(clang::ASTContext &)> Process)
-      : Process(std::move(Process)) {
-    assert(this->Process);
-  }
-
-  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
-                                                 StringRef InFile) {
-    class Consumer : public ASTConsumer {
-    public:
-      Consumer(llvm::function_ref<void(ASTContext &CTx)> Process)
-          : Process(Process) {}
-
-      void HandleTranslationUnit(ASTContext &Ctx) override { Process(Ctx); }
-
-    private:
-      llvm::function_ref<void(ASTContext &CTx)> Process;
-    };
-
-    return std::make_unique<Consumer>(Process);
-  }
-
-private:
-  llvm::unique_function<void(clang::ASTContext &)> Process;
-};
-
-class RunHasSideEffects
-    : public RecursiveASTVisitor<RunHasSideEffects> {
-public:
-  RunHasSideEffects(ASTContext& Ctx)
-  : Ctx(Ctx) {}
-
-  bool VisitLambdaExpr(LambdaExpr *LE) {
-    LE->HasSideEffects(Ctx);
-    return true;
-  }
-
-  ASTContext& Ctx;
-};
-} // namespace
-
-TEST(HasSideEffectsTest, All) {
-  llvm::StringRef Code = R"cpp(
-void Test() {
-  int msize = 4;
-  float arr[msize];
-  [&arr] {};
-}
-  )cpp";
-
-  ASSERT_NO_FATAL_FAILURE(
-    clang::tooling::runToolOnCode(
-      std::make_unique<ProcessASTAction>(
-          [&](clang::ASTContext &Ctx) {
-              RunHasSideEffects Visitor(Ctx);
-              Visitor.TraverseAST(Ctx);
-          }
-      ),
-      Code)
-  );
-
-}


        


More information about the cfe-commits mailing list