2014-04-01 60 views
1

時,我想下面的行添加到我的LLVM代碼(如ptx backend documentation指定):LLVM錯誤創建陣列

%1 = internal addrspace(3) global [4 x i32] [ i32 0, i32 1, i32 2, i32 3 ] 

不過,我得到以下錯誤:

expected instruction opcode 
@g = internal addrspace(3) global [4 x i32] [ i32 0, i32 1, i32 2, i32 3 ] 
^ 

什麼我做錯了嗎?

回答

2

你想添加的行和錯誤報告的行不一樣 - 我猜錯了複製粘貼錯誤?

無論如何,第一行是非法的,因爲您使用本地名稱(從%而不是@開始)定義全局。第二行本身是合法的,但是從錯誤消息我猜你試圖把它寫在一個函數中,而不是全局的合法位置。就像C中的全局變量一樣,LLVM全局變量需要在模塊範圍內直接定義,而不是在任何函數定義之外。

+0

這確實是一個複製粘貼錯誤(我嘗試了兩個都得到了錯誤)。但問題的確在於確定一個全球性的功能範圍。謝謝! – PieterV