Clang是否为WebAssembly'的memory.fill和memory.copy提供本征?
我正在努力开发C中的WebAssembly模块,并一直在尝试使用memory.fill和memory.copy I know that Clang (v11.1.0) already 支持其他与内存相关的wasm内在喜欢__builtin_wasm_memory_size和__builtin_wasm_memory_grow,但是如果它支持memory.fill>>>>>>>>>>>>>的内在,我一直在努力工作. . 我对Clang/LLVM的内部工作并不十分熟悉,但是在几个地方暗示了这些说明的引用 [1] 我尝试使用__builtin_memcpy和__builtin_memset: __attribute__((export_name("memcpy"))) void memcpy_test(void* mem_dst, void* mem_src) { __builtin_memcpy(mem_dst, mem_src, 128); } __attribute
0 2023-11-29
编程技术问答社区
为什么将正在进行去分配的对象设置为弱属性会导致崩溃?
in clang clang的Objective-C自动参考计数我们看到以下以下 对于__weak对象,除非新的Pointee是当前正在签约的对象,否则LVALUE已更新以指向新的Pointee,在这种情况下,LVALUE已更新为null指针.这必须相对于对象的其他作业,从对象读取以及新Pointee的最终版本. 的最终版本. in objc-weak.mm wee在weak_register_no_lock()中查看以下代码块: if (deallocating) { if (crashIfDeallocating) { _objc_fatal("Cannot form weak reference to instance (%p) of " "class %s. It is possible that this object was " "over-re
0 2023-11-29
编程技术问答社区
在同一层次的对象的情况下,-Wreturn-std-move clang警告是否正确?
考虑以下简单代码: struct Base { Base() = default; Base(const Base&); Base(Base&&); }; struct Derived : Base { }; Base foo() { Derived derived; return derived; } clang 8.0.0 prog.cc:21:10: warning: local variable 'derived' will be copied despite being returned by name [-Wreturn-std-move] return derived; ^~~~~~~ prog.cc:21:10: note: call 'std::move' explicitly to avoid copying return derived; ^~~~~~~
0 2023-11-27
编程技术问答社区
-Wformat=2的作用是什么?
我在网络上看到了-Wformat=2选项的许多提及,有时与已经知道的-Wformat一起(Xcode列表为" typecheck呼叫printf/scanf),尽管它现在涵盖了更多的字符串形成API). 这根本做任何事情吗? 如果这样做,它(如果有的话)与-Wformat> 有什么不同 拥有两者是有用的,要么一个是另一个的超集吗? 解决方案 如果这样做,它(如果有的话)与-wformat有什么不同? 它是从GCC借来的,因为它被设计为合适的替代品. gcc的描述: -wformat = 2 启用-wformat Plus格式检查-Wormatat中未包含.现在 等效于`-wformat -wformat-nonliteral -wformat-security -wformat-y2k'. 回答您的大多数问题. 这完全可以做任何事情吗? 是.以下程序发出不同的警告,具体取决于-Wformat=2的存在(或不存在): __at
0 2023-11-27
编程技术问答社区
clang++警告。"warning: unknown warning option '-Wno-maybe-uninitialized'"
使用命令: 在Ubuntu 16.04上安装了LLVM sudo apt-get install clang llvm 我在编译时会出现以下错误: nlykkei@nlykkei-VirtualBox:~$ clang++ -g toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs` -o toy warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option] 1 warning generated. 具体而言,我遵循教程: http://llvm.org/docs/tutorial/langimpl03.html 在LLVM网站上. LLVM的版本是3.8. 我如何摆脱此警告? 谢谢.
0 2023-11-27
编程技术问答社区
-用于MS Visual Studio C++编译器的isystem
我通常喜欢在编程时启用很多警告.但是,某些库包含很容易引起警告的代码(..,Python,QT,..).使用GCC编译时,我可以使用-ISYSTEM而不是-i来使其沉默.我该如何使用MS编译器进行操作?我知道警告#pragma,但是我想要一个不涉及编译器特定代码的解决方案.我也知道我可以关闭特定的警告,但这也不是我想要的. btw:ISYSTEM应该是这个问题的标签,但是我不允许这样做. 摘要:我想从我的代码中查看所有警告, no 警告外部代码. 解决方案 截至2017-08-17,这似乎仍然是不可能的. 我在这里添加了一个功能请求: 更新2018: 该问题现已按照固定的固定关闭,可以在标准MS vs安装中使用[]. MS团队的一篇博客文章遍历新功能[来自MS的解决方案是灵活的.您不仅可以使用--isystem的路径来区分路径,还可以通过使用#include ""或#include 来区分.博客文章值得一读,以查看所有各种自定义点. 其他解
0 2023-11-27
编程技术问答社区
对于'实例方法未找到'的警告,-Wsomething标志是什么?
我最近有一个案例,有人在init方法中添加了一个参数,并打破了共享代码的另一个项目.由于这只是一个警告,因此没有人意识到该应用程序已损坏,因此我试图将此警告变成错误: warning: instance method '-someMethod' not found (return type defaults to 'id') 我发现您可以将其他C标志中的werror = foo传递给XCode中的编译器,以将警告转换为错误,但我似乎找不到应该找到的" foo".我已经尝试了"未宣布的选项",但这只会捕获@Selector案例.我已经尝试了-werror-implicit-ruction-declaration,但这似乎也没有捕获. 我尝试了" inst-method-not-not-found"和" instance-method-not-not-found",在随意搜索巨大的clang源代码时找到了'warn_in_inst_method_not_found'之后.
0 2023-11-27
编程技术问答社区
如何处理clang中的 "退出时间析构器 "警告?
在我的C ++ 11代码中,我在下种情况下获得了clang警告"声明需要退出时间驱动器": static const std::map mymap = { {1, { "A", "B", "C" }}, {2, { "D", "E", "F" }} }; 据我了解,据我了解Google,需要以确定性的方式销毁Main()和静电剂,以防止由于"已经释放的变量"而导致出口发生崩溃.是对的吗?有人可以更好地解释吗? plus:我该怎么办(我不想禁用警告)?上面的代码仅在一个线程的上下文中使用. 看来这是铬处理这些情况的方式;这也是我案件的正确方法吗? #define CR_DEFINE_STATIC_LOCAL(type, name, arguments) \ static type& na
0 2023-11-27
编程技术问答社区
禁用汇编器警告".section __TEXT,__textcoal_nt,coalesced,pure_instructions"
在OS X上使用Macports GCC并通过-Wa,-q捕食clang集成的汇编程序时,汇编器会为每个文件产生警告流.下面显示了警告的采样(许多堆栈溢出编辑器都不允许我粘贴整个流). 我找到了+ // Issue a warning if the target is not powerpc and Section is a *coal* section. + Triple TT = getParser().getContext().getObjectFileInfo()->getTargetTriple(); + Triple::ArchType ArchTy = TT.getArch(); + + if (ArchTy != Triple::ppc && ArchTy != Triple::ppc64) { + StringRef NonCoalSection = StringSwitch(Section) + .Case("__textcoal_nt",
0 2023-11-27
编程技术问答社区
用*(int*)NULL = 1; 崩溃的线程有问题?
我在多线程C应用程序中找到了这一点.作者评论说,它用于在自定义sostert函数中造成线程崩溃. GCC很好,但是Clang发出以下警告: note: consider using __builtin_trap() or qualifying pointer with 'volatile' ,也向其中的一个发行,以征求函数的每种用法: warning: indirection of non-volatile null pointer will be deleted, not trap 这里发生了什么? __builtin_trap是特定于clang的吗?我应该使用它吗? 解决方案 写信给NULL地址不能保证可靠地崩溃您的程序,因此 GCC引入__builtin_trap 为此. 看来Clang决定走得更远,并完全消除了这种写入,几乎迫使您使用__builtin_trap.与__builtin_trap相比 其他解决方案 语句Proveques不确定的
0 2023-11-25
编程技术问答社区
如何处理Mac上VS Code中的C++头文件#include错误?
vs代码在我的Mac上产生 #include错误 标题文件和第三方库( wxwidgets )在这种情况下).我阅读了我能找到的所有内容,在" c_cpp_properties.json"中调整了" includepath"设置,但没有任何帮助. 标题文件位于与.cpp文件("/src/")的同一文件夹中.该项目构建并运行良好,但VS代码产生#include错误,错误凸起了我的整个项目. 下面是带有VS代码设置的屏幕截图和JSON文件. 在 c_cpp_properties.json: { "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/src", "${workspaceFolder}/**", "/
0 2023-11-25
编程技术问答社区
在Windows 10中使用Clang用于C/C ++
我目前正在学习C,通过EDX/Harvard参加CS50在线课程.他们让我们在基于云的CS50 IDE/沙箱中使用clang.他们尚未解释如何在该tho之外使用叮当声.因此,我想知道;如何在Windows 10中设置叮当声?以及用于VisualStudio代码? 解决方案 在Windows上,Clang不是自给自足的,应该与其他编译器结合使用:Mingw(GCC)或MSVC. Clang将使用该编译器的标准库(和其他库/标题),因为它不会与自己的编译器一起运送. 如果要与MSVC一起使用并安装它,则运行clang-cl而不是cl应该只能工作. ,但是由于您提到了VSC,我认为您不需要MSVC.然后... 如果您想将其与mingw一起使用并安装它,请使用clang --target=x86_64-w64-windows-gnu而不是gcc,并且它也应该仅用. (这是假设您的mingw生产64位应用程序.如果是32位,则用i686替换.) 如果您还没有ming
4 2023-11-24
编程技术问答社区
如何在Clangd支持的情况下设置C ++的代码?
免责声明:我是vs代码的新手,所以,请对我保持温和. : - ) 我正在尝试设置 vs code /strong>. 但是,我明确想设置它,以便它使用 语言服务器协议 与 clangd 处理c ++ files./p> 我已经在(Ubuntu Linux)系统和官方clangd rel =" noreferrer"> " vscode-clangd" 从VS代码市场扩展,我还调整了其设置,以便可以找到clangd. 但是,现在我迷路了. 当我打开*.cpp或*.hpp文件VS代码时,向我推荐其他一些扩展(例如Microsoft官方 " c/c ++" 带有Intellisense支持的扩展),但我看不到clangd在哪里以及如何对我有所帮助. 使用Microsoft的" C/C ++"扩展名似乎可以使用,但是我该如何使用clangd? 感谢您的任何帮助. 解决方案 我可以共享我的一些配置. Microsoft" C/C ++"扩展名非常适合调试
6 2023-11-24
编程技术问答社区
我无法打开源文件clang64.exe和crtdbg.h错误?
构建开始... 1>------ Build started: Project: ConsoleApplication6, Configuration: Debug x64 ------ 1>clang64.exe 1>c1xx : fatal error C1083: Cannot open source file: 'C:\msys64\clang64.exe': No such file or directory 1>ConsoleApplication6.cpp 1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\include\yvals.h(12,10): fatal error C1083: Cannot open include file: 'crtdbg.h': No such file or directory 1>Generating Code.
0 2023-11-24
编程技术问答社区
从命令提示符中访问Clang的Visual Studio 2019版本的官方方法是什么?
我正在尝试从命令提示符中访问Clang的Visual Studio 2019版本.我正在寻找官方做到这一点的方法.到目前为止>. (请注意,我是不是寻找在Windows上构建/安装clang的其他方法.此问题与VS2019 Clang组件特别相关.) 使用Visual Studio Installer,我已经安装了Visual Studio 2019 Professional(16.4.1)以及可选的" Windows的C ++ Clang工具(9.0.0.0-x64/x86)".叮当工具链似乎安装在以下位置: C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\bin (也许我可以将此目录添加到路径上,但这并不强大.我也不能在Microsoft的任何文档中找到这种方法.) 我的最终目标是与SCON一起使用clang-cl.但是作为第一步,我希望能够从命令提示
2 2023-11-24
编程技术问答社区
在Visual Studio 2015中进行跨平台构建时针对第三方库进行链接
我正在尝试使用Visual Studio 2015 RC编译共享对象(.SO). 我正在与我的stdafx.h中的opus codec libs链接: #pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\celt.lib") #pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\opus.lib") #pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\silk_common.lib") #pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\silk_fixed.lib") #pragma comment
0 2023-11-24
编程技术问答社区
LLVM cmake安装无法找到DIA SDK
我正在尝试使用CMAKE构建LLVM安装,但这给了我有关llvm_enable_dia_sdk的错误.我在没有PDB的情况下设法构建了LLVM,但我正试图开始使用Libclang,因此我需要PDB. cmake给我以下错误: cmake/config-ix.cmake上的cmake错误:482(消息): 没有找到DIA SDK.如果您同时安装了VS 2012和2013,则可以 需要卸载前者,然后重新安装后者. 致电堆栈(首先是最近的电话): cmakelists.txt:575(include) 我安装了VS 2014(2015带有更新3),它确实具有直径文件夹.谁能告诉我如何将其指向正确的DIA SDK位置? 解决方案 我今天遇到了同样的问题,克里·塞兹(Kerry Seitz)的答案确实有效. 实际上,环境变量VSINSTALLDIR不必手动设置 - 而是打开开发人员命令提示.它将执行批处理脚本并正确创建VSINTALLDIR.在该提示中运行CMAK
0 2023-11-24
编程技术问答社区
调用模板基类的方法
Visual Studio 2015中的以下代码编译(即使使用/ZA选项).它不会在GCC和Clang上编译. struct A { }; template struct B { void f() { } }; template struct C : B { void f() { } void g() { B::f(); } }; int main() { C c; c.g(); return 0; } demo gcc-错误:'模板struct b'没有模板参数 clang-错误:'b'不是类,名称空间或枚举 哪个编译器符合标准规格?规格上有任何歧义吗? 编辑 我在C中添加了f()以有一个更相关的示例. 解决方案 在这种情况下,通常要调用基类功能,您将写: this->f(); 如果f和g都是静态的,那么您当然无
0 2023-11-24
编程技术问答社区
LLVM 7.0在Visual Studio 2015上不提供特定的平台工具集
几个小时前,我刚刚安装了Windows(64位)的LLVM 7.0.0. 使用新版本,所有平台工具集由上一个版本提供的Visual Studio 2015(6.0.1)提供(命名为" llvm-vs2014 "," llvm-vs2014_xp "和" llvm-vs2010 ")不再可用. 我已经看到了一个名为您知道这种缺乏的原因吗? 解决方案 尽管没有提及官方支持,但视觉工作室扩展似乎与Visual Studio 2015兼容. 至少一个LLVM审稿人盒子. 我亲自使用VC ++构建工具2015,并且能够简单地将.VSIX的$VCTargets目录的内容提取到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\. .
0 2023-11-24
编程技术问答社区
如何让带OpenMP的clang在MSVC 2015上工作?
我尝试使Clang 5.0.0在Visual Studio 2015上工作,因为我需要OpenMP 3.0功能.我安装了Clang编译器(不是没有任何OpenMP支持的VS2015版本)并使用CMAKE: cmake_minimum_required(VERSION 2.8.10) project(myproject) find_package(OpenMP) if (OPENMP_FOUND) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() include_directories("include") add_library(libFoo STATIC Foo.cpp) install(TARGETS Foo libFoo LIBRARY DESTINA
0 2023-11-24
编程技术问答社区