From eee537267f8d6a2f5a48f0c26c14546ac922936c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 2 Feb 2017 09:52:20 -0800 Subject: [PATCH] Fix lisp.h underparenthesization * src/lisp.h (STACK_CONS, AUTO_STRING_WITH_LEN): Parenthesize compound literals that are function call args. Although this does not fix any bugs, it is the proper style for macro parenthesization as it means this code will continue to work even if make_lisp_ptr is changed to a macro. --- src/lisp.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lisp.h b/src/lisp.h index 1ac38164c27..a9011b4a8be 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4535,7 +4535,7 @@ enum use these only in macros like AUTO_CONS that declare a local variable whose lifetime will be clear to the programmer. */ #define STACK_CONS(a, b) \ - make_lisp_ptr (&(union Aligned_Cons) { { a, { b } } }.s, Lisp_Cons) + make_lisp_ptr (&((union Aligned_Cons) { { a, { b } } }).s, Lisp_Cons) #define AUTO_CONS_EXPR(a, b) \ (USE_STACK_CONS ? STACK_CONS (a, b) : Fcons (a, b)) @@ -4581,8 +4581,7 @@ enum Lisp_Object name = \ (USE_STACK_STRING \ ? (make_lisp_ptr \ - ((&(union Aligned_String) \ - {{len, -1, 0, (unsigned char *) (str)}}.s), \ + ((&((union Aligned_String) {{len, -1, 0, (unsigned char *) (str)}}).s), \ Lisp_String)) \ : make_unibyte_string (str, len)) -- 2.39.5