From: Alan Mackenzie Date: Wed, 3 Mar 2021 11:55:51 +0000 (+0000) Subject: C++ Mode: Handle "if constexpr (...)" with a simple statement correctly X-Git-Tag: emacs-28.0.90~3457 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9ef8a3bfca192777e7cf8b4748d188249a517582;p=emacs.git C++ Mode: Handle "if constexpr (...)" with a simple statement correctly * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Add a check and handling for c-block-stmt-hangon-key in the main loop. --- diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 079985a6bc5..5a8b2f4f906 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -1184,6 +1184,15 @@ comment at the start of cc-engine.el for more info." ;; suitable error. (setq pre-stmt-found t) (throw 'loop nil)) + ;; Handle C++'s `constexpr', etc. + (if (save-excursion + (and (looking-at c-block-stmt-hangon-key) + (progn + (c-backward-syntactic-ws lim) + (c-safe (c-backward-sexp) t)) + (looking-at c-block-stmt-2-key) + (setq pos (point)))) + (goto-char pos)) (cond ;; Have we moved into a macro? ((and (not macro-start)