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