================
@@ -1207,8 +1207,8 @@ emitInfo(const EnumDecl *D, const FullComment *FC,
Location Loc,
return {};
Enum.Scoped = D->isScoped();
- if (D->isFixed()) {
- auto Name = D->getIntegerType().getAsString();
+ if (const TypeSourceInfo *Info = D->getIntegerTypeSourceInfo()) {
+ auto Name = Info->getType().getAsString();
Enum.BaseType = TypeInfo(Name, Name);
----------------
SamrudhNelli wrote:
I had a look inside `AST/TypePrinter.cpp` and the following function is called
eventually by `getAsString()`.
```
void QualType::getAsStringInternal(const Type *ty, Qualifiers qs,
std::string &buffer,
const PrintingPolicy &policy) {
SmallString<256> Buf;
llvm::raw_svector_ostream StrOS(Buf);
TypePrinter(policy).print(ty, qs, StrOS, buffer);
std::string str = std::string(StrOS.str());
buffer.swap(str);
}
```
Since, this uses `TypePrinter`, I think we do need a string, we can't pass a
StringRef, as the temporary string could be out of scope just like you
mentioned.
I would love to hear your ideas on implementing the StringRef function, do we
need a custom TypePrinter() for that?
https://github.com/llvm/llvm-project/pull/181347
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits