This was previously invoking UB by passing a user-defined type to
format. Thanks to Jordan Rose for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191060
91177308-0d34-0410-b5e6-
96231b3b80d8
#define LLVM_SUPPORT_DWARF_H
#include "llvm/Support/DataTypes.h"
-#include "llvm/ADT/StringRef.h"
namespace llvm {
GIEK_UNUSED7
};
-StringRef GDBIndexEntryKindString(GDBIndexEntryKind Kind);
+const char *GDBIndexEntryKindString(GDBIndexEntryKind Kind);
enum GDBIndexEntryLinkage {
GIEL_EXTERNAL,
GIEL_STATIC
};
-StringRef GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage);
+const char *GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage);
/// The gnu_pub* kind looks like:
///
if (GnuStyle) {
dwarf::PubIndexEntryDescriptor Desc = computeIndexValue(TheCU, Entity);
Asm->OutStreamer.AddComment(
- "Kind: " + dwarf::GDBIndexEntryKindString(Desc.Kind) + ", " +
+ Twine("Kind: ") + dwarf::GDBIndexEntryKindString(Desc.Kind) + ", " +
dwarf::GDBIndexEntryLinkageString(Desc.Linkage));
Asm->EmitInt8(Desc.toBits());
}
if (GnuStyle) {
dwarf::PubIndexEntryDescriptor Desc = computeIndexValue(TheCU, Entity);
Asm->OutStreamer.AddComment(
- "Kind: " + dwarf::GDBIndexEntryKindString(Desc.Kind) + ", " +
+ Twine("Kind: ") + dwarf::GDBIndexEntryKindString(Desc.Kind) + ", " +
dwarf::GDBIndexEntryLinkageString(Desc.Linkage));
Asm->EmitInt8(Desc.toBits());
}
return 0;
}
-StringRef llvm::dwarf::GDBIndexEntryKindString(GDBIndexEntryKind Kind) {
+const char *llvm::dwarf::GDBIndexEntryKindString(GDBIndexEntryKind Kind) {
switch (Kind) {
case GIEK_NONE:
return "NONE";
llvm_unreachable("Unknown GDBIndexEntryKind value");
}
-StringRef llvm::dwarf::GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage) {
+const char *llvm::dwarf::GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage) {
switch (Linkage) {
case GIEL_EXTERNAL:
return "EXTERNAL";