Assorted x86 testsuite fixes.
[binutils-gdb.git] / binutils / ChangeLog
1 2013-10-30 Alan Modra <amodra@gmail.com>
2
3 * readelf.c (get_ppc_dynamic_type): Replace PPC_TLSOPT with PPC_OPT.
4 (get_ppc64_dynamic_type): Replace PPC64_TLSOPT with PPC64_OPT.
5
6 2013-10-30 Ulrich Weigand <uweigand@de.ibm.com>
7
8 * readelf.c (get_ppc64_symbol_other): New function.
9 (get_symbol_other): Use it for EM_PPC64.
10
11 2013-10-30 Alan Modra <amodra@gmail.com>
12
13 * readelf.c (get_machine_flags): Display ABI version for EM_PPC64.
14
15 2013-10-24 Nick Clifton <nickc@redhat.com>
16
17 * nm.c (display_rel_file): Treat bfd_error_no_symbols as
18 non-fatal.
19
20 2013-10-14 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
21
22 * readelf.c (display_mips_gnu_attribute): Support Tag_GNU_MIPS_ABI_MSA.
23 * doc/binutils.texi: Document -Mmsa disassembler option.
24
25 2013-10-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26
27 * readelf.c (decode_arm_unwind): Don't initialize `addr'.
28
29 2013-10-14 Nick Clifton <nickc@redhat.com>
30
31 * readelf.c (decode_arm_unwind): Initialise addr structure.
32 (process_symbol_table): Free lengths.
33 * srcconv.c (wr_sc): Free info.
34
35 2013-10-11 Roland McGrath <mcgrathr@google.com>
36
37 * winduni.c (languages): Use \345 (octal syntax) rather than
38 literal non-ASCII/non-UTF8 character in string literal.
39
40 * readelf.c (print_dynamic_symbol): Use array subscript syntax
41 rather than addition syntax with string literal.
42
43 2013-10-09 Nick Clifton <nickc@redhat.com>
44
45 PR binutils/16023
46 * debug.c (debug_type_samep): Add missing break statement.
47
48 PR binutils/16024
49 * objdump.c (usage): Mark as a no-return function.
50 (main): Add comment explaining why a break statement is not
51 needed.
52
53 * dwarf.c (add64): New function.
54 (read_and_display_attr_value): Add CU offset in to the value
55 displayed for a DW_AT_ref8 attribute.
56
57 2013-10-01 Cory Fields <cory@coryfields.com>
58
59 * arsup.c (ar_save): Respect the deterministic setting when
60 reading from an mri script.
61 * ar.c (main): Set the default deterministic mode when reading
62 from an mri script.
63
64 2013-10-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
65
66 * dwarf.c (SAFE_BYTE_GET): Fix argument check.
67
68 2013-09-27 H.J. Lu <hongjiu.lu@intel.com>
69
70 * dwarf.c (display_debug_frames): Pass offset_size to
71 print_dwarf_vma for cie_id.
72
73 2013-09-20 Alan Modra <amodra@gmail.com>
74
75 * configure: Regenerate.
76
77 2013-09-18 Tristan Gingold <gingold@adacore.com>
78
79 * NEWS: Add marker for 2.24.
80
81 2013-09-18 Tristan Gingold <gingold@adacore.com>
82
83 * Makefile.am (LEXLIB): Define. Replase references to @LEXLIB@
84 by $(LEXLIB).
85 * Makefile.in: Regenerate.
86
87 2013-09-17 Doug Gilmore <Doug.Gilmore@imgtec.com>
88
89 * readelf.c (get_machine_flags): Handle EF_MIPS_FP64.
90
91 2013-09-12 Nick Clifton <nickc@redhat.com>
92
93 * dwarf.c (dwarf_vmatoa): Rename to dwarf_vmatoa_1 and add a
94 precision parameter.
95 (dwarf_vmatoa): New wrapper for dwarf_vmatoa_1.
96 (print_dwarf_vma): Use dwarf_vmatoa_1.
97 (SAFE_BYTE_GET): Add check that VAL is big enough to contain
98 AMOUNT bytes.
99 (process_debug_info): Use an unsigned int for the offset size.
100 (process_debug_pubnames): Likewise.
101 (display_debug_aranges): Likewise.
102 (struct Frame_Chunk): Use dwarf_vma type for pc_begin and pc_range
103 fields.
104 (frame_display_row): Use print_dwarf_vma to display dwarf_vma
105 values.
106 (display_debug_frames): Likewise.
107
108 2013-09-10 Nick Clifton <nickc@redhat.com>
109
110 * dwarf.c (display_debug_frames): Check for DW64_CIE_ID when
111 parsing 64-bit frames.
112
113 2013-08-27 Nick Clifton <nickc@redhat.com>
114
115 PR binutils/15796
116 * ar.c (map_over_members): Correctly handle multiple same-name
117 entries on the command line and in the archive.
118
119 2013-08-23 H.J. Lu <hongjiu.lu@intel.com>
120
121 * doc/binutils.texi: Remove the extra space.
122
123 2013-08-23 Mikael Pettersson <mikpe@it.uu.se>
124
125 PR binutils/15779
126 * doc/binutils.texi (ranlib -D): Correct description.
127 PR binutils/15777
128 (nm --special-syms): Fix typo.
129
130 2013-08-23 Nick Clifton <nickc@redhat.com>
131
132 PR binutils/15798
133 * doc/binutils.texi (ar cmdline): Update description of 'q'
134 command.
135
136 PR binutils/14136
137 (nm): Add description of 'I' symbol type.
138
139 2013-08-23 Yuri Chornoivan <yurchor@ukr.net>
140
141 PR binutils/15834
142 * od-xcoff.c: Fix typos.
143
144 2013-08-19 Tristan Gingold <gingold@adacore.com>
145
146 * nm.c (print_size_symbols): Directly get symbol size.
147
148 2013-08-12 Andreas Schwab <schwab@suse.de>
149
150 PR binutils/15818
151 * objdump.c (disassemble_section): Return early if nothing from
152 this section needs to be disassembled.
153
154 2013-08-09 Nick Clifton <nickc@redhat.com>
155
156 * readelf.c (get_machine_flags): Handle RL78 G10 flag.
157
158 2013-07-26 Sergey Guriev <sergey.s.guriev@intel.com>
159 Alexander Ivchenko <alexander.ivchenko@intel.com>
160 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
161 Sergey Lega <sergey.s.lega@intel.com>
162 Anna Tikhonova <anna.tikhonova@intel.com>
163 Ilya Tocar <ilya.tocar@intel.com>
164 Andrey Turetskiy <andrey.turetskiy@intel.com>
165 Ilya Verbin <ilya.verbin@intel.com>
166 Kirill Yukhin <kirill.yukhin@intel.com>
167 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
168
169 * dwarf.c (dwarf_regnames_i386): Add k0-k7 registers and
170 numeration in comments.
171 (dwarf_regnames_x86_64): Add xmm16-31 and k0-k7 registers to
172 dwarf table.
173
174 2013-07-19 Nick Clifton <nickc@redhat.com>
175
176 PR binutils/15745
177 * readelf.c (get_unwind_section_word): Whilst searching for a
178 reloc section associated with an unwind section, check the type as
179 well as the section number.
180
181 2013-07-18 Jim Thomas <thomas@cfht.hawaii.edu>
182
183 * ar.c (usage): Fix C conformance issue.
184
185 2013-07-18 Nick Clifton <nickc@redhat.com>
186
187 * doc/binutils.texi (nm, objdump): Remove bogus links to STABS
188 documentation.
189
190 * readelf.c (process_unwind): Do not return the result of a void
191 function.
192
193 2013-07-15 Maciej W. Rozycki <macro@codesourcery.com>
194
195 * readelf.c (display_mips_gnu_attribute): Replace hardcoded magic
196 numbers with enum values.
197
198 2013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
199
200 * readelf.c (get_machine_flags): Handle EF_MIPS_NAN2008.
201
202 2013-07-10 Tristan Gingold <gingold@adacore.com>
203
204 * od-xcoff.c (OPT_LDINFO): Define.
205 (options): Add ldinfo.
206 (xcoff_help): Mention ldinfo.
207 (xcoff_dump): Rename to ...
208 (xcoff_dump_obj): ... this. Add a break.
209 (dump_dumpx_core): New function.
210 (xcoff_dump_core): Likewise.
211 (xcoff_dump): Likewise.
212 * doc/binutils.texi (objdump): Mention ldinfo.
213
214 2013-07-09 Tristan Gingold <gingold@adacore.com>
215
216 * configure.com: Add new defines to match changes in configure.
217
218 2013-05-28 Cary Coutant <ccoutant@google.com>
219
220 * dwarf.c (display_debug_lines_raw): Print section offsets.
221
222 2013-05-15 Cary Coutant <ccoutant@google.com>
223
224 * dwarf.c (SAFE_BYTE_GET64): Correct end-of-buffer check;
225 don't increment PTR.
226 (decode_location_expression): DW_OP_const2u should read 2 bytes.
227 (display_debug_lines_decoded): Adjust formatting.
228 * elfcomm.c (byte_get_little_endian): Add cases for 5-, 6-, and
229 7-byte reads.
230 (byte_get_big_endian): Likewise.
231 (byte_get_signed): Likewise.
232
233 2013-05-09 Andrew Pinski <apinski@cavium.com>
234
235 * doc/binutils.texi: Document -Mvirt disassembler option.
236
237 2013-05-02 Nick Clifton <nickc@redhat.com>
238
239 * readelf.c: Add support for MSP430X architecture.
240
241 2013-05-02 Nick Clifton <nickc@redhat.com>
242
243 * dwarf.c (display_debug_lines_raw): Do not treat .debug_line.dwo
244 sections as if they were fragmentary .debug_line sections.
245 (display_debug_lines_decoded): Likewise.
246
247 2013-04-29 Nick Clifton <nickc@redhat.com>
248
249 * dwarf.c (read_debug_line_header): New function. Reads in a
250 header in a .debug_line section.
251 (display_debug_lines_raw): Use new function. Handle fragmentary
252 .debug_line sections.
253 (display_debug_lines_decoded): Likewise.
254 * readelf.c (process_section_headers): Handle fragmenatry
255 .debug_line sections.
256 (display_debug_section): Likewise.
257
258 2013-04-26 Ian Lance Taylor <iant@google.com>
259
260 * MAINTAINERS: Add myself and Cary as gold maintainers.
261
262 2013-04-08 Tom Tromey <tromey@redhat.com>
263
264 * dwarf.c (process_debug_info): Check dwarf_cutoff_level.
265
266 2013-04-08 Tom Tromey <tromey@redhat.com>
267
268 * dwarf-mode.el: Bump version number.
269 (dwarf-mode): Remove autoload.
270 (dwarf-die-reference): Relax regexp.
271
272 2013-04-05 Alan Modra <amodra@gmail.com>
273
274 PR binutils/15324
275 * configure.in: Add strnlen to AC_CHECK_DECLS, sort.
276 * dwarf.c (strnlen): Provide fallback decl.
277 * config.in: Regnerate.
278 * configure: Regenerate.
279
280 2013-03-29 H.J. Lu <hongjiu.lu@intel.com>
281
282 * dwarf.c (process_debug_info): Increment hdrptr by 8 after
283 SAFE_BYTE_GET64.
284
285 2013-03-27 Phil Krylov <phil.krylov@gmail.com>
286
287 PR binutils/13409
288 * winduni.c (codepages[]): Use UTF-16LE.
289 (wind_MultiByteToWideChar): Likewise.
290 (wind_WideCharToMultiByte): Likewise.
291
292 2013-03-27 Alan Modra <amodra@gmail.com>
293
294 PR binutils/15206
295 * dwarf.c (read_and_display_attr_value): Cast format '*' arg to int.
296
297 2013-03-26 Nick Clifton <nickc@redhat.com>
298
299 PR binutils/15206
300 * dwarf.c (SAFE_BYTE_GET): New macro - checks remaining buffer
301 space before calling byte_get.
302 (SAFE_BYTE_GET_AND_INC): New macro.
303 (SAFE_SIGNED_BYTE_GET): New macro.
304 (SAFE_SIGNED_BYTE_GET_AND_INC): New macro.
305 (SAFE_BYTE_GET64): New macro.
306 (process_extened_line_op): Use new macros. Use strnlen when
307 appropriate.
308 (fetch_indirect_string): Likewise.
309 (get_FORM_name): Likewise.
310 (decode_location_expression): Likewise.
311 (read_and_display_attr_value): Likewise.
312 (process_debug_info): Likewise.
313 (display_debug_lines_raw): Likewise.
314 (display_debug_lines_decoded): Likewise.
315 (display_debug_pubnames): Likewise.
316 (display_debug_macinfo): Likewise.
317 (get_line_filename_and_dirname): Likewise.
318 (display_debug_macro): Likewise.
319 (display_loc_list): Likewise.
320 (display_loc_list_dwo): Likewise.
321 (display_debug_aranges): Likewise.
322 (display_debug_ranges): Likewise.
323 (frame_display_row): Likewise.
324 (display_debug_frames): Likewise.
325
326 2013-03-25 Nick Clifton <nickc@redhat.com>
327
328 PR binutils/15202
329 * dwarf.c (read_leb128): Add END parameter. Do not read at or
330 beyond end.
331 (read_sleb128): Add END parameter.
332 (read_uleb128): New function.
333 (process_extended_line_op): Pass END to leb128 functions.
334 (process_abbrev_section): Likewise.
335 (decode_location_expression): Likewise.
336 (read_and_display_attr_value): Likewise.
337 (read_and_display_attr): Likewise.
338 (process_debug_info): Likewise.
339 (display_debug_lines_raw): Likewise.
340 (display_debug_lines_decoded): Likewise.
341 (display_debug_macinfo): Likewise.
342 (get_line_filename_and_dirname): Likewise.
343 (display_debug_macro): Likewise.
344 (display_loc_list_dwo): Likewise.
345 (display_debug_ranges): Likewise.
346 * dwarf.h (read_leb128): Update prototype.
347 * readelf.c (read_uleb128): Add END parameter.
348 (decode_arm_unwind_bytecode): Pass END to read_uleb128.
349 (decode_tic6x_unwind_bytecode): Likewise.
350 (display_tag_value): New function.
351 (display_arm_attribute): Add END parameter. Pass END to
352 read_uleb128. Use display_tag_value.
353 (display_gnu_attribute): Likewise.
354 (display_power_gnu_attribute): Likewise.
355 (display_sparc_gnu_attribute): Likewise.
356 (display_mips_gnu_attribute): Likewise.
357 (display_tic6x_attribute): Likewise.
358 (process_attributes): Likewise.
359 (display_raw_attribute): New function.
360
361 2013-03-22 Nick Clifton <nickc@redhat.com>
362
363 PR binutils/15201
364 * dwarf.c (display_debug_ranges): Add checks for reading beyond
365 the end of the section.
366
367 PR binutils/15157
368 * readelf.c (apply_relocations): Catch relocations with negative
369 offsets.
370
371 2013-03-15 Nick Clifton <nickc@redhat.com>
372
373 * addr2line.c (slurp_symtab): If canonicalization reveals that
374 there were no ordinary symbols, try loading the dynamic symbols
375 instead.
376
377 2013-03-14 Markos Chandras <markos.chandras@imgtec.com>
378
379 * MAINTAINERS: Add myself as Meta maintainer.
380
381 2013-03-08 Andreas Arnez <arnez@linux.vnet.ibm.com>
382
383 * readelf.c (get_note_type): Add NT_S390_TDB.
384
385 2013-03-07 Alan Modra <amodra@gmail.com>
386
387 * strings.c (get_char): Dispense with buf[]. Instead shift
388 chars into big-endian value and byte-swap later if
389 little-endian. Don't EOF check value read from object.
390
391 2013-03-05 Corinna Vinschen <vinschen@redhat.com>
392
393 * configure.in: Build DLL tools on x86_64-*-cygwin* as well.
394 * configure: Regenerate.
395
396 2013-03-04 Nick Clifton <nickc@redhat.com>
397
398 * elfcomm.c (error): Flush stdout before emitting the error
399 message.
400 (warn): Likewise.
401
402 2013-03-01 Cary Coutant <ccoutant@google.com>
403
404 * dwarf.c (cu_tu_indexes_read, shndx_pool, shndx_pool_size)
405 (shndx_pool_used): Move to top of file.
406 (struct cu_tu_set): New type.
407 (cu_count, tu_count, cu_sets, tu_sets): New file scope variables.
408 (fetch_indexed_string): Add "this_set" parameter. Update all callers.
409 (find_cu_tu_set_v2): New function.
410 (read_and_display_attr_value): Add "this_set" parameter.
411 (read_and_display_attr): Likewise.
412 (process_debug_info): Track base offsets for DWARF package files.
413 (load_debug_info): Call load_cu_tu_indexes.
414 (get_DW_SECT_short_name): New function.
415 (process_cu_tu_index): Add support for version 2 DWARF package files.
416
417 2013-02-27 Alan Modra <amodra@gmail.com>
418
419 PR binutils/15191
420 * readelf.c (offsetof): Define.
421 (CHECK_ENTSIZE_VALUES): Remove extraneous indefinite article.
422 (process_corefile_note_segment): Allow notes without name or
423 desc. Combine out-of-range checks. Disallow "negative"
424 notesz or descsz.
425
426 2013-02-26 Nick Clifton <nickc@redhat.com>
427
428 PR binutils/15191
429 * readelf.c (process_corefile_note_segment): Prevent attempts to
430 read beyond the end of the note buffer.
431
432 2013-02-15 Kai Tietz <ktietz@redhat.com>
433
434 * objcopy.c (copy_main): Initialize context variable.
435
436 2013-02-15 Nick Clifton <nickc@redhat.com>
437
438 PR binutils/15140
439 * ar.c (open_inarch): Fail on attempts to convert a normal archive
440 to a thin archive or vice versa.
441 * elfcomm.c (make_qualified_name): Handle corrupted thin
442 archives.
443 * readelf.c (process_archive): Likewise.
444 * doc/binutils.texi: Clarify documentation describing thin
445 archives.
446
447 2013-02-15 Nick Clifton <nickc@redhat.com>
448
449 PR binutils/15033
450 * objcopy.c (enum change_action): Delete.
451 (struct section_list): Delete remove, copy, change_vma, change_lma
452 and set_flags fields. Add context field.
453 (find_section_list): Add a context parameter. Add support for
454 wildcard characters in section names.
455 (is_strip_section): Check for sections being both copied and
456 removed.
457 (copy_object): Pass context to find_section_list.
458 (setup_section): Likewise.
459 (copy_section): Likewise.
460 (copy_main): Likewise.
461 * doc/binutils: Document the new behaviour.
462 * NEWS: Mention the new feature
463
464 2013-02-14 Nick Clifton <nickc@redhat.com>
465
466 PR binutils/15125
467 * objcopy.c (copy_object): Provide a helpful warning message when
468 adding a gnu_debuglink section to an object which already contains
469 one.
470
471 2013-02-07 Nick Clifton <nickc@redhat.com>
472
473 * elfcomm.c (get_archive_member_name): Prevent seg-fault if a
474 corrupt archive uses long names but has no long name table.
475
476 2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
477 Andrew Jenner <andrew@codesourcery.com>
478
479 Based on patches from Altera Corporation.
480
481 * readelf.c: Include elf/nios2.h.
482 (dump_relocations): Add case for EM_ALTERA_NIOS2.
483 (get_nios2_dynamic_type): New.
484 (get_dynamic_type): Add case for EM_ALTERA_NIOS2.
485 (is_32bit_abs_reloc): Fix EM_ALTERA_NIOS2 case.
486 (is_16bit_abs_reloc): Likewise.
487 (is_none_reloc): Add EM_ALTERA_NIOS2 and EM_NIOS32 cases.
488 * NEWS: Note Altera Nios II support.
489 * MAINTAINERS: Add Nios II maintainers.
490
491 2013-01-29 Xi Wang <xi.wang@gmail.com>
492
493 * readelf.c (process_version_sections): Fix overflow checks to
494 avoid undefined behaviour.
495
496 2013-01-28 Doug Evans <dje@google.com>
497
498 * dwarf.c (display_gdb_index): Handle .gdb_index version 8.
499
500 2013-01-28 Robert Schiele <rschiele@gmail.com>
501
502 * objcopy.c (parse_flags): Add merge and strings section flags.
503
504 2013-01-25 Cary Coutant <ccoutant@google.com>
505
506 * dwarf.c (display_loc_list): Update offset for each line
507 printed.
508 (print_addr_index): New function.
509 (display_loc_list_dwo): Update offset for each line printed.
510 Fix problems displaying loclists in .dwo files. Add support
511 for type 4 entries.
512 (display_debug_loc): Remove custom header for .dwo files.
513 (display_debug_addr): Adjust formatting.
514
515 2013-01-25 Marco Atzeri <marco.atzeri@gmail.com>
516
517 * objcopy.c : Enable long section names for OPTION_ADD_GNU_DEBUGLINK.
518
519 2013-01-24 Doug Evans <dje@google.com>
520
521 * dwarf.c (display_debug_addr): Add missing parentheses to expression.
522
523 2013-01-24 Nick Clifton <nickc@redhat.com>
524
525 * readelf.c (get_machine_flags): Decode E_V850E3V5_ARCH.
526
527 2013-01-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
528
529 * readelf.c: Add strings for NT_S390_LAST_BREAK and
530 NT_S390_SYSTEM_CALL.
531
532 2013-01-18 Nick Clifton <nickc@redhat.com>
533
534 PR binutils/15026
535 * addr2line.c (translate_addresses): When pretty printing, print
536 unknown function names on the same line as unknown symbol names.
537
538 2013-01-17 Nickolai Zeldovich <nickolai@csail.mit.edu>
539
540 * objdump.c (dump_target_specific): Fix NULL pointer test.
541
542 2013-01-16 Alan Modra <amodra@gmail.com>
543
544 PR binutils/15018
545 * stabs.c (parse_stab_members): Always set physname here to avoid
546 gcc warning..
547 (parse_stab_argtypes): ..and don't duplicate the init here.
548
549 2013-01-10 Will Newton <will.newton@imgtec.com>
550
551 * binutils/readelf.c: (guess_is_rela): Add EM_METAG.
552 (dump_relocations): Add EM_METAG.
553 (get_machine_name): Correct case for Meta.
554 (is_32bit_abs_reloc): Add support for Meta ADDR32 reloc.
555 (is_none_reloc): Add support for Meta NONE reloc.
556
557 2013-01-08 Yufeng Zhang <yufeng.zhang@arm.com>
558
559 * readelf.c (get_note_type): Handle NT_ARM_TLS, NT_ARM_HW_BREAK
560 and NT_ARM_HW_WATCH.
561
562 2013-01-07 Roland McGrath <mcgrathr@google.com>
563
564 * objcopy.c (deterministic): Make int rather than bfd_boolean,
565 initialize to -1.
566 (strip_options, copy_options): Add -U/--disable-deterministic-archives.
567 (default_deterministic): New function.
568 (strip_main, copy_main): Handle -U. Call default_deterministic.
569 (copy_usage, strip_usage): Describe -U. Cite whether -D or -U is
570 the default based on DEFAULT_AR_DETERMINISTIC.
571 * doc/binutils.texi (objcopy, strip): Describe -U and effect of
572 configure options on -D.
573
574 * ar.c (default_deterministic): Comment fix.
575
576 2013-01-07 Patrice Dumas <pertusus@free.fr>
577
578 * doc/binutils.texi: Fix ordering of top level nodes.
579 Replace erroneous uses of @itemx with @item.
580
581 2013-01-04 Andreas Schwab <schwab@linux-m68k.org>
582
583 * doc/binutils.texi (elfedit): Fix use of @itemx in @table.
584
585 2013-01-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
586
587 * MAINTAINERS: Add myself as AArch64 co-maintainer.
588
589 2013-01-02 H.J. Lu <hongjiu.lu@intel.com>
590
591 * version.c (print_version): Update copyright year to 2013.
592
593 For older changes see ChangeLog-2012
594 \f
595 Copyright (C) 2013 Free Software Foundation, Inc.
596
597 Copying and distribution of this file, with or without modification,
598 are permitted in any medium without royalty provided the copyright
599 notice and this notice are preserved.
600
601 Local Variables:
602 mode: change-log
603 left-margin: 8
604 fill-column: 74
605 version-control: never
606 End: