diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h b/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h index a33eacc2f67da..fa04653fa7bd2 100644 --- a/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h +++ b/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h @@ -873,7 +873,7 @@ class LinkGraph { uint64_t Alignment, bool IsLive) { auto &Sym = Symbol::constructCommon( Allocator.Allocate(), - createBlock(Section, Address, Size, Alignment, 0), Name, Size, S, + createBlock(Section, Size, Address, Alignment, 0), Name, Size, S, IsLive); Section.addSymbol(Sym); return Sym; diff --git a/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp b/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp index 1881bd0b287e0..701f108a9a217 100644 --- a/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp @@ -313,7 +313,7 @@ Error MachOLinkGraphBuilder::graphifyRegularSymbols() { return make_error("Anonymous common symbol at index " + Twine(KV.first)); NSym.GraphSymbol = &G->addCommonSymbol( - *NSym.Name, NSym.S, getCommonSection(), NSym.Value, 0, + *NSym.Name, NSym.S, getCommonSection(), 0, NSym.Value, 1ull << MachO::GET_COMM_ALIGN(NSym.Desc), NSym.Desc & MachO::N_NO_DEAD_STRIP); } else { diff --git a/llvm/test/ExecutionEngine/JITLink/X86/MachO_x86-64_relocations.s b/llvm/test/ExecutionEngine/JITLink/X86/MachO_x86-64_relocations.s index 5fabc6db1218b..87ed036556e1b 100644 --- a/llvm/test/ExecutionEngine/JITLink/X86/MachO_x86-64_relocations.s +++ b/llvm/test/ExecutionEngine/JITLink/X86/MachO_x86-64_relocations.s @@ -4,6 +4,11 @@ .section __TEXT,__text,regular,pure_instructions +# Check that common symbols work. +# jitlink-check: *{4}common_symbol = 0 +# jitlink-check: common_symbol[1:0] = 0 +.comm common_symbol,4,2 + .align 4, 0x90 Lanon_func: retq