1 Index: libquadmath/configure
2 ===================================================================
3 --- libquadmath/configure (.../tags/gcc_4_8_4_release) (revision 220382)
4 +++ libquadmath/configure (.../branches/gcc-4_8-branch) (revision 220382)
6 LIBQUAD_USE_SYMVER_TRUE
24 enable_option_checking
26 enable_version_specific_runtime_libs
27 enable_dependency_tracking
32 enable_maintainer_mode
35 enable_generated_files_in_srcdir
38 --disable-option-checking ignore unrecognized --enable/--with options
39 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
40 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
41 + --enable-multilib build many library versions (default)
42 --enable-version-specific-runtime-libs
43 specify that runtime libraries should be installed
44 in a compiler-specific directory
46 --disable-libtool-lock avoid locking (might break parallel builds)
47 --enable-maintainer-mode enable make rules and dependencies not useful
48 (and sometimes confusing) to the casual installer
49 - --enable-multilib build many library versions (default)
50 --disable-symvers disable symbol versioning for libquadmath
51 --enable-generated-files-in-srcdir
52 put copies of generated files in source dir intended
53 @@ -2370,6 +2370,44 @@
57 +# Default to --enable-multilib
58 +# Check whether --enable-multilib was given.
59 +if test "${enable_multilib+set}" = set; then :
60 + enableval=$enable_multilib; case "$enableval" in
61 + yes) multilib=yes ;;
63 + *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
70 +# We may get other options which we leave undocumented:
71 +# --with-target-subdir, --with-multisrctop, --with-multisubdir
72 +# See config-ml.in if you want the gory details.
74 +if test "$srcdir" = "."; then
75 + if test "$with_target_subdir" != "."; then
76 + multi_basedir="$srcdir/$with_multisrctop../.."
78 + multi_basedir="$srcdir/$with_multisrctop.."
81 + multi_basedir="$srcdir/.."
85 +# Even if the default multilib is not a cross compilation,
86 +# it may be that some of the other multilibs are.
87 +if test $cross_compiling = no && test $multilib = yes \
88 + && test "x${with_multisubdir}" != x ; then
89 + cross_compiling=maybe
92 +ac_config_commands="$ac_config_commands default-1"
95 target_alias=${target_alias-$host_alias}
98 @@ -10527,7 +10565,7 @@
99 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
100 lt_status=$lt_dlunknown
101 cat > conftest.$ac_ext <<_LT_EOF
102 -#line 10530 "configure"
103 +#line 10568 "configure"
104 #include "confdefs.h"
107 @@ -10633,7 +10671,7 @@
108 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
109 lt_status=$lt_dlunknown
110 cat > conftest.$ac_ext <<_LT_EOF
111 -#line 10636 "configure"
112 +#line 10674 "configure"
113 #include "confdefs.h"
116 @@ -10918,44 +10956,7 @@
117 MAINT=$MAINTAINER_MODE_TRUE
120 -# Default to --enable-multilib
121 -# Check whether --enable-multilib was given.
122 -if test "${enable_multilib+set}" = set; then :
123 - enableval=$enable_multilib; case "$enableval" in
124 - yes) multilib=yes ;;
126 - *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
133 -# We may get other options which we leave undocumented:
134 -# --with-target-subdir, --with-multisrctop, --with-multisubdir
135 -# See config-ml.in if you want the gory details.
137 -if test "$srcdir" = "."; then
138 - if test "$with_target_subdir" != "."; then
139 - multi_basedir="$srcdir/$with_multisrctop../.."
141 - multi_basedir="$srcdir/$with_multisrctop.."
144 - multi_basedir="$srcdir/.."
148 -# Even if the default multilib is not a cross compilation,
149 -# it may be that some of the other multilibs are.
150 -if test $cross_compiling = no && test $multilib = yes \
151 - && test "x${with_multisubdir}" != x ; then
152 - cross_compiling=maybe
155 -ac_config_commands="$ac_config_commands default-1"
159 ac_cpp='$CPP $CPPFLAGS'
160 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
161 @@ -13644,6 +13645,20 @@
169 +with_multisubdir="$with_multisubdir"
170 +with_multisrctop="$with_multisrctop"
171 +with_target_subdir="$with_target_subdir"
172 +ac_configure_args="${multilib_arg} ${ac_configure_args}"
173 +multi_basedir="$multi_basedir"
174 +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
177 +GFORTRAN="$GFORTRAN"
179 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
182 @@ -13906,20 +13921,6 @@
189 -with_multisubdir="$with_multisubdir"
190 -with_multisrctop="$with_multisrctop"
191 -with_target_subdir="$with_target_subdir"
192 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
193 -multi_basedir="$multi_basedir"
194 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
197 -GFORTRAN="$GFORTRAN"
202 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
203 @@ -13929,9 +13930,9 @@
205 case $ac_config_target in
206 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
207 + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
208 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
209 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
210 - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
211 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
213 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
214 @@ -14517,6 +14518,14 @@
217 case $ac_file$ac_mode in
219 +# Only add multilib support code if we just rebuilt the top-level
221 +case " $CONFIG_FILES " in
223 + ac_file=Makefile . ${multi_basedir}/config-ml.in
226 "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
227 # Autoconf 2.62 quotes --file arguments for eval, but not when files
228 # are listed without --file. Let's play safe and only enable the eval
229 @@ -15251,14 +15260,6 @@
234 -# Only add multilib support code if we just rebuilt the top-level
236 -case " $CONFIG_FILES " in
238 - ac_file=Makefile . ${multi_basedir}/config-ml.in
244 Index: libquadmath/ChangeLog
245 ===================================================================
246 --- libquadmath/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
247 +++ libquadmath/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
249 +2015-01-26 Matthias Klose <doko@ubuntu.com>
251 + * configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
252 + * configure: Regenerate.
254 2014-12-19 Release Manager
256 * GCC 4.8.4 released.
257 Index: libquadmath/configure.ac
258 ===================================================================
259 --- libquadmath/configure.ac (.../tags/gcc_4_8_4_release) (revision 220382)
260 +++ libquadmath/configure.ac (.../branches/gcc-4_8-branch) (revision 220382)
263 ACX_NONCANONICAL_TARGET
265 +AM_ENABLE_MULTILIB(, ..)
267 target_alias=${target_alias-$host_alias}
268 AC_SUBST(target_alias)
271 AC_SUBST(enable_static)
274 -AM_ENABLE_MULTILIB(, ..)
277 # The same as in boehm-gc and libstdc++. Have to borrow it from there.
278 Index: libsanitizer/configure
279 ===================================================================
280 --- libsanitizer/configure (.../tags/gcc_4_8_4_release) (revision 220382)
281 +++ libsanitizer/configure (.../branches/gcc-4_8-branch) (revision 220382)
284 MAINTAINER_MODE_FALSE
301 enable_option_checking
303 enable_version_specific_runtime_libs
305 enable_maintainer_mode
306 enable_dependency_tracking
308 @@ -1388,8 +1388,8 @@
309 --disable-option-checking ignore unrecognized --enable/--with options
310 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
311 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
312 + --enable-multilib build many library versions (default)
313 --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory
314 - --enable-multilib build many library versions (default)
315 --enable-maintainer-mode enable make rules and dependencies not useful
316 (and sometimes confusing) to the casual installer
317 --disable-dependency-tracking speeds up one-time build
318 @@ -2417,6 +2417,44 @@
322 +# Default to --enable-multilib
323 +# Check whether --enable-multilib was given.
324 +if test "${enable_multilib+set}" = set; then :
325 + enableval=$enable_multilib; case "$enableval" in
326 + yes) multilib=yes ;;
328 + *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
335 +# We may get other options which we leave undocumented:
336 +# --with-target-subdir, --with-multisrctop, --with-multisubdir
337 +# See config-ml.in if you want the gory details.
339 +if test "$srcdir" = "."; then
340 + if test "$with_target_subdir" != "."; then
341 + multi_basedir="$srcdir/$with_multisrctop../.."
343 + multi_basedir="$srcdir/$with_multisrctop.."
346 + multi_basedir="$srcdir/.."
350 +# Even if the default multilib is not a cross compilation,
351 +# it may be that some of the other multilibs are.
352 +if test $cross_compiling = no && test $multilib = yes \
353 + && test "x${with_multisubdir}" != x ; then
354 + cross_compiling=maybe
357 +ac_config_commands="$ac_config_commands default-1"
360 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-version-specific-runtime-libs" >&5
361 $as_echo_n "checking for --enable-version-specific-runtime-libs... " >&6; }
362 # Check whether --enable-version-specific-runtime-libs was given.
363 @@ -3078,44 +3116,7 @@
367 -# Default to --enable-multilib
368 -# Check whether --enable-multilib was given.
369 -if test "${enable_multilib+set}" = set; then :
370 - enableval=$enable_multilib; case "$enableval" in
371 - yes) multilib=yes ;;
373 - *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
380 -# We may get other options which we leave undocumented:
381 -# --with-target-subdir, --with-multisrctop, --with-multisubdir
382 -# See config-ml.in if you want the gory details.
384 -if test "$srcdir" = "."; then
385 - if test "$with_target_subdir" != "."; then
386 - multi_basedir="$srcdir/$with_multisrctop../.."
388 - multi_basedir="$srcdir/$with_multisrctop.."
391 - multi_basedir="$srcdir/.."
395 -# Even if the default multilib is not a cross compilation,
396 -# it may be that some of the other multilibs are.
397 -if test $cross_compiling = no && test $multilib = yes \
398 - && test "x${with_multisubdir}" != x ; then
399 - cross_compiling=maybe
402 -ac_config_commands="$ac_config_commands default-1"
405 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
406 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
407 # Check whether --enable-maintainer-mode was given.
408 @@ -11117,7 +11118,7 @@
409 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
410 lt_status=$lt_dlunknown
411 cat > conftest.$ac_ext <<_LT_EOF
412 -#line 11120 "configure"
413 +#line 11121 "configure"
414 #include "confdefs.h"
417 @@ -11223,7 +11224,7 @@
418 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
419 lt_status=$lt_dlunknown
420 cat > conftest.$ac_ext <<_LT_EOF
421 -#line 11226 "configure"
422 +#line 11227 "configure"
423 #include "confdefs.h"
426 Index: libsanitizer/ChangeLog
427 ===================================================================
428 --- libsanitizer/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
429 +++ libsanitizer/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
431 +2015-01-27 Matthias Klose <doko@ubuntu.com>
433 + * configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
434 + * configure: Regenerate.
436 2014-12-19 Release Manager
438 * GCC 4.8.4 released.
439 Index: libsanitizer/configure.ac
440 ===================================================================
441 --- libsanitizer/configure.ac (.../tags/gcc_4_8_4_release) (revision 220382)
442 +++ libsanitizer/configure.ac (.../branches/gcc-4_8-branch) (revision 220382)
444 AC_INIT(package-unused, version-unused, libsanitizer)
445 AC_CONFIG_SRCDIR([include/sanitizer/common_interface_defs.h])
447 +AM_ENABLE_MULTILIB(, ..)
449 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
450 AC_ARG_ENABLE(version-specific-runtime-libs,
451 [ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
453 GCC_LIBSTDCXX_RAW_CXX_FLAGS
455 AM_INIT_AUTOMAKE(foreign no-dist)
456 -AM_ENABLE_MULTILIB(, ..)
459 # Calculate toolexeclibdir
460 Index: libstdc++-v3/include/std/future
461 ===================================================================
462 --- libstdc++-v3/include/std/future (.../tags/gcc_4_8_4_release) (revision 220382)
463 +++ libstdc++-v3/include/std/future (.../branches/gcc-4_8-branch) (revision 220382)
464 @@ -1417,7 +1417,8 @@
465 operator()(_ArgTypes... __args)
467 __future_base::_State_base::_S_check(_M_state);
468 - _M_state->_M_run(std::forward<_ArgTypes>(__args)...);
469 + auto __state = _M_state;
470 + __state->_M_run(std::forward<_ArgTypes>(__args)...);
474 Index: libstdc++-v3/ChangeLog
475 ===================================================================
476 --- libstdc++-v3/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
477 +++ libstdc++-v3/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
479 +2015-01-09 Jonathan Wakely <jwakely@redhat.com>
482 + * include/std/future (packaged_task::operator()): Increment the
483 + reference count on the shared state until the function returns.
485 2014-12-19 Release Manager
487 * GCC 4.8.4 released.
488 Index: libatomic/fop_n.c
489 ===================================================================
490 --- libatomic/fop_n.c (.../tags/gcc_4_8_4_release) (revision 220382)
491 +++ libatomic/fop_n.c (.../branches/gcc-4_8-branch) (revision 220382)
494 pre_barrier (smodel);
496 - wptr = (UWORD *)mptr;
499 + wptr = (UWORD *)((uintptr_t)mptr & -WORDSIZE);
500 + shift = (((uintptr_t)mptr % WORDSIZE) * CHAR_BIT) ^ SIZE(INVERT_MASK);
501 + mask = SIZE(MASK) << shift;
503 wopval = (UWORD)opval << shift;
504 woldval = __atomic_load_n (wptr, __ATOMIC_RELAXED);
507 pre_barrier (smodel);
509 - wptr = (UWORD *)mptr;
512 + wptr = (UWORD *)((uintptr_t)mptr & -WORDSIZE);
513 + shift = (((uintptr_t)mptr % WORDSIZE) * CHAR_BIT) ^ SIZE(INVERT_MASK);
514 + mask = SIZE(MASK) << shift;
516 wopval = (UWORD)opval << shift;
517 woldval = __atomic_load_n (wptr, __ATOMIC_RELAXED);
518 Index: libatomic/ChangeLog
519 ===================================================================
520 --- libatomic/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
521 +++ libatomic/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
523 +2015-01-21 Andrew Waterman <waterman@cs.berkeley.edu>
525 + * fop_n.c (libat_fetch_op): Align address to word boundary.
526 + (libat_op_fetch): Likewise.
528 2014-12-19 Release Manager
530 * GCC 4.8.4 released.
531 Index: libbacktrace/configure
532 ===================================================================
533 --- libbacktrace/configure (.../tags/gcc_4_8_4_release) (revision 220382)
534 +++ libbacktrace/configure (.../branches/gcc-4_8-branch) (revision 220382)
554 enable_option_checking
556 enable_maintainer_mode
564 with_system_libunwind
566 ac_precious_vars='build_alias
567 @@ -1361,6 +1361,7 @@
568 --disable-option-checking ignore unrecognized --enable/--with options
569 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
570 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
571 + --enable-multilib build many library versions (default)
572 --enable-maintainer-mode enable make rules and dependencies not useful
573 (and sometimes confusing) to the casual installer
574 --enable-shared[=PKGS] build shared libraries [default=no]
575 @@ -1368,7 +1369,6 @@
576 --enable-fast-install[=PKGS]
577 optimize for fast installation [default=yes]
578 --disable-libtool-lock avoid locking (might break parallel builds)
579 - --enable-multilib build many library versions (default)
582 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
583 @@ -2451,6 +2451,46 @@
584 ac_config_headers="$ac_config_headers config.h"
587 +if test -n "${with_target_subdir}"; then
588 + # Default to --enable-multilib
589 +# Check whether --enable-multilib was given.
590 +if test "${enable_multilib+set}" = set; then :
591 + enableval=$enable_multilib; case "$enableval" in
592 + yes) multilib=yes ;;
594 + *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
601 +# We may get other options which we leave undocumented:
602 +# --with-target-subdir, --with-multisrctop, --with-multisubdir
603 +# See config-ml.in if you want the gory details.
605 +if test "$srcdir" = "."; then
606 + if test "$with_target_subdir" != "."; then
607 + multi_basedir="$srcdir/$with_multisrctop../.."
609 + multi_basedir="$srcdir/$with_multisrctop.."
612 + multi_basedir="$srcdir/.."
616 +# Even if the default multilib is not a cross compilation,
617 +# it may be that some of the other multilibs are.
618 +if test $cross_compiling = no && test $multilib = yes \
619 + && test "x${with_multisubdir}" != x ; then
620 + cross_compiling=maybe
623 +ac_config_commands="$ac_config_commands default-1"
628 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
629 for ac_t in install-sh install.sh shtool; do
630 @@ -11087,7 +11127,7 @@
631 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
632 lt_status=$lt_dlunknown
633 cat > conftest.$ac_ext <<_LT_EOF
634 -#line 11090 "configure"
635 +#line 11130 "configure"
636 #include "confdefs.h"
639 @@ -11193,7 +11233,7 @@
640 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
641 lt_status=$lt_dlunknown
642 cat > conftest.$ac_ext <<_LT_EOF
643 -#line 11196 "configure"
644 +#line 11236 "configure"
645 #include "confdefs.h"
648 @@ -11437,43 +11477,6 @@
649 if test -n "${with_target_subdir}"; then
650 # We are compiling a GCC library. We can assume that the unwind
652 - # Default to --enable-multilib
653 -# Check whether --enable-multilib was given.
654 -if test "${enable_multilib+set}" = set; then :
655 - enableval=$enable_multilib; case "$enableval" in
656 - yes) multilib=yes ;;
658 - *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
665 -# We may get other options which we leave undocumented:
666 -# --with-target-subdir, --with-multisrctop, --with-multisubdir
667 -# See config-ml.in if you want the gory details.
669 -if test "$srcdir" = "."; then
670 - if test "$with_target_subdir" != "."; then
671 - multi_basedir="$srcdir/$with_multisrctop../.."
673 - multi_basedir="$srcdir/$with_multisrctop.."
676 - multi_basedir="$srcdir/.."
680 -# Even if the default multilib is not a cross compilation,
681 -# it may be that some of the other multilibs are.
682 -if test $cross_compiling = no && test $multilib = yes \
683 - && test "x${with_multisubdir}" != x ; then
684 - cross_compiling=maybe
687 -ac_config_commands="$ac_config_commands default-1"
689 BACKTRACE_FILE="backtrace.lo simple.lo"
691 ac_fn_c_check_header_mongrel "$LINENO" "unwind.h" "ac_cv_header_unwind_h" "$ac_includes_default"
692 @@ -13128,7 +13131,21 @@
699 +with_multisubdir="$with_multisubdir"
700 +with_multisrctop="$with_multisrctop"
701 +with_target_subdir="$with_target_subdir"
702 +ac_configure_args="${multilib_arg} ${ac_configure_args}"
703 +multi_basedir="$multi_basedir"
704 +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
707 +GFORTRAN="$GFORTRAN"
711 # The HP-UX ksh and POSIX shell print the target directory to stdout
713 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
714 @@ -13388,20 +13405,6 @@
721 -with_multisubdir="$with_multisubdir"
722 -with_multisrctop="$with_multisrctop"
723 -with_target_subdir="$with_target_subdir"
724 -ac_configure_args="${multilib_arg} ${ac_configure_args}"
725 -multi_basedir="$multi_basedir"
726 -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
729 -GFORTRAN="$GFORTRAN"
734 acx_cv_header_stdint="$acx_cv_header_stdint"
735 @@ -13434,8 +13437,8 @@
737 case $ac_config_target in
738 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
739 + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
740 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
741 - "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
742 "gstdint.h") CONFIG_COMMANDS="$CONFIG_COMMANDS gstdint.h" ;;
743 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
744 "backtrace-supported.h") CONFIG_FILES="$CONFIG_FILES backtrace-supported.h" ;;
745 @@ -14024,6 +14027,14 @@
748 case $ac_file$ac_mode in
750 +# Only add multilib support code if we just rebuilt the top-level
752 +case " $CONFIG_FILES " in
754 + ac_file=Makefile . ${multi_basedir}/config-ml.in
759 # See if we are running on zsh, and set the options which allow our
760 @@ -14663,14 +14674,6 @@
765 -# Only add multilib support code if we just rebuilt the top-level
767 -case " $CONFIG_FILES " in
769 - ac_file=Makefile . ${multi_basedir}/config-ml.in
773 if test "$GCC" = yes; then
774 echo "/* generated for " `$CC --version | sed 1q` "*/" > tmp-stdint.h
775 Index: libbacktrace/ChangeLog
776 ===================================================================
777 --- libbacktrace/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
778 +++ libbacktrace/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
780 +2015-01-26 Matthias Klose <doko@ubuntu.com>
782 + * configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
783 + * configure: Regenerate.
785 2014-12-19 Release Manager
787 * GCC 4.8.4 released.
788 Index: libbacktrace/configure.ac
789 ===================================================================
790 --- libbacktrace/configure.ac (.../tags/gcc_4_8_4_release) (revision 220382)
791 +++ libbacktrace/configure.ac (.../branches/gcc-4_8-branch) (revision 220382)
793 AC_CONFIG_SRCDIR(backtrace.h)
794 AC_CONFIG_HEADER(config.h)
796 +if test -n "${with_target_subdir}"; then
797 + AM_ENABLE_MULTILIB(, ..)
801 target_alias=${target_alias-$host_alias}
804 if test -n "${with_target_subdir}"; then
805 # We are compiling a GCC library. We can assume that the unwind
807 - AM_ENABLE_MULTILIB(, ..)
808 BACKTRACE_FILE="backtrace.lo simple.lo"
810 AC_CHECK_HEADER([unwind.h],
811 Index: gcc/tree-vrp.c
812 ===================================================================
813 --- gcc/tree-vrp.c (.../tags/gcc_4_8_4_release) (revision 220382)
814 +++ gcc/tree-vrp.c (.../branches/gcc-4_8-branch) (revision 220382)
815 @@ -6811,7 +6811,7 @@
816 tree type = TREE_TYPE (op0);
817 value_range_t *vr0 = get_value_range (op0);
819 - if (vr0->type != VR_VARYING
820 + if (vr0->type == VR_RANGE
821 && INTEGRAL_TYPE_P (type)
822 && vrp_val_is_min (vr0->min)
823 && vrp_val_is_max (vr0->max)
824 Index: gcc/c-family/ChangeLog
825 ===================================================================
826 --- gcc/c-family/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
827 +++ gcc/c-family/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
829 +2015-01-20 Marek Polacek <polacek@redhat.com>
831 + Backport from mainline
832 + 2014-06-23 Marek Polacek <polacek@redhat.com>
835 + * c-common.c (get_atomic_generic_size): Don't segfault if the
836 + type doesn't have a size.
838 2014-12-19 Release Manager
840 * GCC 4.8.4 released.
841 Index: gcc/c-family/c-common.c
842 ===================================================================
843 --- gcc/c-family/c-common.c (.../tags/gcc_4_8_4_release) (revision 220382)
844 +++ gcc/c-family/c-common.c (.../branches/gcc-4_8-branch) (revision 220382)
845 @@ -10143,7 +10143,8 @@
849 - size = tree_low_cst (TYPE_SIZE_UNIT (TREE_TYPE (type)), 1);
850 + tree type_size = TYPE_SIZE_UNIT (TREE_TYPE (type));
851 + size = type_size ? tree_low_cst (type_size, 1) : 0;
854 error_at (loc, "size mismatch in argument %d of %qE", x + 1,
855 Index: gcc/c/c-typeck.c
856 ===================================================================
857 --- gcc/c/c-typeck.c (.../tags/gcc_4_8_4_release) (revision 220382)
858 +++ gcc/c/c-typeck.c (.../branches/gcc-4_8-branch) (revision 220382)
859 @@ -5788,7 +5788,8 @@
860 warning (OPT_Wtraditional, "traditional C rejects automatic "
861 "aggregate initialization");
863 - DECL_INITIAL (decl) = value;
864 + if (value != error_mark_node || TREE_CODE (decl) != FUNCTION_DECL)
865 + DECL_INITIAL (decl) = value;
867 /* ANSI wants warnings about out-of-range constant initializers. */
868 STRIP_TYPE_NOPS (value);
869 Index: gcc/c/ChangeLog
870 ===================================================================
871 --- gcc/c/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
872 +++ gcc/c/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
874 +2015-02-01 Jakub Jelinek <jakub@redhat.com>
876 + Backported from mainline
877 + 2015-01-27 Jakub Jelinek <jakub@redhat.com>
880 + * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
881 + of FUNCTION_DECLs with error_mark_node.
883 2014-12-19 Release Manager
885 * GCC 4.8.4 released.
887 ===================================================================
888 --- gcc/DATESTAMP (.../tags/gcc_4_8_4_release) (revision 220382)
889 +++ gcc/DATESTAMP (.../branches/gcc-4_8-branch) (revision 220382)
894 ===================================================================
895 --- gcc/rtlanal.c (.../tags/gcc_4_8_4_release) (revision 220382)
896 +++ gcc/rtlanal.c (.../branches/gcc-4_8-branch) (revision 220382)
899 reg_set_p (const_rtx reg, const_rtx insn)
901 + /* After delay slot handling, call and branch insns might be in a
902 + sequence. Check all the elements there. */
903 + if (INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE)
905 + for (int i = 0; i < XVECLEN (PATTERN (insn), 0); ++i)
906 + if (reg_set_p (reg, XVECEXP (PATTERN (insn), 0, i)))
912 /* We can be passed an insn or part of one. If we are passed an insn,
913 check if a side-effect of the insn clobbers REG. */
916 GET_MODE (reg), REGNO (reg)))
918 || find_reg_fusage (insn, CLOBBER, reg)))))
922 return set_of (reg, insn) != NULL_RTX;
925 ===================================================================
926 --- gcc/DEV-PHASE (.../tags/gcc_4_8_4_release) (revision 220382)
927 +++ gcc/DEV-PHASE (.../branches/gcc-4_8-branch) (revision 220382)
931 ===================================================================
932 --- gcc/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
933 +++ gcc/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
935 +2015-02-01 Jakub Jelinek <jakub@redhat.com>
937 + Backported from mainline
938 + 2015-01-27 Jakub Jelinek <jakub@redhat.com>
940 + PR rtl-optimization/61058
941 + * jump.c (cleanup_barriers): Update basic block boundaries
942 + if BLOCK_FOR_INSN is non-NULL on PREV.
944 + 2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
946 + PR middle-end/43631
947 + * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
948 + the moved barrier the tail of the basic block it follows.
950 + 2015-01-26 Jakub Jelinek <jakub@redhat.com>
952 + * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
953 + OPTION_MASK_QUAD_MEMORY_ATOMIC.
955 + 2015-01-12 Jakub Jelinek <jakub@redhat.com>
957 + PR tree-optimization/64563
958 + * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
959 + instead of != VR_VARYING.
962 + * config/i386/i386.c (ix86_expand_prologue): Add
963 + REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
965 +2015-01-29 Ilya Tocar <ilya.tocar@intel.com>
967 + * config/i386/avx2intrin.h (_mm256_bslli_epi128,
968 + _mm256_bsrli_epi128): New.
969 + * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
971 +2015-01-27 Mikael Pettersson <mikpelinux@gmail.com>
973 + Backport from mainline
975 + 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
977 + PR middle-end/57748
978 + * expr.c (expand_assignment): Remove misalignp code path.
980 + 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
982 + PR middle-end/57748
983 + * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
985 + (expand_expr, expand_normal): Adjust.
986 + * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
987 + inner_reference_p. Use inner_reference_p to expand inner references.
988 + (store_expr): Adjust.
989 + * cfgexpand.c (expand_call_stmt): Adjust.
991 +2015-01-26 Uros Bizjak <ubizjak@gmail.com>
993 + Backport from mainline
994 + 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
997 + * config/i386/i386.md (*movdi_internal): Also check operand 0
998 + to determine TYPE_LEA operand.
999 + (*movsi_internal): Ditto.
1001 + Backport from mainline
1002 + 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
1004 + * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
1007 +2015-01-15 Martin Liska <mliska@suse.cz>
1009 + Backport from mainline
1010 + 2014-11-27 Richard Biener <rguenther@suse.de>
1012 + PR middle-end/63704
1013 + * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
1014 + and instead return false when !fstrict-aliasing.
1016 +2015-01-14 Renlin Li <renlin.li@arm.com>
1018 + Backport form mainline
1019 + 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1022 + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
1023 + of __ARM_SIZEOF_WCHAR_T.
1025 +2015-01-13 Pat Haugen <pthaugen@us.ibm.com>
1027 + Backport from mainline
1028 + 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
1031 + * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
1032 + input operands if only the second is inverted.
1033 + * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
1034 + Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
1035 + rs6000_split_logical.
1036 + (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
1038 +2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
1040 + Backport form mainline
1041 + 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
1044 + * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
1046 +2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1048 + Backport from mainline:
1049 + 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1052 + * config/i386/i386.c (ix86_function_type_abi): Issue an error
1053 + when ms_abi attribute is used with x32.
1055 +2014-12-19 H.J. Lu <hongjiu.lu@intel.com>
1057 + Backported from mainline
1058 + 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1060 + PR rtl-optimization/64037
1061 + * combine.c (setup_incoming_promotions): Pass the argument
1062 + before any promotions happen to promote_function_mode.
1064 +2014-12-19 Jakub Jelinek <jakub@redhat.com>
1066 + * BASE-VER: Set to 4.8.5.
1067 + * DEV-PHASE: Set to prerelease.
1069 2014-12-19 Release Manager
1071 * GCC 4.8.4 released.
1073 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
1074 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
1078 2014-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1080 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
1081 Index: gcc/testsuite/gcc.target/i386/pr64409.c
1082 ===================================================================
1083 --- gcc/testsuite/gcc.target/i386/pr64409.c (.../tags/gcc_4_8_4_release) (revision 0)
1084 +++ gcc/testsuite/gcc.target/i386/pr64409.c (.../branches/gcc-4_8-branch) (revision 220382)
1086 +/* { dg-do compile { target { ! { ia32 } } } } */
1087 +/* { dg-require-effective-target maybe_x32 } */
1088 +/* { dg-options "-O0 -mx32" } */
1091 +int* __attribute__ ((ms_abi)) fn1 () { return &a; } /* { dg-error "X32 does not support ms_abi attribute" } */
1092 Index: gcc/testsuite/gcc.target/i386/sse-14.c
1093 ===================================================================
1094 --- gcc/testsuite/gcc.target/i386/sse-14.c (.../tags/gcc_4_8_4_release) (revision 220382)
1095 +++ gcc/testsuite/gcc.target/i386/sse-14.c (.../branches/gcc-4_8-branch) (revision 220382)
1099 test_2 (_mm_shuffle_pd, __m128d, __m128d, __m128d, 1)
1100 +test_1 (_mm_bsrli_si128, __m128i, __m128i, 1)
1101 +test_1 (_mm_bslli_si128, __m128i, __m128i, 1)
1102 test_1 (_mm_srli_si128, __m128i, __m128i, 1)
1103 test_1 (_mm_slli_si128, __m128i, __m128i, 1)
1104 test_1 (_mm_extract_epi16, int, __m128i, 1)
1105 Index: gcc/testsuite/gcc.target/i386/pr57003.c
1106 ===================================================================
1107 --- gcc/testsuite/gcc.target/i386/pr57003.c (.../tags/gcc_4_8_4_release) (revision 220382)
1108 +++ gcc/testsuite/gcc.target/i386/pr57003.c (.../branches/gcc-4_8-branch) (revision 220382)
1110 /* PR rtl-optimization/57003 */
1111 -/* { dg-do run } */
1112 +/* { dg-do run { target { ! x32 } } } */
1113 /* { dg-options "-O2 -maccumulate-outgoing-args" } */
1116 Index: gcc/testsuite/gcc.target/i386/sse-22.c
1117 ===================================================================
1118 --- gcc/testsuite/gcc.target/i386/sse-22.c (.../tags/gcc_4_8_4_release) (revision 220382)
1119 +++ gcc/testsuite/gcc.target/i386/sse-22.c (.../branches/gcc-4_8-branch) (revision 220382)
1122 #include <emmintrin.h>
1123 test_2 (_mm_shuffle_pd, __m128d, __m128d, __m128d, 1)
1124 +test_1 (_mm_bsrli_si128, __m128i, __m128i, 1)
1125 +test_1 (_mm_bslli_si128, __m128i, __m128i, 1)
1126 test_1 (_mm_srli_si128, __m128i, __m128i, 1)
1127 test_1 (_mm_slli_si128, __m128i, __m128i, 1)
1128 test_1 (_mm_extract_epi16, int, __m128i, 1)
1130 test_1 ( _mm256_shuffle_epi32, __m256i, __m256i, 1)
1131 test_1 ( _mm256_shufflehi_epi16, __m256i, __m256i, 1)
1132 test_1 ( _mm256_shufflelo_epi16, __m256i, __m256i, 1)
1133 +test_1 ( _mm256_bslli_epi128, __m256i, __m256i, 8)
1134 +test_1 ( _mm256_bsrli_epi128, __m256i, __m256i, 8)
1135 test_1 ( _mm256_slli_si256, __m256i, __m256i, 8)
1136 test_1 ( _mm256_srli_si256, __m256i, __m256i, 8)
1137 test_2 ( _mm_blend_epi32, __m128i, __m128i, __m128i, 1)
1138 Index: gcc/testsuite/gcc.target/i386/pr60516.c
1139 ===================================================================
1140 --- gcc/testsuite/gcc.target/i386/pr60516.c (.../tags/gcc_4_8_4_release) (revision 220382)
1141 +++ gcc/testsuite/gcc.target/i386/pr60516.c (.../branches/gcc-4_8-branch) (revision 220382)
1143 /* PR target/60516 */
1144 -/* { dg-do compile } */
1145 +/* { dg-do compile { target { ! x32 } } } */
1146 /* { dg-options "-O2" } */
1148 struct S { char c[65536]; };
1149 Index: gcc/testsuite/gcc.target/i386/pr64513.c
1150 ===================================================================
1151 --- gcc/testsuite/gcc.target/i386/pr64513.c (.../tags/gcc_4_8_4_release) (revision 0)
1152 +++ gcc/testsuite/gcc.target/i386/pr64513.c (.../branches/gcc-4_8-branch) (revision 220382)
1154 +/* PR target/64513 */
1155 +/* { dg-do compile } */
1156 +/* { dg-options "-O2 -mstack-arg-probe" } */
1159 +struct B { struct A y; };
1160 +int foo (struct A);
1171 Index: gcc/testsuite/gfortran.dg/pr64528.f90
1172 ===================================================================
1173 --- gcc/testsuite/gfortran.dg/pr64528.f90 (.../tags/gcc_4_8_4_release) (revision 0)
1174 +++ gcc/testsuite/gfortran.dg/pr64528.f90 (.../branches/gcc-4_8-branch) (revision 220382)
1177 +! { dg-do compile }
1178 +! { dg-options "-O -fno-tree-dce -fno-tree-ccp" }
1183 + integer, value :: x
1184 + end subroutine foo
1189 + if(x .ne. 10) then
1191 +end program pr64528
1193 + integer, value :: x
1196 Index: gcc/testsuite/gfortran.dg/typebound_operator_20.f90
1197 ===================================================================
1198 --- gcc/testsuite/gfortran.dg/typebound_operator_20.f90 (.../tags/gcc_4_8_4_release) (revision 0)
1199 +++ gcc/testsuite/gfortran.dg/typebound_operator_20.f90 (.../branches/gcc-4_8-branch) (revision 220382)
1203 +! PR 63733: [4.8/4.9/5 Regression] [OOP] wrong resolution for OPERATOR generics
1205 +! Original test case from Alberto F. MartÃn Huertas <amartin@cimne.upc.edu>
1206 +! Slightly modified by Salvatore Filippone <sfilippone@uniroma2.it>
1207 +! Further modified by Janus Weil <janus@gcc.gnu.org>
1212 + procedure :: sum => sum_parent
1213 + generic :: operator(+) => sum
1216 + type, extends(parent) :: child
1218 + procedure :: sum => sum_child
1223 + integer function sum_parent(op1,op2)
1225 + class(parent), intent(in) :: op1, op2
1229 + integer function sum_child(op1,op2)
1231 + class(child) , intent(in) :: op1
1232 + class(parent), intent(in) :: op2
1242 + type(parent) :: m1, m2
1243 + class(parent), pointer :: mres
1244 + type(child) :: h1, h2
1245 + class(parent), pointer :: hres
1247 + if (m1 + m2 /= 0) call abort()
1248 + if (h1 + m2 /= 1) call abort()
1249 + if (h1%sum(h2) /= 1) call abort()
1253 +! { dg-final { cleanup-modules "overwrite" } }
1254 Index: gcc/testsuite/gfortran.dg/typebound_call_26.f90
1255 ===================================================================
1256 --- gcc/testsuite/gfortran.dg/typebound_call_26.f90 (.../tags/gcc_4_8_4_release) (revision 0)
1257 +++ gcc/testsuite/gfortran.dg/typebound_call_26.f90 (.../branches/gcc-4_8-branch) (revision 220382)
1259 +! { dg-do compile }
1261 +! PR 64244: [4.8/4.9/5 Regression] ICE at class.c:236 when using non_overridable
1263 +! Contributed by OndÅ™ej ÄŒertÃk <ondrej.certik@gmail.com>
1271 + procedure, non_overridable :: g
1276 + subroutine g(this)
1277 + class(A), intent(in) :: this
1283 +program test_non_overridable
1286 + class(A), allocatable :: h
1289 Index: gcc/testsuite/gfortran.dg/dependency_45.f90
1290 ===================================================================
1291 --- gcc/testsuite/gfortran.dg/dependency_45.f90 (.../tags/gcc_4_8_4_release) (revision 0)
1292 +++ gcc/testsuite/gfortran.dg/dependency_45.f90 (.../branches/gcc-4_8-branch) (revision 220382)
1295 +! { dg-options "-Warray-temporaries" }
1296 +! PR 56867 - substrings were not checked for dependency.
1298 + character(len=4) :: a
1299 + character(len=4) :: c(3)
1303 + c(:)(1:2) = c(2)(2:3) ! { dg-warning "array temporary" }
1304 + if (c(3) .ne. '23yz') call abort
1306 Index: gcc/testsuite/gcc.dg/pr61058.c
1307 ===================================================================
1308 --- gcc/testsuite/gcc.dg/pr61058.c (.../tags/gcc_4_8_4_release) (revision 0)
1309 +++ gcc/testsuite/gcc.dg/pr61058.c (.../branches/gcc-4_8-branch) (revision 220382)
1311 +/* PR rtl-optimization/61058 */
1312 +/* { dg-do compile } */
1313 +/* { dg-options "" } */
1314 +/* { dg-additional-options "-fno-asynchronous-unwind-tables -mtune=atom" { target i?86-*-* x86_64-*-* } } */
1319 + __builtin_unreachable ();
1321 Index: gcc/testsuite/gcc.dg/pr64766.c
1322 ===================================================================
1323 --- gcc/testsuite/gcc.dg/pr64766.c (.../tags/gcc_4_8_4_release) (revision 0)
1324 +++ gcc/testsuite/gcc.dg/pr64766.c (.../branches/gcc-4_8-branch) (revision 220382)
1327 +/* { dg-do compile } */
1334 +void foo () = 0; /* { dg-error "is initialized like a variable|invalid initializer" } */
1335 Index: gcc/testsuite/gcc.dg/pr64563.c
1336 ===================================================================
1337 --- gcc/testsuite/gcc.dg/pr64563.c (.../tags/gcc_4_8_4_release) (revision 0)
1338 +++ gcc/testsuite/gcc.dg/pr64563.c (.../branches/gcc-4_8-branch) (revision 220382)
1340 +/* PR tree-optimization/64563 */
1341 +/* { dg-do compile } */
1342 +/* { dg-options "-Os -Wtype-limits" } */
1350 + d = b = (a != (e | 4294967288UL));
1354 Index: gcc/testsuite/ChangeLog
1355 ===================================================================
1356 --- gcc/testsuite/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
1357 +++ gcc/testsuite/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
1359 +2015-02-01 Jakub Jelinek <jakub@redhat.com>
1361 + Backported from mainline
1362 + 2015-01-27 Jakub Jelinek <jakub@redhat.com>
1364 + PR rtl-optimization/61058
1365 + * gcc.dg/pr61058.c: New test.
1368 + * gcc.dg/pr64766.c: New test.
1370 + 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1373 + * gfortran.dg/pr64528.f90: New test.
1375 + 2015-01-12 Jakub Jelinek <jakub@redhat.com>
1377 + PR tree-optimization/64563
1378 + * gcc.dg/pr64563.c: New test.
1381 + * gcc.target/i386/pr64513.c: New test.
1383 +2015-01-29 Ilya Tocar <ilya.tocar@intel.com>
1385 + * gcc.target/i386/sse-14.c: Test new intrinsic.
1386 + * gcc.target/i386/sse-22.c: Ditto.
1388 +2015-01-27 Mikael Pettersson <mikpelinux@gmail.com>
1390 + Backport from mainline
1392 + 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
1394 + PR middle-end/57748
1395 + * gcc.dg/torture/pr57748-1.c: New test.
1396 + * gcc.dg/torture/pr57748-2.c: New test.
1398 + 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
1400 + PR middle-end/57748
1401 + * gcc.dg/torture/pr57748-3.c: New test.
1402 + * gcc.dg/torture/pr57748-4.c: New test.
1404 +2015-01-24 Thomas Koenig <tkoenig@gcc.gnu.org>
1407 + * gfortran.dg/dependency_45.f90: New test.
1409 +2015-01-24 Thomas Koenig <tkoenig@netcologne.de>
1411 + Backport from trunk
1413 + * gfortran.dg/internal_pack_15.f90: New test.
1415 +2015-01-20 Marek Polacek <polacek@redhat.com>
1417 + Backport from mainline
1418 + 2014-06-23 Marek Polacek <polacek@redhat.com>
1421 + * c-c++-common/pr61553.c: New test.
1423 +2015-01-12 Janus Weil <janus@gcc.gnu.org>
1425 + Backport from mainline
1427 + * gfortran.dg/typebound_operator_20.f90: New.
1429 +2014-12-28 H.J. Lu <hongjiu.lu@intel.com>
1431 + Backport from mainline:
1432 + 2014-12-28 H.J. Lu <hongjiu.lu@intel.com>
1434 + * gcc.target/i386/pr57003.c: Skip on x32.
1435 + * gcc.target/i386/pr60516.c: Likewise.
1437 +2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
1439 + Backport from mainline:
1440 + 2014-12-26 H.J. Lu <hongjiu.lu@intel.com>
1443 + * gcc.target/i386/pr64409.c: New test.
1445 +2014-12-23 Janus Weil <janus@gcc.gnu.org>
1447 + Backport from mainline
1449 + * gfortran.dg/typebound_call_26.f90: New.
1451 +2014-12-19 H.J. Lu <hongjiu.lu@intel.com>
1453 + Backported from mainline
1454 + 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
1456 + PR rtl-optimization/64037
1457 + * g++.dg/pr64037.C: New test.
1459 2014-12-19 Release Manager
1461 * GCC 4.8.4 released.
1462 Index: gcc/testsuite/g++.dg/pr64037.C
1463 ===================================================================
1464 --- gcc/testsuite/g++.dg/pr64037.C (.../tags/gcc_4_8_4_release) (revision 0)
1465 +++ gcc/testsuite/g++.dg/pr64037.C (.../branches/gcc-4_8-branch) (revision 220382)
1467 +// { dg-do run { target i?86-*-* x86_64-*-* } }
1468 +// { dg-options "-std=c++11 -Os" }
1470 +enum class X : unsigned char {
1475 +__attribute__((noinline,noclone))
1476 +foo(unsigned &out, unsigned a, X b)
1478 + out = static_cast<unsigned>(b);
1483 + unsigned deadbeef = 0xDEADBEEF;
1484 + asm volatile ("" : "+d" (deadbeef), "+c" (deadbeef));
1487 + foo(out, 2, X::V);
1490 + __builtin_abort ();
1494 Index: gcc/testsuite/g++.dg/cpp0x/ref-qual16.C
1495 ===================================================================
1496 --- gcc/testsuite/g++.dg/cpp0x/ref-qual16.C (.../tags/gcc_4_8_4_release) (revision 0)
1497 +++ gcc/testsuite/g++.dg/cpp0x/ref-qual16.C (.../branches/gcc-4_8-branch) (revision 220382)
1500 +// { dg-do compile { target c++11 } }
1504 + template <int> X m_fn1() const;
1506 +template <typename> struct is_function {};
1507 +is_function<int() const &> i;
1509 + template <typename Y, typename = is_function<Y>> D(Y);
1511 Index: gcc/testsuite/g++.dg/template/offsetof3.C
1512 ===================================================================
1513 --- gcc/testsuite/g++.dg/template/offsetof3.C (.../tags/gcc_4_8_4_release) (revision 0)
1514 +++ gcc/testsuite/g++.dg/template/offsetof3.C (.../branches/gcc-4_8-branch) (revision 220382)
1527 + static bar<N+__builtin_offsetof(foo,member)> static_member;
1531 +bar<N+__builtin_offsetof(foo,member)> qux<N>::static_member;
1534 Index: gcc/testsuite/g++.dg/template/non-dependent14.C
1535 ===================================================================
1536 --- gcc/testsuite/g++.dg/template/non-dependent14.C (.../tags/gcc_4_8_4_release) (revision 0)
1537 +++ gcc/testsuite/g++.dg/template/non-dependent14.C (.../branches/gcc-4_8-branch) (revision 220382)
1541 +class DictionaryValue {};
1542 +template <typename T> void CreateValue(T) {
1543 + DictionaryValue(0);
1546 Index: gcc/testsuite/c-c++-common/pr61553.c
1547 ===================================================================
1548 --- gcc/testsuite/c-c++-common/pr61553.c (.../tags/gcc_4_8_4_release) (revision 0)
1549 +++ gcc/testsuite/c-c++-common/pr61553.c (.../branches/gcc-4_8-branch) (revision 220382)
1552 +/* { dg-do compile } */
1557 + __atomic_store (s, (void *) 0, __ATOMIC_SEQ_CST); /* { dg-error "size mismatch" } */
1559 Index: gcc/cp/typeck.c
1560 ===================================================================
1561 --- gcc/cp/typeck.c (.../tags/gcc_4_8_4_release) (revision 220382)
1562 +++ gcc/cp/typeck.c (.../branches/gcc-4_8-branch) (revision 220382)
1563 @@ -8639,6 +8639,12 @@
1564 /* This should really have a different TYPE_MAIN_VARIANT, but that gets
1566 tree result = build_qualified_type (type, memfn_quals);
1567 + if (tree canon = TYPE_CANONICAL (result))
1568 + if (canon != result)
1569 + /* check_qualified_type doesn't check the ref-qualifier, so make sure
1570 + TYPE_CANONICAL is correct. */
1571 + TYPE_CANONICAL (result)
1572 + = build_ref_qualified_type (canon, type_memfn_rqual (result));
1573 result = build_exception_variant (result, TYPE_RAISES_EXCEPTIONS (type));
1574 return build_ref_qualified_type (result, rqual);
1576 Index: gcc/cp/ChangeLog
1577 ===================================================================
1578 --- gcc/cp/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
1579 +++ gcc/cp/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
1581 +2015-01-13 Jason Merrill <jason@redhat.com>
1584 + * semantics.c (finish_offsetof): Handle templates here.
1585 + * parser.c (cp_parser_builtin_offsetof): Not here.
1588 + * decl2.c (mark_used): Don't mark if in_template_function.
1591 + * typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL.
1593 2014-12-19 Release Manager
1595 * GCC 4.8.4 released.
1596 Index: gcc/cp/semantics.c
1597 ===================================================================
1598 --- gcc/cp/semantics.c (.../tags/gcc_4_8_4_release) (revision 220382)
1599 +++ gcc/cp/semantics.c (.../branches/gcc-4_8-branch) (revision 220382)
1600 @@ -3651,6 +3651,14 @@
1602 finish_offsetof (tree expr)
1604 + /* If we're processing a template, we can't finish the semantics yet.
1605 + Otherwise we can fold the entire expression now. */
1606 + if (processing_template_decl)
1608 + expr = build1 (OFFSETOF_EXPR, size_type_node, expr);
1612 if (TREE_CODE (expr) == PSEUDO_DTOR_EXPR)
1614 error ("cannot apply %<offsetof%> to destructor %<~%T%>",
1615 Index: gcc/cp/decl2.c
1616 ===================================================================
1617 --- gcc/cp/decl2.c (.../tags/gcc_4_8_4_release) (revision 220382)
1618 +++ gcc/cp/decl2.c (.../branches/gcc-4_8-branch) (revision 220382)
1619 @@ -4606,7 +4606,7 @@
1623 - if (processing_template_decl)
1624 + if (processing_template_decl || in_template_function ())
1627 /* Check this too in case we're within fold_non_dependent_expr. */
1628 Index: gcc/cp/parser.c
1629 ===================================================================
1630 --- gcc/cp/parser.c (.../tags/gcc_4_8_4_release) (revision 220382)
1631 +++ gcc/cp/parser.c (.../branches/gcc-4_8-branch) (revision 220382)
1632 @@ -8024,12 +8024,7 @@
1636 - /* If we're processing a template, we can't finish the semantics yet.
1637 - Otherwise we can fold the entire expression now. */
1638 - if (processing_template_decl)
1639 - expr = build1 (OFFSETOF_EXPR, size_type_node, expr);
1641 - expr = finish_offsetof (expr);
1642 + expr = finish_offsetof (expr);
1645 parser->integral_constant_expression_p = save_ice_p;
1647 ===================================================================
1648 --- gcc/jump.c (.../tags/gcc_4_8_4_release) (revision 220382)
1649 +++ gcc/jump.c (.../branches/gcc-4_8-branch) (revision 220382)
1650 @@ -133,7 +133,30 @@
1651 if (BARRIER_P (prev))
1653 else if (prev != PREV_INSN (insn))
1654 - reorder_insns (insn, insn, prev);
1656 + basic_block bb = BLOCK_FOR_INSN (prev);
1657 + rtx end = PREV_INSN (insn);
1658 + reorder_insns_nobb (insn, insn, prev);
1661 + /* If the backend called in machine reorg compute_bb_for_insn
1662 + and didn't free_bb_for_insn again, preserve basic block
1663 + boundaries. Move the end of basic block to PREV since
1664 + it is followed by a barrier now, and clear BLOCK_FOR_INSN
1665 + on the following notes.
1666 + ??? Maybe the proper solution for the targets that have
1667 + cfg around after machine reorg is not to run cleanup_barriers
1669 + BB_END (bb) = prev;
1672 + prev = NEXT_INSN (prev);
1673 + if (prev != insn && BLOCK_FOR_INSN (prev) == bb)
1674 + BLOCK_FOR_INSN (prev) = NULL;
1676 + while (prev != end);
1683 ===================================================================
1684 --- gcc/expr.c (.../tags/gcc_4_8_4_release) (revision 220382)
1685 +++ gcc/expr.c (.../branches/gcc-4_8-branch) (revision 220382)
1686 @@ -4708,8 +4708,6 @@
1691 - rtx mem = NULL_RTX;
1694 tem = get_inner_reference (to, &bitsize, &bitpos, &offset, &mode1,
1695 @@ -4728,41 +4726,8 @@
1696 && DECL_BIT_FIELD_TYPE (TREE_OPERAND (to, 1)))
1697 get_bit_range (&bitregion_start, &bitregion_end, to, &bitpos, &offset);
1699 - /* If we are going to use store_bit_field and extract_bit_field,
1700 - make sure to_rtx will be safe for multiple use. */
1701 - mode = TYPE_MODE (TREE_TYPE (tem));
1702 - if (TREE_CODE (tem) == MEM_REF
1703 - && mode != BLKmode
1704 - && ((align = get_object_alignment (tem))
1705 - < GET_MODE_ALIGNMENT (mode))
1706 - && ((icode = optab_handler (movmisalign_optab, mode))
1707 - != CODE_FOR_nothing))
1709 - struct expand_operand ops[2];
1710 + to_rtx = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE);
1713 - to_rtx = gen_reg_rtx (mode);
1714 - mem = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE);
1716 - /* If the misaligned store doesn't overwrite all bits, perform
1717 - rmw cycle on MEM. */
1718 - if (bitsize != GET_MODE_BITSIZE (mode))
1720 - create_input_operand (&ops[0], to_rtx, mode);
1721 - create_fixed_operand (&ops[1], mem);
1722 - /* The movmisalign<mode> pattern cannot fail, else the assignment
1723 - would silently be omitted. */
1724 - expand_insn (icode, 2, ops);
1726 - mem = copy_rtx (mem);
1731 - misalignp = false;
1732 - to_rtx = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE);
1735 /* If the bitfield is volatile, we want to access it in the
1736 field's mode, not the computed mode.
1737 If a MEM has VOIDmode (external with incomplete type),
1738 @@ -4900,17 +4865,6 @@
1739 get_alias_set (to), nontemporal);
1744 - struct expand_operand ops[2];
1746 - create_fixed_operand (&ops[0], mem);
1747 - create_input_operand (&ops[1], to_rtx, mode);
1748 - /* The movmisalign<mode> pattern cannot fail, else the assignment
1749 - would silently be omitted. */
1750 - expand_insn (icode, 2, ops);
1754 preserve_temp_slots (result);
1756 @@ -5262,7 +5216,7 @@
1757 temp = expand_expr_real (exp, tmp_target, GET_MODE (target),
1759 ? EXPAND_STACK_PARM : EXPAND_NORMAL),
1764 /* If TEMP is a VOIDmode constant and the mode of the type of EXP is not
1765 @@ -7881,11 +7835,21 @@
1766 address, and ALT_RTL is non-NULL, then *ALT_RTL is set to the
1767 DECL_RTL of the VAR_DECL. *ALT_RTL is also set if EXP is a
1768 COMPOUND_EXPR whose second argument is such a VAR_DECL, and so on
1772 + If INNER_REFERENCE_P is true, we are expanding an inner reference.
1773 + In this case, we don't adjust a returned MEM rtx that wouldn't be
1774 + sufficiently aligned for its mode; instead, it's up to the caller
1775 + to deal with it afterwards. This is used to make sure that unaligned
1776 + base objects for which out-of-bounds accesses are supported, for
1777 + example record types with trailing arrays, aren't realigned behind
1778 + the back of the caller.
1779 + The normal operating mode is to pass FALSE for this parameter. */
1782 expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
1783 - enum expand_modifier modifier, rtx *alt_rtl)
1784 + enum expand_modifier modifier, rtx *alt_rtl,
1785 + bool inner_reference_p)
1789 @@ -7897,7 +7861,8 @@
1790 return ret ? ret : const0_rtx;
1793 - ret = expand_expr_real_1 (exp, target, tmode, modifier, alt_rtl);
1794 + ret = expand_expr_real_1 (exp, target, tmode, modifier, alt_rtl,
1795 + inner_reference_p);
1799 @@ -9190,7 +9155,8 @@
1802 expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
1803 - enum expand_modifier modifier, rtx *alt_rtl)
1804 + enum expand_modifier modifier, rtx *alt_rtl,
1805 + bool inner_reference_p)
1807 rtx op0, op1, temp, decl_rtl;
1809 @@ -9336,7 +9302,7 @@
1811 set_curr_insn_location (gimple_location (g));
1812 r = expand_expr_real (gimple_assign_rhs_to_tree (g), target,
1813 - tmode, modifier, NULL);
1814 + tmode, modifier, NULL, inner_reference_p);
1815 set_curr_insn_location (saved_loc);
1816 if (REG_P (r) && !REG_EXPR (r))
1817 set_reg_attrs_for_decl_rtl (SSA_NAME_VAR (exp), r);
1818 @@ -9557,7 +9523,8 @@
1822 - rtx ret = expand_expr_real_1 (val, target, tmode, modifier, alt_rtl);
1823 + rtx ret = expand_expr_real_1 (val, target, tmode, modifier, alt_rtl,
1824 + inner_reference_p);
1826 if (!SAVE_EXPR_RESOLVED_P (exp))
1828 @@ -9706,6 +9673,7 @@
1829 MEM_VOLATILE_P (temp) = 1;
1830 if (modifier != EXPAND_WRITE
1831 && modifier != EXPAND_MEMORY
1832 + && !inner_reference_p
1834 && align < GET_MODE_ALIGNMENT (mode))
1836 @@ -9940,18 +9908,19 @@
1837 computation, since it will need a temporary and TARGET is known
1838 to have to do. This occurs in unchecked conversion in Ada. */
1840 - = expand_expr (tem,
1841 - (TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
1842 - && COMPLETE_TYPE_P (TREE_TYPE (tem))
1843 - && (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
1845 - && modifier != EXPAND_STACK_PARM
1846 - ? target : NULL_RTX),
1848 - (modifier == EXPAND_INITIALIZER
1849 - || modifier == EXPAND_CONST_ADDRESS
1850 - || modifier == EXPAND_STACK_PARM)
1851 - ? modifier : EXPAND_NORMAL);
1852 + = expand_expr_real (tem,
1853 + (TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
1854 + && COMPLETE_TYPE_P (TREE_TYPE (tem))
1855 + && (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
1857 + && modifier != EXPAND_STACK_PARM
1858 + ? target : NULL_RTX),
1860 + (modifier == EXPAND_INITIALIZER
1861 + || modifier == EXPAND_CONST_ADDRESS
1862 + || modifier == EXPAND_STACK_PARM)
1863 + ? modifier : EXPAND_NORMAL,
1867 /* If the bitfield is volatile, we want to access it in the
1868 @@ -10302,17 +10271,18 @@
1870 /* See the normal_inner_ref case for the rationale. */
1872 - = expand_expr (tem,
1873 - (TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
1874 - && (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
1876 - && modifier != EXPAND_STACK_PARM
1877 - ? target : NULL_RTX),
1879 - (modifier == EXPAND_INITIALIZER
1880 - || modifier == EXPAND_CONST_ADDRESS
1881 - || modifier == EXPAND_STACK_PARM)
1882 - ? modifier : EXPAND_NORMAL);
1883 + = expand_expr_real (tem,
1884 + (TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
1885 + && (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
1887 + && modifier != EXPAND_STACK_PARM
1888 + ? target : NULL_RTX),
1890 + (modifier == EXPAND_INITIALIZER
1891 + || modifier == EXPAND_CONST_ADDRESS
1892 + || modifier == EXPAND_STACK_PARM)
1893 + ? modifier : EXPAND_NORMAL,
1896 if (MEM_P (orig_op0))
1898 @@ -10339,8 +10309,8 @@
1902 - op0 = expand_expr (treeop0,
1903 - NULL_RTX, VOIDmode, modifier);
1904 + op0 = expand_expr_real (treeop0, NULL_RTX, VOIDmode, modifier,
1905 + NULL, inner_reference_p);
1907 /* If the input and output modes are both the same, we are done. */
1908 if (mode == GET_MODE (op0))
1909 @@ -10407,50 +10377,53 @@
1910 op0 = copy_rtx (op0);
1911 set_mem_align (op0, MAX (MEM_ALIGN (op0), TYPE_ALIGN (type)));
1913 - else if (mode != BLKmode
1914 - && MEM_ALIGN (op0) < GET_MODE_ALIGNMENT (mode)
1915 - /* If the target does have special handling for unaligned
1916 - loads of mode then use them. */
1917 - && ((icode = optab_handler (movmisalign_optab, mode))
1918 - != CODE_FOR_nothing))
1922 - op0 = adjust_address (op0, mode, 0);
1923 - /* We've already validated the memory, and we're creating a
1924 - new pseudo destination. The predicates really can't
1926 - reg = gen_reg_rtx (mode);
1928 - /* Nor can the insn generator. */
1929 - insn = GEN_FCN (icode) (reg, op0);
1933 - else if (STRICT_ALIGNMENT
1934 + else if (modifier != EXPAND_WRITE
1935 + && modifier != EXPAND_MEMORY
1936 + && !inner_reference_p
1938 && MEM_ALIGN (op0) < GET_MODE_ALIGNMENT (mode))
1940 - tree inner_type = TREE_TYPE (treeop0);
1941 - HOST_WIDE_INT temp_size
1942 - = MAX (int_size_in_bytes (inner_type),
1943 - (HOST_WIDE_INT) GET_MODE_SIZE (mode));
1945 - = assign_stack_temp_for_type (mode, temp_size, type);
1946 - rtx new_with_op0_mode
1947 - = adjust_address (new_rtx, GET_MODE (op0), 0);
1948 + /* If the target does have special handling for unaligned
1949 + loads of mode then use them. */
1950 + if ((icode = optab_handler (movmisalign_optab, mode))
1951 + != CODE_FOR_nothing)
1955 - gcc_assert (!TREE_ADDRESSABLE (exp));
1956 + op0 = adjust_address (op0, mode, 0);
1957 + /* We've already validated the memory, and we're creating a
1958 + new pseudo destination. The predicates really can't
1960 + reg = gen_reg_rtx (mode);
1962 - if (GET_MODE (op0) == BLKmode)
1963 - emit_block_move (new_with_op0_mode, op0,
1964 - GEN_INT (GET_MODE_SIZE (mode)),
1965 - (modifier == EXPAND_STACK_PARM
1966 - ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
1968 - emit_move_insn (new_with_op0_mode, op0);
1969 + /* Nor can the insn generator. */
1970 + insn = GEN_FCN (icode) (reg, op0);
1974 + else if (STRICT_ALIGNMENT)
1976 + tree inner_type = TREE_TYPE (treeop0);
1977 + HOST_WIDE_INT temp_size
1978 + = MAX (int_size_in_bytes (inner_type),
1979 + (HOST_WIDE_INT) GET_MODE_SIZE (mode));
1981 + = assign_stack_temp_for_type (mode, temp_size, type);
1982 + rtx new_with_op0_mode
1983 + = adjust_address (new_rtx, GET_MODE (op0), 0);
1986 + gcc_assert (!TREE_ADDRESSABLE (exp));
1988 + if (GET_MODE (op0) == BLKmode)
1989 + emit_block_move (new_with_op0_mode, op0,
1990 + GEN_INT (GET_MODE_SIZE (mode)),
1991 + (modifier == EXPAND_STACK_PARM
1992 + ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
1994 + emit_move_insn (new_with_op0_mode, op0);
2000 op0 = adjust_address (op0, mode, 0);
2001 @@ -10550,7 +10523,7 @@
2002 /* WITH_SIZE_EXPR expands to its first argument. The caller should
2003 have pulled out the size to use in whatever context it needed. */
2004 return expand_expr_real (treeop0, original_target, tmode,
2005 - modifier, alt_rtl);
2006 + modifier, alt_rtl, inner_reference_p);
2009 return expand_expr_real_2 (&ops, target, tmode, modifier);
2011 ===================================================================
2012 --- gcc/expr.h (.../tags/gcc_4_8_4_release) (revision 220382)
2013 +++ gcc/expr.h (.../branches/gcc-4_8-branch) (revision 220382)
2015 is a constant that is not a legitimate address.
2016 EXPAND_WRITE means we are only going to write to the resulting rtx.
2017 EXPAND_MEMORY means we are interested in a memory result, even if
2018 - the memory is constant and we could have propagated a constant value. */
2019 + the memory is constant and we could have propagated a constant value,
2020 + or the memory is unaligned on a STRICT_ALIGNMENT target. */
2021 enum expand_modifier {EXPAND_NORMAL = 0, EXPAND_STACK_PARM, EXPAND_SUM,
2022 EXPAND_CONST_ADDRESS, EXPAND_INITIALIZER, EXPAND_WRITE,
2026 /* Work horses for expand_expr. */
2027 extern rtx expand_expr_real (tree, rtx, enum machine_mode,
2028 - enum expand_modifier, rtx *);
2029 + enum expand_modifier, rtx *, bool);
2030 extern rtx expand_expr_real_1 (tree, rtx, enum machine_mode,
2031 - enum expand_modifier, rtx *);
2032 + enum expand_modifier, rtx *, bool);
2033 extern rtx expand_expr_real_2 (sepops, rtx, enum machine_mode,
2034 enum expand_modifier);
2036 @@ -441,13 +442,13 @@
2037 expand_expr (tree exp, rtx target, enum machine_mode mode,
2038 enum expand_modifier modifier)
2040 - return expand_expr_real (exp, target, mode, modifier, NULL);
2041 + return expand_expr_real (exp, target, mode, modifier, NULL, false);
2045 expand_normal (tree exp)
2047 - return expand_expr_real (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL, NULL);
2048 + return expand_expr_real (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL, NULL, false);
2051 /* At the start of a function, record that we have no previously-pushed
2052 Index: gcc/fortran/interface.c
2053 ===================================================================
2054 --- gcc/fortran/interface.c (.../tags/gcc_4_8_4_release) (revision 220382)
2055 +++ gcc/fortran/interface.c (.../branches/gcc-4_8-branch) (revision 220382)
2056 @@ -3557,6 +3557,8 @@
2060 + gfc_typebound_proc* tbo;
2061 + gfc_expr* tb_base;
2065 @@ -3573,8 +3575,50 @@
2067 i = fold_unary_intrinsic (e->value.op.op);
2069 + /* See if we find a matching type-bound operator. */
2070 if (i == INTRINSIC_USER)
2071 + tbo = matching_typebound_op (&tb_base, actual,
2072 + i, e->value.op.uop->name, &gname);
2076 +#define CHECK_OS_COMPARISON(comp) \
2077 + case INTRINSIC_##comp: \
2078 + case INTRINSIC_##comp##_OS: \
2079 + tbo = matching_typebound_op (&tb_base, actual, \
2080 + INTRINSIC_##comp, NULL, &gname); \
2082 + tbo = matching_typebound_op (&tb_base, actual, \
2083 + INTRINSIC_##comp##_OS, NULL, &gname); \
2085 + CHECK_OS_COMPARISON(EQ)
2086 + CHECK_OS_COMPARISON(NE)
2087 + CHECK_OS_COMPARISON(GT)
2088 + CHECK_OS_COMPARISON(GE)
2089 + CHECK_OS_COMPARISON(LT)
2090 + CHECK_OS_COMPARISON(LE)
2091 +#undef CHECK_OS_COMPARISON
2094 + tbo = matching_typebound_op (&tb_base, actual, i, NULL, &gname);
2098 + /* If there is a matching typebound-operator, replace the expression with
2099 + a call to it and succeed. */
2102 + gcc_assert (tb_base);
2103 + build_compcall_for_operator (e, actual, tb_base, tbo, gname);
2105 + if (gfc_resolve_expr (e) == FAILURE)
2106 + return MATCH_ERROR;
2111 + if (i == INTRINSIC_USER)
2113 for (ns = gfc_current_ns; ns; ns = ns->parent)
2115 uop = gfc_find_uop (e->value.op.uop->name, ns);
2116 @@ -3623,54 +3667,6 @@
2120 - gfc_typebound_proc* tbo;
2121 - gfc_expr* tb_base;
2123 - /* See if we find a matching type-bound operator. */
2124 - if (i == INTRINSIC_USER)
2125 - tbo = matching_typebound_op (&tb_base, actual,
2126 - i, e->value.op.uop->name, &gname);
2130 -#define CHECK_OS_COMPARISON(comp) \
2131 - case INTRINSIC_##comp: \
2132 - case INTRINSIC_##comp##_OS: \
2133 - tbo = matching_typebound_op (&tb_base, actual, \
2134 - INTRINSIC_##comp, NULL, &gname); \
2136 - tbo = matching_typebound_op (&tb_base, actual, \
2137 - INTRINSIC_##comp##_OS, NULL, &gname); \
2139 - CHECK_OS_COMPARISON(EQ)
2140 - CHECK_OS_COMPARISON(NE)
2141 - CHECK_OS_COMPARISON(GT)
2142 - CHECK_OS_COMPARISON(GE)
2143 - CHECK_OS_COMPARISON(LT)
2144 - CHECK_OS_COMPARISON(LE)
2145 -#undef CHECK_OS_COMPARISON
2148 - tbo = matching_typebound_op (&tb_base, actual, i, NULL, &gname);
2152 - /* If there is a matching typebound-operator, replace the expression with
2153 - a call to it and succeed. */
2158 - gcc_assert (tb_base);
2159 - build_compcall_for_operator (e, actual, tb_base, tbo, gname);
2161 - result = gfc_resolve_expr (e);
2162 - if (result == FAILURE)
2163 - return MATCH_ERROR;
2168 /* Don't use gfc_free_actual_arglist(). */
2169 free (actual->next);
2171 Index: gcc/fortran/trans-array.c
2172 ===================================================================
2173 --- gcc/fortran/trans-array.c (.../tags/gcc_4_8_4_release) (revision 220382)
2174 +++ gcc/fortran/trans-array.c (.../branches/gcc-4_8-branch) (revision 220382)
2175 @@ -4299,11 +4299,20 @@
2177 for (ss = rss; ss != gfc_ss_terminator; ss = ss->next)
2179 - if (ss->info->type != GFC_SS_SECTION)
2182 ss_expr = ss->info->expr;
2184 + if (ss->info->type != GFC_SS_SECTION)
2186 + /* Check for cases like c(:)(1:2) = c(2)(2:3) */
2187 + if (!nDepend && dest_expr->rank > 0
2188 + && dest_expr->ts.type == BT_CHARACTER
2189 + && ss_expr->expr_type == EXPR_VARIABLE)
2191 + nDepend = gfc_check_dependency (dest_expr, ss_expr, false);
2195 if (dest_expr->symtree->n.sym != ss_expr->symtree->n.sym)
2197 if (gfc_could_be_alias (dest, ss)
2198 Index: gcc/fortran/ChangeLog
2199 ===================================================================
2200 --- gcc/fortran/ChangeLog (.../tags/gcc_4_8_4_release) (revision 220382)
2201 +++ gcc/fortran/ChangeLog (.../branches/gcc-4_8-branch) (revision 220382)
2203 +2015-02-01 Jakub Jelinek <jakub@redhat.com>
2205 + Backported from mainline
2206 + 2015-01-13 Jakub Jelinek <jakub@redhat.com>
2209 + * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
2210 + on dummy args with VALUE attribute.
2212 +2015-01-24 Thomas Koenig <tkoenig@gcc.gnu.org>
2215 + * trans-array.c (gfc_conv_resolve_dependencies): Also check
2216 + dependencies when there may be substrings of character arrays.
2218 +2015-01-24 Thomas Koenig <tkoenig@netcologne.de>
2220 + Backport from trunk
2222 + * dependency.c (callback_dummy_intent_not_int): New function.
2223 + (dummy_intent_not_in): New function.
2224 + (gfc_full_array_ref_p): Use dummy_intent_not_in.
2226 +2015-01-12 Janus Weil <janus@gcc.gnu.org>
2228 + Backport from mainline
2230 + * interface.c (gfc_extend_expr): Look for type-bound operators before
2231 + non-typebound ones.
2233 +2014-12-23 Janus Weil <janus@gcc.gnu.org>
2235 + Backport from mainline
2237 + * resolve.c (resolve_typebound_call): New argument to pass out the
2238 + non-overridable attribute of the specific procedure.
2239 + (resolve_typebound_subroutine): Get overridable flag from
2240 + resolve_typebound_call.
2242 2014-12-19 Release Manager
2244 * GCC 4.8.4 released.
2245 Index: gcc/fortran/resolve.c
2246 ===================================================================
2247 --- gcc/fortran/resolve.c (.../tags/gcc_4_8_4_release) (revision 220382)
2248 +++ gcc/fortran/resolve.c (.../branches/gcc-4_8-branch) (revision 220382)
2249 @@ -6048,7 +6048,7 @@
2250 /* Resolve a call to a type-bound subroutine. */
2253 -resolve_typebound_call (gfc_code* c, const char **name)
2254 +resolve_typebound_call (gfc_code* c, const char **name, bool *overridable)
2256 gfc_actual_arglist* newactual;
2257 gfc_symtree* target;
2258 @@ -6072,6 +6072,10 @@
2259 if (resolve_typebound_generic_call (c->expr1, name) == FAILURE)
2262 + /* Pass along the NON_OVERRIDABLE attribute of the specific TBP. */
2264 + *overridable = !c->expr1->value.compcall.tbp->non_overridable;
2266 /* Transform into an ordinary EXEC_CALL for now. */
2268 if (resolve_typebound_static (c->expr1, &target, &newactual) == FAILURE)
2269 @@ -6324,7 +6328,7 @@
2270 if (c->ts.u.derived == NULL)
2271 c->ts.u.derived = gfc_find_derived_vtab (declared);
2273 - if (resolve_typebound_call (code, &name) == FAILURE)
2274 + if (resolve_typebound_call (code, &name, NULL) == FAILURE)
2277 /* Use the generic name if it is there. */
2278 @@ -6356,7 +6360,7 @@
2282 - return resolve_typebound_call (code, NULL);
2283 + return resolve_typebound_call (code, NULL, NULL);
2285 if (resolve_ref (code->expr1) == FAILURE)
2287 @@ -6369,10 +6373,10 @@
2288 || (!class_ref && st->n.sym->ts.type != BT_CLASS))
2290 gfc_free_ref_list (new_ref);
2291 - return resolve_typebound_call (code, NULL);
2292 + return resolve_typebound_call (code, NULL, NULL);
2295 - if (resolve_typebound_call (code, &name) == FAILURE)
2296 + if (resolve_typebound_call (code, &name, &overridable) == FAILURE)
2298 gfc_free_ref_list (new_ref);
2300 Index: gcc/fortran/trans-decl.c
2301 ===================================================================
2302 --- gcc/fortran/trans-decl.c (.../tags/gcc_4_8_4_release) (revision 220382)
2303 +++ gcc/fortran/trans-decl.c (.../branches/gcc-4_8-branch) (revision 220382)
2304 @@ -2186,8 +2186,9 @@
2305 /* Fill in arg stuff. */
2306 DECL_CONTEXT (parm) = fndecl;
2307 DECL_ARG_TYPE (parm) = TREE_VALUE (typelist);
2308 - /* All implementation args are read-only. */
2309 - TREE_READONLY (parm) = 1;
2310 + /* All implementation args except for VALUE are read-only. */
2311 + if (!f->sym->attr.value)
2312 + TREE_READONLY (parm) = 1;
2313 if (POINTER_TYPE_P (type)
2314 && (!f->sym->attr.proc_pointer
2315 && f->sym->attr.flavor != FL_PROCEDURE))
2316 Index: gcc/fortran/dependency.c
2317 ===================================================================
2318 --- gcc/fortran/dependency.c (.../tags/gcc_4_8_4_release) (revision 220382)
2319 +++ gcc/fortran/dependency.c (.../branches/gcc-4_8-branch) (revision 220382)
2320 @@ -1604,11 +1604,40 @@
2321 return GFC_DEP_EQUAL;
2324 +/* Callback function for checking if an expression depends on a
2325 + dummy variable which is any other than INTENT(IN). */
2328 +callback_dummy_intent_not_in (gfc_expr **ep,
2329 + int *walk_subtrees ATTRIBUTE_UNUSED,
2330 + void *data ATTRIBUTE_UNUSED)
2332 + gfc_expr *e = *ep;
2334 + if (e->expr_type == EXPR_VARIABLE && e->symtree
2335 + && e->symtree->n.sym->attr.dummy)
2336 + return e->symtree->n.sym->attr.intent != INTENT_IN;
2341 +/* Auxiliary function to check if subexpressions have dummy variables which
2342 + are not intent(in).
2346 +dummy_intent_not_in (gfc_expr **ep)
2348 + return gfc_expr_walker (ep, callback_dummy_intent_not_in, NULL);
2351 /* Determine if an array ref, usually an array section specifies the
2352 entire array. In addition, if the second, pointer argument is
2353 provided, the function will return true if the reference is
2354 - contiguous; eg. (:, 1) gives true but (1,:) gives false. */
2355 + contiguous; eg. (:, 1) gives true but (1,:) gives false.
2356 + If one of the bounds depends on a dummy variable which is
2357 + not INTENT(IN), also return false, because the user may
2358 + have changed the variable. */
2361 gfc_full_array_ref_p (gfc_ref *ref, bool *contiguous)
2362 @@ -1672,7 +1701,8 @@
2364 || !ref->u.ar.as->lower[i]
2365 || gfc_dep_compare_expr (ref->u.ar.start[i],
2366 - ref->u.ar.as->lower[i])))
2367 + ref->u.ar.as->lower[i])
2368 + || dummy_intent_not_in (&ref->u.ar.start[i])))
2370 /* Check the upper bound. */
2371 if (ref->u.ar.end[i]
2372 @@ -1679,7 +1709,8 @@
2374 || !ref->u.ar.as->upper[i]
2375 || gfc_dep_compare_expr (ref->u.ar.end[i],
2376 - ref->u.ar.as->upper[i])))
2377 + ref->u.ar.as->upper[i])
2378 + || dummy_intent_not_in (&ref->u.ar.end[i])))
2380 /* Check the stride. */
2381 if (ref->u.ar.stride[i]
2383 ===================================================================
2384 --- gcc/alias.c (.../tags/gcc_4_8_4_release) (revision 220382)
2385 +++ gcc/alias.c (.../branches/gcc-4_8-branch) (revision 220382)
2386 @@ -380,17 +380,9 @@
2388 mems_in_disjoint_alias_sets_p (const_rtx mem1, const_rtx mem2)
2390 -/* Perform a basic sanity check. Namely, that there are no alias sets
2391 - if we're not using strict aliasing. This helps to catch bugs
2392 - whereby someone uses PUT_CODE, but doesn't clear MEM_ALIAS_SET, or
2393 - where a MEM is allocated in some way other than by the use of
2394 - gen_rtx_MEM, and the MEM_ALIAS_SET is not cleared. If we begin to
2395 - use alias sets to indicate that spilled registers cannot alias each
2396 - other, we might need to remove this check. */
2397 - gcc_assert (flag_strict_aliasing
2398 - || (!MEM_ALIAS_SET (mem1) && !MEM_ALIAS_SET (mem2)));
2400 - return ! alias_sets_conflict_p (MEM_ALIAS_SET (mem1), MEM_ALIAS_SET (mem2));
2401 + return (flag_strict_aliasing
2402 + && ! alias_sets_conflict_p (MEM_ALIAS_SET (mem1),
2403 + MEM_ALIAS_SET (mem2)));
2406 /* Insert the NODE into the splay tree given by DATA. Used by
2407 Index: gcc/cfgexpand.c
2408 ===================================================================
2409 --- gcc/cfgexpand.c (.../tags/gcc_4_8_4_release) (revision 220382)
2410 +++ gcc/cfgexpand.c (.../branches/gcc-4_8-branch) (revision 220382)
2411 @@ -2111,7 +2111,7 @@
2413 expand_assignment (lhs, exp, false);
2415 - expand_expr_real_1 (exp, const0_rtx, VOIDmode, EXPAND_NORMAL, NULL);
2416 + expand_expr (exp, const0_rtx, VOIDmode, EXPAND_NORMAL);
2418 mark_transaction_restart_calls (stmt);
2420 Index: gcc/combine.c
2421 ===================================================================
2422 --- gcc/combine.c (.../tags/gcc_4_8_4_release) (revision 220382)
2423 +++ gcc/combine.c (.../branches/gcc-4_8-branch) (revision 220382)
2424 @@ -1527,8 +1527,8 @@
2425 uns3 = TYPE_UNSIGNED (DECL_ARG_TYPE (arg));
2427 /* The mode and signedness of the argument as it is actually passed,
2428 - after any TARGET_PROMOTE_FUNCTION_ARGS-driven ABI promotions. */
2429 - mode3 = promote_function_mode (DECL_ARG_TYPE (arg), mode2, &uns3,
2430 + see assign_parm_setup_reg in function.c. */
2431 + mode3 = promote_function_mode (TREE_TYPE (arg), mode1, &uns3,
2432 TREE_TYPE (cfun->decl), 0);
2434 /* The mode of the register in which the argument is being passed. */
2435 Index: gcc/config/i386/i386.md
2436 ===================================================================
2437 --- gcc/config/i386/i386.md (.../tags/gcc_4_8_4_release) (revision 220382)
2438 +++ gcc/config/i386/i386.md (.../branches/gcc-4_8-branch) (revision 220382)
2439 @@ -1945,7 +1945,8 @@
2440 (const_string "ssemov")
2441 (eq_attr "alternative" "15,16")
2442 (const_string "ssecvt")
2443 - (match_operand 1 "pic_32bit_operand")
2444 + (and (match_operand 0 "register_operand")
2445 + (match_operand 1 "pic_32bit_operand"))
2446 (const_string "lea")
2448 (const_string "imov")))
2449 @@ -2171,7 +2172,8 @@
2450 (const_string "sselog1")
2451 (eq_attr "alternative" "7,8,9,10,11")
2452 (const_string "ssemov")
2453 - (match_operand 1 "pic_32bit_operand")
2454 + (and (match_operand 0 "register_operand")
2455 + (match_operand 1 "pic_32bit_operand"))
2456 (const_string "lea")
2458 (const_string "imov")))
2459 Index: gcc/config/i386/avx2intrin.h
2460 ===================================================================
2461 --- gcc/config/i386/avx2intrin.h (.../tags/gcc_4_8_4_release) (revision 220382)
2462 +++ gcc/config/i386/avx2intrin.h (.../branches/gcc-4_8-branch) (revision 220382)
2463 @@ -639,11 +639,20 @@
2465 extern __inline __m256i
2466 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2467 +_mm256_bslli_epi128 (__m256i __A, const int __N)
2469 + return (__m256i)__builtin_ia32_pslldqi256 (__A, __N * 8);
2472 +extern __inline __m256i
2473 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2474 _mm256_slli_si256 (__m256i __A, const int __N)
2476 return (__m256i)__builtin_ia32_pslldqi256 (__A, __N * 8);
2479 +#define _mm256_bslli_epi128(A, N) \
2480 + ((__m256i)__builtin_ia32_pslldqi256 ((__m256i)(A), (int)(N) * 8))
2481 #define _mm256_slli_si256(A, N) \
2482 ((__m256i)__builtin_ia32_pslldqi256 ((__m256i)(A), (int)(N) * 8))
2484 @@ -721,11 +730,20 @@
2486 extern __inline __m256i
2487 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2488 +_mm256_bsrli_epi128 (__m256i __A, const int __N)
2490 + return (__m256i)__builtin_ia32_psrldqi256 (__A, __N * 8);
2493 +extern __inline __m256i
2494 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2495 _mm256_srli_si256 (__m256i __A, const int __N)
2497 return (__m256i)__builtin_ia32_psrldqi256 (__A, __N * 8);
2500 +#define _mm256_bsrli_epi128(A, N) \
2501 + ((__m256i)__builtin_ia32_psrldqi256 ((__m256i)(A), (int)(N) * 8))
2502 #define _mm256_srli_si256(A, N) \
2503 ((__m256i)__builtin_ia32_psrldqi256 ((__m256i)(A), (int)(N) * 8))
2505 Index: gcc/config/i386/sse.md
2506 ===================================================================
2507 --- gcc/config/i386/sse.md (.../tags/gcc_4_8_4_release) (revision 220382)
2508 +++ gcc/config/i386/sse.md (.../branches/gcc-4_8-branch) (revision 220382)
2509 @@ -7369,7 +7369,7 @@
2510 movss\t{%2, %0|%0, %2}
2511 movss\t{%2, %0|%0, %2}
2512 vmovss\t{%2, %1, %0|%0, %1, %2}"
2513 - [(set_attr "isa" "sse2,*,noavx,noavx,avx")
2514 + [(set_attr "isa" "sse2,sse2,noavx,noavx,avx")
2515 (set_attr "type" "ssemov")
2516 (set_attr "prefix" "maybe_vex,maybe_vex,orig,orig,vex")
2517 (set_attr "mode" "TI,TI,V4SF,SF,SF")])
2518 Index: gcc/config/i386/emmintrin.h
2519 ===================================================================
2520 --- gcc/config/i386/emmintrin.h (.../tags/gcc_4_8_4_release) (revision 220382)
2521 +++ gcc/config/i386/emmintrin.h (.../branches/gcc-4_8-branch) (revision 220382)
2522 @@ -1143,6 +1143,18 @@
2525 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2526 +_mm_bsrli_si128 (__m128i __A, const int __N)
2528 + return (__m128i)__builtin_ia32_psrldqi128 (__A, __N * 8);
2531 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2532 +_mm_bslli_si128 (__m128i __A, const int __N)
2534 + return (__m128i)__builtin_ia32_pslldqi128 (__A, __N * 8);
2537 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2538 _mm_srli_si128 (__m128i __A, const int __N)
2540 return (__m128i)__builtin_ia32_psrldqi128 (__A, __N * 8);
2541 @@ -1154,6 +1166,10 @@
2542 return (__m128i)__builtin_ia32_pslldqi128 (__A, __N * 8);
2545 +#define _mm_bsrli_si128(A, N) \
2546 + ((__m128i)__builtin_ia32_psrldqi128 ((__m128i)(A), (int)(N) * 8))
2547 +#define _mm_bslli_si128(A, N) \
2548 + ((__m128i)__builtin_ia32_pslldqi128 ((__m128i)(A), (int)(N) * 8))
2549 #define _mm_srli_si128(A, N) \
2550 ((__m128i)__builtin_ia32_psrldqi128 ((__m128i)(A), (int)(N) * 8))
2551 #define _mm_slli_si128(A, N) \
2552 Index: gcc/config/i386/i386.c
2553 ===================================================================
2554 --- gcc/config/i386/i386.c (.../tags/gcc_4_8_4_release) (revision 220382)
2555 +++ gcc/config/i386/i386.c (.../branches/gcc-4_8-branch) (revision 220382)
2556 @@ -5539,7 +5539,18 @@
2557 if (abi == SYSV_ABI)
2559 if (lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (fntype)))
2564 + static bool warned = false;
2567 + error ("X32 does not support ms_abi attribute");
2574 else if (lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (fntype)))
2576 @@ -10483,6 +10494,10 @@
2578 m->fs.cfa_offset += UNITS_PER_WORD;
2579 RTX_FRAME_RELATED_P (insn) = 1;
2580 + add_reg_note (insn, REG_FRAME_RELATED_EXPR,
2581 + gen_rtx_SET (VOIDmode, stack_pointer_rtx,
2582 + plus_constant (Pmode, stack_pointer_rtx,
2583 + -UNITS_PER_WORD)));
2587 @@ -10496,6 +10511,10 @@
2589 m->fs.cfa_offset += UNITS_PER_WORD;
2590 RTX_FRAME_RELATED_P (insn) = 1;
2591 + add_reg_note (insn, REG_FRAME_RELATED_EXPR,
2592 + gen_rtx_SET (VOIDmode, stack_pointer_rtx,
2593 + plus_constant (Pmode, stack_pointer_rtx,
2594 + -UNITS_PER_WORD)));
2598 Index: gcc/config/rs6000/rs6000-cpus.def
2599 ===================================================================
2600 --- gcc/config/rs6000/rs6000-cpus.def (.../tags/gcc_4_8_4_release) (revision 220382)
2601 +++ gcc/config/rs6000/rs6000-cpus.def (.../branches/gcc-4_8-branch) (revision 220382)
2603 | OPTION_MASK_PPC_GFXOPT \
2604 | OPTION_MASK_PPC_GPOPT \
2605 | OPTION_MASK_QUAD_MEMORY \
2606 + | OPTION_MASK_QUAD_MEMORY_ATOMIC \
2607 | OPTION_MASK_RECIP_PRECISION \
2608 | OPTION_MASK_SOFT_FLOAT \
2609 | OPTION_MASK_STRICT_ALIGN_OPTIONAL \
2610 Index: gcc/config/rs6000/rs6000.c
2611 ===================================================================
2612 --- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_8_4_release) (revision 220382)
2613 +++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_8-branch) (revision 220382)
2614 @@ -32628,6 +32628,14 @@
2615 if (complement_op2_p)
2616 op2 = gen_rtx_NOT (mode, op2);
2618 + /* For canonical RTL, if only one arm is inverted it is the first. */
2619 + if (!complement_op1_p && complement_op2_p)
2626 bool_rtx = ((code == NOT)
2627 ? gen_rtx_NOT (mode, op1)
2628 : gen_rtx_fmt_ee (code, mode, op1, op2));
2629 Index: gcc/config/rs6000/rs6000.md
2630 ===================================================================
2631 --- gcc/config/rs6000/rs6000.md (.../tags/gcc_4_8_4_release) (revision 220382)
2632 +++ gcc/config/rs6000/rs6000.md (.../branches/gcc-4_8-branch) (revision 220382)
2633 @@ -8622,8 +8622,8 @@
2634 [(set (match_operand:BOOL_128 0 "vlogical_operand" "=<BOOL_REGS_OUTPUT>")
2635 (match_operator:BOOL_128 3 "boolean_operator"
2637 - (match_operand:BOOL_128 2 "vlogical_operand" "<BOOL_REGS_OP1>"))
2638 - (match_operand:BOOL_128 1 "vlogical_operand" "<BOOL_REGS_OP2>")]))]
2639 + (match_operand:BOOL_128 2 "vlogical_operand" "<BOOL_REGS_OP2>"))
2640 + (match_operand:BOOL_128 1 "vlogical_operand" "<BOOL_REGS_OP1>")]))]
2641 "TARGET_P8_VECTOR || (GET_CODE (operands[3]) == AND)"
2643 if (TARGET_VSX && vsx_register_operand (operands[0], <MODE>mode))
2644 @@ -8638,7 +8638,7 @@
2645 && reload_completed && int_reg_operand (operands[0], <MODE>mode)"
2648 - rs6000_split_logical (operands, GET_CODE (operands[3]), false, true, false,
2649 + rs6000_split_logical (operands, GET_CODE (operands[3]), false, false, true,
2653 @@ -8660,14 +8660,14 @@
2654 [(set (match_operand:TI2 0 "int_reg_operand" "=&r,r,r")
2655 (match_operator:TI2 3 "boolean_operator"
2657 - (match_operand:TI2 1 "int_reg_operand" "r,0,r"))
2658 - (match_operand:TI2 2 "int_reg_operand" "r,r,0")]))]
2659 + (match_operand:TI2 2 "int_reg_operand" "r,0,r"))
2660 + (match_operand:TI2 1 "int_reg_operand" "r,r,0")]))]
2661 "!TARGET_P8_VECTOR && (GET_CODE (operands[3]) != AND)"
2663 "reload_completed && !TARGET_P8_VECTOR && (GET_CODE (operands[3]) != AND)"
2666 - rs6000_split_logical (operands, GET_CODE (operands[3]), false, true, false,
2667 + rs6000_split_logical (operands, GET_CODE (operands[3]), false, false, true,
2671 Index: gcc/config/arm/arm.h
2672 ===================================================================
2673 --- gcc/config/arm/arm.h (.../tags/gcc_4_8_4_release) (revision 220382)
2674 +++ gcc/config/arm/arm.h (.../branches/gcc-4_8-branch) (revision 220382)
2676 builtin_define_with_int_value ( \
2677 "__ARM_SIZEOF_MINIMAL_ENUM", \
2678 flag_short_enums ? 1 : 4); \
2679 - builtin_define_with_int_value ( \
2680 - "__ARM_SIZEOF_WCHAR_T", WCHAR_TYPE_SIZE); \
2681 + builtin_define_type_sizeof ("__ARM_SIZEOF_WCHAR_T", \
2682 + wchar_type_node); \
2683 if (TARGET_ARM_ARCH_PROFILE) \
2684 builtin_define_with_int_value ( \
2685 "__ARM_ARCH_PROFILE", TARGET_ARM_ARCH_PROFILE); \