From 8ea5d4c5294ec0c9a7635afa8fc470fa4a041838 Mon Sep 17 00:00:00 2001 From: Victor Hernandez Date: Thu, 14 Jan 2010 01:50:08 +0000 Subject: [PATCH] In WriteFunction(), write function-local metadata before we write the instructions, so instruction's references to metadata are fully resolved by the time they get written. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93403 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Bitcode/Writer/BitcodeWriter.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp index 5318b51bba6..c71f676d4b7 100644 --- a/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1226,6 +1226,9 @@ static void WriteFunction(const Function &F, ValueEnumerator &VE, VE.getFunctionConstantRange(CstStart, CstEnd); WriteConstants(CstStart, CstEnd, VE, Stream, false); + // If there is function-local metadata, emit it now. + WriteFunctionLocalMetadata(VE, Stream); + // Keep a running idea of what the instruction ID is. unsigned InstID = CstEnd; @@ -1241,7 +1244,6 @@ static void WriteFunction(const Function &F, ValueEnumerator &VE, // Emit names for all the instructions etc. WriteValueSymbolTable(F.getValueSymbolTable(), VE, Stream); - WriteFunctionLocalMetadata(VE, Stream); WriteMetadataAttachment(F, VE, Stream); VE.purgeFunction(); Stream.ExitBlock(); -- 2.34.1