[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