[PATCH] D42734: [DebugInfo] Improvements to representation of enumeration types (PR36168)
Momchil Velikov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 14 02:42:09 PST 2018
chill added a comment.
In https://reviews.llvm.org/D42734#1006877, @vsapsai wrote:
> Hi, Momchil. I suspect this change caused
>
> > Assertion failed: (DTy), function constructEnumTypeDIE, file /Users/buildslave/jenkins/workspace/clang-stage1-configure-RA/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp, line 1436.
>
> on the build bot http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/ For example, see http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/8694/console
>
> Earlier instead of `assert(DTy);` we had
>
> if (DTy) {
> addType(Buffer, DTy);
> addFlag(Buffer, dwarf::DW_AT_enum_class);
> }
>
>
> I don't know where the bug is but maybe it makes sense to remove assertion for now and correctly handle nullptr `DTy`? This will unblock the build bot for others and after that you can work on better fix if required.
Hello,
This is quite strange. Having the flag `DINode::FlagFixedEnum` set means the LLVM IR was generated by this
https://github.com/llvm-mirror/clang/blob/7b1bfe45423fcf2ac09f3b5cb7a7ef20596254ed/lib/CodeGen/CGDebugInfo.cpp#L2513
version of Clang (as the last parameter to `createEnumerationType` did not exist before and defaults to `false`).
Perhaps the underlying type was null already in the AST?
For pre-existing `.ll` files, the flag `DINode::FlagFixedEnum` should be clear, and the control shouldn't even enter that if body.
Repository:
rL LLVM
https://reviews.llvm.org/D42734
More information about the llvm-commits
mailing list