diff options
| author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-07-14 22:39:02 +0000 |
|---|---|---|
| committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-07-14 22:39:02 +0000 |
| commit | a916f2c8a719643c14367e6f6cf3b4e13561273e (patch) | |
| tree | b373cf1a234b6f6e4cf2c9aaf6909f629fad8fa0 /llvm/test/Feature/constexprbad.ll | |
| parent | 290ea13b34611a1e29d973e0c557f66eeca4d44b (diff) | |
| download | bcm5719-llvm-a916f2c8a719643c14367e6f6cf3b4e13561273e.tar.gz bcm5719-llvm-a916f2c8a719643c14367e6f6cf3b4e13561273e.zip | |
Test the handling of constant expressions.
llvm-svn: 2889
Diffstat (limited to 'llvm/test/Feature/constexprbad.ll')
| -rw-r--r-- | llvm/test/Feature/constexprbad.ll | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/Feature/constexprbad.ll b/llvm/test/Feature/constexprbad.ll new file mode 100644 index 00000000000..592e1ca349a --- /dev/null +++ b/llvm/test/Feature/constexprbad.ll @@ -0,0 +1,41 @@ +; This testcase is for testing illegal constant expressions. +; Uncomment any code line below to test that the error is caught +; See constexpr.ll in this directory for legal ones. +; + +%somestr = constant [11x sbyte] c"hello world" + +;;--------------------------------------------------- +;; Illegal cast expressions +;;--------------------------------------------------- + +;missing attribute (global/constant) or type before operator +;%casterr1 = cast int 0 +;%casterr2 = global cast int 0 + +;missing or illegal initializer value for constant +;%casterr3 = constant +;%casterr4 = constant int 4.0 + +;; +;;--------------------------------------------------- +;; Illegal getelementptr expressions +;;--------------------------------------------------- + +;; return value must be a pointer to the element +;%geperr1 = global sbyte getelementptr([11x sbyte]* %somestr, uint 0, uint 8) + +;; index types must be valid for pointer type +;%geperr2 = global sbyte* getelementptr([11x sbyte]* %somestr, ubyte 0) +;%geperr3 = global sbyte* getelementptr([11x sbyte]* %somestr, uint 0, uint 0, uint 3) + +;; element accessed by index list must match return type +;%geperr4 = global sbyte* getelementptr([11x sbyte]* %somestr) +;%geperr5 = global sbyte* getelementptr([11x sbyte]* %somestr, uint 0) +;%geperr6 = global int* getelementptr([11x sbyte]* %somestr, uint 0, uint 0) + +;; Cannot use cast expression in pointer field of getelementptr +;; (unlike the index fields, where it is legal) +;%geperr7 = constant int* getelementptr (int* cast long 0, uint 27) + + |

