]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
noodling roland/is_stmt
authorRoland McGrath <roland@redhat.com>
Sat, 20 Feb 2010 01:02:54 +0000 (17:02 -0800)
committerRoland McGrath <roland@redhat.com>
Sat, 20 Feb 2010 01:02:54 +0000 (17:02 -0800)
libdw/dwarf_getsrclines.c
libdw/libdwP.h

index 43fad99af1ae8eeb1348a69b06ab8f735b1eb821..7b2eb3936b6eddac824caca56478aa5aae98e6e3 100644 (file)
@@ -1,5 +1,5 @@
 /* Return line number information of CU.
-   Copyright (C) 2004-2009 Red Hat, Inc.
+   Copyright (C) 2004-2010 Red Hat, Inc.
    This file is part of Red Hat elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2004.
 
@@ -268,6 +268,8 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
       struct filelist *filelist = &null_file;
       unsigned int nfilelist = 1;
 
+      bool uses_stmt = default_is_stmt == 0;
+
       if (unlikely (linep >= lineendp))
        goto invalid_data;
       while (*linep != 0)
@@ -548,6 +550,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
                    goto invalid_data;
 
                  is_stmt = 1 - is_stmt;
+                 uses_stmt = true;
                  break;
 
                case DW_LNS_set_basic_block:
@@ -664,6 +667,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
         The buffers overlap, so we've clobbered the early elements
         of SORTLINES by the time we're reading the later ones.  */
       cu->lines = buf;
+      cu->lines->uses_stmt = uses_stmt;
       cu->lines->nlines = nlinelist;
       for (i = 0; i < nlinelist; ++i)
        {
index 248a58d55b1e6bb0c602b12ea4e8dcc7c2d77799..67278127306a5afc64358d96abd2ae8045d791d2 100644 (file)
@@ -255,6 +255,7 @@ struct Dwarf_Line_s
 struct Dwarf_Lines_s
 {
   size_t nlines;
+  bool uses_stmt;
   struct Dwarf_Line_s info[0];
 };