On 6/18/19 2:38 AM, Christophe Lyon wrote:
On Fri, 14 Jun 2019 at 03:35, Jeff Law <l...@redhat.com> wrote:

On 6/13/19 1:10 PM, Martin Sebor wrote:
Attached is a fix for the fold_build call with inconsistent
argument types introduced in a recent commit of mine.

Tested on x86_64-linux.

Martin

gcc-90662.diff

PR tree-optimization/90662 - strlen of a string in a vla plus offset not folded

gcc/ChangeLog:

       PR tree-optimization/90662
       * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
       to the same type.

gcc/testsuite/ChangeLog:

       PR tree-optimization/90662
       * gcc.dg/pr90866-2.c: New test.
       * gcc.dg/pr90866.c: Ditto.
OK
jeff

Hi,

I've noticed that pr90866-2.c fails on arm-none-eabi:
/gcc/testsuite/gcc.dg/pr90866-2.c:17:5: error: conflicting types for 'i'
/gcc/testsuite/gcc.dg/pr90866-2.c:17:1: note: an argument type that
has a default promotion cannot match an empty parameter name list
declaration
/gcc/testsuite/gcc.dg/pr90866-2.c:16:5: note: previous declaration of
'i' was here
compiler exited with status 1
FAIL: gcc.dg/pr90866-2.c (test for excess errors)

Removing 'int i();' makes the test pass, but I'm wondering why is
passes on other targets without this change?

I'm sure it's because of the difference in type promotion rules
on the target.  The function declaration shouldn't have an impact
on the test case so I have removed it in r272418.

Thanks
Martin

Reply via email to