Mercurial > hg > CbC > CbC_llvm
view clang/unittests/Sema/GslOwnerPointerInference.cpp @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
//== unittests/Sema/GslOwnerPointerInference.cpp - gsl::Owner/Pointer ========// // // 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 "../ASTMatchers/ASTMatchersTest.h" #include "clang/ASTMatchers/ASTMatchers.h" #include "gtest/gtest.h" namespace clang { using namespace ast_matchers; TEST(OwnerPointer, BothHaveAttributes) { EXPECT_TRUE(matches("template<class T>" "class [[gsl::Owner]] C;" "template<class T>" "class [[gsl::Owner]] C {};" "C<int> c;", classTemplateSpecializationDecl( hasName("C"), hasAttr(clang::attr::Owner)))); } TEST(OwnerPointer, ForwardDeclOnly) { EXPECT_TRUE(matches("template<class T>" "class [[gsl::Owner]] C;" "template<class T>" "class C {};" "C<int> c;", classTemplateSpecializationDecl( hasName("C"), hasAttr(clang::attr::Owner)))); } TEST(OwnerPointer, LateForwardDeclOnly) { EXPECT_TRUE(matches("template<class T>" "class C;" "template<class T>" "class C {};" "template<class T>" "class [[gsl::Owner]] C;" "C<int> c;", classTemplateSpecializationDecl( hasName("C"), hasAttr(clang::attr::Owner)))); } } // namespace clang