@vindex noise-macro-names @r{(c-)}
This variable is a list of names of noise macros which never have
parenthesized arguments. Each element is a string, and must be a
-valid identifier. An element in @code{c-noise-macro-names} must not
-also be in @code{c-noise-macro-with-parens-names}. Such an element is
-treated as whitespace by @ccmode{}.
+valid identifier. Alternatively, the variable may be a regular
+expression which matches the names of such macros. Such a noise macro
+is treated as whitespace by @ccmode{}. It must not also be in, or be
+matched by @code{c-noise-macro-with-parens-names}.
@end defopt
@defopt c-noise-macro-with-parens-names
@vindex noise-macro-with-parens-names @r{(c-)}
This variable is a list of names of noise macros which optionally have
arguments in parentheses. Each element of the list is a string, and
-must be a valid identifier. An element in
-@code{c-noise-macro-with-parens-names} must not also be in
-@code{c-noise-macro-names}. For performance reasons, such an element,
-together with the optional parenthesized arguments, is specially
-handled, but it is only handled when used in declaration
-contexts@footnote{If this restriction causes your project
-difficulties, please get in touch with @email{bug-cc-mode@@gnu.org}.}.
+must be a valid identifier. Alternatively, the variable may be a
+regular expression which matches the names of such macros. Such a
+noise macro must not also be in, or be matched by
+@code{c-noise-macro-names}. For performance reasons, such a noise
+macro, including any parenthesized arguments, is specially handled,
+but it is only handled when used in declaration contexts@footnote{If
+this restriction causes your project difficulties, please get in touch
+with @email{bug-cc-mode@@gnu.org}.}.
The two compiler directives @code{__attribute__} and @code{__declspec}
have traditionally been handled specially in @ccmode{}; for example
(defcustom c-noise-macro-names nil
"A list of names of macros which expand to nothing, or compiler extensions
-like \"????\" which are syntactic noise. Such a macro/extension is complete in
-itself, never having parentheses. All these names must be syntactically valid
-identifiers.
+like \"INLINE\" which are syntactic noise. Such a macro/extension is complete
+in itself, never having parentheses. All these names must be syntactically
+valid identifiers. Alternatively, this variable may be a regular expression
+which matches the names of such macros.
If you change this variable's value, call the function
`c-make-noise-macro-regexps' to set the necessary internal variables (or do
(defcustom c-noise-macro-with-parens-names nil
"A list of names of macros (or compiler extensions like \"__attribute__\")
which optionally have arguments in parentheses, and which expand to nothing.
-These are recognized by CC Mode only in declarations."
+All these names must be syntactically valid identifiers. These are recognized
+by CC Mode only in declarations. Alternatively, this variable may be a
+regular expression which matches the names of such macros.
+
+If you change this variable's value, call the function
+`c-make-noise-macro-regexps' to set the necessary internal variables (or do
+this implicitly by reinitializing C/C++/Objc Mode on any buffer)."
:version "26.1"
:type '(repeat :tag "List of names (possibly empty)" string)
:group 'c)