When you define a class with a macro between the ``class'' specifier and the name of the class you will observe that the access labels ``public:'' and ``private:'' are interpreted as a labels by the autoformatter and an incorrect space is added to its tabbing. Attempts to correct this with ``C - c C - o'' failed. Here is an example: \\\ class TEST_MACRO Test_class { public: Test_class(); virtual ~Test_class(); void method1(); int member1(); }; \\\ Thanks, Dylan Emacs : GNU Emacs 26.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.5) of 2019-04-13 Package: CC Mode 5.33.2 (C++//l) Buffer Style: gnu c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties 1-bit) current state: ============== (setq c-basic-offset 2 c-comment-only-line-offset '(0 . 0) c-indent-comment-alist '((anchored-comment column . 0) (end-block space . 1) (cpp-end-block space . 2)) c-indent-comments-syntactically-p nil c-block-comment-prefix "" c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "