标签: llvm-gcc

在LLVM IR指令和源代码行之间映射

如果使用llvm-gcc或dragonegg,我如何在LLVM IR指令和源代码行之间存储地图?

llvm llvm-gcc

5
推荐指数
1
解决办法
1283
查看次数

- [NSDate timeIntervalSinceDate:]在GCC 4.2上返回非常小的数字,但在iOS4.3模拟器上的LLVM-GCC 4.2上按预期工作

在iOS 4.3 Simulator上,以下代码返回一个非常小的数字:1e-700在GCC 4.2上,但在LLVM-GCC 4.2上按预期工作.有任何想法吗?

NSDate *selectedDate = self.datepicker.date; // guaranteed to be before now
NSTimeInterval interval = [nowDate timeIntervalSinceDate:selectedDate];
Run Code Online (Sandbox Code Playgroud)

这些值随每次运行而变化,但这是一组示例输出

selectedDate: 1981-06-02 16:27:34 +0000

nowDate: 2011-08-03 05:18:36 +0000

间隔: 5.489011535689859e-277

[nowDate timeIntervalSinceDate:selectedDate]在GDB中运行:( 952001462.97236204这是我的期望值)

gcc objective-c llvm llvm-gcc

5
推荐指数
1
解决办法
1130
查看次数

使用LLVM-GCC解决运行iOS 4.2.1的第二代设备问题的影响

我有一个使用触摸事件在屏幕上绘制的应用程序.我UITouch locationInView用来恢复CGPoint触摸.问题是x和y坐标总是相同的 - 但仅限于运行iOS 4.2.1的第二代设备,并且仅当我的应用程序是在发布模式下构建时.直接从一个touchesMovedtouchesEnded事件对象进行触摸时,这似乎也只是一个问题,因为我的按钮正确地响应了触摸.

感谢http://getmoai.com/forums/new-users/ios-touch-sensor-y-co-ordinate-always-the-same-as-x/上的帖子我能够通过使用来解决问题LLVM-GCC编译器而不是较新的LLVM 3.0编译器,并使用优化级别0.

有趣的是,使用GCC编译器在touchesEnded更改优化级别时-O0更正了我收到的触摸位置,以更正我收到的触摸位置touchesMoved.我无法解释为什么会这样,但是现在我欣喜若狂,我的应用正在研究这些设备.

我的问题是 - 使用旧编译器将我的应用程序交付到商店有什么缺点?(我理解优化级别的影响.)是否有任何方法来配置项目,以便我使用较旧的编译器和较低的优化级别仅适用于iOS 4.2.1和/或第二代设备?

compiler-optimization llvm-gcc touchesmoved ios-4.2

5
推荐指数
1
解决办法
215
查看次数

为什么pip安装程序希望gcc-4.2成为OS X Lion中gcc编译器的名称?

使用pip在Python中安装软件包时,我遇到了以下错误:

unable to execute gcc-4.2: No such file or directory
Run Code Online (Sandbox Code Playgroud)

显然,pip正在尝试使用gcc-4.2,它不在任何二进制目录中,即/ usr/bin.在浏览了这个网站和其他网站后,我发现其他许多人都遇到了同样的问题.但是,在OS X Lion中将gcc更新为版本4.2,这不是版本问题,而是在/ usr/bin下将gcc称为gcc,而不是gcc-4.2,并且符号链接到llvm-gcc.在/ usr/bin中添加gcc-4.2作为gcc的符号链接后,pip能够成功安装所有内容.为什么呢,那个pip正在寻找gcc-4.2而不是gcc?这是pip,OS X Lion或pip中试图用gcc-4.2自行安装的软件包的错吗?

最后,我的符号链接在这种情况下是正确的做法,还是应该以其他方式解决这个问题?

python macos gcc pip llvm-gcc

5
推荐指数
1
解决办法
1455
查看次数

基于LLVM的编译器的前端

我正在尝试开发基于LLVM基础结构的编译器.我的语言有类似C语法,因此我想利用现有的C编译器.现在我专注于前端(词法分析,解析),但我很困惑哪个前端是最好的方法.Clang,llvm-gcc还是传统的flex/bison工具?

我对最简单的解决方案特别感兴趣,这个解决方案允许我为编译器的后续阶段生成LLVM IR代码.

compiler-construction parsing llvm clang llvm-gcc

5
推荐指数
1
解决办法
5396
查看次数

Java 1.6分段故障11(OSX 10.7.4)

我有.jar文件,它在运行时读取一个.dylib库,我在OSX中用GCC编译器编译.

应用程序在OSX 10.6.8上运行没有任何问题.

Java版本:

java版"1.6.0_33"Java(TM)SE运行时环境(版本1.6.0_33-b10-424-10M3720)Java HotSpot(TM)64位服务器VM(版本20.8-b01-424,混合模式)

GCC版本:

i686-apple-darwin11-llvm-gcc-4.2(GCC)4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.1.00)

我使用64位Java和libs,其中.jar需要为x86_64编译.所以,在Snow Leopard上,一切都运行良好.

我现在将我的应用程序切换到OSX 10.7.4.在那里我尝试了两个不同的Java版本:

第一个Java版本(与Snow Leopard相同):

java版"1.6.0_33"Java(TM)SE运行时环境(版本1.6.0_33-b10-424-10M3720)Java HotSpot(TM)64位服务器VM(版本20.8-b01-424,混合模式)

第二个Java版本(今天更新):

java版"1.6.0_35"Java(TM)SE运行时环境(版本1.6.0_35-b10-428-11M3811)Java HotSpot(TM)64位服务器VM(版本20.10-b01-428,混合模式)

