Index: lib/CodeGen/PrologEpilogInserter.cpp =================================================================== --- lib/CodeGen/PrologEpilogInserter.cpp +++ lib/CodeGen/PrologEpilogInserter.cpp @@ -210,6 +210,11 @@ // and MaxCallFrameSize variables. if (!F->hasFnAttribute(Attribute::Naked)) insertPrologEpilogCode(Fn); + else + // Normally HasWinCFI would be set sometime during prolog insertion, since + // that doesn't happen insert it here since later code depends on it being + // set. + Fn.setHasWinCFI(false); // Replace all MO_FrameIndex operands with physical register references // and actual offsets. Index: test/CodeGen/X86/naked-win-x86_64.ll =================================================================== --- /dev/null +++ test/CodeGen/X86/naked-win-x86_64.ll @@ -0,0 +1,9 @@ +; RUN: llc < %s + +target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-pc-windows-msvc" + +define internal void @naked_fn() naked { +start: + ret void +}