]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue. (bug#5916)
authorKen Raeburn <raeburn@raeburn.org>
Sat, 15 May 2010 21:19:05 +0000 (17:19 -0400)
committerKen Raeburn <raeburn@raeburn.org>
Sat, 15 May 2010 21:19:05 +0000 (17:19 -0400)
(LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise.

src/ChangeLog
src/lisp.h

index 32761b6f446454132917d7cff6bcbe6c14bf727c..877accc913baae4968793354c4b8ba8d12a89363 100644 (file)
@@ -1,5 +1,9 @@
 2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 
+       * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an
+       rvalue. (bug#5916)
+       (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise.
+
        * emacs.c (main): Initialize initial-environment and
        process-environment before generating from env, not after.
 
index 7d329cc754ce60ad63f13c69026dea3c86d82765..b4ff446b0644ecf3b1b30524bb163caad2223b80 100644 (file)
@@ -310,11 +310,10 @@ LISP_MAKE_RVALUE (Lisp_Object o)
     return o;
 }
 #else
-/* This isn't quite right - it keeps the argument as an lvalue.
-   Making it const via casting would help avoid code actually
-   modifying the location in question, but the casting could cover
-   other type-related bugs.  */
-#define LISP_MAKE_RVALUE(o) (o)
+/* This is more portable to pre-C99 non-GCC compilers, but for
+   backwards compatibility GCC still accepts an old GNU extension
+   which caused this to only generate a warning.  */
+#define LISP_MAKE_RVALUE(o) (0 ? (o) : (o))
 #endif
 
 #else /* USE_LISP_UNION_TYPE */
@@ -1461,9 +1460,9 @@ struct Lisp_Float
   };
 
 #ifdef HIDE_LISP_IMPLEMENTATION
-#define XFLOAT_DATA(f) (XFLOAT (f)->u.data_ + 0)
+#define XFLOAT_DATA(f) (0 ? XFLOAT (f)->u.data_ : XFLOAT (f)->u.data_)
 #else
-#define XFLOAT_DATA(f) (XFLOAT (f)->u.data + 0)
+#define XFLOAT_DATA(f) (0 ? XFLOAT (f)->u.data :  XFLOAT (f)->u.data)
 /* This should be used only in alloc.c, which always disables
    HIDE_LISP_IMPLEMENTATION.  */
 #define XFLOAT_INIT(f,n) (XFLOAT (f)->u.data = (n))