Skip gcc.dg/tree-ssa/isolate-*.c for AVR Target
K_s, Vishnu
Vishnu.K_s@atmel.com
Mon Apr 7 07:11:00 GMT 2014
Added comment to avr.c on why disabling -fdelete-null-pointer-checks. Patch
Attached in the mail.
Previously approved patch can be found here -
http://gcc.gnu.org/ml/gcc-patches/2014-03/msg01697.html.
I don't have commit access to the source, please commit both the patches
If they are OK.
Regards
Vishnu KS
2014-03-31 Vishnu K S <Vishnu.k_s@atmel.com>
* gcc/config/avr/avr.c: Add comment on why disabling
-fdelete-null-pointer-checks
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 8ca7de0..c400bff 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -290,6 +290,12 @@ avr_to_int_mode (rtx x)
static void
avr_option_override (void)
{
+ /* Disable -fdelete-null-pointer-checks option for AVR target.
+ For this option compiler assumes that dereferencing of a null pointer
+ would halt the program. For AVR this assumption is not true and
+ programs can safely dereference null pointers. Changes made by this
+ option may not work properly for AVR. So disable this option. */
+
flag_delete_null_pointer_checks = 0;
/* caller-save.c looks for call-clobbered hard registers that are assigned
> -----Original Message-----
> From: Richard Biener [mailto:richard.guenther@gmail.com]
> Sent: Saturday, April 05, 2014 3:16 PM
> To: Jeff Law
> Cc: K_s, Vishnu; gcc-patches@gcc.gnu.org
> Subject: Re: Skip gcc.dg/tree-ssa/isolate-*.c for AVR Target
>
> On Fri, Apr 4, 2014 at 5:37 PM, Jeff Law <law@redhat.com> wrote:
> > On 03/28/14 04:16, K_s, Vishnu wrote:
> >>
> >> Hi all,
> >>
> >> The tests added in gcc.dg/tree-ssa/isolate-*.c is failing for AVR
> target,
> >> Because the isolate erroneous path pass needs -fdelete-null-pointer-
> checks
> >> option to be enabled. For AVR target that option is disabled, this
> cause
> >> the tests to fail. Following Patch skip the isolate-* tests if
> >> "keeps_null_pointer_checks" is true.
> >>
> >> 2014-03-28 Vishnu K S <Vishnu.k_s@atmel.com >
> >>
> >> * gcc/testsuite/gcc.dg/tree-ssa/isolate-1.c: Skip test for
> AVR
> >> * gcc/testsuite/gcc.dg/tree-ssa/isolate-2.c: Ditto
> >> * gcc/testsuite/gcc.dg/tree-ssa/isolate-3.c: Ditto
> >> * gcc/testsuite/gcc.dg/tree-ssa/isolate-4.c: Ditto
> >> * gcc/testsuite/gcc.dg/tree-ssa/isolate-5.c: Ditto
> >
> > This is fine for the trunk. Please go ahead and install.
> >
> > However, we generally discourage ports from turning off passes like
> this and
> > particularly so without a comment as to why a pass is turned off.
> >
> > That code was added to the AVR port here:
> >
> > http://gcc.gnu.org/ml/gcc-patches/2007-03/msg01968.html
> >
> >
> > If you could add a comment to the AVR port indicating that
> > delete-null-pointer-checks is disabled because the hardware does not
> fault
> > on a NULL dereference, it would be greatly appreciated. Consider
> that
> > comment addition pre-approved, just post it to the list for archival
> > purposes.
>
> Note that it is recommended (and documented) practice to treat
> -fdelete-null-pointer-checks that way for targets that support objects
> starting at 0.
>
> Richard.
>
> > Thanks,
> > Jeff
> >
> >
More information about the Gcc-patches
mailing list