49 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "../ClangTidy.h"10#include "../ClangTidyModule.h"11#include "../ClangTidyModuleRegistry.h"12#include "IdDependentBackwardBranchCheck.h"13#include "KernelNameRestrictionCheck.h"14#include "SingleWorkItemBarrierCheck.h"15#include "StructPackAlignCheck.h"16#include "UnrollLoopsCheck.h"17 18using namespace clang::ast_matchers;19 20namespace clang::tidy {21namespace altera {22 23class AlteraModule : public ClangTidyModule {24public:25 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {26 CheckFactories.registerCheck<IdDependentBackwardBranchCheck>(27 "altera-id-dependent-backward-branch");28 CheckFactories.registerCheck<KernelNameRestrictionCheck>(29 "altera-kernel-name-restriction");30 CheckFactories.registerCheck<SingleWorkItemBarrierCheck>(31 "altera-single-work-item-barrier");32 CheckFactories.registerCheck<StructPackAlignCheck>(33 "altera-struct-pack-align");34 CheckFactories.registerCheck<UnrollLoopsCheck>("altera-unroll-loops");35 }36};37 38} // namespace altera39 40// Register the AlteraTidyModule using this statically initialized variable.41static ClangTidyModuleRegistry::Add<altera::AlteraModule>42 X("altera-module", "Adds Altera FPGA OpenCL lint checks.");43 44// This anchor is used to force the linker to link in the generated object file45// and thus register the AlteraModule.46volatile int AlteraModuleAnchorSource = 0; // NOLINT(misc-use-internal-linkage)47 48} // namespace clang::tidy49