On x86_64-linux as of LAST_UPDATED: Wed Jul 6 13:35:26 UTC 2005 RUN c34007p raised CONSTRAINT_ERROR : c34007p.adb:83 discriminant check failed RUN c34007r raised CONSTRAINT_ERROR : c34007r.adb:80 discriminant check failed RUN c45282b ,.,. 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 <pinskia@physics.uc.edu> PR middle-end/14490 * 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?
Thread starts: http://gcc.gnu.org/ml/gcc/2005-09/msg00102.html 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: > http://gcc.gnu.org/ml/gcc/2005-09/msg00102.html > > From the looks of the thread it looks more likely a front-end bug rather than a tree-opt bug. Thanks.
Note: works at -O0 on x86-linux and x86_64-linux
Investigating.
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 Author: ebotcazou Date: Thu Nov 17 21:03:50 2005 New Revision: 107134 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107134 Log: PR ada/22333 * 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. Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/trans.c
See http://gcc.gnu.org/ml/gcc-patches/2005-11/msg01311.html