]> granicus.if.org Git - clang/commit
Reland "Emit Function IDs table for Control Flow Guard"
authorAdrian McCarthy <amccarth@google.com>
Tue, 9 Jan 2018 23:49:30 +0000 (23:49 +0000)
committerAdrian McCarthy <amccarth@google.com>
Tue, 9 Jan 2018 23:49:30 +0000 (23:49 +0000)
commit5855293e6fbb63b4f7a0fb800e8ab69696b9882f
treebe460bf11df710f1d50182e00a1409287748e40b
parent8eca3654c70f64edf2fa8b86b7931d98ad4f39aa
Reland "Emit Function IDs table for Control Flow Guard"

Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs
of functions that have their address taken into a section named .gfids$y for
compatibility with Microsoft's Control Flow Guard feature.

The original patch didn't have the lit.local.cfg file that restricts the new
test to x86, thus the new test was failing on the non-x86 bots.

Differential Revision: https://reviews.llvm.org/D40531

The reverts r322008, which was a revert of r322005.

This reverts commit a05b89f9aca70597dc79fe97bc49b50b51f525ba.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@322136 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Driver/CLCompatOptions.td
include/clang/Driver/Options.td
include/clang/Frontend/CodeGenOptions.def
lib/CodeGen/CodeGenModule.cpp
lib/Driver/ToolChains/Clang.cpp
lib/Frontend/CompilerInvocation.cpp