summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCharles Davis <cdavis5x@gmail.com>2013-08-30 04:39:01 +0000
committerCharles Davis <cdavis5x@gmail.com>2013-08-30 04:39:01 +0000
commite8519c31a6ef853b627d557702ac1890f18ce2c9 (patch)
treeab9059f5be572402762474d4d95fdb91821ff734 /include
parent3f125819c648101cbfd3dfb7b3776834d6cc3423 (diff)
downloadclang-e8519c31a6ef853b627d557702ac1890f18ce2c9.tar.gz
clang-e8519c31a6ef853b627d557702ac1890f18ce2c9.tar.bz2
clang-e8519c31a6ef853b627d557702ac1890f18ce2c9.tar.xz
Add ms_abi and sysv_abi attribute handling.
Based on a patch by Benno Rice! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189644 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/clang-c/Index.h2
-rw-r--r--include/clang/AST/Type.h2
-rw-r--r--include/clang/Basic/Attr.td8
-rw-r--r--include/clang/Basic/Specifiers.h2
4 files changed, 14 insertions, 0 deletions
diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h
index d43c2d619a..b294e41439 100644
--- a/include/clang-c/Index.h
+++ b/include/clang-c/Index.h
@@ -2694,6 +2694,8 @@ enum CXCallingConv {
CXCallingConv_AAPCS_VFP = 7,
CXCallingConv_PnaclCall = 8,
CXCallingConv_IntelOclBicc = 9,
+ CXCallingConv_X86_64Win64 = 10,
+ CXCallingConv_X86_64SysV = 11,
CXCallingConv_Invalid = 100,
CXCallingConv_Unexposed = 200
diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h
index 436fceeb80..ca2e42b8f3 100644
--- a/include/clang/AST/Type.h
+++ b/include/clang/AST/Type.h
@@ -3393,6 +3393,8 @@ public:
attr_pascal,
attr_pnaclcall,
attr_inteloclbicc,
+ attr_ms_abi,
+ attr_sysv_abi,
attr_ptr32,
attr_ptr64,
attr_sptr,
diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td
index bd9e48f0e7..d38ffa60e1 100644
--- a/include/clang/Basic/Attr.td
+++ b/include/clang/Basic/Attr.td
@@ -426,6 +426,10 @@ def MayAlias : InheritableAttr {
let Spellings = [GNU<"may_alias">, CXX11<"gnu", "may_alias">];
}
+def MSABI : InheritableAttr {
+ let Spellings = [GNU<"ms_abi">, CXX11<"gnu", "ms_abi">];
+}
+
def MSP430Interrupt : InheritableAttr, TargetSpecificAttr {
let Spellings = [];
let Args = [UnsignedArgument<"Number">];
@@ -660,6 +664,10 @@ def StdCall : InheritableAttr {
Keyword<"__stdcall">, Keyword<"_stdcall">];
}
+def SysVABI : InheritableAttr {
+ let Spellings = [GNU<"sysv_abi">, CXX11<"gnu", "sysv_abi">];
+}
+
def ThisCall : InheritableAttr {
let Spellings = [GNU<"thiscall">, CXX11<"gnu", "thiscall">,
Keyword<"__thiscall">, Keyword<"_thiscall">];
diff --git a/include/clang/Basic/Specifiers.h b/include/clang/Basic/Specifiers.h
index d9d5799e04..91383b76ba 100644
--- a/include/clang/Basic/Specifiers.h
+++ b/include/clang/Basic/Specifiers.h
@@ -205,6 +205,8 @@ namespace clang {
CC_X86FastCall, // __attribute__((fastcall))
CC_X86ThisCall, // __attribute__((thiscall))
CC_X86Pascal, // __attribute__((pascal))
+ CC_X86_64Win64, // __attribute__((ms_abi))
+ CC_X86_64SysV, // __attribute__((sysv_abi))
CC_AAPCS, // __attribute__((pcs("aapcs")))
CC_AAPCS_VFP, // __attribute__((pcs("aapcs-vfp")))
CC_PnaclCall, // __attribute__((pnaclcall))