diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -408,6 +408,10 @@ case OPT_section: parseSection(arg->getValue()); break; + case OPT_stack: + parseNumbers(arg->getValue(), &config->stackReserve, + &config->stackCommit); + break; case OPT_subsystem: { bool gotVersion = false; parseSubsystem(arg->getValue(), &config->subsystem, diff --git a/lld/test/COFF/stack-drectve.s b/lld/test/COFF/stack-drectve.s new file mode 100644 --- /dev/null +++ b/lld/test/COFF/stack-drectve.s @@ -0,0 +1,16 @@ +# REQUIRES: x86 +# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-win32 %s -o %t.obj +# RUN: lld-link /out:%t.exe /entry:main %t.obj +# RUN: llvm-readobj --file-headers %t.exe | FileCheck %s + +# CHECK: SizeOfStackReserve: 20480 +# CHECK: SizeOfStackCommit: 12288 + + .text + .globl main +main: + mov $42, %eax + ret + + .section .drectve,"yn" + .ascii " -stack:0x5000,0x3000"