jlebar added a comment. > > I guess this is the part I'm unsure of. If it's legal to pass a struct to > > printf in regular C++ (seems to be?), I'd guess it should be legal in CUDA, > > too? I'm just not sure what it's supposed to do (in either case).
> > > Is this because PTX does not have a way to represent va_arg structs? We do build up something that looks an awful lot like a va_arg struct in this function. (It's a struct with N members, one for each of the varargs.) Exactly what printf expects is not particularly carefully specified in the nvvm documentation. If an arg to printf is non-scalar, we could pass the whole thing into the struct we build here, but that doesn't seem to be what regular C++ does (it seems to take the first 64 bits of the struct -- I have no idea if this is specified somewhere or just UB). http://reviews.llvm.org/D17103 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits