From 820055a0ac3fcd19230eedacd223d5970d359023 Mon Sep 17 00:00:00 2001 From: Dehao Chen Date: Sat, 15 Sep 2012 00:41:53 +0000 Subject: tree-eh.c (goto_queue_node): New field. gcc: * tree-eh.c (goto_queue_node): New field. (record_in_goto_queue): New parameter. (record_in_goto_queue_label): New parameter. (lower_try_finally_dup_block): New parameter. (maybe_record_in_goto_queue): Update source location. (lower_try_finally_copy): Likewise. (honor_protect_cleanup_actions): Likewise. * gimplify.c (gimplify_expr): Reset the location to unknown. testsuite: * g++.dg/debug/dwarf2/deallocator.C: New test. libjava: * testsuite/libjava.lang/sourcelocation.java: New cases. * testsuite/libjava.lang/sourcelocation.out: New cases. From-SVN: r191338 --- libjava/testsuite/libjava.lang/sourcelocation.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 libjava/testsuite/libjava.lang/sourcelocation.java (limited to 'libjava/testsuite/libjava.lang/sourcelocation.java') diff --git a/libjava/testsuite/libjava.lang/sourcelocation.java b/libjava/testsuite/libjava.lang/sourcelocation.java new file mode 100644 index 0000000..6cf1e40 --- /dev/null +++ b/libjava/testsuite/libjava.lang/sourcelocation.java @@ -0,0 +1,18 @@ +/* This test should test the source location attribution. + We print the line number of different parts of the program to make sure + that the source code attribution is correct. + To make this test pass, one need to have up-to-date addr2line installed + to parse the dwarf4 data format. +*/ +public class sourcelocation { + public static void main(String args[]) { + try { + System.out.println(new Exception().getStackTrace()[0].getLineNumber()); + throw new Exception(); + } catch (Exception e) { + System.out.println(new Exception().getStackTrace()[0].getLineNumber()); + } finally { + System.out.println(new Exception().getStackTrace()[0].getLineNumber()); + } + } +} -- cgit v1.1