glibc/sysdeps/ieee754/dbl-64
Martin Jansa 27c5e756a2 sysdeps/ieee754: prevent maybe-uninitialized errors with -O [BZ #19444]
With -O included in CFLAGS it fails to build with:

../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_jnl':
../sysdeps/ieee754/ldbl-96/e_jnl.c:146:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      b = invsqrtpi * temp / sqrtl (x);
          ~~~~~~~~~~^~~~~~
../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_ynl':
../sysdeps/ieee754/ldbl-96/e_jnl.c:375:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  b = invsqrtpi * temp / sqrtl (x);
      ~~~~~~~~~~^~~~~~
../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_jn':
../sysdeps/ieee754/dbl-64/e_jn.c:113:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      b = invsqrtpi * temp / sqrt (x);
          ~~~~~~~~~~^~~~~~
../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_yn':
../sysdeps/ieee754/dbl-64/e_jn.c:320:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  b = invsqrtpi * temp / sqrt (x);
      ~~~~~~~~~~^~~~~~

Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64
with -O, -O1, -Os.
For AARCH64 it needs one more fix in locale for -Os:
https://sourceware.org/ml/libc-alpha/2018-09/msg00539.html

	[BZ #19444]
	* sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Use
	__builtin_unreachable for default case in switch.
	(__ieee754_yn): Likewise.
	* sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
	(__ieee754_ynl): Likewise.
	* sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
	(__ieee754_ynl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
	(__ieee754_ynl): Likewise.
2019-01-04 16:17:48 +00:00
..
wordsize-64 Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
asincos.tbl Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
atnat2.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
atnat.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
branred.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
branred.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dbl2mpn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dla.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
doasin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
doasin.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dosincos.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dosincos.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_acos.c
e_acosh.c Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l) 2018-03-15 19:21:36 +00:00
e_asin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_atan2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_atanh.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_cosh.c Move math_narrow_eval to separate math-narrow-eval.h. 2018-05-09 00:15:10 +00:00
e_exp2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_exp10.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_exp_data.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_exp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_fmod.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_gamma_r.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_hypot.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_ilogb.c Format floating routines. 2013-10-17 16:03:24 +02:00
e_j0.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
e_j1.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_jn.c sysdeps/ieee754: prevent maybe-uninitialized errors with -O [BZ #19444] 2019-01-04 16:17:48 +00:00
e_lgamma_r.c Use floor functions not __floor functions in glibc libm. 2018-09-14 13:09:01 +00:00
e_log2_data.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_log2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_log10.c Use fabs(f/l) rather than __fabs 2017-09-29 18:54:24 +01:00
e_log_data.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_log.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_pow_log_data.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_pow.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_remainder.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
e_sinh.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
e_sqrt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
gamma_product.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
gamma_productf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
k_rem_pio2.c Use floor functions not __floor functions in glibc libm. 2018-09-14 13:09:01 +00:00
k_tan.c Replace sysdeps/ieee754/dbl-64/k_tan.c with empty file 2012-02-26 16:10:46 +01:00
lgamma_neg.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
lgamma_product.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Makefile Add new pow implementation 2018-09-19 10:04:51 +01:00
math_config.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
math_err.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
MathLib.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpa-arch.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpa.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpa.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpatan2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpatan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpatan.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpn2dbl.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpsqrt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mpsqrt.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mptan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mydefs.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
powtwo.tbl Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
root.tbl Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_asinh.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_atan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_cbrt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_ceil.c Use ceil functions not __ceil functions in glibc libm. 2018-09-17 20:42:06 +00:00
s_copysign.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_cos.c
s_erf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_expm1.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_f32xaddf64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_f32xdivf64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_f32xmulf64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_f32xsubf64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_fabs.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fadd.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_fdiv.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_finite.c Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
s_floor.c Use floor functions not __floor functions in glibc libm. 2018-09-14 13:09:01 +00:00
s_fma.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_fmaf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_fmul.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_fpclassify.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_frexp.c Use libm_alias_double for dbl-64 frexp. 2017-10-03 20:56:46 +00:00
s_fromfp_main.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_fromfp.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fromfpx.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fsub.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_getpayload.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_isinf.c Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
s_isnan.c Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
s_issignaling.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_llrint.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_llround.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_log1p.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_logb.c Use libm_alias_double for dbl-64 logb. 2017-10-03 23:44:41 +00:00
s_lrint.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_lround.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_modf.c Use libm_alias_double for dbl-64 modf. 2017-10-03 23:46:23 +00:00
s_nearbyint.c Do not include fenv_private.h in math_private.h. 2018-09-03 21:09:04 +00:00
s_nexttoward.c
s_nextup.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_remquo.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_rint.c Use rint functions not __rint functions in glibc libm. 2018-09-14 13:10:39 +00:00
s_round.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_roundeven.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_scalbln.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_scalbn.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_setpayload_main.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_setpayload.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_setpayloadsig.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_signbit.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_sin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_sincos.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_tan.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_tanh.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_totalorder.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_totalordermag.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_trunc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s_ufromfp.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_ufromfpx.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
sincos32.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sincos32.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sincostab.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
uasncs.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
uatan.tbl Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
urem.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
usncs.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
utan.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
utan.tbl Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
w_exp2.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_exp.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_log2.c Remove the error handling wrapper from log2 2018-11-21 09:57:21 +00:00
w_log.c Remove the error handling wrapper from log 2018-11-21 09:56:27 +00:00
w_pow.c Remove the error handling wrapper from pow 2018-11-21 09:58:36 +00:00
x2y2m1.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
x2y2m1f.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00