[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