aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Analysis/DSGraph/incompletenode.ll23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Analysis/DSGraph/incompletenode.ll b/test/Analysis/DSGraph/incompletenode.ll
new file mode 100644
index 0000000000..44934a2c1c
--- /dev/null
+++ b/test/Analysis/DSGraph/incompletenode.ll
@@ -0,0 +1,23 @@
+; This test is failing because the globals X and Y are marked incomplete
+; in the TD graph for %test
+
+; RUN: as < %s | opt -no-aa -ds-aa -load-vn -gcse | dis | not grep seteq
+
+%X = internal global int 20
+%Y = internal global int* null
+
+implementation
+
+bool %test(int** %P) {
+ %A = load int** %P ;; We know P == Y!
+ %B = load int** %Y ;; B = A
+ %c = seteq int* %A, %B ;; Always true
+ ret bool %c
+}
+
+int %main() {
+ store int* %X, int** %Y
+ call bool %test(int** %Y)
+ ret int 0
+}
+