From daf7c149e4ee76e9be777b5a6fba06f25cbb0203 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Thu, 2 Jan 2014 21:09:05 +0000 Subject: [PATCH] Fix all the verifier tests I added for address spaces. I originally had these using opt -verify, and I never removed the -verify when converting them to use llvm-as instead, so these were failing because of using the -verify argument which llvm-as doesn't have instead of what it's actually supposed to be testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198352 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Verifier/bitcast-address-space-nested-global-cycle.ll | 4 +++- test/Verifier/bitcast-address-space-nested-global.ll | 4 +++- ...address-space-through-constant-inttoptr-inside-gep-instruction.ll | 5 ++++- test/Verifier/bitcast-address-space-through-constant-inttoptr.ll | 4 +++- test/Verifier/bitcast-address-space-through-gep-2.ll | 4 +++- test/Verifier/bitcast-address-space-through-gep.ll | 4 +++- test/Verifier/bitcast-address-space-through-inttoptr.ll | 3 ++- test/Verifier/bitcast-address-spaces.ll | 3 ++- test/Verifier/bitcast-alias-address-space.ll | 4 +++- test/Verifier/bitcast-vector-pointer-as.ll | 4 +++- 10 files changed, 29 insertions(+), 10 deletions(-) diff --git a/test/Verifier/bitcast-address-space-nested-global-cycle.ll b/test/Verifier/bitcast-address-space-nested-global-cycle.ll index 0cee726a95c..3c67aa9e7f2 100644 --- a/test/Verifier/bitcast-address-space-nested-global-cycle.ll +++ b/test/Verifier/bitcast-address-space-nested-global-cycle.ll @@ -1,4 +1,6 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s + +; CHECK: error: invalid cast opcode for cast from '%struct.Self1*' to '%struct.Self1 addrspace(1)*' target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" diff --git a/test/Verifier/bitcast-address-space-nested-global.ll b/test/Verifier/bitcast-address-space-nested-global.ll index abe9d947f7b..a79669058e5 100644 --- a/test/Verifier/bitcast-address-space-nested-global.ll +++ b/test/Verifier/bitcast-address-space-nested-global.ll @@ -1,4 +1,6 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s + +; CHECK: error: invalid cast opcode for cast from '%struct.Self1*' to '%struct.Self1 addrspace(1)*' target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" diff --git a/test/Verifier/bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll b/test/Verifier/bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll index ed71afaef9a..ef38d37068b 100644 --- a/test/Verifier/bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll +++ b/test/Verifier/bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll @@ -1,6 +1,9 @@ -; RUN: not llvm-as -verify -disable-output < %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s + target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" +; CHECK: error: invalid cast opcode for cast from 'i32 addrspace(1)*' to 'i32 addrspace(2)*' + ; Check that we can find inttoptr -> illegal bitcasts when hidden ; inside constantexpr pointer operands define i32 addrspace(2)* @illegal_bitcast_inttoptr_as_1_to_2_inside_gep() { diff --git a/test/Verifier/bitcast-address-space-through-constant-inttoptr.ll b/test/Verifier/bitcast-address-space-through-constant-inttoptr.ll index e65c71e8be0..1affda418aa 100644 --- a/test/Verifier/bitcast-address-space-through-constant-inttoptr.ll +++ b/test/Verifier/bitcast-address-space-through-constant-inttoptr.ll @@ -1,10 +1,12 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" %struct.Foo = type { i32 addrspace(1)* } +; CHECK: error: invalid cast opcode for cast from 'i32 addrspace(2)*' to 'i32 addrspace(1)*' + ; Make sure we still reject the bitcast when the source is a inttoptr (constant int) in a global initializer @bitcast_after_constant_inttoptr_initializer = global %struct.Foo { i32 addrspace(1)* bitcast (i32 addrspace(2)* inttoptr (i8 7 to i32 addrspace(2)*) to i32 addrspace(1)*) } diff --git a/test/Verifier/bitcast-address-space-through-gep-2.ll b/test/Verifier/bitcast-address-space-through-gep-2.ll index 3b77d9a3022..2ee394206ae 100644 --- a/test/Verifier/bitcast-address-space-through-gep-2.ll +++ b/test/Verifier/bitcast-address-space-through-gep-2.ll @@ -1,4 +1,6 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s + +; CHECK: error: invalid cast opcode for cast from 'i32 addrspace(2)*' to 'i32 addrspace(3)*' target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-p3:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" diff --git a/test/Verifier/bitcast-address-space-through-gep.ll b/test/Verifier/bitcast-address-space-through-gep.ll index 8e950dc1e6b..9494420841d 100644 --- a/test/Verifier/bitcast-address-space-through-gep.ll +++ b/test/Verifier/bitcast-address-space-through-gep.ll @@ -1,4 +1,4 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" @@ -7,6 +7,8 @@ target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32 @as2_array = addrspace(2) global [32 x i32] zeroinitializer +; CHECK: error: invalid cast opcode for cast from 'i32 addrspace(2)*' to 'i32 addrspace(1)*' + ; Make sure we still reject the bitcast after the value is accessed through a GEP @bitcast_after_gep = global %struct.Foo { i32 addrspace(1)* bitcast (i32 addrspace(2)* getelementptr ([32 x i32] addrspace(2)* @as2_array, i32 0, i32 8) to i32 addrspace(1)*) } diff --git a/test/Verifier/bitcast-address-space-through-inttoptr.ll b/test/Verifier/bitcast-address-space-through-inttoptr.ll index bec40488a13..5e7b66feca5 100644 --- a/test/Verifier/bitcast-address-space-through-inttoptr.ll +++ b/test/Verifier/bitcast-address-space-through-inttoptr.ll @@ -1,7 +1,8 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" +; CHECK: error: invalid cast opcode for cast from 'i32 addrspace(1)*' to 'i32 addrspace(2)*' define i32 addrspace(2)* @illegal_bitcast_as_1_to_2_inttoptr() { %cast = bitcast i32 addrspace(1)* inttoptr (i32 5 to i32 addrspace(1)*) to i32 addrspace(2)* ret i32 addrspace(2)* %cast diff --git a/test/Verifier/bitcast-address-spaces.ll b/test/Verifier/bitcast-address-spaces.ll index 450841740b1..7f37df66b30 100644 --- a/test/Verifier/bitcast-address-spaces.ll +++ b/test/Verifier/bitcast-address-spaces.ll @@ -1,7 +1,8 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s target datalayout = "e-p:32:32:32-p1:16:16:16-p2:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" +; CHECK: error: invalid cast opcode for cast from 'i32*' to 'i32 addrspace(1)*' define i32 addrspace(1)* @illegal_bitcast_as_0_to_1(i32 addrspace(0) *%p) { %cast = bitcast i32 addrspace(0)* %p to i32 addrspace(1)* ret i32 addrspace(1)* %cast diff --git a/test/Verifier/bitcast-alias-address-space.ll b/test/Verifier/bitcast-alias-address-space.ll index 9cad8ab3779..d9794d9e338 100644 --- a/test/Verifier/bitcast-alias-address-space.ll +++ b/test/Verifier/bitcast-alias-address-space.ll @@ -1,4 +1,6 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s + +; CHECK: error: invalid cast opcode for cast from 'i32 addrspace(2)*' to 'i32 addrspace(1)*' target datalayout = "e-p:32:32:32-p1:16:16:16-p2:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" diff --git a/test/Verifier/bitcast-vector-pointer-as.ll b/test/Verifier/bitcast-vector-pointer-as.ll index 89070e5a890..bbf6ace4e77 100644 --- a/test/Verifier/bitcast-vector-pointer-as.ll +++ b/test/Verifier/bitcast-vector-pointer-as.ll @@ -1,7 +1,9 @@ -; RUN: not llvm-as -verify -disable-output %s +; RUN: not llvm-as -disable-output %s 2>&1 | FileCheck %s target datalayout = "e-p:32:32:32-p1:16:16:16-p2:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32" +; CHECK: error: invalid cast opcode for cast from '<4 x i32*>' to '<4 x i32 addrspace(1)*>' + define <4 x i32 addrspace(1)*> @vector_illegal_bitcast_as_0_to_1(<4 x i32 addrspace(0)*> %p) { %cast = bitcast <4 x i32 addrspace(0)*> %p to <4 x i32 addrspace(1)*> ret <4 x i32 addrspace(1)*> %cast -- 2.11.0