GCC版本:

i686-apple-darwin11-llvm-gcc-4.2(GCC)4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.9.00)

我首先尝试使用在Snow Leopard上编译的.dylib来运行应用程序,但是我收到了这个错误:

位置0x0的内存访问无效rip = 0x7fff894aa697分段错误:11

还有新的线路没有导致应用程序崩溃,但它们没有在Snow Leopard上显示:

java[1366] <Error>: CGContextGetCTM: invalid context 0x0
java[1366] <Error>: CGContextSetBaseCTM: invalid context 0x0
java[1366] <Error>: CGContextGetCTM: invalid context 0x0
java[1366] <Error>: CGContextSetBaseCTM: invalid context 0x0
Run Code Online (Sandbox Code Playgroud)

在这次崩溃之后,我尝试在Lion上重新编译依赖.dylib与GCC,但是没有改变.我仍然得到Segmentation fault:11错误.

我在网上读到了这个错误,据我所知,它经常出现在Lion上,因为Java更新可能搞砸了,但是因为我对Java不太熟悉 - 有没有人遇到过这些问题,如果有的话,有没有办法解决这个问题?

非常感谢.


[编辑#1:在OSX 10.7.4上尝试使用Java 7]

使用Java 7运行.jar时,会再次发生崩溃,这是错误报告:

#
# A fatal error has been …
Run Code Online (Sandbox Code Playgroud)

java macos segmentation-fault llvm-gcc osx-lion

5
推荐指数
1
解决办法
2794
查看次数

Objective-C对象下标,iOS5和GCC

我有一个针对Apple的LLVM 4.2编译器(Base SDK 6.1)编译的库.在其中有对象下标.

想象一下,我的库只有一个类有一个方法.那个方法做到了这个:

NSLog(@"****** preTests");
NSDictionary *dictTest = @{ @1 : @1 };
NSLog(@"Initialized Dictionary");
NSArray *arrayTest = @[ @1, @2, @3 ];
NSLog(@"Initialized Array");
NSLog(@"****** arrayTest[1] = %@", arrayTest[1]); // First use of subscripting
NSLog(@"****** dictTest[@1] = %@", dictTest[@1]);
Run Code Online (Sandbox Code Playgroud)

现在我创建一个新项目并链接此库.在我的应用程序委托中,我调用此方法.我使用GCC LLVM 4.2编译器编译此应用程序.它编译和链接很好.

此应用程序将在iOS 6+上无错误运行.此应用程序将在iOS 5的"首次使用下标"(上图)中崩溃.

2013-07-03 09:15:51.050 GCCTest[167:707] -[__NSArrayI objectAtIndexedSubscript:]: unrecognized selector sent to instance 0x381fb0
Run Code Online (Sandbox Code Playgroud)

使用Apple LLVM 4.2编译器对其进行编译,它将正常运行.

objectAtIndexedSubscript:是一种在iOS 6中公开发布的方法,我的理解是它的语法糖myArray[0]被翻译成了什么.

有人可以帮助我理解为什么我看到GCC崩溃而不是苹果与iOS 5崩溃?我猜它与某些地方的某些宏有关...如果不编辑我的库代码,这可能会导致GCC崩溃吗?

cocoa-touch objective-c llvm llvm-gcc

5
推荐指数
1
解决办法
249
查看次数

为什么Homebrew报告"无法理解kern.osversion`14.0.0'"?

当我跑步时,brew -- config我得到了

HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: bc071fb5448628aea8f066bbc0f37b0ecb4f11ee
Last commit: 16 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit haswell
OS X: 10.10.1-x86_64
Xcode: 6.1.1
CLT: 6.1.1.0.1.1416017670
couldn't understand kern.osversion `14.0.0'
GCC-4.2: build 5666
Clang: 6.0 build 600
X11: 2.7.7 => /opt/X11
System Ruby: 2.0.0-p481
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

即使我的Xcode(在优胜美地)命令行工具似乎是最新的(以确保我重新运行xcode-select --install)并在正确的地方

/Applications/Xcode.app/Contents/Developer 
Run Code Online (Sandbox Code Playgroud)

根据xcode-select -print-path,我(唯一)gcc

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM …
Run Code Online (Sandbox Code Playgroud)

xcode homebrew command-line gcc llvm-gcc

5
推荐指数
1
解决办法
4492
查看次数

此目标不支持 __float128

我正在尝试通过cygwin. 安装它时,它失败并显示错误:

/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/include/c++/type_traits:311:39: error: __float128 is not supported on this target
struct __is_floating_point_helper<__float128>
                                  ^
Run Code Online (Sandbox Code Playgroud)

现在在调查它时,我发现它与clang支持'__float128'on only select 目标的问题有关,即在 3.9.0 之前不支持 clang__float128并且在 3.9.0 之前它定义了类型别名作为解决方法。

从 3.9.0 开始,clang 实现了本机__float128 support,并删除了别名解决方法。目前唯一支持 __float128 的目标是linux x86_64 and i686

因此我的问题是,是否有任何解决方案可以消除此错误?

gcc cygwin gnu clang llvm-gcc

5
推荐指数
1
解决办法
4183
查看次数

从函数LLVM返回Void

我在LLVM IR中创建了一个函数。现在我想创建一个返回指令return void

我看到了功能创建 ReturnInst::(LLVMContext &C, Value *retVal, BasicBlock *InsertAtEnd)

但是我不知道retVal应该怎样才能让它返回return void

llvm llvm-gcc llvm-clang llvm-ir

4
推荐指数
1
解决办法
1813
查看次数