diff options
| author | Paul Eggert | 2013-11-03 22:09:03 -0800 |
|---|---|---|
| committer | Paul Eggert | 2013-11-03 22:09:03 -0800 |
| commit | 91f2d272895257f23596075a0cc42e6e5f4e490f (patch) | |
| tree | 5bcf0c44acc54bd56eef8394e50ff7d4cc24d5b3 /src/ChangeLog | |
| parent | 0a749fa0e64fc88bcd1772253774d7e44ecfe8ce (diff) | |
| download | emacs-91f2d272895257f23596075a0cc42e6e5f4e490f.tar.gz emacs-91f2d272895257f23596075a0cc42e6e5f4e490f.zip | |
Port to stricter C99 platforms.
Especially, C99 prohibits nesting a struct X inside struct Y if
struct X has a flexible array member.
Also, merge from gnulib, incorporating:
2013-11-03 intprops: port to Oracle Studio c99
* lib/intprops.h: Update from gnulib.
* src/alloc.c (struct sdata): New type.
(sdata): Implement in terms of struct sdata.
Remove u member; all uses replaced by next_vector, set_next_vector.
(SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
(SDATA_DATA_OFFSET): Now a constant, not a macro.
(struct sblock): Rename first_data member to data, which is now
a flexible array member. All uses changed.
(next_vector, set_next_vector, large_vector_vec): New functions.
(vector_alignment): New constant.
(roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
(struct large-vector): Now merely a NEXT member, since the old approach
ran afoul of stricter C99. All uses changed to use
large_vector_vec or large_vector_offset.
(large_vector_offset): New constant.
* src/dispnew.c: Include tparam.h, for tgetent.
Do not include term.h; no longer needed.
* src/gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
* src/lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
(struct Lisp_Vector): Use a flexible array member for contents,
instead of a union with a member that is an array of size 1.
All uses changed.
(ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
fact that the struct no longer contains a union.
(struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
(struct Lisp_Save_Value, struct Lisp_Free):
Use unsigned, not int, for spacers, to avoid c99 warning.
(union specbinding): Use unsigned, not bool, for bitfield, as
bool is not portable to pre-C99 hosts.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 4815cf3f0f5..1c56a7c5996 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,37 @@ | |||
| 1 | 2013-11-04 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Port to stricter C99 platforms. | ||
| 4 | Especially, C99 prohibits nesting a struct X inside struct Y if | ||
| 5 | struct X has a flexible array member. | ||
| 6 | * alloc.c (struct sdata): New type. | ||
| 7 | (sdata): Implement in terms of struct sdata. | ||
| 8 | Remove u member; all uses replaced by next_vector, set_next_vector. | ||
| 9 | (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change. | ||
| 10 | (SDATA_DATA_OFFSET): Now a constant, not a macro. | ||
| 11 | (struct sblock): Rename first_data member to data, which is now | ||
| 12 | a flexible array member. All uses changed. | ||
| 13 | (next_vector, set_next_vector, large_vector_vec): New functions. | ||
| 14 | (vector_alignment): New constant. | ||
| 15 | (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too. | ||
| 16 | (struct large-vector): Now merely a NEXT member, since the old approach | ||
| 17 | ran afoul of stricter C99. All uses changed to use | ||
| 18 | large_vector_vec or large_vector_offset. | ||
| 19 | (large_vector_offset): New constant. | ||
| 20 | * dispnew.c: Include tparam.h, for tgetent. | ||
| 21 | Do not include term.h; no longer needed. | ||
| 22 | * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn. | ||
| 23 | * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int. | ||
| 24 | (struct Lisp_Vector): Use a flexible array member for contents, | ||
| 25 | instead of a union with a member that is an array of size 1. | ||
| 26 | All uses changed. | ||
| 27 | (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the | ||
| 28 | fact that the struct no longer contains a union. | ||
| 29 | (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay) | ||
| 30 | (struct Lisp_Save_Value, struct Lisp_Free): | ||
| 31 | Use unsigned, not int, for spacers, to avoid c99 warning. | ||
| 32 | (union specbinding): Use unsigned, not bool, for bitfield, as | ||
| 33 | bool is not portable to pre-C99 hosts. | ||
| 34 | |||
| 1 | 2013-11-04 Glenn Morris <rgm@gnu.org> | 35 | 2013-11-04 Glenn Morris <rgm@gnu.org> |
| 2 | 36 | ||
| 3 | * emacs.c (usage_message): Mention that `-L :...' appends. | 37 | * emacs.c (usage_message): Mention that `-L :...' appends. |