Bug 14492 – [3.4 Regression] loc_descriptor_from_tree, in dwarf2out.c:9031

Description Martin Krischik 2004-03-08 21:01:35 UTC

gnat compile -PAdaCL -Xbc=/opt/ada/include/bc -Xtarget=Linux -vP0 -C
-Xstyle=Debug adacl-astro-planet-cgi.adb
gcc -c -g -gnatf -gnatU -gnatwa -gnatq -gnatQ -gnati1 -gnatT4 -gnata -gnato
-gnatVcdfimorst -g -I- -gnatA
/work/sf.martin/adacl/Include//adacl-astro-planet-cgi.adb

+===========================GNAT BUG DETECTED==============================+
| 3.5.0 20040308 (experimental) (i686-pc-linux-gnu) GCC error:             |
| in loc_descriptor_from_tree, bei dwarf2out.c:9031                        |
| Error detected at adacl-astro-planet-cgi.adb:185:9                       |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc or gnatmake command that you entered.              |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.

/work/sf.martin/adacl/Include//adacl-astro-planet-cgi.adb
/work/sf.martin/adacl/Include//adacl-astro-planet-cgi.ads
/work/sf.martin/adacl/Include//adacl-astro-planet.ads
/work/sf.martin/adacl/Include//adacl-astro.ads
/work/sf.martin/adacl/Include//adacl.ads
/opt/ada/include/xmlada/unicode.ads
/opt/ada/include/xmlada/unicode-names.ads
/opt/ada/include/xmlada/unicode-names-basic_latin.ads
/opt/ada/include/xmlada/unicode-names-miscellaneous_symbols.ads
/opt/ada/include/xmlada/unicode-names-greek.ads
/work/sf.martin/adacl/Include//adacl-astro-tierzeichen.ads
/work/sf.martin/adacl/Include//adacl-cgi.ads
/work/sf.martin/adacl/Include//adacl-cgi-abstract_data.ads
/work/sf.martin/adacl/Include//adacl-astro-planet-list.ads
/opt/ada/include/bc//bc.ads
/work/sf.martin/adacl/Include//bc-indefinite_containers.ads
/work/sf.martin/adacl/Include//bc-indefinite_containers-collections.ads
/work/sf.martin/adacl/Include//bc-indefinite_containers-collections-unbounded.ads
/opt/ada/include/bc//bc-support.ads
/work/sf.martin/adacl/Include//bc-support-indefinite_unbounded.ads
/work/sf.martin/adacl/Include//bc-support-indefinite_reference.ads
/work/sf.martin/adacl/Include//adacl-gc.ads
/work/sf.martin/adacl/Include//adacl-gc-managed.ads
/work/sf.martin/adacl/Include//adacl-astro-planet-collection.ads
/work/sf.martin/adacl/Include//adacl-astro-planet-container.ads
/work/sf.martin/adacl/Include//adacl-gc-managed_controlled.ads
/work/sf.martin/adacl/Include//adacl-sar.ads
/work/sf.martin/adacl/Include//adacl-sar-filter.ads
/work/sf.martin/adacl/Include//adacl-base.ads
/work/sf.martin/adacl/Include//adacl-sar-line.ads
/work/sf.martin/adacl/Include//adacl-sar-line-list.ads
/opt/ada/include/bc//bc-containers.ads
/opt/ada/include/bc//bc-containers-collections.ads
/opt/ada/include/bc//bc-containers-collections-unbounded.ads
/opt/ada/include/bc//bc-support-unbounded.ads
/work/sf.martin/adacl/Include//adacl-sar-line-collection.ads
/work/sf.martin/adacl/Include//adacl-sar-line-container.ads
/work/sf.martin/adacl/Include//adacl-sar-filter-list.ads
/work/sf.martin/adacl/Include//adacl-sar-filter-collection.ads
/work/sf.martin/adacl/Include//adacl-sar-filter-container.ads
/work/sf.martin/adacl/Include//adacl-sar-filter-replace.ads
/work/sf.martin/adacl/Include//adacl-cgi-abstract_data.adb
/work/sf.martin/adacl/Include//bc-indefinite_containers.adb

Well, it's quite a lot of files in different directories so I will only tar them
up if you realy want them

The compiler used is a cvs snapshot from this weekend. configuration used is:

../gcc/configure --prefix=/opt/ada --enable-libada --enable-shared 
--enable-languages=ada,c

The error only apears with the debug compile, not with release.

Thank you

Martin

