From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4765 invoked by alias); 16 Feb 2006 13:35:42 -0000 Received: (qmail 4728 invoked by uid 48); 16 Feb 2006 13:35:38 -0000 Date: Thu, 16 Feb 2006 13:35:00 -0000 Message-ID: <20060216133538.4727.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/26316] [4.2 Regression] loop-invariant miscompiles openmp.c In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pinskia at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-02/txt/msg01823.txt.bz2 List-Id: ------- Comment #5 from pinskia at gcc dot gnu dot org 2006-02-16 13:35 ------- (In reply to comment #4) > The MEM is marked as MEM_NOTRAP_P, by do_tablejump -> gen_const_mem. > Still, IMHO you can't do that, otherwise we couldn't mark any MEM > as MEM_NOTRAP_P unless it has constant operand. If a particular array > will not trap, it doesn't mean you can add arbitrary offset to it and still > expect it will not trap. Huh? /* 1 if RTX is a mem that cannot trap. */ @findex MEM_NOTRAP_P @cindex @code{mem} and @samp{/c} @cindex @code{call}, in @code{mem} @item MEM_NOTRAP_P (@var{x}) In @code{mem}, nonzero for memory references that will not trap. Stored in the @code{call} field and printed as @samp{/c}. Since this reference can trap if it was pulled before the is, it should not be marked as such. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26316