Re: [C++ Patch / RFC] PR 45385

2011-10-21 Thread Jason Merrill
On 10/21/2011 12:20 PM, Paolo Carlini wrote: + || tree_int_cst_equal (maxindex, integer_minus_one_node)) Use integer_all_onesp instead. OK with that change. Jason

Re: [C++ Patch / RFC] PR 45385

2011-10-21 Thread Paolo Carlini
On 10/21/2011 04:56 PM, Jason Merrill wrote: I think the fix for 35602 was wrong; instead of trying to suppress the warning, we should avoid building expressions that trip it. In this case, the problem is a type mismatch in build_vec_init between maxindex/iterator (ptrdiff_type_node) and array

Re: [C++ Patch / RFC] PR 45385

2011-10-21 Thread Jason Merrill
I think the fix for 35602 was wrong; instead of trying to suppress the warning, we should avoid building expressions that trip it. In this case, the problem is a type mismatch in build_vec_init between maxindex/iterator (ptrdiff_type_node) and array_type_nelts_total (sizetype). And indeed, co

[C++ Patch / RFC] PR 45385

2011-10-21 Thread Paolo Carlini
Hi, this one is a bit subtler. It's actually a regression due to the fix for PR35602, which was about a bogus warning for: struct c { ~c(); c(); }; int main() { c x[0UL][0UL] = // { dg-bogus "warning: conversion to .long unsigned int. from .long int. may change the sign of the result"