From 5ca1ddf66811ea15eb730a88bda7e97741b0261a Mon Sep 17 00:00:00 2001 From: Tom Roeder Date: Mon, 31 Mar 2014 16:59:13 +0000 Subject: This patch fixes LTO's RecordStreamer so that it records symbols in the MCExpr part of an asm .symver directive as being used. This prevents referenced functions from being internalized and deleted. Without the patch to LTOModule.cpp, the test case will produce the error: LLVM ERROR: A @@ version cannot be undefined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205221 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/LTO/LTOModule.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/LTO') diff --git a/lib/LTO/LTOModule.cpp b/lib/LTO/LTOModule.cpp index cffc9aaf7e..567da04f90 100644 --- a/lib/LTO/LTOModule.cpp +++ b/lib/LTO/LTOModule.cpp @@ -660,6 +660,7 @@ namespace { void EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) override { // FIXME: should we handle aliases? markDefined(*Symbol); + AddValueSymbols(Value); } bool EmitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override { -- cgit v1.2.3