summaryrefslogtreecommitdiffstats
path: root/llvm/test/Feature/constexprbad.ll
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-07-14 22:39:02 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-07-14 22:39:02 +0000
commita916f2c8a719643c14367e6f6cf3b4e13561273e (patch)
treeb373cf1a234b6f6e4cf2c9aaf6909f629fad8fa0 /llvm/test/Feature/constexprbad.ll
parent290ea13b34611a1e29d973e0c557f66eeca4d44b (diff)
downloadbcm5719-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.ll41
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)
+
+
OpenPOWER on IntegriCloud