[PATCH] D51289: [XRay] FDR Record Producer/Consumer Implementation
Dean Michael Berris via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 31 04:43:11 PDT 2018
dberris marked an inline comment as done.
dberris added inline comments.
================
Comment at: llvm/trunk/lib/XRay/FDRRecordProducer.cpp:50
+ MetadataRecordKinds::Pid,
+ };
+ switch (Mapping[T]) {
----------------
dberris wrote:
> RKSimon wrote:
> > @dberris Why are you mapping an integer to an enum with the same value?!? Replace the uint8_t T arg with an MetadataRecordKinds enum arg, or just get rid of the enum (AFAICT its only used in this function) and use the uint8_t directly.
> So, there are two reasons:
>
> - The data we're getting is a byte, and we need to decide whether the byte maps to the number we're expecting. The caller of the function (below) only has access to the byte.
>
> - I could just static cast the byte into a `MetadataRecordKinds` value, but that's undefined behaviour (not all the values of T will be valid values for the enum).
>
> If I get rid of the enum, I have to keep the enum names and values as comments (previous version of this patch).
>
> Ultimately the enum is a convenience. This mapping though is a little suspect.
>
> This is where being able to just share the enum definition between compiler-rt and llvm would make things a lot easier. :(
Actually, I think you're right -- there's a better way to do this. Fixed in r341205.
Repository:
rL LLVM
https://reviews.llvm.org/D51289
More information about the llvm-commits
mailing list