问题标签 [llvm-clang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1745 浏览

gcc - 将参数或变量指定为 __attribute__ ((unused)) 是否允许编译器执行任何其他优化?

我对 LLVM 4.1 特别好奇,但也会对其他编译器的行为感兴趣。

根据GCC 文档(LLVM 至少部分支持),该unused属性具有以下行为:

但是,如果编译器能够警告您未使用的参数和变量,那么它可能已经知道哪些参数和变量是未使用的,而无需您告诉它(特别是因为该unused属性仅指示该变量可能未使用)。因此,该unused属性是否允许编译器执行任何额外的优化,或者它的目的只是为了允许更多可读的代码?此外,如果该unused属性确实允许编译器执行其他优化,那么如果您最终使用指定为的参数或变量会发生什么情况unused?LLVM(在 XCode 中)似乎没有抱怨这种情况,尽管我可能没有在正确的优化级别进行编译或启用了正确的警告。

0 投票
2 回答
287 浏览

objective-c - Objective-C 代码分析

我想写一个工具来完成objective-c类名、选择器名和属性名的代码,因为软件正在开发中。(即可以定期运行并构建类名树及其属性/选择器的东西)。

有没有我可以使用的 API?. . 我正在查看 clang 静态分析器,但是从快速运行文档来看,我似乎需要一些更底层的东西。

0 投票
1 回答
909 浏览

c++ - 访问基类对象中的受保护成员

考虑:

第一个复制构造函数是正确的,因为权限基于类,而不是对象。所以我可以从我自己的类对象中访问受保护的成员。为什么第二个构造函数(或任何类似方法)会引发编译时错误?

简而言之:为什么 C++ 中的权限检查在这种情况下不考虑类继承规则?

在 Apple LLVM-4.2 中也遇到过这种情况,但在 Apple LLVM-4.1 中没有。

0 投票
2 回答
1608 浏览

iphone - po 对象导致错误:找不到“$__lldb_objc_class”的接口声明

我在调试控制台中有这个奇怪的功能。

假设您有以下代码:

issueDictionary 函数的 po 正确:

{ 标题 = "2012 年 12 月"; coverUrl = "htt://toeete.com/CoverURL/77111a51-32d8-4c39-912e-a889bad250e6.png"; downloadUrl = "htt://oetoeto.com/pdfFile/TR 2012 年 12 月 Single.pdf"; “结束日期”=“2013 年 12 月 31 日”;图像 = ( ); “发布日期”=“2013 年 2 月 26 日”;摘要 =“2012 年 12 月号”;uniqueId = "2012 年 12 月_1"; 更新=“2013 年 2 月 11 日”;}

但是,每当我尝试打印“anIssue.issueID”或“[issueDictionary objectForKey:@"uniqueId"]”的对象时,它都会失败:错误:找不到'$__lldb_objc_class'的接口声明

说:

po [问题问题ID]

或者

po [issueDictionary objectForKey:@"uniqueId"]

两者都因错误而失败......虽然如果我

问题

成功了!!!!!!!!

: ID=2012 年 12 月_1 标题=2012 年 12 月发布=2013-02-25 22:00:00 +0000 免费=是 描述=2012 年 12 月发行

任何的想法

0 投票
1 回答
855 浏览

build - LLVM 3.3 的黄金插件

我构建了 LLVM 并正在使用它,现在我想添加 Gold 插件以用作链接器,我只是在 LLVM 网站上关注了“build gold with plugin support”,现在有了 ld-new 但我不想重新构建 LLVM ,有没有办法在不重建 LLVM 的情况下添加这个插件?

0 投票
1 回答
1749 浏览

linker - 如何在 LLVM 3.2 和 Clang 3.3 中使用 Gold 进行链接时间优化?

llvm.org 上有关于如何将 Gold 插件添加到 LLVM-gcc 的说明;但是从 3.2 版开始,他们不再使用 LLVM-gcc,而是使用 Clang,并且不清楚如何使用它。

  1. 有谁知道如何将 Gold 插件添加到 LLVM 3.2?
  2. 我们是否需要安装这个插件,还是嵌入在 Clang 中?

我读过,如果您没有 Gold 插件作为链接器,如果您尝试-O4使用 LTO,它会将其视为-O3,但我想这是在您使用 gcc 系统链接器时而不是在使用 Clang 时,对吧?

0 投票
0 回答
557 浏览

macos - 未找到符号:MacOS 命令行工具中的 _objc_retainAutoreleasedReturnValue

几个 问题的关键字与标题相同,但它们侧重于 Objective-C 的 iOS 端。我的问题是使用 MacOS 命令行工具。

基本上发生的事情是 Foundation (Cocoa) 工具调用了一个 C 函数,该函数最终调用了另一个 Foundation 方法。由于从 C 函数调用 Foundation 方法,这Symbol not found: _objc_retainAutoreleasedReturnValue就是在运行时引发“”错误的地方。

代码如下所示:

日志.h

日志.m

主文件

ARC为64位编译工具开启(32位版本无法开启),最低支持MacOS版本为10.6。

在 MacOS 10.7 中调用该工具时,它会立即崩溃并显示如下日志:

我有根据的猜测(在其他人的帮助下)是我可能需要传入一个“ char *”,或者我必须在某处将某些东西声明为“ _unsafe_unretained”。这似乎是现代 Xcode 4.6 编译器应该为我处理的事情。

有人对我可能做错了什么有任何猜测吗?

0 投票
2 回答
2757 浏览

ios - Apple LLVM 编译器错误 4.1 [-stdlib=libc++ 的部署目标无效]

谁能告诉我如何解决这个错误...我的 X-Code 是 4.5 版。我的 IOS 模拟器是 4.3 版

命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 失败,退出代码为 1

0 投票
0 回答
766 浏览

clang - UNREACHABLE 执行!尝试生成 PTX 时出错

我正在尝试使用 clang/LLVM 3.2 版为“nbody”示例程序的内核(nbody_kernel.cu)生成 PTX 代码。nbody CUDA 程序在 Nvidia 的 SDK 中可用。

我指的是https://github.com/jholewinski/llvm-ptx-samples项目。

以下是我的命令,

clang++ -O4 -S -I/usr/local/cuda/include -emit-llvm -target nvptx64 nbody_kernel.cu -o nbody_kernel.ll

选择 -O3 -loop-unroll -unroll-allow-partial nbody_kernel.ll -o nbody_kernel.ll

llc nbody_kernel.ll -o nbody_kernel.ptx

执行最后一个命令(llc)后,我执行了一个 UNREACHABLE !以下堆栈跟踪错误

我用 __builtin_ptx_read_tid_x() 等替换了全局索引,例如 threadIdx.x。生成 LLVM IR(即 .ll)没有问题。尝试使用 llc 从 IR 生成 PTX 时弹出错误。

关于这里可能发生的事情的任何指示?

0 投票
1 回答
1556 浏览

python - 使用 Clang 绑定提取类型字符串

我正在编写一个 python 脚本(使用 python clang 绑定),它解析 C 头文件并提取有关函数的信息:名称、返回类型、参数类型。

提取函数名称没有问题,但我找不到将 a 转换clang.cindex.Type为 C 类型字符串的方法。(例如clang.cindex.TypeKind.UINTunsigned int

目前,作为临时解决方案,我有一个字典clang.cindex.TypeKind -> C type string和代码来处理指针和 const 限定符,但我没有找到提取结构名称的方法。

有没有一种通用的方法来获得 C 的定义clang.cindex.Type?如果没有,我如何获取clang.cindex.TypeKind.RECORDclang.cindex.TypeKind.FUNCTIONPROTO类型的 C 类型字符串?