aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOrlando Arias <oarias@knights.ucf.edu>2017-10-20 04:49:57 +0000
committerDJ Delorie <dj@gcc.gnu.org>2017-10-20 00:49:57 -0400
commit793c096d45d11bdb0152c7065a473d20c247a865 (patch)
tree02b4a4b0ef29655d25ee827a41a41f70020391c2 /gcc
parentb6b240edae1d01a0d5746d940a201e635a449360 (diff)
downloadgcc-793c096d45d11bdb0152c7065a473d20c247a865.zip
gcc-793c096d45d11bdb0152c7065a473d20c247a865.tar.gz
gcc-793c096d45d11bdb0152c7065a473d20c247a865.tar.bz2
msp430.c (msp430_option_override): Disable -fdelete-null-pointer-checks.
* config/msp430/msp430.c (msp430_option_override): Disable -fdelete-null-pointer-checks. * doc/invoke.text (-fdelete-null-pointer-checks): Document that. * lib/target-supports.exp (check_effective_target_keeps_null_pointer_checks): Add msp430 to the list. From-SVN: r253921
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/msp430/msp430.c4
-rw-r--r--gcc/doc/invoke.texi2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/lib/target-supports.exp3
5 files changed, 18 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d8c4d75..a33dbb1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-10-20 Orlando Arias <oarias@knights.ucf.edu>
+
+ * config/msp430/msp430.c (msp430_option_override): Disable
+ -fdelete-null-pointer-checks.
+ * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
+
2017-10-19 Jan Hubicka <hubicka@ucw.cz>
* x86-tune-costs.h (generic_cost, core_cost): Correct costs
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 4f32fc8..9466d09 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -751,6 +751,10 @@ hwmult_name (unsigned int val)
static void
msp430_option_override (void)
{
+ /* The MSP430 architecture can safely dereference a NULL pointer. In fact,
+ there are memory mapped registers there. */
+ flag_delete_null_pointer_checks = 0;
+
init_machine_status = msp430_init_machine_status;
if (target_cpu)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index a2ef6fe..8dd32f5 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -7837,7 +7837,7 @@ Use @option{-fno-delete-null-pointer-checks} to disable this optimization
for programs that depend on that behavior.
This option is enabled by default on most targets. On Nios II ELF, it
-defaults to off. On AVR and CR16, this option is completely disabled.
+defaults to off. On AVR, CR16, and MSP430, this option is completely disabled.
Passes that use the dataflow information
are enabled independently at different optimization levels.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4aab328..e950e33 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-10-20 Orlando Arias <oarias@knights.ucf.edu>
+
+ * lib/target-supports.exp (check_effective_target_keeps_null_pointer_checks):
+ Add msp430 to the list.
+
2017-10-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/82308
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 4f9bf46..63694ea 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -548,7 +548,8 @@ proc check_effective_target_keeps_null_pointer_checks { } {
if [target_info exists keeps_null_pointer_checks] {
return 1
}
- if { [istarget avr-*-*] } {
+ if { [istarget avr-*-*]
+ || [istarget msp430-*-*] } {
return 1;
}
return 0