]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
dwarflint: Add a check for DW_AT_low_pc > DW_AT_high_pc
authorPetr Machata <pmachata@redhat.com>
Thu, 17 Mar 2011 23:01:38 +0000 (00:01 +0100)
committerPetr Machata <pmachata@redhat.com>
Thu, 17 Mar 2011 23:01:38 +0000 (00:01 +0100)
dwarflint/Makefile.am
dwarflint/check_debug_info.cc
dwarflint/tests/DW_AT_high_pc-below.bz2 [new file with mode: 0644]
dwarflint/tests/run-DW_AT_high_pc-below.sh [new file with mode: 0755]

index ba6d6a8ac09e6cc486b06dddb939ca1c6e888e3c..4317edc32b544401e137b70e31c959e29a803fd7 100644 (file)
@@ -105,7 +105,8 @@ EXTRA_TESTS = tests/run-debug_abbrev-duplicate-attribute.sh \
        tests/run-test-all-dies-it.sh \
        tests/run-bad.sh \
        tests/run-check_self_referential_die.sh \
-       tests/run-DW_AT_high_pc-relative.sh
+       tests/run-DW_AT_high_pc-relative.sh \
+       tests/run-DW_AT_high_pc-below.sh
 
 TESTS = $(EXTRA_TESTS) \
        tests/test-coverage \
@@ -136,7 +137,8 @@ EXTRA_DIST = $(EXTRA_TESTS) \
        tests/garbage-11.bz2 \
        tests/garbage-12.bz2 \
        tests/check_self_referential_die.bz2 \
-       tests/DW_AT_high_pc-relative.bz2
+       tests/DW_AT_high_pc-relative.bz2 \
+       tests/DW_AT_high_pc-below.bz2
 
 installed_TESTS_ENVIRONMENT = libdir=$(DESTDIR)$(libdir) \
                              bindir=$(DESTDIR)$(bindir) \
index 057dbeae9f7ef05ee19b3138648480bc6bfba04f..11e5770d8d7c9f67272d827c496e1adf0070781e 100644 (file)
@@ -780,7 +780,7 @@ namespace
 
              default:
                ;
-             };
+             }
 
            /* Setup low_pc / high_pc checking.  */
            switch (it->name)
diff --git a/dwarflint/tests/DW_AT_high_pc-below.bz2 b/dwarflint/tests/DW_AT_high_pc-below.bz2
new file mode 100644 (file)
index 0000000..0221d4e
Binary files /dev/null and b/dwarflint/tests/DW_AT_high_pc-below.bz2 differ
diff --git a/dwarflint/tests/run-DW_AT_high_pc-below.sh b/dwarflint/tests/run-DW_AT_high_pc-below.sh
new file mode 100755 (executable)
index 0000000..f0d296a
--- /dev/null
@@ -0,0 +1,36 @@
+#! /bin/sh
+# Copyright (C) 2011 Red Hat, Inc.
+# This file is part of Red Hat elfutils.
+#
+# Red Hat elfutils is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by the
+# Free Software Foundation; version 2 of the License.
+#
+# Red Hat elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Red Hat elfutils; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+#
+# Red Hat elfutils is an included package of the Open Invention Network.
+# An included package of the Open Invention Network is a package for which
+# Open Invention Network licensees cross-license their patents.  No patent
+# license is granted, either expressly or impliedly, by designation as an
+# included package.  Should you wish to participate in the Open Invention
+# Network licensing program, please visit www.openinventionnetwork.com
+# <http://www.openinventionnetwork.com>.
+
+. $srcdir/../tests/test-subr.sh
+
+srcdir=$srcdir/tests
+
+# Hand-crafted file that has 0,0 pair in aranges presented before the
+# actual end of the table.
+testfiles DW_AT_high_pc-below
+
+testrun_compare ./dwarflint --check=@low DW_AT_high_pc-below <<EOF
+warning: .debug_info: DIE 0xb: DW_AT_low_pc value not below DW_AT_high_pc.
+EOF