aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2014-12-15 19:43:26 +0100
committerUros Bizjak <uros@gcc.gnu.org>2014-12-15 19:43:26 +0100
commit2405e0ea00fea38ed86fade3d10fb728ba1ff0f6 (patch)
treead4cbf4e91d865680291305f0c669e9be1484929 /libgcc
parentc05816d64ff9c4835485c4b265eadcf8fee48415 (diff)
downloadgcc-2405e0ea00fea38ed86fade3d10fb728ba1ff0f6.zip
gcc-2405e0ea00fea38ed86fade3d10fb728ba1ff0f6.tar.gz
gcc-2405e0ea00fea38ed86fade3d10fb728ba1ff0f6.tar.bz2
re PR libgcc/63832 (crtstuff.c:400:19: warning: array subscript is above array bounds [-Warray-bounds])
PR libgcc/63832 * crtstuff.c (__do_global_dtors_aux) [HIDDEN_DTOR_LIST_END]: Use func_ptr *dtor_list temporary variable to avoid "array subscript is above array bounds" warnings. From-SVN: r218759
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog9
-rw-r--r--libgcc/crtstuff.c8
2 files changed, 11 insertions, 6 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 285832a..0ce1a7a 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-12-15 Uros Bizjak <ubizjak@gmail.com>
+
+ PR libgcc/63832
+ * crtstuff.c (__do_global_dtors_aux) [HIDDEN_DTOR_LIST_END]: Use
+ func_ptr *dtor_list temporary variable to avoid "array subscript
+ is above array bounds" warnings.
+
2014-12-09 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
* Makefile.in (with_aix_soname): Define.
@@ -809,7 +816,7 @@
PR libgcc/60472
* crtstuff.c (frame_dummy): Use void **jcr_list temporary
- variable to avoid array subscript is above array bounds warnings.
+ variable to avoid "array subscript is above array bounds" warnings.
Use __builtin_expect when checking *jcr_list for NULL.
2014-03-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index 62a4b42..0432794 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -393,13 +393,11 @@ __do_global_dtors_aux (void)
extern func_ptr __DTOR_END__[] __attribute__((visibility ("hidden")));
static size_t dtor_idx;
const size_t max_idx = __DTOR_END__ - __DTOR_LIST__ - 1;
- func_ptr f;
+ func_ptr *dtor_list;
+ __asm ("" : "=g" (dtor_list) : "0" (__DTOR_LIST__));
while (dtor_idx < max_idx)
- {
- f = __DTOR_LIST__[++dtor_idx];
- f ();
- }
+ dtor_list[++dtor_idx] ();
}
#else /* !defined (FINI_ARRAY_SECTION_ASM_OP) */
{