re PR c++/53605 (Compiler ICEs in size_binop_loc)
2012-06-11 Richard Guenther <rguenther@suse.de> PR c++/53616 * mangle.c (write_array_type): Use double-ints for array domain arithmetic. * g++.dg/ext/pr53605.C: New testcase. From-SVN: r188386
This commit is contained in:
parent
a95b3cc734
commit
5a20ffcb3a
4 changed files with 31 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-06-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c++/53616
|
||||
* mangle.c (write_array_type): Use double-ints for array domain
|
||||
arithmetic.
|
||||
|
||||
2012-06-07 Fabien Chêne <fabien@gcc.gnu.org>
|
||||
|
||||
PR c++/51214
|
||||
|
|
|
@ -3119,8 +3119,10 @@ write_array_type (const tree type)
|
|||
{
|
||||
/* The ABI specifies that we should mangle the number of
|
||||
elements in the array, not the largest allowed index. */
|
||||
max = size_binop (PLUS_EXPR, max, size_one_node);
|
||||
write_unsigned_number (tree_low_cst (max, 1));
|
||||
double_int dmax
|
||||
= double_int_add (tree_to_double_int (max), double_int_one);
|
||||
gcc_assert (double_int_fits_in_uhwi_p (dmax));
|
||||
write_unsigned_number (dmax.low);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-06-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c++/53616
|
||||
* g++.dg/ext/pr53605.C: New testcase.
|
||||
|
||||
2012-06-11 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/specs/array1.ads: New test.
|
||||
|
|
16
gcc/testsuite/g++.dg/ext/pr53605.C
Normal file
16
gcc/testsuite/g++.dg/ext/pr53605.C
Normal file
|
@ -0,0 +1,16 @@
|
|||
// { dg-do compile }
|
||||
|
||||
// Avoid -pedantic-error default
|
||||
// { dg-options "" }
|
||||
|
||||
template <bool lhs_is_null_literal>
|
||||
class EqHelper {
|
||||
public:
|
||||
template <typename T1, typename T2>
|
||||
static int Compare( const T1& expected,
|
||||
const T2& actual);
|
||||
};
|
||||
void foo(){
|
||||
static const int kData[] = {};
|
||||
::EqHelper<false>::Compare(kData, "abc");
|
||||
}
|
Loading…
Add table
Reference in a new issue