]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle some more DW_TAG_subrange_type cases which Fedora 11's
authorTom Hughes <tom@compton.nu>
Mon, 3 Aug 2009 08:50:58 +0000 (08:50 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 3 Aug 2009 08:50:58 +0000 (08:50 +0000)
gcc 4.4.0 seems to generate.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10695

coregrind/m_debuginfo/readdwarf3.c

index 3c194b961c02a93b142137506a096369458cd197..09dd3c87eb65e1215a9b8925d5d9086a498782a0 100644 (file)
@@ -2476,12 +2476,24 @@ static void parse_type_DIE ( /*MOD*/XArray* /* of TyEnt */ tyents,
          boundE.Te.Bound.knownU = True;
          boundE.Te.Bound.boundL = lower;
          boundE.Te.Bound.boundU = upper;
-      } 
+      }
       else if (have_lower && (!have_upper) && (!have_count)) {
          boundE.Te.Bound.knownL = True;
          boundE.Te.Bound.knownU = False;
          boundE.Te.Bound.boundL = lower;
          boundE.Te.Bound.boundU = 0;
+      }
+      else if ((!have_lower) && have_upper && (!have_count)) {
+         boundE.Te.Bound.knownL = False;
+         boundE.Te.Bound.knownU = True;
+         boundE.Te.Bound.boundL = 0;
+         boundE.Te.Bound.boundU = upper;
+      }
+      else if ((!have_lower) && (!have_upper) && (!have_count)) {
+         boundE.Te.Bound.knownL = False;
+         boundE.Te.Bound.knownU = False;
+         boundE.Te.Bound.boundL = 0;
+         boundE.Te.Bound.boundU = 0;
       } else {
          /* FIXME: handle more cases */
          goto bad_DIE;