[PATCH] D122920: [Clang][CodeGen]Fix __builtin_dump_struct missing record type field name
Wang Yihan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Apr 23 04:35:03 PDT 2022
yihanaa added inline comments.
================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:2046-2048
static llvm::Value *dumpRecord(CodeGenFunction &CGF, QualType RType,
LValue RecordLV, CharUnits Align,
+ bool dumpTypeName, llvm::FunctionCallee Func,
----------------
rsmith wrote:
> Instead of passing a flag that suppresses the first section of this function, it would be clearer to split this up into two parts:
>
> 1) A function that dumps a type name (`struct A` or `int` or whatever).
> 2) A function that dumps a struct value (`{x = 1, y = 2}`).
>
> Then when printing the overall value, you can call (1) then (2), and when printing each field, you can call (1), then print the field name, then call (2) for a struct value (and do whatever else makes sense for other kinds of values).
> Instead of passing a flag that suppresses the first section of this function, it would be clearer to split this up into two parts:
>
> 1) A function that dumps a type name (`struct A` or `int` or whatever).
> 2) A function that dumps a struct value (`{x = 1, y = 2}`).
>
> Then when printing the overall value, you can call (1) then (2), and when printing each field, you can call (1), then print the field name, then call (2) for a struct value (and do whatever else makes sense for other kinds of values).
Thanks for your review! I agree with your suggestion, and i try to improve code.
================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:2071
if (Types.empty()) {
Types[Context.CharTy] = "%c";
Types[Context.BoolTy] = "%d";
----------------
I have an idea, can we use analyze_printf::PrintfSpecifier::fixType instead of this static DenseMap to find the printf format specifier? what do you all think?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122920/new/
https://reviews.llvm.org/D122920
More information about the cfe-commits
mailing list