AVR: Tidy bfd/elf32-avr.c
Code cleanup in `bfd/elf32-avr.c` improves readability and uses C99 features.
Georg-Johann Lay has submitted a code cleanup patch for bfd/elf32-avr.c that refactors the elf32_avr_relax_section function. The changes improve readability by introducing helper functions and reducing indentation levels. The patch also adopts C99 features like bool, uses ARRAY_SIZE where applicable, and clarifies naming conventions for structs and objects. The changes are a no-op in terms of functionality, and the testsuite remains unaffected.
- proposer
Submitted a code cleanup patch for `bfd/elf32-avr.c` that refactors `elf32_avr_relax_section` and adopts C99 features.
“This patch is a code cleanup for bfd/elf32-avr.c, in particular the code in elf32_avr_relax_section which was long spaghetti with indentation levels of 8 and more, which made the code harder to grasp than necessary. Now it uses new helper functions like avr_local_label_at and avr_is_RCALL. It also uses more C99 features like bool and for loop variables. It uses ARRAY_SIZE if applicable, and use…”
In Details
This is a code refactoring effort targeting the AVR BFD backend's relaxation logic in bfd/elf32-avr.c. The primary goal is to improve code clarity and maintainability by breaking down the complex elf32_avr_relax_section function into smaller, more manageable static helper functions. Additionally, the patch modernizes the code by adopting C99 features (like bool type and C99-style for loops), using ARRAY_SIZE for array bounds, and improving naming conventions to avoid ambiguity between struct types and object instances. Functionally, this change is a no-op, ensuring no regressions in…
- bfd
- Binary File Descriptor library. A library provided by GNU binutils that provides a generic interface to a wide variety of object file formats.
- AVR
- A family of microcontrollers developed by Atmel (now Microchip Technology). Binutils provides support for targeting these processors.
- relax_section
- A function within the BFD library that handles the relaxation of section contents, typically involving adjusting addresses for branches and calls to ensure correctness at runtime.
- C99
- The 1999 version of the C programming language standard, which introduced new features such as inline functions, variable declarations in
forloops, and the_Booltype. - ARRAY_SIZE
- A macro, often found in libiberty, that calculates the number of elements in an array.
- no-op
- No-operation. A change that has no effect on the functionality or behavior of the code.