re PR debug/66535 (segfault in gen_subprogram_die after debug-early merge)
PR debug/66535 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if there is no parent. From-SVN: r224486
This commit is contained in:
parent
fb5b535246
commit
8e6dce3de7
|
@ -1,3 +1,9 @@
|
|||
2015-06-15 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
PR debug/66535
|
||||
* dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
|
||||
there is no parent.
|
||||
|
||||
2015-06-14 Shiva Chen <shiva0217@gmail.com>
|
||||
|
||||
* aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
|
||||
|
|
|
@ -18790,7 +18790,8 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
|
|||
end function
|
||||
end module
|
||||
*/
|
||||
|| old_die->die_parent->die_tag == DW_TAG_module
|
||||
|| (old_die->die_parent
|
||||
&& old_die->die_parent->die_tag == DW_TAG_module)
|
||||
|| context_die == NULL)
|
||||
&& (DECL_ARTIFICIAL (decl)
|
||||
|| (get_AT_file (old_die, DW_AT_decl_file) == file_index
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
-- { dg-compile }
|
||||
-- { dg-options "-g" }
|
||||
|
||||
with Debug4_Pkg;
|
||||
|
||||
procedure Debug4 is
|
||||
package P is new Debug4_Pkg (Natural);
|
||||
begin
|
||||
null;
|
||||
end;
|
|
@ -0,0 +1,23 @@
|
|||
package body Debug4_Pkg is
|
||||
|
||||
type Vertex_To_Vertex_T is array (Vertex_Id range <>) of Vertex_Id;
|
||||
|
||||
function Dominator_Tree_Internal (G : T'Class) return Vertex_To_Vertex_T is
|
||||
subtype V_To_V is Vertex_To_Vertex_T (0 .. G.Vertices.Last_Index);
|
||||
type V_To_VIL is array
|
||||
(Valid_Vertex_Id range 1 .. G.Vertices.Last_Index)
|
||||
of Vertex_Index_List;
|
||||
Bucket : V_To_VIL := (others => VIL.Empty_Vector);
|
||||
Dom : V_To_V := (others => 0);
|
||||
begin
|
||||
return Dom;
|
||||
end;
|
||||
|
||||
function Dominator_Tree (G : T'Class) return T is
|
||||
Dom : constant Vertex_To_Vertex_T := Dominator_Tree_Internal (G);
|
||||
DT : T := (Vertices => VL.Empty_Vector);
|
||||
begin
|
||||
return DT;
|
||||
end;
|
||||
|
||||
end Debug4_Pkg;
|
|
@ -0,0 +1,28 @@
|
|||
with Ada.Containers.Vectors;
|
||||
|
||||
generic
|
||||
type Vertex_Key is private;
|
||||
package Debug4_Pkg is
|
||||
|
||||
type Vertex_Id is new Natural;
|
||||
subtype Valid_Vertex_Id is Vertex_Id range 1 .. Vertex_Id'Last;
|
||||
|
||||
package VIL is new Ada.Containers.Vectors
|
||||
(Index_Type => Positive,
|
||||
Element_Type => Valid_Vertex_Id);
|
||||
use VIL;
|
||||
subtype Vertex_Index_List is VIL.Vector;
|
||||
|
||||
package VL is new Ada.Containers.Vectors
|
||||
(Index_Type => Valid_Vertex_Id,
|
||||
Element_Type => Vertex_Key);
|
||||
use VL;
|
||||
subtype Vertex_List is VL.Vector;
|
||||
|
||||
type T is tagged record
|
||||
Vertices : Vertex_List;
|
||||
end record;
|
||||
|
||||
function Dominator_Tree (G : T'Class) return T;
|
||||
|
||||
end Debug4_Pkg;
|
Loading…
Reference in New Issue