[PATCH] D66255: [WebAssembly] Correctly handle va_arg of zero-sized structures
    Derek Schuff via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Wed Aug 14 14:26:30 PDT 2019
    
    
  
dschuff added inline comments.
================
Comment at: clang/test/CodeGen/wasm-varargs.c:104
+
+struct S test_zero_size_struct(char *fmt, ...) {
+  va_list va;
----------------
This should maybe be called "test_empty_struct" since its size is actually 1 and not zero.
================
Comment at: clang/test/CodeGen/wasm-varargs.c:115
+
+// CHECK: define void @test_zero_size_struct([[STRUCT_S:%[^,=]+]]*{{.*}} noalias sret [[AGG_RESULT:%.*]], i8*{{.*}} %fmt, ...) {{.*}} {
+// CHECK:   [[FMT_ADDR:%[^,=]+]] = alloca i8*, align 4
----------------
could use CHECK_LABEL here and above.
================
Comment at: clang/test/CodeGen/wasm-varargs.c:125
+// CHECK:   store i8* [[ARGP_NEXT]], i8** [[VA]], align 4
+// CHECK:   [[R0:%[^,=]+]] = bitcast i8* [[ARGP_CUR]] to [[STRUCT_Z]]*
+// CHECK:   [[R1:%[^,=]+]] = bitcast [[STRUCT_Z]]* [[U]] to i8*
----------------
It looks like most of the output (up to here) is boilerplate for va_arg setup and duplicates the CHECKs above. It might be more clear if we just omitted the duplicated stuff and only CHECK for the things that are different from the above test.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66255/new/
https://reviews.llvm.org/D66255
    
    
More information about the cfe-commits
mailing list