diff options
-rw-r--r-- | include/clang/Basic/Builtins.def | 21 | ||||
-rw-r--r-- | lib/AST/ASTContext.cpp | 3 |
2 files changed, 14 insertions, 10 deletions
diff --git a/include/clang/Basic/Builtins.def b/include/clang/Basic/Builtins.def index 375cd69962..a1a0469b8e 100644 --- a/include/clang/Basic/Builtins.def +++ b/include/clang/Basic/Builtins.def @@ -52,6 +52,7 @@ // * -> pointer // & -> reference // C -> const +// D -> volatile // The third value provided to the macro specifies information about attributes // of the function. These must be kept in sync with the predicates in the @@ -439,18 +440,18 @@ BUILTIN(__sync_nand_and_fetch_16, "LLLiLLLi*LLLi.", "n") BUILTIN(__sync_bool_compare_and_swap, "v.", "") -BUILTIN(__sync_bool_compare_and_swap_1, "bc*cc.", "n") -BUILTIN(__sync_bool_compare_and_swap_2, "bs*ss.", "n") -BUILTIN(__sync_bool_compare_and_swap_4, "bi*ii.", "n") -BUILTIN(__sync_bool_compare_and_swap_8, "bLLi*LLi.", "n") -BUILTIN(__sync_bool_compare_and_swap_16, "bLLLi*LLLiLLLi.", "n") +BUILTIN(__sync_bool_compare_and_swap_1, "bcD*cc.", "n") +BUILTIN(__sync_bool_compare_and_swap_2, "bsD*ss.", "n") +BUILTIN(__sync_bool_compare_and_swap_4, "biD*ii.", "n") +BUILTIN(__sync_bool_compare_and_swap_8, "bLLiD*LLiLLi.", "n") +BUILTIN(__sync_bool_compare_and_swap_16, "bLLLiD*LLLiLLLi.", "n") BUILTIN(__sync_val_compare_and_swap, "v.", "") -BUILTIN(__sync_val_compare_and_swap_1, "cc*cc.", "n") -BUILTIN(__sync_val_compare_and_swap_2, "ss*ss.", "n") -BUILTIN(__sync_val_compare_and_swap_4, "ii*ii.", "n") -BUILTIN(__sync_val_compare_and_swap_8, "LLiLLi*LLi.", "n") -BUILTIN(__sync_val_compare_and_swap_16, "LLLiLLLi*LLLiLLLi.", "n") +BUILTIN(__sync_val_compare_and_swap_1, "ccD*cc.", "n") +BUILTIN(__sync_val_compare_and_swap_2, "ssD*ss.", "n") +BUILTIN(__sync_val_compare_and_swap_4, "iiD*ii.", "n") +BUILTIN(__sync_val_compare_and_swap_8, "LLiLLiD*LLiLLi.", "n") +BUILTIN(__sync_val_compare_and_swap_16, "LLLiLLLiD*LLLiLLLi.", "n") BUILTIN(__sync_lock_test_and_set, "v.", "") BUILTIN(__sync_lock_test_and_set_1, "cc*c.", "n") diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index c2eddcb76e..4c4e77a625 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -4793,6 +4793,9 @@ static QualType DecodeTypeFromStr(const char *&Str, ASTContext &Context, case 'C': Type = Type.withConst(); break; + case 'D': + Type = Context.getVolatileType(Type); + break; } } |