* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
@ 2024-04-09 1:43 ` pinskia at gcc dot gnu.org
2024-04-09 1:43 ` pinskia at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 1:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu.org
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So I could get ICC to produce them but clang does not.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
2024-04-09 1:43 ` [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block pinskia at gcc dot gnu.org
@ 2024-04-09 1:43 ` pinskia at gcc dot gnu.org
2024-04-09 1:49 ` pinskia at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 1:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://github.com/llvm/llv
| |m-project/issues/14523
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
LLVM's bug report: https://github.com/llvm/llvm-project/issues/14523 :).
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
2024-04-09 1:43 ` [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block pinskia at gcc dot gnu.org
2024-04-09 1:43 ` pinskia at gcc dot gnu.org
@ 2024-04-09 1:49 ` pinskia at gcc dot gnu.org
2024-04-09 1:53 ` pinskia at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 1:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Interesting it was mentioned here:
https://gcc.gnu.org/legacy-ml/gcc/2003-12/msg00336.html
I wonder if we could mark the BLOCK as being the try block and then output
DW_TAG_try_block instead of DW_TAG_lexical_block . Likewise for catch.
Maybe I will give that a go for GCC 15. Though I might be only handle the C++
front-end. Others will need to handle other FEs.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2024-04-09 1:49 ` pinskia at gcc dot gnu.org
@ 2024-04-09 1:53 ` pinskia at gcc dot gnu.org
2024-04-09 2:00 ` pinskia at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 1:53 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So for space, on LP64 (and LLP64) hosts, there is a free 32bits in the BLOCK
structure:
```
tree chain;
unsigned block_num;
location_t locus; // unsigned
location_t end_locus; // unsigned
tree vars;
```
So I can at least add a 3bit field without increasing the size too.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2024-04-09 1:53 ` pinskia at gcc dot gnu.org
@ 2024-04-09 2:00 ` pinskia at gcc dot gnu.org
2024-04-09 2:05 ` pinskia at gcc dot gnu.org
2024-04-09 2:19 ` pinskia at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 2:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
for try blocks, I do need the catch blocks so do it as the siblings.
For catch blocks, the child will be type that is being caught as a
DW_TAG_formal_parameter/DW_TAG_unspecified_parameters .
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2024-04-09 2:00 ` pinskia at gcc dot gnu.org
@ 2024-04-09 2:05 ` pinskia at gcc dot gnu.org
2024-04-09 2:19 ` pinskia at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 2:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #5)
> for try blocks, I do need the catch blocks so do it as the siblings.
> For catch blocks, the child will be type that is being caught as a
> DW_TAG_formal_parameter/DW_TAG_unspecified_parameters .
Note DW_TAG_unspecified_parameters is for the catch(...) case.
I am adding this more for my usage when I am coding this up to make sure I
understand how this works.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/39436] g++ does not emit DW_TAG_try_block or DW_TAG_catch_block
[not found] <bug-39436-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2024-04-09 2:05 ` pinskia at gcc dot gnu.org
@ 2024-04-09 2:19 ` pinskia at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-09 2:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39436
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #6)
> (In reply to Andrew Pinski from comment #5)
> > for try blocks, I do need the catch blocks so do it as the siblings.
> > For catch blocks, the child will be type that is being caught as a
> > DW_TAG_formal_parameter/DW_TAG_unspecified_parameters .
>
> Note DW_TAG_unspecified_parameters is for the catch(...) case.
>
> I am adding this more for my usage when I am coding this up to make sure I
> understand how this works.
for the VAR_DECL of the catch, I think I should be able to use
gen_formal_parameter_die.
This means the block structure will need to grow since I need another tree
here. Or maybe not. Since there seems like there are 2 BLOCKs here for the
catch.
^ permalink raw reply [flat|nested] 8+ messages in thread