Initial checkin
[oota-llvm.git] / test / Feature / constexprbad.ll
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, long 0, long 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, long 0, long 0, long 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, long 0)
35 ;%geperr6 = global int* getelementptr([11x sbyte]* %somestr, long 0, long 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, long 27)
40
41