diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer.c | 6 | ||||
| -rw-r--r-- | src/casefiddle.c | 2 | ||||
| -rw-r--r-- | src/charset.c | 2 | ||||
| -rw-r--r-- | src/coding.c | 8 | ||||
| -rw-r--r-- | src/data.c | 12 | ||||
| -rw-r--r-- | src/frame.c | 4 | ||||
| -rw-r--r-- | src/image.c | 20 | ||||
| -rw-r--r-- | src/keyboard.c | 15 | ||||
| -rw-r--r-- | src/regex.c | 6 | ||||
| -rw-r--r-- | src/syntax.c | 2 | ||||
| -rw-r--r-- | src/window.c | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 13 | ||||
| -rw-r--r-- | src/xfaces.c | 2 | ||||
| -rw-r--r-- | src/xterm.c | 9 |
14 files changed, 44 insertions, 59 deletions
diff --git a/src/buffer.c b/src/buffer.c index 55a16b237e5..534b9e40da3 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -3552,8 +3552,8 @@ void | |||
| 3552 | fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) | 3552 | fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) |
| 3553 | { | 3553 | { |
| 3554 | Lisp_Object overlay; | 3554 | Lisp_Object overlay; |
| 3555 | struct Lisp_Overlay *before_list IF_LINT (= NULL); | 3555 | struct Lisp_Overlay *before_list; |
| 3556 | struct Lisp_Overlay *after_list IF_LINT (= NULL); | 3556 | struct Lisp_Overlay *after_list; |
| 3557 | /* These are either nil, indicating that before_list or after_list | 3557 | /* These are either nil, indicating that before_list or after_list |
| 3558 | should be assigned, or the cons cell the cdr of which should be | 3558 | should be assigned, or the cons cell the cdr of which should be |
| 3559 | assigned. */ | 3559 | assigned. */ |
| @@ -3700,7 +3700,7 @@ fix_overlays_before (struct buffer *bp, ptrdiff_t prev, ptrdiff_t pos) | |||
| 3700 | /* If parent is nil, replace overlays_before; otherwise, parent->next. */ | 3700 | /* If parent is nil, replace overlays_before; otherwise, parent->next. */ |
| 3701 | struct Lisp_Overlay *tail = bp->overlays_before, *parent = NULL, *right_pair; | 3701 | struct Lisp_Overlay *tail = bp->overlays_before, *parent = NULL, *right_pair; |
| 3702 | Lisp_Object tem; | 3702 | Lisp_Object tem; |
| 3703 | ptrdiff_t end IF_LINT (= 0); | 3703 | ptrdiff_t end; |
| 3704 | 3704 | ||
| 3705 | /* After the insertion, the several overlays may be in incorrect | 3705 | /* After the insertion, the several overlays may be in incorrect |
| 3706 | order. The possibility is that, in the list `overlays_before', | 3706 | order. The possibility is that, in the list `overlays_before', |
diff --git a/src/casefiddle.c b/src/casefiddle.c index c5bfa366630..34a65edd008 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c | |||
| @@ -196,7 +196,7 @@ casify_region (enum case_action flag, Lisp_Object b, Lisp_Object e) | |||
| 196 | ptrdiff_t start_byte; | 196 | ptrdiff_t start_byte; |
| 197 | 197 | ||
| 198 | /* Position of first and last changes. */ | 198 | /* Position of first and last changes. */ |
| 199 | ptrdiff_t first = -1, last IF_LINT (= 0); | 199 | ptrdiff_t first = -1, last; |
| 200 | 200 | ||
| 201 | ptrdiff_t opoint = PT; | 201 | ptrdiff_t opoint = PT; |
| 202 | ptrdiff_t opoint_byte = PT_BYTE; | 202 | ptrdiff_t opoint_byte = PT_BYTE; |
diff --git a/src/charset.c b/src/charset.c index 264036ae91b..1a135849539 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -240,7 +240,7 @@ struct charset_map_entries | |||
| 240 | static void | 240 | static void |
| 241 | load_charset_map (struct charset *charset, struct charset_map_entries *entries, int n_entries, int control_flag) | 241 | load_charset_map (struct charset *charset, struct charset_map_entries *entries, int n_entries, int control_flag) |
| 242 | { | 242 | { |
| 243 | Lisp_Object vec IF_LINT (= Qnil), table IF_LINT (= Qnil); | 243 | Lisp_Object vec, table IF_LINT (= Qnil); |
| 244 | unsigned max_code = CHARSET_MAX_CODE (charset); | 244 | unsigned max_code = CHARSET_MAX_CODE (charset); |
| 245 | bool ascii_compatible_p = charset->ascii_compatible_p; | 245 | bool ascii_compatible_p = charset->ascii_compatible_p; |
| 246 | int min_char, max_char, nonascii_min_char; | 246 | int min_char, max_char, nonascii_min_char; |
diff --git a/src/coding.c b/src/coding.c index 7d199567fd0..9d75ef93102 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -8015,12 +8015,12 @@ decode_coding_object (struct coding_system *coding, | |||
| 8015 | Lisp_Object dst_object) | 8015 | Lisp_Object dst_object) |
| 8016 | { | 8016 | { |
| 8017 | ptrdiff_t count = SPECPDL_INDEX (); | 8017 | ptrdiff_t count = SPECPDL_INDEX (); |
| 8018 | unsigned char *destination IF_LINT (= NULL); | 8018 | unsigned char *destination; |
| 8019 | ptrdiff_t dst_bytes IF_LINT (= 0); | 8019 | ptrdiff_t dst_bytes; |
| 8020 | ptrdiff_t chars = to - from; | 8020 | ptrdiff_t chars = to - from; |
| 8021 | ptrdiff_t bytes = to_byte - from_byte; | 8021 | ptrdiff_t bytes = to_byte - from_byte; |
| 8022 | Lisp_Object attrs; | 8022 | Lisp_Object attrs; |
| 8023 | ptrdiff_t saved_pt = -1, saved_pt_byte IF_LINT (= 0); | 8023 | ptrdiff_t saved_pt = -1, saved_pt_byte; |
| 8024 | bool need_marker_adjustment = 0; | 8024 | bool need_marker_adjustment = 0; |
| 8025 | Lisp_Object old_deactivate_mark; | 8025 | Lisp_Object old_deactivate_mark; |
| 8026 | 8026 | ||
| @@ -8198,7 +8198,7 @@ encode_coding_object (struct coding_system *coding, | |||
| 8198 | ptrdiff_t chars = to - from; | 8198 | ptrdiff_t chars = to - from; |
| 8199 | ptrdiff_t bytes = to_byte - from_byte; | 8199 | ptrdiff_t bytes = to_byte - from_byte; |
| 8200 | Lisp_Object attrs; | 8200 | Lisp_Object attrs; |
| 8201 | ptrdiff_t saved_pt = -1, saved_pt_byte IF_LINT (= 0); | 8201 | ptrdiff_t saved_pt = -1, saved_pt_byte; |
| 8202 | bool need_marker_adjustment = 0; | 8202 | bool need_marker_adjustment = 0; |
| 8203 | bool kill_src_buffer = 0; | 8203 | bool kill_src_buffer = 0; |
| 8204 | Lisp_Object old_deactivate_mark; | 8204 | Lisp_Object old_deactivate_mark; |
diff --git a/src/data.c b/src/data.c index 2574cbbd764..71da916ae74 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -1614,8 +1614,8 @@ The function `default-value' gets the default value and `set-default' sets it. | |||
| 1614 | { | 1614 | { |
| 1615 | struct Lisp_Symbol *sym; | 1615 | struct Lisp_Symbol *sym; |
| 1616 | struct Lisp_Buffer_Local_Value *blv = NULL; | 1616 | struct Lisp_Buffer_Local_Value *blv = NULL; |
| 1617 | union Lisp_Val_Fwd valcontents IF_LINT (= {LISP_INITIALLY_ZERO}); | 1617 | union Lisp_Val_Fwd valcontents; |
| 1618 | bool forwarded IF_LINT (= 0); | 1618 | bool forwarded; |
| 1619 | 1619 | ||
| 1620 | CHECK_SYMBOL (variable); | 1620 | CHECK_SYMBOL (variable); |
| 1621 | sym = XSYMBOL (variable); | 1621 | sym = XSYMBOL (variable); |
| @@ -1692,8 +1692,8 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */) | |||
| 1692 | (Lisp_Object variable) | 1692 | (Lisp_Object variable) |
| 1693 | { | 1693 | { |
| 1694 | Lisp_Object tem; | 1694 | Lisp_Object tem; |
| 1695 | bool forwarded IF_LINT (= 0); | 1695 | bool forwarded; |
| 1696 | union Lisp_Val_Fwd valcontents IF_LINT (= {LISP_INITIALLY_ZERO}); | 1696 | union Lisp_Val_Fwd valcontents; |
| 1697 | struct Lisp_Symbol *sym; | 1697 | struct Lisp_Symbol *sym; |
| 1698 | struct Lisp_Buffer_Local_Value *blv = NULL; | 1698 | struct Lisp_Buffer_Local_Value *blv = NULL; |
| 1699 | 1699 | ||
| @@ -2458,7 +2458,7 @@ uintmax_t | |||
| 2458 | cons_to_unsigned (Lisp_Object c, uintmax_t max) | 2458 | cons_to_unsigned (Lisp_Object c, uintmax_t max) |
| 2459 | { | 2459 | { |
| 2460 | bool valid = 0; | 2460 | bool valid = 0; |
| 2461 | uintmax_t val IF_LINT (= 0); | 2461 | uintmax_t val; |
| 2462 | if (INTEGERP (c)) | 2462 | if (INTEGERP (c)) |
| 2463 | { | 2463 | { |
| 2464 | valid = 0 <= XINT (c); | 2464 | valid = 0 <= XINT (c); |
| @@ -2511,7 +2511,7 @@ intmax_t | |||
| 2511 | cons_to_signed (Lisp_Object c, intmax_t min, intmax_t max) | 2511 | cons_to_signed (Lisp_Object c, intmax_t min, intmax_t max) |
| 2512 | { | 2512 | { |
| 2513 | bool valid = 0; | 2513 | bool valid = 0; |
| 2514 | intmax_t val IF_LINT (= 0); | 2514 | intmax_t val; |
| 2515 | if (INTEGERP (c)) | 2515 | if (INTEGERP (c)) |
| 2516 | { | 2516 | { |
| 2517 | val = XINT (c); | 2517 | val = XINT (c); |
diff --git a/src/frame.c b/src/frame.c index 1c5c12c7e29..df9753905b2 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -609,7 +609,7 @@ make_frame (bool mini_p) | |||
| 609 | { | 609 | { |
| 610 | Lisp_Object frame; | 610 | Lisp_Object frame; |
| 611 | struct frame *f; | 611 | struct frame *f; |
| 612 | struct window *rw, *mw IF_LINT (= NULL); | 612 | struct window *rw, *mw; |
| 613 | Lisp_Object root_window; | 613 | Lisp_Object root_window; |
| 614 | Lisp_Object mini_window; | 614 | Lisp_Object mini_window; |
| 615 | 615 | ||
| @@ -3089,7 +3089,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) | |||
| 3089 | /* If both of these parameters are present, it's more efficient to | 3089 | /* If both of these parameters are present, it's more efficient to |
| 3090 | set them both at once. So we wait until we've looked at the | 3090 | set them both at once. So we wait until we've looked at the |
| 3091 | entire list before we set them. */ | 3091 | entire list before we set them. */ |
| 3092 | int width IF_LINT (= 0), height IF_LINT (= 0); | 3092 | int width, height; |
| 3093 | bool width_change = false, height_change = false; | 3093 | bool width_change = false, height_change = false; |
| 3094 | 3094 | ||
| 3095 | /* Same here. */ | 3095 | /* Same here. */ |
diff --git a/src/image.c b/src/image.c index c1f25aa2357..0991f579579 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -5895,12 +5895,13 @@ static bool | |||
| 5895 | png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | 5895 | png_load_body (struct frame *f, struct image *img, struct png_load_context *c) |
| 5896 | { | 5896 | { |
| 5897 | Lisp_Object specified_file; | 5897 | Lisp_Object specified_file; |
| 5898 | Lisp_Object specified_data; | 5898 | /* IF_LINT (volatile) works around GCC bug 54561. */ |
| 5899 | Lisp_Object IF_LINT (volatile) specified_data; | ||
| 5900 | FILE * IF_LINT (volatile) fp = NULL; | ||
| 5899 | int x, y; | 5901 | int x, y; |
| 5900 | ptrdiff_t i; | 5902 | ptrdiff_t i; |
| 5901 | png_struct *png_ptr; | 5903 | png_struct *png_ptr; |
| 5902 | png_info *info_ptr = NULL, *end_info = NULL; | 5904 | png_info *info_ptr = NULL, *end_info = NULL; |
| 5903 | FILE *fp = NULL; | ||
| 5904 | png_byte sig[8]; | 5905 | png_byte sig[8]; |
| 5905 | png_byte *pixels = NULL; | 5906 | png_byte *pixels = NULL; |
| 5906 | png_byte **rows = NULL; | 5907 | png_byte **rows = NULL; |
| @@ -5922,7 +5923,6 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 5922 | /* Find out what file to load. */ | 5923 | /* Find out what file to load. */ |
| 5923 | specified_file = image_spec_value (img->spec, QCfile, NULL); | 5924 | specified_file = image_spec_value (img->spec, QCfile, NULL); |
| 5924 | specified_data = image_spec_value (img->spec, QCdata, NULL); | 5925 | specified_data = image_spec_value (img->spec, QCdata, NULL); |
| 5925 | IF_LINT (Lisp_Object volatile specified_data_volatile = specified_data); | ||
| 5926 | 5926 | ||
| 5927 | if (NILP (specified_data)) | 5927 | if (NILP (specified_data)) |
| 5928 | { | 5928 | { |
| @@ -6018,10 +6018,6 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 6018 | return 0; | 6018 | return 0; |
| 6019 | } | 6019 | } |
| 6020 | 6020 | ||
| 6021 | /* Silence a bogus diagnostic; see GCC bug 54561. */ | ||
| 6022 | IF_LINT (fp = c->fp); | ||
| 6023 | IF_LINT (specified_data = specified_data_volatile); | ||
| 6024 | |||
| 6025 | /* Read image info. */ | 6021 | /* Read image info. */ |
| 6026 | if (!NILP (specified_data)) | 6022 | if (!NILP (specified_data)) |
| 6027 | png_set_read_fn (png_ptr, &tbr, png_read_from_memory); | 6023 | png_set_read_fn (png_ptr, &tbr, png_read_from_memory); |
| @@ -6672,9 +6668,9 @@ jpeg_load_body (struct frame *f, struct image *img, | |||
| 6672 | struct my_jpeg_error_mgr *mgr) | 6668 | struct my_jpeg_error_mgr *mgr) |
| 6673 | { | 6669 | { |
| 6674 | Lisp_Object specified_file; | 6670 | Lisp_Object specified_file; |
| 6675 | Lisp_Object specified_data; | 6671 | /* IF_LINT (volatile) works around GCC bug 54561. */ |
| 6676 | /* The 'volatile' silences a bogus diagnostic; see GCC bug 54561. */ | 6672 | Lisp_Object IF_LINT (volatile) specified_data; |
| 6677 | FILE * IF_LINT (volatile) fp = NULL; | 6673 | FILE *volatile fp = NULL; |
| 6678 | JSAMPARRAY buffer; | 6674 | JSAMPARRAY buffer; |
| 6679 | int row_stride, x, y; | 6675 | int row_stride, x, y; |
| 6680 | unsigned long *colors; | 6676 | unsigned long *colors; |
| @@ -6687,7 +6683,6 @@ jpeg_load_body (struct frame *f, struct image *img, | |||
| 6687 | /* Open the JPEG file. */ | 6683 | /* Open the JPEG file. */ |
| 6688 | specified_file = image_spec_value (img->spec, QCfile, NULL); | 6684 | specified_file = image_spec_value (img->spec, QCfile, NULL); |
| 6689 | specified_data = image_spec_value (img->spec, QCdata, NULL); | 6685 | specified_data = image_spec_value (img->spec, QCdata, NULL); |
| 6690 | IF_LINT (Lisp_Object volatile specified_data_volatile = specified_data); | ||
| 6691 | 6686 | ||
| 6692 | if (NILP (specified_data)) | 6687 | if (NILP (specified_data)) |
| 6693 | { | 6688 | { |
| @@ -6751,9 +6746,6 @@ jpeg_load_body (struct frame *f, struct image *img, | |||
| 6751 | return 0; | 6746 | return 0; |
| 6752 | } | 6747 | } |
| 6753 | 6748 | ||
| 6754 | /* Silence a bogus diagnostic; see GCC bug 54561. */ | ||
| 6755 | IF_LINT (specified_data = specified_data_volatile); | ||
| 6756 | |||
| 6757 | /* Create the JPEG decompression object. Let it read from fp. | 6749 | /* Create the JPEG decompression object. Let it read from fp. |
| 6758 | Read the JPEG image header. */ | 6750 | Read the JPEG image header. */ |
| 6759 | jpeg_CreateDecompress (&mgr->cinfo, JPEG_LIB_VERSION, sizeof *&mgr->cinfo); | 6751 | jpeg_CreateDecompress (&mgr->cinfo, JPEG_LIB_VERSION, sizeof *&mgr->cinfo); |
diff --git a/src/keyboard.c b/src/keyboard.c index 2b5d514cc40..d2976cb7359 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -2122,7 +2122,7 @@ read_event_from_main_queue (struct timespec *end_time, | |||
| 2122 | { | 2122 | { |
| 2123 | Lisp_Object c = Qnil; | 2123 | Lisp_Object c = Qnil; |
| 2124 | sys_jmp_buf save_jump; | 2124 | sys_jmp_buf save_jump; |
| 2125 | KBOARD *kb IF_LINT (= NULL); | 2125 | KBOARD *kb; |
| 2126 | 2126 | ||
| 2127 | start: | 2127 | start: |
| 2128 | 2128 | ||
| @@ -2280,11 +2280,6 @@ read_decoded_event_from_main_queue (struct timespec *end_time, | |||
| 2280 | } | 2280 | } |
| 2281 | } | 2281 | } |
| 2282 | 2282 | ||
| 2283 | #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) | ||
| 2284 | # pragma GCC diagnostic push | ||
| 2285 | # pragma GCC diagnostic ignored "-Wclobbered" | ||
| 2286 | #endif | ||
| 2287 | |||
| 2288 | /* Read a character from the keyboard; call the redisplay if needed. */ | 2283 | /* Read a character from the keyboard; call the redisplay if needed. */ |
| 2289 | /* commandflag 0 means do not autosave, but do redisplay. | 2284 | /* commandflag 0 means do not autosave, but do redisplay. |
| 2290 | -1 means do not redisplay, but do autosave. | 2285 | -1 means do not redisplay, but do autosave. |
| @@ -2317,7 +2312,9 @@ read_char (int commandflag, Lisp_Object map, | |||
| 2317 | Lisp_Object prev_event, | 2312 | Lisp_Object prev_event, |
| 2318 | bool *used_mouse_menu, struct timespec *end_time) | 2313 | bool *used_mouse_menu, struct timespec *end_time) |
| 2319 | { | 2314 | { |
| 2320 | Lisp_Object c; | 2315 | /* IF_LINT (volatile) works around GCC bug 54561. */ |
| 2316 | Lisp_Object IF_LINT (volatile) c; | ||
| 2317 | |||
| 2321 | ptrdiff_t jmpcount; | 2318 | ptrdiff_t jmpcount; |
| 2322 | sys_jmp_buf local_getcjmp; | 2319 | sys_jmp_buf local_getcjmp; |
| 2323 | sys_jmp_buf save_jump; | 2320 | sys_jmp_buf save_jump; |
| @@ -3125,10 +3122,6 @@ read_char (int commandflag, Lisp_Object map, | |||
| 3125 | return c; | 3122 | return c; |
| 3126 | } | 3123 | } |
| 3127 | 3124 | ||
| 3128 | #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) | ||
| 3129 | # pragma GCC diagnostic pop | ||
| 3130 | #endif | ||
| 3131 | |||
| 3132 | /* Record a key that came from a mouse menu. | 3125 | /* Record a key that came from a mouse menu. |
| 3133 | Record it for echoing, for this-command-keys, and so on. */ | 3126 | Record it for echoing, for this-command-keys, and so on. */ |
| 3134 | 3127 | ||
diff --git a/src/regex.c b/src/regex.c index 05587dabe9d..fc2a46fd5a3 100644 --- a/src/regex.c +++ b/src/regex.c | |||
| @@ -2465,9 +2465,9 @@ regex_compile (const_re_char *pattern, size_t size, reg_syntax_t syntax, | |||
| 2465 | 2465 | ||
| 2466 | /* These hold the values of p, pattern, and pend from the main | 2466 | /* These hold the values of p, pattern, and pend from the main |
| 2467 | pattern when we have pushed into a subpattern. */ | 2467 | pattern when we have pushed into a subpattern. */ |
| 2468 | re_char *main_p IF_LINT (= NULL); | 2468 | re_char *main_p; |
| 2469 | re_char *main_pattern IF_LINT (= NULL); | 2469 | re_char *main_pattern; |
| 2470 | re_char *main_pend IF_LINT (= NULL); | 2470 | re_char *main_pend; |
| 2471 | 2471 | ||
| 2472 | #ifdef DEBUG | 2472 | #ifdef DEBUG |
| 2473 | debug++; | 2473 | debug++; |
diff --git a/src/syntax.c b/src/syntax.c index fc8c666cec4..1c3f644aec5 100644 --- a/src/syntax.c +++ b/src/syntax.c | |||
| @@ -708,7 +708,7 @@ back_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop, | |||
| 708 | ptrdiff_t comment_end = from; | 708 | ptrdiff_t comment_end = from; |
| 709 | ptrdiff_t comment_end_byte = from_byte; | 709 | ptrdiff_t comment_end_byte = from_byte; |
| 710 | ptrdiff_t comstart_pos = 0; | 710 | ptrdiff_t comstart_pos = 0; |
| 711 | ptrdiff_t comstart_byte IF_LINT (= 0); | 711 | ptrdiff_t comstart_byte; |
| 712 | /* Place where the containing defun starts, | 712 | /* Place where the containing defun starts, |
| 713 | or 0 if we didn't come across it yet. */ | 713 | or 0 if we didn't come across it yet. */ |
| 714 | ptrdiff_t defun_start = 0; | 714 | ptrdiff_t defun_start = 0; |
diff --git a/src/window.c b/src/window.c index cf7fa44ae41..99a0709d627 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -5693,7 +5693,7 @@ and redisplay normally--don't erase and redraw the frame. */) | |||
| 5693 | struct buffer *buf = XBUFFER (w->contents); | 5693 | struct buffer *buf = XBUFFER (w->contents); |
| 5694 | bool center_p = false; | 5694 | bool center_p = false; |
| 5695 | ptrdiff_t charpos, bytepos; | 5695 | ptrdiff_t charpos, bytepos; |
| 5696 | EMACS_INT iarg IF_LINT (= 0); | 5696 | EMACS_INT iarg; |
| 5697 | int this_scroll_margin; | 5697 | int this_scroll_margin; |
| 5698 | 5698 | ||
| 5699 | if (buf != current_buffer) | 5699 | if (buf != current_buffer) |
diff --git a/src/xdisp.c b/src/xdisp.c index e78d3d6f5b6..d2f0d49d2b1 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -27342,18 +27342,21 @@ x_produce_glyphs (struct it *it) | |||
| 27342 | int leftmost, rightmost, lowest, highest; | 27342 | int leftmost, rightmost, lowest, highest; |
| 27343 | int lbearing, rbearing; | 27343 | int lbearing, rbearing; |
| 27344 | int i, width, ascent, descent; | 27344 | int i, width, ascent, descent; |
| 27345 | int c IF_LINT (= 0); /* cmp->glyph_len can't be zero; see Bug#8512 */ | 27345 | int c; |
| 27346 | XChar2b char2b; | 27346 | XChar2b char2b; |
| 27347 | struct font_metrics *pcm; | 27347 | struct font_metrics *pcm; |
| 27348 | ptrdiff_t pos; | 27348 | ptrdiff_t pos; |
| 27349 | 27349 | ||
| 27350 | for (glyph_len = cmp->glyph_len; glyph_len > 0; glyph_len--) | 27350 | eassume (0 < glyph_len); /* See Bug#8512. */ |
| 27351 | if ((c = COMPOSITION_GLYPH (cmp, glyph_len - 1)) != '\t') | 27351 | do |
| 27352 | break; | 27352 | c = COMPOSITION_GLYPH (cmp, --glyph_len); |
| 27353 | while (c == '\t' && 0 < glyph_len); | ||
| 27354 | |||
| 27353 | bool right_padded = glyph_len < cmp->glyph_len; | 27355 | bool right_padded = glyph_len < cmp->glyph_len; |
| 27354 | for (i = 0; i < glyph_len; i++) | 27356 | for (i = 0; i < glyph_len; i++) |
| 27355 | { | 27357 | { |
| 27356 | if ((c = COMPOSITION_GLYPH (cmp, i)) != '\t') | 27358 | c = COMPOSITION_GLYPH (cmp, i); |
| 27359 | if (c != '\t') | ||
| 27357 | break; | 27360 | break; |
| 27358 | cmp->offsets[i * 2] = cmp->offsets[i * 2 + 1] = 0; | 27361 | cmp->offsets[i * 2] = cmp->offsets[i * 2 + 1] = 0; |
| 27359 | } | 27362 | } |
diff --git a/src/xfaces.c b/src/xfaces.c index 3ced1d483c3..de73c010d54 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -1519,7 +1519,7 @@ the WIDTH times as wide as FACE on FRAME. */) | |||
| 1519 | Lisp_Object maximum, Lisp_Object width) | 1519 | Lisp_Object maximum, Lisp_Object width) |
| 1520 | { | 1520 | { |
| 1521 | struct frame *f; | 1521 | struct frame *f; |
| 1522 | int size, avgwidth IF_LINT (= 0); | 1522 | int size, avgwidth; |
| 1523 | 1523 | ||
| 1524 | check_window_system (NULL); | 1524 | check_window_system (NULL); |
| 1525 | CHECK_STRING (pattern); | 1525 | CHECK_STRING (pattern); |
diff --git a/src/xterm.c b/src/xterm.c index beef61d1618..9fb19a16f60 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -9393,7 +9393,7 @@ static char *error_msg; | |||
| 9393 | /* Handle the loss of connection to display DPY. ERROR_MESSAGE is | 9393 | /* Handle the loss of connection to display DPY. ERROR_MESSAGE is |
| 9394 | the text of an error message that lead to the connection loss. */ | 9394 | the text of an error message that lead to the connection loss. */ |
| 9395 | 9395 | ||
| 9396 | static void | 9396 | static _Noreturn void |
| 9397 | x_connection_closed (Display *dpy, const char *error_message, bool ioerror) | 9397 | x_connection_closed (Display *dpy, const char *error_message, bool ioerror) |
| 9398 | { | 9398 | { |
| 9399 | struct x_display_info *dpyinfo = x_display_info_for_display (dpy); | 9399 | struct x_display_info *dpyinfo = x_display_info_for_display (dpy); |
| @@ -9491,9 +9491,6 @@ For details, see etc/PROBLEMS.\n", | |||
| 9491 | unbind_to (idx, Qnil); | 9491 | unbind_to (idx, Qnil); |
| 9492 | clear_waiting_for_input (); | 9492 | clear_waiting_for_input (); |
| 9493 | 9493 | ||
| 9494 | /* Tell GCC not to suggest attribute 'noreturn' for this function. */ | ||
| 9495 | IF_LINT (if (! terminal_list) return; ) | ||
| 9496 | |||
| 9497 | /* Here, we absolutely have to use a non-local exit (e.g. signal, throw, | 9494 | /* Here, we absolutely have to use a non-local exit (e.g. signal, throw, |
| 9498 | longjmp), because returning from this function would get us back into | 9495 | longjmp), because returning from this function would get us back into |
| 9499 | Xlib's code which will directly call `exit'. */ | 9496 | Xlib's code which will directly call `exit'. */ |
| @@ -9559,7 +9556,7 @@ x_error_quitter (Display *display, XErrorEvent *event) | |||
| 9559 | It kills all frames on the display that we lost touch with. | 9556 | It kills all frames on the display that we lost touch with. |
| 9560 | If that was the only one, it prints an error message and kills Emacs. */ | 9557 | If that was the only one, it prints an error message and kills Emacs. */ |
| 9561 | 9558 | ||
| 9562 | static int | 9559 | static _Noreturn int |
| 9563 | x_io_error_quitter (Display *display) | 9560 | x_io_error_quitter (Display *display) |
| 9564 | { | 9561 | { |
| 9565 | char buf[256]; | 9562 | char buf[256]; |
| @@ -9567,7 +9564,7 @@ x_io_error_quitter (Display *display) | |||
| 9567 | snprintf (buf, sizeof buf, "Connection lost to X server '%s'", | 9564 | snprintf (buf, sizeof buf, "Connection lost to X server '%s'", |
| 9568 | DisplayString (display)); | 9565 | DisplayString (display)); |
| 9569 | x_connection_closed (display, buf, true); | 9566 | x_connection_closed (display, buf, true); |
| 9570 | return 0; | 9567 | assume (false); |
| 9571 | } | 9568 | } |
| 9572 | 9569 | ||
| 9573 | /* Changing the font of the frame. */ | 9570 | /* Changing the font of the frame. */ |