From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27768 invoked by alias); 4 May 2010 15:11:57 -0000 Received: (qmail 27674 invoked by uid 48); 4 May 2010 15:11:30 -0000 Date: Tue, 04 May 2010 15:11:00 -0000 Subject: [Bug debug/43983] New: var-tracking needlessly throws away location info for SRAed vars X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-05/txt/msg00328.txt.bz2 track_expr_p has: 4496 /* If this expression is really a debug alias of some other declaration, we 4497 don't need to track this expression if the ultimate declaration is 4498 ignored. */ 4499 realdecl = expr; 4500 if (DECL_DEBUG_EXPR_IS_FROM (realdecl) && DECL_DEBUG_EXPR (realdecl)) 4501 { 4502 realdecl = DECL_DEBUG_EXPR (realdecl); 4503 /* ??? We don't yet know how to emit DW_OP_piece for variable 4504 that has been SRA'ed. */ 4505 if (!DECL_P (realdecl)) 4506 return 0; 4507 } I'd say if the DECL_DEBUG_EXPR is a COMPONENT_REF, ARRAY_REF etc. from a reasonably short type, the easiest thing would be just to let var-tracking track the individual vars and let dwarf2out_var_location assemble them together. -- Summary: var-tracking needlessly throws away location info for SRAed vars Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43983