File emacs-cc-mode-custom-keywords.patch of Package emacs
diff --git a/cc-langs.el.new b/cc-langs.el
index ba0d1d0..67396a8 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -127,6 +127,7 @@
(cc-require 'cc-defs)
(cc-require 'cc-vars)
+(cc-require 'cc-custom-keywords)
;; This file is not always loaded. See note above.
@@ -2690,7 +2691,7 @@ If any of these also are on `c-type-list-kwds', `c-ref-list-kwds',
`c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses
will be handled."
t nil
- (c c++) '("extern" "inline" "register" "static")
+ (c c++) (append '("extern" "inline" "register" "static") c-custom-modifier-kwds)
c (append '("auto") (c-lang-const c-modifier-kwds))
c++ (append '("consteval" "constexpr" "constinit" "explicit"
"friend" "mutable" "template" "thread_local" "virtual")
@@ -2768,7 +2769,19 @@ one of `c-type-list-kwds', `c-ref-list-kwds',
(c c++) '(;; GCC extension.
"__attribute__"
;; MSVC extension.
- "__declspec")
+ "__declspec"
+ "__cdecl"
+ "__stdcall"
+ "__fastcall"
+ "__thiscall"
+ "__always_inline"
+ "__forceinline"
+ "__noinline"
+ "__deprecated"
+ "__may_alias"
+ "__noreturn"
+ "__restrict")
+
c++ (append (c-lang-const c-decl-hangon-kwds) '("alignas")))
(c-lang-defconst c-decl-hangon-key
@@ -2998,7 +3011,8 @@ such keywords. Exception: it does not match any C++ attributes."
"Keywords that may be followed by a parenthesis expression that doesn't
contain type identifiers."
t nil
- (c c++) '(;; GCC extension.
+ (c c++) '("alignas"
+ ;; GCC extension.
"__attribute__"
;; MSVC extension.
"__declspec")
@@ -3012,7 +3026,7 @@ contain type identifiers."
"Keywords that may be followed by a parenthesis expression containing
type identifiers separated by arbitrary tokens."
t nil
- c++ '("throw")
+ c++ '("throw" "alignas")
objc '("@defs")
idl '("switch")
pike '("array" "function" "int" "mapping" "multiset" "object" "program"))