Added test for capturing VLA types if the captured variable is a function parameter.
authorAlexey Bataev <a.bataev@hotmail.com>
Wed, 2 Jul 2014 07:05:22 +0000 (07:05 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Wed, 2 Jul 2014 07:05:22 +0000 (07:05 +0000)
llvm-svn: 212170

clang/test/CodeGen/captured-statements.c

index 4ff8791..feb1267 100644 (file)
@@ -60,6 +60,19 @@ void test3(int size) {
   // CHECK-3: call void @__captured_stmt
 }
 
+// Capture VLA array
+void test4(int size, int vla_arr[size]) {
+  #pragma clang __debug captured
+  {
+    vla_arr[0] = 1;
+  }
+  // CHECK-3: test4([[INT:i.+]] [[SIZE:.+]], [[INT]]*
+  // CHECK-3: store [[INT]] [[SIZE]], [[INT]]* [[SIZE_ADDR:.+]],
+  // CHECK-3: [[REF:%.+]] = getelementptr inbounds
+  // CHECK-3: store [[INT]]* [[SIZE_ADDR]], [[INT]]** [[REF]]
+  // CHECK-3: call void @__captured_stmt
+}
+
 void dont_capture_global() {
   static int s;
   extern int e;