[PATCH] D46033: add check for long double for __builtin_dump_struct
Paul Semel via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 24 15:59:22 PDT 2018
paulsemel created this revision.
paulsemel added a reviewer: aaron.ballman.
This patch adds a test for long double format.
Repository:
rC Clang
https://reviews.llvm.org/D46033
Files:
test/CodeGen/dump-struct-builtin.c
Index: test/CodeGen/dump-struct-builtin.c
===================================================================
--- test/CodeGen/dump-struct-builtin.c
+++ test/CodeGen/dump-struct-builtin.c
@@ -107,6 +107,12 @@
// CHECK-NEXT: [[FORMAT_U17:@[0-9]+]] = private unnamed_addr constant [6 x i8] c"%hhd\0A\00"
// CHECK-NEXT: [[END_STRUCT_U17:@[0-9]+]] = private unnamed_addr constant [3 x i8] c"}\0A\00"
+// CHECK: @unit18.a = private unnamed_addr constant %struct.U18A { x86_fp80 0xK3FFF8FCD67FD3F5B6000 }, align 16
+// CHECK-NEXT: [[STRUCT_STR_U18:@[0-9]+]] = private unnamed_addr constant [15 x i8] c"struct U18A {\0A\00"
+// CHECK-NEXT: [[FIELD_U18:@[0-9]+]] = private unnamed_addr constant [17 x i8] c"long double a : \00"
+// CHECK-NEXT: [[FORMAT_U18:@[0-9]+]] = private unnamed_addr constant [5 x i8] c"%Lf\0A\00"
+// CHECK-NEXT: [[END_STRUCT_U18:@[0-9]+]] = private unnamed_addr constant [3 x i8] c"}\0A\00"
+
int printf(const char *fmt, ...) {
return 0;
}
@@ -417,6 +423,24 @@
__builtin_dump_struct(&a, &printf);
}
+void unit18() {
+ struct U18A {
+ long double a;
+ };
+
+ struct U18A a = {
+ .a = 1.123456,
+ };
+
+ // CHECK: call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* [[STRUCT_STR_U18]], i32 0, i32 0))
+ // CHECK: [[RES1:%[0-9]+]] = getelementptr inbounds %struct.U18A, %struct.U18A* %a, i32 0, i32 0
+ // CHECK: call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* [[FIELD_U18]], i32 0, i32 0))
+ // CHECK: [[LOAD1:%[0-9]+]] = load x86_fp80, x86_fp80* [[RES1]],
+ // CHECK: call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* [[FORMAT_U18]], i32 0, i32 0), x86_fp80 [[LOAD1]])
+ // CHECK: call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* [[END_STRUCT_U18]], i32 0, i32 0)
+ __builtin_dump_struct(&a, &printf);
+}
+
void test1() {
struct T1A {
int a;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46033.143827.patch
Type: text/x-patch
Size: 1912 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180424/a95b9bcd/attachment.bin>
More information about the cfe-commits
mailing list