diff options
-rw-r--r-- | lib/Bitcode/Reader/BitcodeReader.cpp | 3 | ||||
-rw-r--r-- | lib/Bitcode/Writer/BitcodeWriter.cpp | 1 | ||||
-rw-r--r-- | test/Assembler/2008-09-02-FunctionNotes.ll | 5 |
3 files changed, 8 insertions, 1 deletions
diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp index 79d8638..0d6b6f2 100644 --- a/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/lib/Bitcode/Reader/BitcodeReader.cpp @@ -1197,6 +1197,9 @@ bool BitcodeReader::ParseModule(const std::string &ModuleID) { return Error("Invalid GC ID"); Func->setGC(GCTable[Record[8]-1].c_str()); } + if (!isProto && Record.size() > 9 && Record[9]) { + Func->setNotes(Record[9]); + } ValueList.push_back(Func); diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp index dd161ba..b8aab5a 100644 --- a/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -412,6 +412,7 @@ static void WriteModuleInfo(const Module *M, const ValueEnumerator &VE, Vals.push_back(F->hasSection() ? SectionMap[F->getSection()] : 0); Vals.push_back(getEncodedVisibility(F)); Vals.push_back(F->hasGC() ? GCMap[F->getGC()] : 0); + Vals.push_back(F->getNotes()); unsigned AbbrevToUse = 0; Stream.EmitRecord(bitc::MODULE_CODE_FUNCTION, Vals, AbbrevToUse); diff --git a/test/Assembler/2008-09-02-FunctionNotes.ll b/test/Assembler/2008-09-02-FunctionNotes.ll index 2751b64..ba886b1 100644 --- a/test/Assembler/2008-09-02-FunctionNotes.ll +++ b/test/Assembler/2008-09-02-FunctionNotes.ll @@ -1,5 +1,5 @@ ; Test function notes -; RUN: llvm-as < %s -f -o /dev/null +; RUN: llvm-as < %s | llvm-dis | grep inline | count 2 define void @fn1() notes(inline=always) { ret void @@ -9,3 +9,6 @@ define void @fn2() notes(inline=never) { ret void } +define void @fn3() { + ret void +} |