# HG changeset patch # User Ken Raeburn # Date 1273958345 14400 # Node ID 3b0bab58a95f9797b8b5394a59ccb146a374cd5e # Parent 135d8ad190d8d4e171f8fbbf7bc2ee45d6419dfe * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue. (bug#5916) (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise. diff -r 135d8ad190d8 -r 3b0bab58a95f src/ChangeLog --- a/src/ChangeLog Sat May 15 17:16:20 2010 -0400 +++ b/src/ChangeLog Sat May 15 17:19:05 2010 -0400 @@ -1,5 +1,9 @@ 2010-05-15 Ken Raeburn + * 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. diff -r 135d8ad190d8 -r 3b0bab58a95f src/lisp.h --- a/src/lisp.h Sat May 15 17:16:20 2010 -0400 +++ b/src/lisp.h Sat May 15 17:19:05 2010 -0400 @@ -310,11 +310,10 @@ 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 @@ }; #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))