about summary refs log tree commit diff
path: root/soft-fp
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2013-11-26 16:05:10 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-11-26 16:05:10 +0000
commit6f476861be660541eee229acfbc9ef4098af70ab (patch)
treeb13987612829459fa7b5a7a29824ead0aa7b9723 /soft-fp
parent2fe162299f47ced903e3d634e216d622a5d9af52 (diff)
downloadglibc-6f476861be660541eee229acfbc9ef4098af70ab.tar.gz
glibc-6f476861be660541eee229acfbc9ef4098af70ab.tar.xz
glibc-6f476861be660541eee229acfbc9ef4098af70ab.zip
Avoid "left shift count >= width of type" warnings in soft-fp code.
Diffstat (limited to 'soft-fp')
-rw-r--r--soft-fp/op-4.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/soft-fp/op-4.h b/soft-fp/op-4.h
index 3515bdc497..6c6b461166 100644
--- a/soft-fp/op-4.h
+++ b/soft-fp/op-4.h
@@ -709,7 +709,7 @@
       else if (rsize <= 2*_FP_W_TYPE_SIZE)				\
 	{								\
 	  r = X##_f[1];							\
-	  r <<= _FP_W_TYPE_SIZE;					\
+	  r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE);	\
 	  r += X##_f[0];						\
 	}								\
       else								\
@@ -717,11 +717,11 @@
 	  /* I'm feeling lazy so we deal with int == 3words (implausible)*/ \
 	  /* and int == 4words as a single case.			 */ \
 	  r = X##_f[3];							\
-	  r <<= _FP_W_TYPE_SIZE;					\
+	  r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE);	\
 	  r += X##_f[2];						\
-	  r <<= _FP_W_TYPE_SIZE;					\
+	  r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE);	\
 	  r += X##_f[1];						\
-	  r <<= _FP_W_TYPE_SIZE;					\
+	  r = (rsize <= _FP_W_TYPE_SIZE ? 0 : r << _FP_W_TYPE_SIZE);	\
 	  r += X##_f[0];						\
 	}								\
     }									\