[PATCH] D44093: [BUILTINS] structure pretty printer
Paul Semel via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 7 05:41:14 PST 2018
paulsemel marked 2 inline comments as done.
paulsemel added inline comments.
Comment at: lib/CodeGen/CGBuiltin.cpp:1206
+ QualType Arg0Type = Arg0->getType()->getPointeeType();
+ const RecordType *RT = Arg0Type->getAs<RecordType>();
> You can use `const auto *` here because the type is spelled out in the initializer.
After thinking about it, I find it clearer to spell the full type when possible (that's also probably because I'm used to code in C :) )
Comment at: lib/CodeGen/CGBuiltin.cpp:1231
+ Types[getContext().VoidPtrTy] = "%p";
+ Types[getContext().FloatTy] = "%f";
+ Types[getContext().DoubleTy] = "%f";
> It's unfortunate that you cannot distinguish between `float` and `double`. Do you need to use the format specifiers exactly?
> What about other type information, like qualifiers or array extents? How should this handle types that do not exist in this mapping, like structure or enum types?
So, I've think about it. What I am going to do is that if I do not know the type of the field, I am just going to print it as a pointer. I know that it is not the best solution, but I think it's a okay-ish solution until I implement the other types.
For the qualifiers, at it is printed the same way with and without those, I can just add the entries in the DenseMap.
More information about the cfe-commits