Comment 1 Andrew Pinski 2004-03-08 21:46:47 UTC

/* Otherwise this is a generic code; we should just lists all of
   these explicitly.  Aborting means we forgot one.  */

Comment 2 Arnaud Charlet 2004-03-08 22:44:12 UTC

Yes, sources are needed to investigate such failures (or at the very
least a gdb session on gnat1 with a few appropriate prints).

This is a general dwarf2 bug, not an Ada bug, so recategorizing and
putting on hold waiting for the sources.

Arno

Comment 3 Martin Krischik 2004-03-09 08:36:22 UTC

Created attachment 5889 [details]
Tar with all sources, cmopiler output and project files.

I used "make -k" - the problems appears with 2 files.
I added both lists of files.
For 20 odd files tar seemd more appropiate.

Comment 4 Martin Krischik 2004-03-09 08:39:11 UTC

I have added the requested sources.

Comment 5 shalla 2004-04-09 14:50:05 UTC

I have a nearly identical dwarf2 bug in C/C++, and a trivial test case. Here:

///////////////////////////////////
int main() {
  double d = 1.0;
  char x[(int) d];
  return 0;
}
///////////////////////////////////

g++34 -g ice.bug.c
ice.bug.c: In function `int main()':
ice.bug.c:5: internal compiler error: in loc_descriptor_from_tree, at
dwarf2out.c:8863
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

Of course, if I leave the -g off, it compiles and executes properly.

I am using the prerelease snapshot of 3.4.0. on i686-pc-linux-gnu as well.

Comment 6 Andrew Pinski 2004-04-09 15:01:29 UTC

Since I do not have an Ada compiler on any machine that has dwarf2 support could someone run in this 
in the debuger and see what the debug_tree(loc) prints out.

Also the shalla's testcase is filed under 149000.

Comment 7 Mark Mitchell 2004-05-31 22:08:31 UTC

Jason, Paul --

Jason, you're the DWARF2 maintainer.

Paul, IIRC, you fixed some bugs in this area on the csl-arm-branch.  Does one of
those fix this bug?  If so, would you please ask Jason to approve it for 3.4.1?
 If not, please let Jason know that your patches don't help.

Thanks,

-- Mark

Comment 8 Paul Brook 2004-06-01 20:58:14 UTC

My changes in this area are already on the 3.4 branch. I added 
EXPR_WITH_FILE_LOCATION to fix PR12943 
 
Paul 
 

Comment 9 Mark Mitchell 2004-06-18 23:58:17 UTC

Postponed until GCC 3.4.2.

Comment 12 Mark Mitchell 2004-08-24 02:18:33 UTC

Fixed in GCC 3.4.2 -- by not outputting the array bound.

Fixed better in GCC 3.5.0.

Comment 13 Mark Mitchell 2004-08-24 02:21:42 UTC

*** Bug 14900 has been marked as a duplicate of this bug. ***

Comment 14 Eric Botcazou 2004-08-31 11:58:09 UTC

Just to make it clear that the problem is not really fixed on the 3.4 branch,
merely swept under the rug.  An --enable-checking build will have 6 failures:

FAIL: gcc.dg/debug/crash1.c -gdwarf-2 (test for excess errors)
FAIL: gcc.dg/debug/crash1.c -gdwarf-2 -O (test for excess errors)
FAIL: gcc.dg/debug/crash1.c -gdwarf-2 -O3 (test for excess errors)
FAIL: gcc.dg/debug/crash1.c -gdwarf-23 (test for excess errors)
FAIL: gcc.dg/debug/crash1.c -gdwarf-23 -O (test for excess errors)
FAIL: gcc.dg/debug/crash1.c -gdwarf-23 -O3 (test for excess errors)

Comment 15 Andrew Pinski 2004-09-20 20:46:32 UTC

Reopening because it is still a problem with checking turned on.  It also only effects 3.4.x

Comment 16 Andrew Pinski 2004-09-20 20:47:15 UTC

*** Bug 17572 has been marked as a duplicate of this bug. ***

Comment 17 Andrew Pinski 2004-09-20 20:54:24 UTC

Confirmed.

Comment 18 Richard Henderson 2004-10-14 21:38:33 UTC

We're just missing some case entries in loc_descriptor_from_tree.

Comment 21 Richard Henderson 2004-10-14 23:31:19 UTC

Fixed.

Comment 22 Andrew Pinski 2005-03-20 23:43:40 UTC

*** Bug 20572 has been marked as a duplicate of this bug. ***