summaryrefslogtreecommitdiffstats
path: root/libgcc
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-10 18:31:20 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-10 18:31:20 +0000
commite5d692d7796af543fe6d931832cc91064a7d4f9d (patch)
tree90f1b9e9325b3b0a1324bcdba5c53610fabfd936 /libgcc
parentb919371fd3f46fb6c50020febfe7b68ec122bb5b (diff)
downloadppe42-gcc-e5d692d7796af543fe6d931832cc91064a7d4f9d.tar.gz
ppe42-gcc-e5d692d7796af543fe6d931832cc91064a7d4f9d.zip
PR libgcc/60472
* crtstuff.c (frame_dummy): Use void **jcr_list temporary variable to avoid array subscript is above array bounds warnings. Use __builtin_expect when checking *jcr_list for NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208457 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog9
-rw-r--r--libgcc/crtstuff.c12
2 files changed, 16 insertions, 5 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 381a5e27c66..686c29e8023 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-03-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR libgcc/60472
+ * crtstuff.c (frame_dummy): Use void **jcr_list temporary
+ 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>
PR libgcc/59339
@@ -420,7 +427,7 @@
2013-12-26 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
- * config/i386/cpuinfo.c (processor_types): Rename AMD cpu names
+ * config/i386/cpuinfo.c (processor_types): Rename AMD cpu names
AMD_BOBCAT to AMD_BTVER1 and AMD_JAGUAR to AMD_BTVER2.
(get_amd_cpu): Likewise.
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index bc0398d9a56..12bed4b351d 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -460,12 +460,14 @@ frame_dummy (void)
#endif /* USE_EH_FRAME_REGISTRY */
#ifdef JCR_SECTION_NAME
- if (__JCR_LIST__[0])
+ void **jcr_list;
+ __asm ("" : "=g" (jcr_list) : "0" (__JCR_LIST__));
+ if (__builtin_expect (*jcr_list != NULL, 0))
{
void (*register_classes) (void *) = _Jv_RegisterClasses;
__asm ("" : "+r" (register_classes));
if (register_classes)
- register_classes (__JCR_LIST__);
+ register_classes (jcr_list);
}
#endif /* JCR_SECTION_NAME */
@@ -565,12 +567,14 @@ __do_global_ctors_1(void)
#endif
#ifdef JCR_SECTION_NAME
- if (__JCR_LIST__[0])
+ void **jcr_list
+ __asm ("" : "=g" (jcr_list) : "0" (__JCR_LIST__));
+ if (__builtin_expect (*jcr_list != NULL, 0))
{
void (*register_classes) (void *) = _Jv_RegisterClasses;
__asm ("" : "+r" (register_classes));
if (register_classes)
- register_classes (__JCR_LIST__);
+ register_classes (jcr_list);
}
#endif
OpenPOWER on IntegriCloud