Hi, Currently GCC only emits DWARF debug information (DW_TAG_lexical_block DIEs) for compound statements containing significant local declarations. However, code coverage tools that process the DWARF debug information to implement block/path coverage need more complete lexical block information. This patch adds the necessary functionality under the control of a new command line argument: -fforce-dwarf-lexical-blocks. When this flag is set, a DW_TAG_lexical_block DIE will be emitted for every function body, loop body, switch body, case statement, if-then and if-else statement, even if the body is a single statement. Likewise, a lexical block will be emitted for the first label of a labeled statement. This block ends at the end of the current lexical scope, or when a break, continue, goto or return statement is encountered at the same lexical scope level. Consequently, any case in a switch statement that does not flow through to the next case, will have its own dwarf lexical block. The complete change proposal contains 4 patches (attached first 3): 1. Add command line option -fforce-dwarf-lexical-blocks 2. Use of flag_force_dwarf_blocks 3. Create label scopes A forth patch, extending the proposed functionality to C++ will be submitted in a separate message. Attached are the proposed ChangeLog additions, named according to the directory each one belongs to. Best regards, Andrei Herman Mentor Graphics Corporation Israel branch