草庐IT

clang-instrumented

全部标签

c++ - 链接 clang-llvm

我一直在使用clang/llvm开发一个小工具,但我未能成功获得g++和gnu的链接器以将我的代码正确链接到clang。我的链接器产生了以下错误:undefinedreferenceto`clang::FileManager::~FileManager()'undefinedreferenceto`clang::FileManager::FileManager()'undefinedreferenceto`llvm::sys::getHostTriple()'undefinedreferenceto`clang::Diagnostic::Diagnostic(clang::Diagno

c++ - 如何使用 macports 安装 clang 3.1? (OSX,雪豹)

我想使用macports安装最新的clang(3.1)编译器(我使用emacs而不是xcode,而且xcode附带的clang版本无论如何都较旧)。macports似乎有最新版本的gcc,但是当我输入“portlistclang”时,显示的唯一版本是2.9。我使用C++11功能,所以我想使用最新版本。我在MBP上运行雪豹。 最佳答案 Clang在MacPorts上有几个不同的版本:$portsearchclangclang@2.9(lang)C,C++,ObjectiveCandObjectiveC++compilerclang-2

c++ - 使用 clang 优化进行编译时出现意外结果

我在我的代码中发现了一个错误,只有当我启用编译器优化-O1或更高时才会发生。我跟踪了这​​个错误,似乎在启用优化时我无法在boost转换范围上使用boost类型删除适配器。我写了这个c++程序来重现它:#include#include#include#includeusingnamespaceboost::adaptors;usingnamespacestd;intaddOne(intb){returnb+1;}intmain(int,char**){vectornums{1,2,3};autoresult1=nums|transformed(addOne)|type_erased()

c++ - 重载 "operator++"返回一个非常量,clang-tidy 提示

我刚从clang-tidy收到以下警告:overloaded"operator++"returnsanon-constantobjectinsteadofaconstantobjecttypehttps://clang.llvm.org/extra/clang-tidy/checks/cert-dcl21-cpp.html不幸的是,他们提供的链接不起作用,https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=88046682没有简单的方法可以准确地找到这个规则(貌似DCL规则是从50开始的)。但是无论我在标准的

c++ - clang 中的 constexpr 错误,但 gcc 中没有?

让我们举个简单的例子:#includenamespacefoo{constexprintmain(intargc,char*argv[]){//code}}intmain(intargc,char*argv[]){returnfoo::main(argc,argv);}取决于代码是什么,clang会提示或不提示。如果代码是:coutclang提示:error:constexprfunctionneverproducesaconstantexpression[-Winvalid-constexpr]constexprintmain(intargc,char*argv[]){note:no

c++ - Clang 在哪里存储 int32_t *p 和 int32_t p[10] 之间的差异?

我想确保这种类型的代码voidf1(int32_tp[10]);voidf2(int32_t*p);voidb(){int_32_ta[10];f1(a);f2(a);}在有人编码时不会发生,因为在使用f2()时,您可能会丢失有关数组边界的信息。它是MISRA标准规则之一。但是AST转储在两个函数声明之间没有区别:|-FunctionDecl0x2204140f1'void(int32_t*)'|-ParmVarDecl0x2204040p'int32_t*'|-FunctionDecl0x2204280f2'void(int32_t*)'|-ParmVarDecl0x2204200p

c++ - 如何使 clang-format 跳过 c++ 代码的部分

有什么方法可以配置clang-format工具来跳过我的Qt::connect函数调用吗?我的构造函数中有几个连接,如下所示:connect(m_Job,SIGNAL(error(constQString&,constQString&)),this,SLOT(onError(constQString&,constQString&)));connect(m_Job,SIGNAL(message(constQString&)),this,SLOT(onMessage(constQString&)));connect(m_Job,SIGNAL(progress(int,int)),this,

带有 clang 的 C++ 11 线程

我想学习使用C++11线程来加速我的语言的编译(是的,我正在构建一个编译器:x)。我尝试的第一个示例用clang(3.3SVN)抛出了几个错误。它在GCC(4.6.3)下编译良好。我从llvm.org的SVN下载了clang和libc++。clang是用GCC(4.6.3)编译的,libc++是用clang编译的。两个makefile都是使用CMake生成的。对于clang,我遵循了这个指南:http://llvm.org/docs/GettingStarted.html#checkout对于libc++,我遵循了这个指南:http://libcxx.llvm.org/我要编译的代码(

c++ - 为什么 -O2 或更大的 clang 优化会破坏此代码?

我在网站上查看了类似的问题,但在这里找不到与我的情况相符的任何问题。这是我要运行的代码(需要C++14):#include#include#includeusingnamespacestd;classcountdownTimer{public:usingduration_t=chrono::high_resolution_clock::duration;countdownTimer(duration_tduration):duration{duration},paused{true}{}countdownTimer(constcountdownTimer&)=default;count

c++ - 构造函数上的 SFINAE 在 VC2017 中有效,但在 clang/gcc 中无效

这个问题在这里已经有了答案:std::enable_iftoconditionallycompileamemberfunction(8个答案)关闭4年前。#includetemplatestructS{template>S(){}template>S(int){}};Ss{};//errorinclang/gcc,OKinVC2017Ss{0};//errorinclang/gcc,OKinVC2017在这两种情况下,clang/gcc都尝试实例化由于SFINAE实际上应该丢弃的ctor。错误信息是:error:notypenamed'type'in'std::enable_if';'