The Dwarf2 information for Altvec vectors gave _unknown_ as a base type for the
vector instead of, in this case, 'short'.
Using the depricated 'attribute' scheme works, but the 'new' __vector does not,
so it could be considered a regression.
This works correctly in 4.0.0
Here is an exmple of the bad dwarf:
<0><19d>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_stmt_list : 341
DW_AT_high_pc : 0x10000b08 268438280
DW_AT_low_pc : 0x1000051c 268436764
DW_AT_name : ../../../src/gdb/testsuite/gdb.arch/altivec-abi.c
DW_AT_comp_dir :
/home/pgilliam/work/gdb-work/read-write/build/gdb/testsuite
DW_AT_producer : GNU C 3.4.3
DW_AT_language : 1 (ANSI C)
...
<1><29b>: Abbrev Number: 4 (DW_TAG_array_type)
DW_AT_sibling : <2c2>
DW_AT_name : __vector signed short
DW_AT_GNU_vector : 1
DW_AT_type : <2d7>
<2><2bb>: Abbrev Number: 5 (DW_TAG_subrange_type)
DW_AT_type : <2c2>
DW_AT_upper_bound : 7
<1><2c2>: Abbrev Number: 6 (DW_TAG_base_type)
DW_AT_name : long unsigned int
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
<1><2d7>: Abbrev Number: 7 (DW_TAG_base_type)
DW_AT_name : (indirect string, offset: 0x94): __unknown__
DW_AT_byte_size : 2
DW_AT_encoding : 5 (signed)
...
<1><76a>: Abbrev Number: 14 (DW_TAG_variable)
DW_AT_name : vshort
DW_AT_decl_file : 1
DW_AT_decl_line : 3
DW_AT_type : <29b>
DW_AT_external : 1
DW_AT_location : 9 byte block: 3 0 0 0 0 10 1 10 30 (DW_OP_addr:
10011030)
--
Summary: Bad DWARF for altivec vectors
Product: gcc
Version: 3.4.4
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pgilliam at us dot ibm dot com
GCC target triplet: powerpc-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24267