Tanya Lattner | 3f7706b | 2004-11-07 06:08:43 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll |
| 2 | ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll |
| 3 | ; RUN: diff %t1.ll %t2.ll |
| 4 | |
Vikram S. Adve | 37d0e7e | 2002-07-14 22:39:02 +0000 | [diff] [blame] | 5 | ; This testcase is for testing illegal constant expressions. |
| 6 | ; Uncomment any code line below to test that the error is caught |
| 7 | ; See constexpr.ll in this directory for legal ones. |
| 8 | ; |
| 9 | |
| 10 | %somestr = constant [11x sbyte] c"hello world" |
| 11 | |
| 12 | ;;--------------------------------------------------- |
| 13 | ;; Illegal cast expressions |
| 14 | ;;--------------------------------------------------- |
| 15 | |
| 16 | ;missing attribute (global/constant) or type before operator |
| 17 | ;%casterr1 = cast int 0 |
| 18 | ;%casterr2 = global cast int 0 |
| 19 | |
| 20 | ;missing or illegal initializer value for constant |
| 21 | ;%casterr3 = constant |
| 22 | ;%casterr4 = constant int 4.0 |
| 23 | |
| 24 | ;; |
| 25 | ;;--------------------------------------------------- |
| 26 | ;; Illegal getelementptr expressions |
| 27 | ;;--------------------------------------------------- |
| 28 | |
| 29 | ;; return value must be a pointer to the element |
Chris Lattner | 7209bff | 2002-10-06 22:43:49 +0000 | [diff] [blame] | 30 | ;%geperr1 = global sbyte getelementptr([11x sbyte]* %somestr, long 0, long 8) |
Vikram S. Adve | 37d0e7e | 2002-07-14 22:39:02 +0000 | [diff] [blame] | 31 | |
| 32 | ;; index types must be valid for pointer type |
| 33 | ;%geperr2 = global sbyte* getelementptr([11x sbyte]* %somestr, ubyte 0) |
Chris Lattner | 7209bff | 2002-10-06 22:43:49 +0000 | [diff] [blame] | 34 | ;%geperr3 = global sbyte* getelementptr([11x sbyte]* %somestr, long 0, long 0, long 3) |
Vikram S. Adve | 37d0e7e | 2002-07-14 22:39:02 +0000 | [diff] [blame] | 35 | |
| 36 | ;; element accessed by index list must match return type |
| 37 | ;%geperr4 = global sbyte* getelementptr([11x sbyte]* %somestr) |
Chris Lattner | 7209bff | 2002-10-06 22:43:49 +0000 | [diff] [blame] | 38 | ;%geperr5 = global sbyte* getelementptr([11x sbyte]* %somestr, long 0) |
| 39 | ;%geperr6 = global int* getelementptr([11x sbyte]* %somestr, long 0, long 0) |
Vikram S. Adve | 37d0e7e | 2002-07-14 22:39:02 +0000 | [diff] [blame] | 40 | |
| 41 | ;; Cannot use cast expression in pointer field of getelementptr |
| 42 | ;; (unlike the index fields, where it is legal) |
Chris Lattner | 7209bff | 2002-10-06 22:43:49 +0000 | [diff] [blame] | 43 | ;%geperr7 = constant int* getelementptr (int* cast long 0, long 27) |
Vikram S. Adve | 37d0e7e | 2002-07-14 22:39:02 +0000 | [diff] [blame] | 44 | |
| 45 | |