On x86_64-linux as of
LAST_UPDATED: Wed Jul 6 13:35:26 UTC 2005
raised CONSTRAINT_ERROR : c34007p.adb:83 discriminant check failed
raised CONSTRAINT_ERROR : c34007r.adb:80 discriminant check failed
,.,. C45282B ACATS 2.5 05-07-06 17:16:11
---- C45282B CHECK THAT IN AND NOT IN ARE EVALUATED FOR ACCESS TYPES TO
RECORD TYPES, PRIVATE TYPES, LIMITED PRIVATE TYPES WITH
DISCRIMINANTS, AND TASK TYPES.
raised CONSTRAINT_ERROR : c45282b.adb:170 discriminant check failed
I wonder if this is caused by (my patch):
2005-07-02 Andrew Pinski <email@example.com>
* fold-const.c (fold_binary): Handle the return value of
fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
But I have to double check, I thought I had tested it with Ada but I cannot remember for sure.
Nope it was not my change as that would mean -fwrapv fix it but it did not. Though it looks like my
patch actually helps code generation here.
Another missing V_MAY_DEF:
# VUSE <C.1_33>;
# VUSE <TMT.91_386>;
VIEW_CONVERT_EXPR<struct c34007r__T8b>(*D.839) = C.1;
What's the status of this bug?
From the looks of the thread it looks more likely a front-end bug rather than a tree-opt bug.
(In reply to comment #5)
> Thread starts:
> From the looks of the thread it looks more likely a front-end bug rather than
a tree-opt bug.
Note: works at -O0 on x86-linux and x86_64-linux
Eric, I believe Richard Kenner has a fix for this one.
> Eric, I believe Richard Kenner has a fix for this one.
Great. I've one too, but it is in Gigi.
*** Bug 24898 has been marked as a duplicate of this bug. ***
Subject: Bug 22333
Date: Thu Nov 17 21:03:50 2005
New Revision: 107134
* trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
a temporary if taking the address of something that is neither
reference, declaration, or constant, since the gimplifier
can't handle that case.