aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2016-06-08 10:33:34 -0700
committerPaul Eggert2016-06-08 11:50:42 -0700
commit82f49c6a373f981a778f4d939ca2d47c031e0659 (patch)
treee84afa8e7af336f15f37789fbf23f4ec62905790 /src
parent7715ee54b3588cfdef03b5d45aaf44b73b422ec6 (diff)
downloademacs-82f49c6a373f981a778f4d939ca2d47c031e0659.tar.gz
emacs-82f49c6a373f981a778f4d939ca2d47c031e0659.zip
Replace IF_LINT by NONVOLATILE and UNINIT
Inspired by a suggestion from RMS in: http://bugs.gnu.org/23640#58 * .dir-locals.el (c-mode): Adjust to macro changes. * src/conf_post.h (NONVOLATILE, UNINIT): New macros (Bug#23640). (IF_LINT): Remove. All uses replaced by the new macros.
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c3
-rw-r--r--src/charset.c3
-rw-r--r--src/cm.c2
-rw-r--r--src/coding.c9
-rw-r--r--src/composite.c3
-rw-r--r--src/conf_post.h16
-rw-r--r--src/editfns.c4
-rw-r--r--src/fileio.c4
-rw-r--r--src/font.c3
-rw-r--r--src/fontset.c3
-rw-r--r--src/fringe.c2
-rw-r--r--src/gtkutil.c3
-rw-r--r--src/image.c11
-rw-r--r--src/indent.c6
-rw-r--r--src/keyboard.c10
-rw-r--r--src/lread.c9
-rw-r--r--src/minibuf.c2
-rw-r--r--src/print.c2
-rw-r--r--src/regex.c2
-rw-r--r--src/syntax.c2
-rw-r--r--src/term.c8
-rw-r--r--src/window.c8
-rw-r--r--src/xdisp.c30
-rw-r--r--src/xfont.c2
24 files changed, 79 insertions, 68 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 534b9e40da3..af8c7324da1 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3907,7 +3907,8 @@ buffer. */)
3907 struct buffer *b, *ob = 0; 3907 struct buffer *b, *ob = 0;
3908 Lisp_Object obuffer; 3908 Lisp_Object obuffer;
3909 ptrdiff_t count = SPECPDL_INDEX (); 3909 ptrdiff_t count = SPECPDL_INDEX ();
3910 ptrdiff_t n_beg, n_end, o_beg IF_LINT (= 0), o_end IF_LINT (= 0); 3910 ptrdiff_t n_beg, n_end;
3911 ptrdiff_t o_beg UNINIT, o_end UNINIT;
3911 3912
3912 CHECK_OVERLAY (overlay); 3913 CHECK_OVERLAY (overlay);
3913 if (NILP (buffer)) 3914 if (NILP (buffer))
diff --git a/src/charset.c b/src/charset.c
index 1a135849539..688205245a9 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -240,7 +240,8 @@ struct charset_map_entries
240static void 240static void
241load_charset_map (struct charset *charset, struct charset_map_entries *entries, int n_entries, int control_flag) 241load_charset_map (struct charset *charset, struct charset_map_entries *entries, int n_entries, int control_flag)
242{ 242{
243 Lisp_Object vec, table IF_LINT (= Qnil); 243 Lisp_Object vec;
244 Lisp_Object table UNINIT;
244 unsigned max_code = CHARSET_MAX_CODE (charset); 245 unsigned max_code = CHARSET_MAX_CODE (charset);
245 bool ascii_compatible_p = charset->ascii_compatible_p; 246 bool ascii_compatible_p = charset->ascii_compatible_p;
246 int min_char, max_char, nonascii_min_char; 247 int min_char, max_char, nonascii_min_char;
diff --git a/src/cm.c b/src/cm.c
index 4f94c079315..e135889f17c 100644
--- a/src/cm.c
+++ b/src/cm.c
@@ -321,7 +321,7 @@ cmgoto (struct tty_display_info *tty, int row, int col)
321 llcost, 321 llcost,
322 relcost, 322 relcost,
323 directcost; 323 directcost;
324 int use IF_LINT (= 0); 324 int use UNINIT;
325 char *p; 325 char *p;
326 const char *dcm; 326 const char *dcm;
327 327
diff --git a/src/coding.c b/src/coding.c
index a28fec1efe4..3f7d11151d4 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -2365,7 +2365,8 @@ decode_coding_emacs_mule (struct coding_system *coding)
2365 2365
2366 while (1) 2366 while (1)
2367 { 2367 {
2368 int c, id IF_LINT (= 0); 2368 int c;
2369 int id UNINIT;
2369 2370
2370 src_base = src; 2371 src_base = src;
2371 consumed_chars_base = consumed_chars; 2372 consumed_chars_base = consumed_chars;
@@ -2410,7 +2411,7 @@ decode_coding_emacs_mule (struct coding_system *coding)
2410 } 2411 }
2411 else 2412 else
2412 { 2413 {
2413 int nchars IF_LINT (= 0), nbytes IF_LINT (= 0); 2414 int nchars UNINIT, nbytes UNINIT;
2414 /* emacs_mule_char can load a charset map from a file, which 2415 /* emacs_mule_char can load a charset map from a file, which
2415 allocates a large structure and might cause buffer text 2416 allocates a large structure and might cause buffer text
2416 to be relocated as result. Thus, we need to remember the 2417 to be relocated as result. Thus, we need to remember the
@@ -8565,8 +8566,8 @@ detect_coding_system (const unsigned char *src,
8565 base_category = XINT (CODING_ATTR_CATEGORY (attrs)); 8566 base_category = XINT (CODING_ATTR_CATEGORY (attrs));
8566 if (base_category == coding_category_undecided) 8567 if (base_category == coding_category_undecided)
8567 { 8568 {
8568 enum coding_category category IF_LINT (= 0); 8569 enum coding_category category UNINIT;
8569 struct coding_system *this IF_LINT (= NULL); 8570 struct coding_system *this UNINIT;
8570 int c, i; 8571 int c, i;
8571 bool inhibit_nbd = inhibit_flag (coding.spec.undecided.inhibit_nbd, 8572 bool inhibit_nbd = inhibit_flag (coding.spec.undecided.inhibit_nbd,
8572 inhibit_null_byte_detection); 8573 inhibit_null_byte_detection);
diff --git a/src/composite.c b/src/composite.c
index 49b00036361..bef1c5f7c3b 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1308,7 +1308,8 @@ composition_reseat_it (struct composition_it *cmp_it, ptrdiff_t charpos,
1308int 1308int
1309composition_update_it (struct composition_it *cmp_it, ptrdiff_t charpos, ptrdiff_t bytepos, Lisp_Object string) 1309composition_update_it (struct composition_it *cmp_it, ptrdiff_t charpos, ptrdiff_t bytepos, Lisp_Object string)
1310{ 1310{
1311 int i, c IF_LINT (= 0); 1311 int i;
1312 int c UNINIT;
1312 1313
1313 if (cmp_it->ch < 0) 1314 if (cmp_it->ch < 0)
1314 { 1315 {
diff --git a/src/conf_post.h b/src/conf_post.h
index 762aa7727fd..1dd915b5969 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -357,11 +357,21 @@ extern int emacs_setenv_TZ (char const *);
357# define FLEXIBLE_ARRAY_MEMBER 357# define FLEXIBLE_ARRAY_MEMBER
358#endif 358#endif
359 359
360/* Use CODE only if lint checking is in effect. */ 360/* When used in place of 'volatile', 'NONVOLATILE' is equivalent to nothing,
361 except it cajoles GCC into not warning incorrectly that a variable needs to
362 be volatile. This works around GCC bug 54561. */
361#if defined GCC_LINT || defined lint 363#if defined GCC_LINT || defined lint
362# define IF_LINT(Code) Code 364# define NONVOLATILE volatile
363#else 365#else
364# define IF_LINT(Code) /* empty */ 366# define NONVOLATILE /* empty */
367#endif
368
369/* 'int x UNINIT;' is equivalent to 'int x;', except it cajoles GCC
370 into not warning incorrectly about use of an uninitialized variable. */
371#if defined GCC_LINT || defined lint
372# define UNINIT = {0,}
373#else
374# define UNINIT /* empty */
365#endif 375#endif
366 376
367/* conf_post.h ends here */ 377/* conf_post.h ends here */
diff --git a/src/editfns.c b/src/editfns.c
index 81c30d30d62..f29fc510a21 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3362,7 +3362,7 @@ It returns the number of characters changed. */)
3362 ptrdiff_t size; /* Size of translate table. */ 3362 ptrdiff_t size; /* Size of translate table. */
3363 ptrdiff_t pos, pos_byte, end_pos; 3363 ptrdiff_t pos, pos_byte, end_pos;
3364 bool multibyte = !NILP (BVAR (current_buffer, enable_multibyte_characters)); 3364 bool multibyte = !NILP (BVAR (current_buffer, enable_multibyte_characters));
3365 bool string_multibyte IF_LINT (= 0); 3365 bool string_multibyte UNINIT;
3366 3366
3367 validate_region (&start, &end); 3367 validate_region (&start, &end);
3368 if (CHAR_TABLE_P (table)) 3368 if (CHAR_TABLE_P (table))
@@ -3917,7 +3917,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
3917 ptrdiff_t bufsize = sizeof initial_buffer; 3917 ptrdiff_t bufsize = sizeof initial_buffer;
3918 ptrdiff_t max_bufsize = STRING_BYTES_BOUND + 1; 3918 ptrdiff_t max_bufsize = STRING_BYTES_BOUND + 1;
3919 char *p; 3919 char *p;
3920 ptrdiff_t buf_save_value_index IF_LINT (= 0); 3920 ptrdiff_t buf_save_value_index UNINIT;
3921 char *format, *end; 3921 char *format, *end;
3922 ptrdiff_t nchars; 3922 ptrdiff_t nchars;
3923 /* When we make a multibyte string, we must pay attention to the 3923 /* When we make a multibyte string, we must pay attention to the
diff --git a/src/fileio.c b/src/fileio.c
index 9e3e54df969..99840457ec5 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4687,7 +4687,7 @@ write_region (Lisp_Object start, Lisp_Object end, Lisp_Object filename,
4687{ 4687{
4688 int open_flags; 4688 int open_flags;
4689 int mode; 4689 int mode;
4690 off_t offset IF_LINT (= 0); 4690 off_t offset UNINIT;
4691 bool open_and_close_file = desc < 0; 4691 bool open_and_close_file = desc < 0;
4692 bool ok; 4692 bool ok;
4693 int save_errno = 0; 4693 int save_errno = 0;
@@ -4695,7 +4695,7 @@ write_region (Lisp_Object start, Lisp_Object end, Lisp_Object filename,
4695 struct stat st; 4695 struct stat st;
4696 struct timespec modtime; 4696 struct timespec modtime;
4697 ptrdiff_t count = SPECPDL_INDEX (); 4697 ptrdiff_t count = SPECPDL_INDEX ();
4698 ptrdiff_t count1 IF_LINT (= 0); 4698 ptrdiff_t count1 UNINIT;
4699 Lisp_Object handler; 4699 Lisp_Object handler;
4700 Lisp_Object visit_file; 4700 Lisp_Object visit_file;
4701 Lisp_Object annotations; 4701 Lisp_Object annotations;
diff --git a/src/font.c b/src/font.c
index 6dbda40d52f..f289891bf65 100644
--- a/src/font.c
+++ b/src/font.c
@@ -2234,7 +2234,8 @@ font_sort_entities (Lisp_Object list, Lisp_Object prefer,
2234 struct font_sort_data *data; 2234 struct font_sort_data *data;
2235 unsigned best_score; 2235 unsigned best_score;
2236 Lisp_Object best_entity; 2236 Lisp_Object best_entity;
2237 Lisp_Object tail, vec IF_LINT (= Qnil); 2237 Lisp_Object tail;
2238 Lisp_Object vec UNINIT;
2238 USE_SAFE_ALLOCA; 2239 USE_SAFE_ALLOCA;
2239 2240
2240 for (i = FONT_WEIGHT_INDEX; i <= FONT_AVGWIDTH_INDEX; i++) 2241 for (i = FONT_WEIGHT_INDEX; i <= FONT_AVGWIDTH_INDEX; i++)
diff --git a/src/fontset.c b/src/fontset.c
index d87901d42b8..81528de55a0 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -750,7 +750,8 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face,
750static Lisp_Object 750static Lisp_Object
751fontset_font (Lisp_Object fontset, int c, struct face *face, int id) 751fontset_font (Lisp_Object fontset, int c, struct face *face, int id)
752{ 752{
753 Lisp_Object rfont_def, default_rfont_def IF_LINT (= Qnil); 753 Lisp_Object rfont_def;
754 Lisp_Object default_rfont_def UNINIT;
754 Lisp_Object base_fontset; 755 Lisp_Object base_fontset;
755 756
756 /* Try a font-group of FONTSET. */ 757 /* Try a font-group of FONTSET. */
diff --git a/src/fringe.c b/src/fringe.c
index 55f37b88787..87ec9d15c01 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -956,7 +956,7 @@ update_window_fringes (struct window *w, bool keep_current_p)
956 row->indicate_bob_p is set, so it's OK that top_row_ends_at_zv_p 956 row->indicate_bob_p is set, so it's OK that top_row_ends_at_zv_p
957 is not initialized here. Similarly for bot_ind_rn, 957 is not initialized here. Similarly for bot_ind_rn,
958 row->indicate_eob_p and bot_row_ends_at_zv_p. */ 958 row->indicate_eob_p and bot_row_ends_at_zv_p. */
959 int top_row_ends_at_zv_p IF_LINT (= 0), bot_row_ends_at_zv_p IF_LINT (= 0); 959 int top_row_ends_at_zv_p UNINIT, bot_row_ends_at_zv_p UNINIT;
960 960
961 if (w->pseudo_window_p) 961 if (w->pseudo_window_p)
962 return 0; 962 return 0;
diff --git a/src/gtkutil.c b/src/gtkutil.c
index e791e6ac317..88e6d30bd9a 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1829,7 +1829,8 @@ xg_get_file_with_chooser (struct frame *f,
1829{ 1829{
1830 char msgbuf[1024]; 1830 char msgbuf[1024];
1831 1831
1832 GtkWidget *filewin, *wtoggle, *wbox, *wmessage IF_LINT (= NULL); 1832 GtkWidget *filewin, *wtoggle, *wbox;
1833 GtkWidget *wmessage UNINIT;
1833 GtkWindow *gwin = GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)); 1834 GtkWindow *gwin = GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f));
1834 GtkFileChooserAction action = (mustmatch_p ? 1835 GtkFileChooserAction action = (mustmatch_p ?
1835 GTK_FILE_CHOOSER_ACTION_OPEN : 1836 GTK_FILE_CHOOSER_ACTION_OPEN :
diff --git a/src/image.c b/src/image.c
index 0991f579579..38866e08345 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1142,7 +1142,8 @@ static RGB_PIXEL_COLOR
1142four_corners_best (XImagePtr_or_DC ximg, int *corners, 1142four_corners_best (XImagePtr_or_DC ximg, int *corners,
1143 unsigned long width, unsigned long height) 1143 unsigned long width, unsigned long height)
1144{ 1144{
1145 RGB_PIXEL_COLOR corner_pixels[4], best IF_LINT (= 0); 1145 RGB_PIXEL_COLOR corner_pixels[4];
1146 RGB_PIXEL_COLOR best UNINIT;
1146 int i, best_count; 1147 int i, best_count;
1147 1148
1148 if (corners && corners[BOT_CORNER] >= 0) 1149 if (corners && corners[BOT_CORNER] >= 0)
@@ -5895,9 +5896,8 @@ static bool
5895png_load_body (struct frame *f, struct image *img, struct png_load_context *c) 5896png_load_body (struct frame *f, struct image *img, struct png_load_context *c)
5896{ 5897{
5897 Lisp_Object specified_file; 5898 Lisp_Object specified_file;
5898 /* IF_LINT (volatile) works around GCC bug 54561. */ 5899 Lisp_Object NONVOLATILE specified_data;
5899 Lisp_Object IF_LINT (volatile) specified_data; 5900 FILE *NONVOLATILE fp = NULL;
5900 FILE * IF_LINT (volatile) fp = NULL;
5901 int x, y; 5901 int x, y;
5902 ptrdiff_t i; 5902 ptrdiff_t i;
5903 png_struct *png_ptr; 5903 png_struct *png_ptr;
@@ -6668,8 +6668,7 @@ jpeg_load_body (struct frame *f, struct image *img,
6668 struct my_jpeg_error_mgr *mgr) 6668 struct my_jpeg_error_mgr *mgr)
6669{ 6669{
6670 Lisp_Object specified_file; 6670 Lisp_Object specified_file;
6671 /* IF_LINT (volatile) works around GCC bug 54561. */ 6671 Lisp_Object NONVOLATILE specified_data;
6672 Lisp_Object IF_LINT (volatile) specified_data;
6673 FILE *volatile fp = NULL; 6672 FILE *volatile fp = NULL;
6674 JSAMPARRAY buffer; 6673 JSAMPARRAY buffer;
6675 int row_stride, x, y; 6674 int row_stride, x, y;
diff --git a/src/indent.c b/src/indent.c
index 0ef8903501d..5d7c6ae4f98 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1995,7 +1995,7 @@ whether or not it is currently displayed in some window. */)
1995 struct text_pos pt; 1995 struct text_pos pt;
1996 struct window *w; 1996 struct window *w;
1997 Lisp_Object old_buffer; 1997 Lisp_Object old_buffer;
1998 EMACS_INT old_charpos IF_LINT (= 0), old_bytepos IF_LINT (= 0); 1998 EMACS_INT old_charpos UNINIT, old_bytepos UNINIT;
1999 Lisp_Object lcols; 1999 Lisp_Object lcols;
2000 void *itdata = NULL; 2000 void *itdata = NULL;
2001 2001
@@ -2036,8 +2036,8 @@ whether or not it is currently displayed in some window. */)
2036 bool disp_string_at_start_p = 0; 2036 bool disp_string_at_start_p = 0;
2037 ptrdiff_t nlines = XINT (lines); 2037 ptrdiff_t nlines = XINT (lines);
2038 int vpos_init = 0; 2038 int vpos_init = 0;
2039 double start_col IF_LINT (= 0); 2039 double start_col UNINIT;
2040 int start_x IF_LINT (= 0); 2040 int start_x UNINIT;
2041 int to_x = -1; 2041 int to_x = -1;
2042 2042
2043 bool start_x_given = !NILP (cur_col); 2043 bool start_x_given = !NILP (cur_col);
diff --git a/src/keyboard.c b/src/keyboard.c
index d2976cb7359..717c0710a5c 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2312,9 +2312,7 @@ read_char (int commandflag, Lisp_Object map,
2312 Lisp_Object prev_event, 2312 Lisp_Object prev_event,
2313 bool *used_mouse_menu, struct timespec *end_time) 2313 bool *used_mouse_menu, struct timespec *end_time)
2314{ 2314{
2315 /* IF_LINT (volatile) works around GCC bug 54561. */ 2315 Lisp_Object NONVOLATILE c;
2316 Lisp_Object IF_LINT (volatile) c;
2317
2318 ptrdiff_t jmpcount; 2316 ptrdiff_t jmpcount;
2319 sys_jmp_buf local_getcjmp; 2317 sys_jmp_buf local_getcjmp;
2320 sys_jmp_buf save_jump; 2318 sys_jmp_buf save_jump;
@@ -8843,7 +8841,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
8843 8841
8844 /* The length of the echo buffer when we started reading, and 8842 /* The length of the echo buffer when we started reading, and
8845 the length of this_command_keys when we started reading. */ 8843 the length of this_command_keys when we started reading. */
8846 ptrdiff_t echo_start IF_LINT (= 0); 8844 ptrdiff_t echo_start UNINIT;
8847 ptrdiff_t keys_start; 8845 ptrdiff_t keys_start;
8848 8846
8849 Lisp_Object current_binding = Qnil; 8847 Lisp_Object current_binding = Qnil;
@@ -8891,7 +8889,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
8891 While we're reading, we keep the event here. */ 8889 While we're reading, we keep the event here. */
8892 Lisp_Object delayed_switch_frame; 8890 Lisp_Object delayed_switch_frame;
8893 8891
8894 Lisp_Object original_uppercase IF_LINT (= Qnil); 8892 Lisp_Object original_uppercase UNINIT;
8895 int original_uppercase_position = -1; 8893 int original_uppercase_position = -1;
8896 8894
8897 /* Gets around Microsoft compiler limitations. */ 8895 /* Gets around Microsoft compiler limitations. */
@@ -9001,7 +8999,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9001 while those allow us to restart the entire key sequence, 8999 while those allow us to restart the entire key sequence,
9002 echo_local_start and keys_local_start allow us to throw away 9000 echo_local_start and keys_local_start allow us to throw away
9003 just one key. */ 9001 just one key. */
9004 ptrdiff_t echo_local_start IF_LINT (= 0); 9002 ptrdiff_t echo_local_start UNINIT;
9005 int keys_local_start; 9003 int keys_local_start;
9006 Lisp_Object new_binding; 9004 Lisp_Object new_binding;
9007 9005
diff --git a/src/lread.c b/src/lread.c
index 98a4d69894b..b08ce17fd9c 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1040,7 +1040,7 @@ Return t if the file exists and loads successfully. */)
1040{ 1040{
1041 FILE *stream; 1041 FILE *stream;
1042 int fd; 1042 int fd;
1043 int fd_index; 1043 int fd_index UNINIT;
1044 ptrdiff_t count = SPECPDL_INDEX (); 1044 ptrdiff_t count = SPECPDL_INDEX ();
1045 Lisp_Object found, efound, hist_file_name; 1045 Lisp_Object found, efound, hist_file_name;
1046 /* True means we printed the ".el is newer" message. */ 1046 /* True means we printed the ".el is newer" message. */
@@ -1156,12 +1156,7 @@ Return t if the file exists and loads successfully. */)
1156#endif 1156#endif
1157 } 1157 }
1158 1158
1159 if (fd < 0) 1159 if (0 <= fd)
1160 {
1161 /* Pacify older GCC with --enable-gcc-warnings. */
1162 IF_LINT (fd_index = 0);
1163 }
1164 else
1165 { 1160 {
1166 fd_index = SPECPDL_INDEX (); 1161 fd_index = SPECPDL_INDEX ();
1167 record_unwind_protect_int (close_file_unwind, fd); 1162 record_unwind_protect_int (close_file_unwind, fd);
diff --git a/src/minibuf.c b/src/minibuf.c
index 75831618ea5..7bad6f0e018 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -194,7 +194,7 @@ read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial,
194 int c; 194 int c;
195 unsigned char hide_char = 0; 195 unsigned char hide_char = 0;
196 struct emacs_tty etty; 196 struct emacs_tty etty;
197 bool etty_valid IF_LINT (= false); 197 bool etty_valid UNINIT;
198 198
199 /* Check, whether we need to suppress echoing. */ 199 /* Check, whether we need to suppress echoing. */
200 if (CHARACTERP (Vread_hide_char)) 200 if (CHARACTERP (Vread_hide_char))
diff --git a/src/print.c b/src/print.c
index 83edbb6bfa4..5531210e1b8 100644
--- a/src/print.c
+++ b/src/print.c
@@ -203,7 +203,7 @@ print_unwind (Lisp_Object saved_text)
203static void 203static void
204printchar_to_stream (unsigned int ch, FILE *stream) 204printchar_to_stream (unsigned int ch, FILE *stream)
205{ 205{
206 Lisp_Object dv IF_LINT (= Qnil); 206 Lisp_Object dv UNINIT;
207 ptrdiff_t i = 0, n = 1; 207 ptrdiff_t i = 0, n = 1;
208 Lisp_Object coding_system = Vlocale_coding_system; 208 Lisp_Object coding_system = Vlocale_coding_system;
209 bool encode_p = false; 209 bool encode_p = false;
diff --git a/src/regex.c b/src/regex.c
index fc2a46fd5a3..f92bcb7923b 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -5444,7 +5444,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, const_re_char *string1,
5444 5444
5445 /* Start of actual range_table, or end of bitmap if there is no 5445 /* Start of actual range_table, or end of bitmap if there is no
5446 range table. */ 5446 range table. */
5447 re_char *range_table IF_LINT (= NULL); 5447 re_char *range_table UNINIT;
5448 5448
5449 /* Nonzero if there is a range table. */ 5449 /* Nonzero if there is a range table. */
5450 int range_table_exists; 5450 int range_table_exists;
diff --git a/src/syntax.c b/src/syntax.c
index 78c7de9c65b..1c1a2f82782 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1633,7 +1633,7 @@ skip_chars (bool forwardp, Lisp_Object string, Lisp_Object lim,
1633 int c; 1633 int c;
1634 char fastmap[0400]; 1634 char fastmap[0400];
1635 /* Store the ranges of non-ASCII characters. */ 1635 /* Store the ranges of non-ASCII characters. */
1636 int *char_ranges IF_LINT (= NULL); 1636 int *char_ranges UNINIT;
1637 int n_char_ranges = 0; 1637 int n_char_ranges = 0;
1638 bool negate = 0; 1638 bool negate = 0;
1639 ptrdiff_t i, i_byte; 1639 ptrdiff_t i, i_byte;
diff --git a/src/term.c b/src/term.c
index df583cb1502..7e63a0cf634 100644
--- a/src/term.c
+++ b/src/term.c
@@ -548,8 +548,8 @@ encode_terminal_code (struct glyph *src, int src_len,
548 { 548 {
549 if (src->type == COMPOSITE_GLYPH) 549 if (src->type == COMPOSITE_GLYPH)
550 { 550 {
551 struct composition *cmp IF_LINT (= NULL); 551 struct composition *cmp UNINIT;
552 Lisp_Object gstring IF_LINT (= Qnil); 552 Lisp_Object gstring UNINIT;
553 int i; 553 int i;
554 554
555 nbytes = buf - encode_terminal_src; 555 nbytes = buf - encode_terminal_src;
@@ -614,7 +614,7 @@ encode_terminal_code (struct glyph *src, int src_len,
614 else if (! CHAR_GLYPH_PADDING_P (*src)) 614 else if (! CHAR_GLYPH_PADDING_P (*src))
615 { 615 {
616 GLYPH g; 616 GLYPH g;
617 int c IF_LINT (= 0); 617 int c UNINIT;
618 Lisp_Object string; 618 Lisp_Object string;
619 619
620 string = Qnil; 620 string = Qnil;
@@ -3099,7 +3099,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx,
3099 struct tty_menu_state *state; 3099 struct tty_menu_state *state;
3100 int statecount, x, y, i; 3100 int statecount, x, y, i;
3101 bool leave, onepane; 3101 bool leave, onepane;
3102 int result IF_LINT (= 0); 3102 int result UNINIT;
3103 int title_faces[4]; /* Face to display the menu title. */ 3103 int title_faces[4]; /* Face to display the menu title. */
3104 int faces[4], buffers_num_deleted = 0; 3104 int faces[4], buffers_num_deleted = 0;
3105 struct frame *sf = SELECTED_FRAME (); 3105 struct frame *sf = SELECTED_FRAME ();
diff --git a/src/window.c b/src/window.c
index 99a0709d627..fe10241c45c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2910,9 +2910,11 @@ window-start value is reasonable when this function is called. */)
2910{ 2910{
2911 struct window *w, *r, *s; 2911 struct window *w, *r, *s;
2912 struct frame *f; 2912 struct frame *f;
2913 Lisp_Object sibling, pwindow, swindow IF_LINT (= Qnil), delta; 2913 Lisp_Object sibling, pwindow, delta;
2914 ptrdiff_t startpos IF_LINT (= 0), startbyte IF_LINT (= 0); 2914 Lisp_Object swindow UNINIT;
2915 int top IF_LINT (= 0), new_top; 2915 ptrdiff_t startpos UNINIT, startbyte UNINIT;
2916 int top UNINIT;
2917 int new_top;
2916 bool resize_failed = false; 2918 bool resize_failed = false;
2917 2919
2918 w = decode_valid_window (window); 2920 w = decode_valid_window (window);
diff --git a/src/xdisp.c b/src/xdisp.c
index d2f0d49d2b1..d589080ac4c 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8558,7 +8558,8 @@ move_it_in_display_line_to (struct it *it,
8558 void *ppos_data = NULL; 8558 void *ppos_data = NULL;
8559 bool may_wrap = false; 8559 bool may_wrap = false;
8560 enum it_method prev_method = it->method; 8560 enum it_method prev_method = it->method;
8561 ptrdiff_t closest_pos IF_LINT (= 0), prev_pos = IT_CHARPOS (*it); 8561 ptrdiff_t closest_pos UNINIT;
8562 ptrdiff_t prev_pos = IT_CHARPOS (*it);
8562 bool saw_smaller_pos = prev_pos < to_charpos; 8563 bool saw_smaller_pos = prev_pos < to_charpos;
8563 8564
8564 /* Don't produce glyphs in produce_glyphs. */ 8565 /* Don't produce glyphs in produce_glyphs. */
@@ -20416,16 +20417,16 @@ display_line (struct it *it)
20416 struct it wrap_it; 20417 struct it wrap_it;
20417 void *wrap_data = NULL; 20418 void *wrap_data = NULL;
20418 bool may_wrap = false; 20419 bool may_wrap = false;
20419 int wrap_x IF_LINT (= 0); 20420 int wrap_x UNINIT;
20420 int wrap_row_used = -1; 20421 int wrap_row_used = -1;
20421 int wrap_row_ascent IF_LINT (= 0), wrap_row_height IF_LINT (= 0); 20422 int wrap_row_ascent UNINIT, wrap_row_height UNINIT;
20422 int wrap_row_phys_ascent IF_LINT (= 0), wrap_row_phys_height IF_LINT (= 0); 20423 int wrap_row_phys_ascent UNINIT, wrap_row_phys_height UNINIT;
20423 int wrap_row_extra_line_spacing IF_LINT (= 0); 20424 int wrap_row_extra_line_spacing UNINIT;
20424 ptrdiff_t wrap_row_min_pos IF_LINT (= 0), wrap_row_min_bpos IF_LINT (= 0); 20425 ptrdiff_t wrap_row_min_pos UNINIT, wrap_row_min_bpos UNINIT;
20425 ptrdiff_t wrap_row_max_pos IF_LINT (= 0), wrap_row_max_bpos IF_LINT (= 0); 20426 ptrdiff_t wrap_row_max_pos UNINIT, wrap_row_max_bpos UNINIT;
20426 int cvpos; 20427 int cvpos;
20427 ptrdiff_t min_pos = ZV + 1, max_pos = 0; 20428 ptrdiff_t min_pos = ZV + 1, max_pos = 0;
20428 ptrdiff_t min_bpos IF_LINT (= 0), max_bpos IF_LINT (= 0); 20429 ptrdiff_t min_bpos UNINIT, max_bpos UNINIT;
20429 bool pending_handle_line_prefix = false; 20430 bool pending_handle_line_prefix = false;
20430 20431
20431 /* We always start displaying at hpos zero even if hscrolled. */ 20432 /* We always start displaying at hpos zero even if hscrolled. */
@@ -25595,7 +25596,7 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
25595 { 25596 {
25596 struct glyph_string *h, *t; 25597 struct glyph_string *h, *t;
25597 Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); 25598 Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f);
25598 int mouse_beg_col IF_LINT (= 0), mouse_end_col IF_LINT (= 0); 25599 int mouse_beg_col UNINIT, mouse_end_col UNINIT;
25599 bool check_mouse_face = false; 25600 bool check_mouse_face = false;
25600 int dummy_x = 0; 25601 int dummy_x = 0;
25601 25602
@@ -29702,12 +29703,11 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
29702 int dx, dy, width, height; 29703 int dx, dy, width, height;
29703 ptrdiff_t charpos; 29704 ptrdiff_t charpos;
29704 Lisp_Object string, object = Qnil; 29705 Lisp_Object string, object = Qnil;
29705 Lisp_Object pos IF_LINT (= Qnil), help; 29706 Lisp_Object pos UNINIT;
29706
29707 Lisp_Object mouse_face; 29707 Lisp_Object mouse_face;
29708 int original_x_pixel = x; 29708 int original_x_pixel = x;
29709 struct glyph * glyph = NULL, * row_start_glyph = NULL; 29709 struct glyph * glyph = NULL, * row_start_glyph = NULL;
29710 struct glyph_row *row IF_LINT (= 0); 29710 struct glyph_row *row UNINIT;
29711 29711
29712 if (area == ON_MODE_LINE || area == ON_HEADER_LINE) 29712 if (area == ON_MODE_LINE || area == ON_HEADER_LINE)
29713 { 29713 {
@@ -29747,7 +29747,7 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
29747 &object, &dx, &dy, &width, &height); 29747 &object, &dx, &dy, &width, &height);
29748 } 29748 }
29749 29749
29750 help = Qnil; 29750 Lisp_Object help = Qnil;
29751 29751
29752#ifdef HAVE_WINDOW_SYSTEM 29752#ifdef HAVE_WINDOW_SYSTEM
29753 if (IMAGEP (object)) 29753 if (IMAGEP (object))
@@ -30322,8 +30322,8 @@ note_mouse_highlight (struct frame *f, int x, int y)
30322 { 30322 {
30323 /* The mouse-highlighting, if any, comes from an overlay 30323 /* The mouse-highlighting, if any, comes from an overlay
30324 or text property in the buffer. */ 30324 or text property in the buffer. */
30325 Lisp_Object buffer IF_LINT (= Qnil); 30325 Lisp_Object buffer UNINIT;
30326 Lisp_Object disp_string IF_LINT (= Qnil); 30326 Lisp_Object disp_string UNINIT;
30327 30327
30328 if (STRINGP (object)) 30328 if (STRINGP (object))
30329 { 30329 {
diff --git a/src/xfont.c b/src/xfont.c
index 0ef64bef10e..8fbe94c01ab 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -635,7 +635,7 @@ xfont_list_family (struct frame *f)
635 char **names; 635 char **names;
636 int num_fonts, i; 636 int num_fonts, i;
637 Lisp_Object list; 637 Lisp_Object list;
638 char *last_family IF_LINT (= 0); 638 char *last_family UNINIT;
639 int last_len; 639 int last_len;
640 640
641 block_input (); 641 block_input ();