[clang-tools-extra] r349038 - [clang-tidy] Share the forced linking code between clang-tidy tool and plugin
Galina Kistanova via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 13 17:41:19 PST 2018
Hello Ivan,
This commit broke tests to few our builders:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/40886
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast
. . .
Failing Tests (2):
Clang Tools :: clang-tidy/mpi-buffer-deref.cpp
Clang Tools :: clang-tidy/mpi-type-mismatch.cpp
Please have a look ASAP?
Thanks
Galina
On Thu, Dec 13, 2018 at 6:40 AM Ivan Donchevskii via cfe-commits <
cfe-commits at lists.llvm.org> wrote:
> Author: yvvan
> Date: Thu Dec 13 06:37:17 2018
> New Revision: 349038
>
> URL: http://llvm.org/viewvc/llvm-project?rev=349038&view=rev
> Log:
> [clang-tidy] Share the forced linking code between clang-tidy tool and
> plugin
>
> Extract code that forces linking to the separate header and include it in
> both plugin and standalone tool
>
> Differential Revision: https://reviews.llvm.org/D55595
>
> Added:
> clang-tools-extra/trunk/clang-tidy/ClangTidyForceLinker.h
> Modified:
> clang-tools-extra/trunk/clang-tidy/plugin/ClangTidyPlugin.cpp
> clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
>
> Added: clang-tools-extra/trunk/clang-tidy/ClangTidyForceLinker.h
> URL:
> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyForceLinker.h?rev=349038&view=auto
>
> ==============================================================================
> --- clang-tools-extra/trunk/clang-tidy/ClangTidyForceLinker.h (added)
> +++ clang-tools-extra/trunk/clang-tidy/ClangTidyForceLinker.h Thu Dec 13
> 06:37:17 2018
> @@ -0,0 +1,108 @@
> +//===- ClangTidyForceLinker.h - clang-tidy
> --------------------------------===//
> +//
> +// The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
>
> +//===----------------------------------------------------------------------===//
> +
> +#include "llvm/Support/Compiler.h"
> +
> +namespace clang {
> +namespace tidy {
> +
> +// This anchor is used to force the linker to link the CERTModule.
> +extern volatile int CERTModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED CERTModuleAnchorDestination =
> + CERTModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the AbseilModule.
> +extern volatile int AbseilModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED AbseilModuleAnchorDestination =
> + AbseilModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the BoostModule.
> +extern volatile int BoostModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED BoostModuleAnchorDestination =
> + BoostModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the BugproneModule.
> +extern volatile int BugproneModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED BugproneModuleAnchorDestination =
> + BugproneModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the LLVMModule.
> +extern volatile int LLVMModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED LLVMModuleAnchorDestination =
> + LLVMModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the
> CppCoreGuidelinesModule.
> +extern volatile int CppCoreGuidelinesModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED CppCoreGuidelinesModuleAnchorDestination
> =
> + CppCoreGuidelinesModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the FuchsiaModule.
> +extern volatile int FuchsiaModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED FuchsiaModuleAnchorDestination =
> + FuchsiaModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the GoogleModule.
> +extern volatile int GoogleModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED GoogleModuleAnchorDestination =
> + GoogleModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the AndroidModule.
> +extern volatile int AndroidModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED AndroidModuleAnchorDestination =
> + AndroidModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the MiscModule.
> +extern volatile int MiscModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED MiscModuleAnchorDestination =
> + MiscModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the ModernizeModule.
> +extern volatile int ModernizeModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED ModernizeModuleAnchorDestination =
> + ModernizeModuleAnchorSource;
> +
> +#if CLANG_ENABLE_STATIC_ANALYZER
> +// This anchor is used to force the linker to link the MPIModule.
> +extern volatile int MPIModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED MPIModuleAnchorDestination =
> + MPIModuleAnchorSource;
> +#endif
> +
> +// This anchor is used to force the linker to link the PerformanceModule.
> +extern volatile int PerformanceModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED PerformanceModuleAnchorDestination =
> + PerformanceModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the PortabilityModule.
> +extern volatile int PortabilityModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED PortabilityModuleAnchorDestination =
> + PortabilityModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the ReadabilityModule.
> +extern volatile int ReadabilityModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED ReadabilityModuleAnchorDestination =
> + ReadabilityModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the ObjCModule.
> +extern volatile int ObjCModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED ObjCModuleAnchorDestination =
> + ObjCModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the HICPPModule.
> +extern volatile int HICPPModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED HICPPModuleAnchorDestination =
> + HICPPModuleAnchorSource;
> +
> +// This anchor is used to force the linker to link the ZirconModule.
> +extern volatile int ZirconModuleAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED ZirconModuleAnchorDestination =
> + ZirconModuleAnchorSource;
> +
> +} // namespace tidy
> +} // namespace clang
>
> Modified: clang-tools-extra/trunk/clang-tidy/plugin/ClangTidyPlugin.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/plugin/ClangTidyPlugin.cpp?rev=349038&r1=349037&r2=349038&view=diff
>
> ==============================================================================
> --- clang-tools-extra/trunk/clang-tidy/plugin/ClangTidyPlugin.cpp
> (original)
> +++ clang-tools-extra/trunk/clang-tidy/plugin/ClangTidyPlugin.cpp Thu Dec
> 13 06:37:17 2018
> @@ -8,6 +8,7 @@
>
> //===----------------------------------------------------------------------===//
>
> #include "../ClangTidy.h"
> +#include "../ClangTidyForceLinker.h"
> #include "../ClangTidyModule.h"
> #include "clang/Config/config.h"
> #include "clang/Frontend/CompilerInstance.h"
> @@ -75,96 +76,3 @@ volatile int ClangTidyPluginAnchorSource
>
> static
> clang::FrontendPluginRegistry::Add<clang::tidy::ClangTidyPluginAction>
> X("clang-tidy", "clang-tidy");
> -
> -namespace clang {
> -namespace tidy {
> -
> -// This anchor is used to force the linker to link the AbseilModule.
> -extern volatile int AbseilModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED AbseilModuleAnchorDestination =
> - AbseilModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the AndroidModule.
> -extern volatile int AndroidModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED AndroidModuleAnchorDestination =
> - AndroidModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the BoostModule.
> -extern volatile int BoostModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED BoostModuleAnchorDestination =
> - BoostModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the CERTModule.
> -extern volatile int CERTModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED CERTModuleAnchorDestination =
> - CERTModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the
> CppCoreGuidelinesModule.
> -extern volatile int CppCoreGuidelinesModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED CppCoreGuidelinesModuleAnchorDestination
> =
> - CppCoreGuidelinesModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the FuchsiaModule.
> -extern volatile int FuchsiaModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED FuchsiaModuleAnchorDestination =
> - FuchsiaModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the GoogleModule.
> -extern volatile int GoogleModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED GoogleModuleAnchorDestination =
> - GoogleModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the HICPPModule.
> -extern volatile int HICPPModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED HICPPModuleAnchorDestination =
> - HICPPModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the LLVMModule.
> -extern volatile int LLVMModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED LLVMModuleAnchorDestination =
> - LLVMModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the MiscModule.
> -extern volatile int MiscModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED MiscModuleAnchorDestination =
> - MiscModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ModernizeModule.
> -extern volatile int ModernizeModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ModernizeModuleAnchorDestination =
> - ModernizeModuleAnchorSource;
> -
> -#if CLANG_ENABLE_STATIC_ANALYZER
> -// This anchor is used to force the linker to link the MPIModule.
> -extern volatile int MPIModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED MPIModuleAnchorDestination =
> - MPIModuleAnchorSource;
> -#endif
> -
> -// This anchor is used to force the linker to link the ObjCModule.
> -extern volatile int ObjCModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ObjCModuleAnchorDestination =
> - ObjCModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the PerformanceModule.
> -extern volatile int PerformanceModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED PerformanceModuleAnchorDestination =
> - PerformanceModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the PortabilityModule.
> -extern volatile int PortabilityModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED PortabilityModuleAnchorDestination =
> - PortabilityModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ReadabilityModule.
> -extern volatile int ReadabilityModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ReadabilityModuleAnchorDestination =
> - ReadabilityModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ZirconModule.
> -extern volatile int ZirconModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ZirconModuleAnchorDestination =
> - ZirconModuleAnchorSource;
> -
> -} // namespace tidy
> -} // namespace clang
>
> Modified: clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp?rev=349038&r1=349037&r2=349038&view=diff
>
> ==============================================================================
> --- clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp (original)
> +++ clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp Thu Dec 13
> 06:37:17 2018
> @@ -16,6 +16,7 @@
>
> //===----------------------------------------------------------------------===//
>
> #include "../ClangTidy.h"
> +#include "../ClangTidyForceLinker.h"
> #include "clang/Config/config.h"
> #include "clang/Tooling/CommonOptionsParser.h"
> #include "llvm/Support/Process.h"
> @@ -482,98 +483,6 @@ static int clangTidyMain(int argc, const
> return 0;
> }
>
> -// This anchor is used to force the linker to link the CERTModule.
> -extern volatile int CERTModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED CERTModuleAnchorDestination =
> - CERTModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the AbseilModule.
> -extern volatile int AbseilModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED AbseilModuleAnchorDestination =
> - AbseilModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the BoostModule.
> -extern volatile int BoostModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED BoostModuleAnchorDestination =
> - BoostModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the BugproneModule.
> -extern volatile int BugproneModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED BugproneModuleAnchorDestination =
> - BugproneModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the LLVMModule.
> -extern volatile int LLVMModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED LLVMModuleAnchorDestination =
> - LLVMModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the
> CppCoreGuidelinesModule.
> -extern volatile int CppCoreGuidelinesModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED CppCoreGuidelinesModuleAnchorDestination
> =
> - CppCoreGuidelinesModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the FuchsiaModule.
> -extern volatile int FuchsiaModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED FuchsiaModuleAnchorDestination =
> - FuchsiaModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the GoogleModule.
> -extern volatile int GoogleModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED GoogleModuleAnchorDestination =
> - GoogleModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the AndroidModule.
> -extern volatile int AndroidModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED AndroidModuleAnchorDestination =
> - AndroidModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the MiscModule.
> -extern volatile int MiscModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED MiscModuleAnchorDestination =
> - MiscModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ModernizeModule.
> -extern volatile int ModernizeModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ModernizeModuleAnchorDestination =
> - ModernizeModuleAnchorSource;
> -
> -#if CLANG_ENABLE_STATIC_ANALYZER
> -// This anchor is used to force the linker to link the MPIModule.
> -extern volatile int MPIModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED MPIModuleAnchorDestination =
> - MPIModuleAnchorSource;
> -#endif
> -
> -// This anchor is used to force the linker to link the PerformanceModule.
> -extern volatile int PerformanceModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED PerformanceModuleAnchorDestination =
> - PerformanceModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the PortabilityModule.
> -extern volatile int PortabilityModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED PortabilityModuleAnchorDestination =
> - PortabilityModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ReadabilityModule.
> -extern volatile int ReadabilityModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ReadabilityModuleAnchorDestination =
> - ReadabilityModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ObjCModule.
> -extern volatile int ObjCModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ObjCModuleAnchorDestination =
> - ObjCModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the HICPPModule.
> -extern volatile int HICPPModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED HICPPModuleAnchorDestination =
> - HICPPModuleAnchorSource;
> -
> -// This anchor is used to force the linker to link the ZirconModule.
> -extern volatile int ZirconModuleAnchorSource;
> -static int LLVM_ATTRIBUTE_UNUSED ZirconModuleAnchorDestination =
> - ZirconModuleAnchorSource;
> -
> } // namespace tidy
> } // namespace clang
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181213/0693370b/attachment-0001.html>
More information about the cfe-commits
mailing list