mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
OpaquePtr: Reject 'ptr*' again when parsing textual IR
Bring back the testcase dropped in 1e6303e60ca5af4fbe7ca728572fd65666a98271 and get it passing by checking explicitly for `ptr*` in LLParser. Uses `Type::isOpaquePointerTy()` from ad4bb8280952c2cacf497e30560ee94c119b36e0. Differential Revision: https://reviews.llvm.org/D104938
This commit is contained in:
parent
905b300022
commit
a6ff73a905
@ -2597,6 +2597,8 @@ bool LLParser::parseType(Type *&Result, const Twine &Msg, bool AllowVoid) {
|
||||
return tokError("basic block pointers are invalid");
|
||||
if (Result->isVoidTy())
|
||||
return tokError("pointers to void are invalid - use i8* instead");
|
||||
if (Result->isOpaquePointerTy())
|
||||
return tokError("ptr* is invalid - use ptr instead");
|
||||
if (!PointerType::isValidElementType(Result))
|
||||
return tokError("pointer to this type is invalid");
|
||||
Result = PointerType::getUnqual(Result);
|
||||
|
7
test/Assembler/invalid-opaque-ptr-addrspace.ll
Normal file
7
test/Assembler/invalid-opaque-ptr-addrspace.ll
Normal file
@ -0,0 +1,7 @@
|
||||
; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: ptr* is invalid - use ptr instead
|
||||
define void @f(ptr addrspace(3) %a) {
|
||||
%b = bitcast ptr addrspace(3) %a to ptr addrspace(3)*
|
||||
ret void
|
||||
}
|
7
test/Assembler/invalid-opaque-ptr.ll
Normal file
7
test/Assembler/invalid-opaque-ptr.ll
Normal file
@ -0,0 +1,7 @@
|
||||
; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: ptr* is invalid - use ptr instead
|
||||
define void @f(ptr %a) {
|
||||
%b = bitcast ptr %a to ptr*
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue
Block a user