diff options
author | Devang Patel <dpatel@apple.com> | 2010-10-07 22:03:01 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-10-07 22:03:01 +0000 |
commit | 3a24f9230a3e24c74fbf711fc1090a0d1a3e42cd (patch) | |
tree | cbe2a613768f9b91af7d705b784679b01166a454 | |
parent | 8aed386d823b1718a2151418b9cbe1b6396ad75a (diff) | |
download | bcm5719-llvm-3a24f9230a3e24c74fbf711fc1090a0d1a3e42cd.tar.gz bcm5719-llvm-3a24f9230a3e24c74fbf711fc1090a0d1a3e42cd.zip |
Provie a clearner interface so that FE can decide whether a function has prototype or not.
llvm-svn: 115988
-rw-r--r-- | llvm/include/llvm/Analysis/DebugInfo.h | 9 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 7 |
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/include/llvm/Analysis/DebugInfo.h b/llvm/include/llvm/Analysis/DebugInfo.h index 8b4a4c184e8..26118c26bc8 100644 --- a/llvm/include/llvm/Analysis/DebugInfo.h +++ b/llvm/include/llvm/Analysis/DebugInfo.h @@ -55,7 +55,8 @@ namespace llvm { FlagBlockByrefStruct = 1 << 4, FlagVirtual = 1 << 5, FlagArtificial = 1 << 6, - FlagExplicit = 1 << 7 + FlagExplicit = 1 << 7, + FlagPrototyped = 1 << 8 }; protected: const MDNode *DbgNode; @@ -422,6 +423,12 @@ namespace llvm { return false; return (getUnsignedField(14) & FlagExplicit) != 0; } + /// isPrototyped - Return true if this subprogram is prototyped. + bool isPrototyped() const { + if (getVersion() <= llvm::LLVMDebugVersion8) + return false; + return (getUnsignedField(14) & FlagPrototyped) != 0; + } unsigned isOptimized() const; diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index b2ae1a24c11..74fe8643ab3 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1059,8 +1059,6 @@ void DwarfDebug::constructTypeDIE(DIE &Buffer, DICompositeType CTy) { // Add prototype flag. if (isPrototyped) addUInt(&Buffer, dwarf::DW_AT_prototyped, dwarf::DW_FORM_flag, 1); - - } break; case dwarf::DW_TAG_structure_type: @@ -1318,10 +1316,7 @@ DIE *DwarfDebug::createSubprogramDIE(DISubprogram SP) { addSourceLine(SPDie, SP); - // Add prototyped tag, if C or ObjC. - unsigned Lang = SP.getCompileUnit().getLanguage(); - if (Lang == dwarf::DW_LANG_C99 || Lang == dwarf::DW_LANG_C89 || - Lang == dwarf::DW_LANG_ObjC) + if (SP.isPrototyped()) addUInt(SPDie, dwarf::DW_AT_prototyped, dwarf::DW_FORM_flag, 1); // Add Return Type. |