]> granicus.if.org Git - clang/commit
[AArch64] Branch Protection and Return Address Signing B Key Support
authorLuke Cheeseman <luke.cheeseman@arm.com>
Thu, 25 Oct 2018 15:23:49 +0000 (15:23 +0000)
committerLuke Cheeseman <luke.cheeseman@arm.com>
Thu, 25 Oct 2018 15:23:49 +0000 (15:23 +0000)
commit4d3e4f1f05524792f9f7770ae5e4fbd527c0de31
tree461474b54fb4d61fcf1c8f7b6d6c127308a3b03e
parente9e6d674bbb124ff6fdca9731505070e0860b782
[AArch64] Branch Protection and Return Address Signing B Key Support

- Add support for -mbranch-protection=<type>[+<type>]* where
  - <type> ::= [standard, none, bti, pac-ret[+b-key,+leaf]*]
- The protection emits relevant function attributes
  - sign-return-address=<scope>
  - sign-return-address-key=<key>
  - branch-protection

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@345273 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/DiagnosticDriverKinds.td
include/clang/Driver/CC1Options.td
include/clang/Driver/Options.td
include/clang/Frontend/CodeGenOptions.def
include/clang/Frontend/CodeGenOptions.h
lib/CodeGen/CGDeclCXX.cpp
lib/CodeGen/TargetInfo.cpp
lib/Driver/ToolChains/Clang.cpp
lib/Frontend/CompilerInvocation.cpp
test/CodeGen/aarch64-sign-return-address.c
test/CodeGenCXX/aarch64-sign-return-address-static-ctor.cpp