]> TLD Linux GIT Repositories - packages/gcc.git/blob - gcc-branch.diff
265c185214edc977d3aeacfd24d96ac999184960
[packages/gcc.git] / gcc-branch.diff
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)
5 @@ -613,7 +613,6 @@
6  LIBQUAD_USE_SYMVER_TRUE
7  toolexeclibdir
8  toolexecdir
9 -multi_basedir
10  MAINT
11  MAINTAINER_MODE_FALSE
12  MAINTAINER_MODE_TRUE
13 @@ -682,6 +681,7 @@
14  INSTALL_DATA
15  INSTALL_SCRIPT
16  INSTALL_PROGRAM
17 +multi_basedir
18  target_noncanonical
19  target_os
20  target_vendor
21 @@ -736,6 +736,7 @@
22  ac_subst_files=''
23  ac_user_opts='
24  enable_option_checking
25 +enable_multilib
26  enable_version_specific_runtime_libs
27  enable_dependency_tracking
28  with_bugurl
29 @@ -746,7 +747,6 @@
30  with_gnu_ld
31  enable_libtool_lock
32  enable_maintainer_mode
33 -enable_multilib
34  enable_symvers
35  enable_generated_files_in_srcdir
36  '
37 @@ -1379,6 +1379,7 @@
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
45 @@ -1391,7 +1392,6 @@
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 @@
54  
55  
56  
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 ;;
62 +  no)  multilib=no ;;
63 +  *)   as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
64 + esac
65 +else
66 +  multilib=yes
67 +fi
68 +
69 +
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.
73 +
74 +if test "$srcdir" = "."; then
75 +  if test "$with_target_subdir" != "."; then
76 +    multi_basedir="$srcdir/$with_multisrctop../.."
77 +  else
78 +    multi_basedir="$srcdir/$with_multisrctop.."
79 +  fi
80 +else
81 +  multi_basedir="$srcdir/.."
82 +fi
83 +
84 +
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
90 +fi
91 +
92 +ac_config_commands="$ac_config_commands default-1"
93 +
94 +
95  target_alias=${target_alias-$host_alias}
96  
97  
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"
105  
106  #if HAVE_DLFCN_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"
114  
115  #if HAVE_DLFCN_H
116 @@ -10918,44 +10956,7 @@
117    MAINT=$MAINTAINER_MODE_TRUE
118  
119  
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 ;;
125 -  no)  multilib=no ;;
126 -  *)   as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
127 - esac
128 -else
129 -  multilib=yes
130 -fi
131  
132 -
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.
136 -
137 -if test "$srcdir" = "."; then
138 -  if test "$with_target_subdir" != "."; then
139 -    multi_basedir="$srcdir/$with_multisrctop../.."
140 -  else
141 -    multi_basedir="$srcdir/$with_multisrctop.."
142 -  fi
143 -else
144 -  multi_basedir="$srcdir/.."
145 -fi
146 -
147 -
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
153 -fi
154 -
155 -ac_config_commands="$ac_config_commands default-1"
156 -
157 -
158  ac_ext=c
159  ac_cpp='$CPP $CPPFLAGS'
160  ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
161 @@ -13644,6 +13645,20 @@
162  #
163  # INIT-COMMANDS
164  #
165 +
166 +srcdir="$srcdir"
167 +host="$host"
168 +target="$target"
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}
175 +CC="$CC"
176 +CXX="$CXX"
177 +GFORTRAN="$GFORTRAN"
178 +GCJ="$GCJ"
179  AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
180  
181  
182 @@ -13906,20 +13921,6 @@
183  
184  
185  
186 -srcdir="$srcdir"
187 -host="$host"
188 -target="$target"
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}
195 -CC="$CC"
196 -CXX="$CXX"
197 -GFORTRAN="$GFORTRAN"
198 -GCJ="$GCJ"
199 -
200  _ACEOF
201  
202  cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
203 @@ -13929,9 +13930,9 @@
204  do
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" ;;
212  
213    *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
214 @@ -14517,6 +14518,14 @@
215  
216  
217    case $ac_file$ac_mode in
218 +    "default-1":C)
219 +# Only add multilib support code if we just rebuilt the top-level
220 +# Makefile.
221 +case " $CONFIG_FILES " in
222 + *" Makefile "*)
223 +   ac_file=Makefile . ${multi_basedir}/config-ml.in
224 +   ;;
225 +esac ;;
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 @@
230    chmod +x "$ofile"
231  
232   ;;
233 -    "default-1":C)
234 -# Only add multilib support code if we just rebuilt the top-level
235 -# Makefile.
236 -case " $CONFIG_FILES " in
237 - *" Makefile "*)
238 -   ac_file=Makefile . ${multi_basedir}/config-ml.in
239 -   ;;
240 -esac ;;
241  
242    esac
243  done # for ac_tag
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)
248 @@ -1,3 +1,8 @@
249 +2015-01-26  Matthias Klose  <doko@ubuntu.com>
250 +
251 +       * configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
252 +       * configure: Regenerate.
253 +
254  2014-12-19  Release Manager
255  
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)
261 @@ -23,6 +23,8 @@
262  AC_CANONICAL_SYSTEM
263  ACX_NONCANONICAL_TARGET
264  
265 +AM_ENABLE_MULTILIB(, ..)
266 +
267  target_alias=${target_alias-$host_alias}
268  AC_SUBST(target_alias)
269  
270 @@ -60,7 +62,6 @@
271  AC_SUBST(enable_static)
272  
273  AM_MAINTAINER_MODE
274 -AM_ENABLE_MULTILIB(, ..)
275  
276  AC_LANG_C
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)
282 @@ -662,7 +662,6 @@
283  MAINT
284  MAINTAINER_MODE_FALSE
285  MAINTAINER_MODE_TRUE
286 -multi_basedir
287  am__untar
288  am__tar
289  AMTAR
290 @@ -701,6 +700,7 @@
291  build_vendor
292  build_cpu
293  build
294 +multi_basedir
295  target_alias
296  host_alias
297  build_alias
298 @@ -742,8 +742,8 @@
299  ac_subst_files=''
300  ac_user_opts='
301  enable_option_checking
302 +enable_multilib
303  enable_version_specific_runtime_libs
304 -enable_multilib
305  enable_maintainer_mode
306  enable_dependency_tracking
307  enable_shared
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 @@
319  
320  
321  
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 ;;
327 +  no)  multilib=no ;;
328 +  *)   as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
329 + esac
330 +else
331 +  multilib=yes
332 +fi
333 +
334 +
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.
338 +
339 +if test "$srcdir" = "."; then
340 +  if test "$with_target_subdir" != "."; then
341 +    multi_basedir="$srcdir/$with_multisrctop../.."
342 +  else
343 +    multi_basedir="$srcdir/$with_multisrctop.."
344 +  fi
345 +else
346 +  multi_basedir="$srcdir/.."
347 +fi
348 +
349 +
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
355 +fi
356 +
357 +ac_config_commands="$ac_config_commands default-1"
358 +
359 +
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 @@
364  
365  
366  
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 ;;
372 -  no)  multilib=no ;;
373 -  *)   as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
374 - esac
375 -else
376 -  multilib=yes
377 -fi
378  
379 -
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.
383 -
384 -if test "$srcdir" = "."; then
385 -  if test "$with_target_subdir" != "."; then
386 -    multi_basedir="$srcdir/$with_multisrctop../.."
387 -  else
388 -    multi_basedir="$srcdir/$with_multisrctop.."
389 -  fi
390 -else
391 -  multi_basedir="$srcdir/.."
392 -fi
393 -
394 -
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
400 -fi
401 -
402 -ac_config_commands="$ac_config_commands default-1"
403 -
404 -
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"
415  
416  #if HAVE_DLFCN_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"
424  
425  #if HAVE_DLFCN_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)
430 @@ -1,3 +1,8 @@
431 +2015-01-27  Matthias Klose  <doko@ubuntu.com>
432 +
433 +       * configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
434 +       * configure: Regenerate.
435 +
436  2014-12-19  Release Manager
437  
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)
443 @@ -5,6 +5,8 @@
444  AC_INIT(package-unused, version-unused, libsanitizer)
445  AC_CONFIG_SRCDIR([include/sanitizer/common_interface_defs.h])
446  
447 +AM_ENABLE_MULTILIB(, ..)
448 +
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 ],
452 @@ -24,7 +26,6 @@
453  GCC_LIBSTDCXX_RAW_CXX_FLAGS
454  
455  AM_INIT_AUTOMAKE(foreign no-dist)
456 -AM_ENABLE_MULTILIB(, ..)
457  AM_MAINTAINER_MODE
458  
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)
466        {
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)...);
471        }
472  
473        void
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)
478 @@ -1,3 +1,9 @@
479 +2015-01-09  Jonathan Wakely  <jwakely@redhat.com>
480 +
481 +       PR libstdc++/60966
482 +       * include/std/future (packaged_task::operator()): Increment the
483 +       reference count on the shared state until the function returns.
484 +
485  2014-12-19  Release Manager
486  
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)
492 @@ -112,9 +112,9 @@
493  
494    pre_barrier (smodel);
495  
496 -  wptr = (UWORD *)mptr;
497 -  shift = 0;
498 -  mask = -1;
499 +  wptr = (UWORD *)((uintptr_t)mptr & -WORDSIZE);
500 +  shift = (((uintptr_t)mptr % WORDSIZE) * CHAR_BIT) ^ SIZE(INVERT_MASK);
501 +  mask = SIZE(MASK) << shift;
502  
503    wopval = (UWORD)opval << shift;
504    woldval = __atomic_load_n (wptr, __ATOMIC_RELAXED);
505 @@ -136,9 +136,9 @@
506  
507    pre_barrier (smodel);
508  
509 -  wptr = (UWORD *)mptr;
510 -  shift = 0;
511 -  mask = -1;
512 +  wptr = (UWORD *)((uintptr_t)mptr & -WORDSIZE);
513 +  shift = (((uintptr_t)mptr % WORDSIZE) * CHAR_BIT) ^ SIZE(INVERT_MASK);
514 +  mask = SIZE(MASK) << shift;
515  
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)
522 @@ -1,3 +1,8 @@
523 +2015-01-21  Andrew Waterman <waterman@cs.berkeley.edu>
524 +
525 +       * fop_n.c (libat_fetch_op): Align address to word boundary.
526 +       (libat_op_fetch): Likewise.
527 +
528  2014-12-19  Release Manager
529  
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)
535 @@ -614,7 +614,6 @@
536  WARN_FLAGS
537  EXTRA_FLAGS
538  BACKTRACE_FILE
539 -multi_basedir
540  OTOOL64
541  OTOOL
542  LIPO
543 @@ -680,6 +679,7 @@
544  build_vendor
545  build_cpu
546  build
547 +multi_basedir
548  target_alias
549  host_alias
550  build_alias
551 @@ -721,6 +721,7 @@
552  ac_subst_files=''
553  ac_user_opts='
554  enable_option_checking
555 +enable_multilib
556  enable_maintainer_mode
557  with_target_subdir
558  enable_shared
559 @@ -729,7 +730,6 @@
560  enable_fast_install
561  with_gnu_ld
562  enable_libtool_lock
563 -enable_multilib
564  with_system_libunwind
565  '
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)
580  
581  Optional Packages:
582    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
583 @@ -2451,6 +2451,46 @@
584  ac_config_headers="$ac_config_headers config.h"
585  
586  
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 ;;
593 +  no)  multilib=no ;;
594 +  *)   as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
595 + esac
596 +else
597 +  multilib=yes
598 +fi
599 +
600 +
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.
604 +
605 +if test "$srcdir" = "."; then
606 +  if test "$with_target_subdir" != "."; then
607 +    multi_basedir="$srcdir/$with_multisrctop../.."
608 +  else
609 +    multi_basedir="$srcdir/$with_multisrctop.."
610 +  fi
611 +else
612 +  multi_basedir="$srcdir/.."
613 +fi
614 +
615 +
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
621 +fi
622 +
623 +ac_config_commands="$ac_config_commands default-1"
624 +
625 +fi
626 +
627  ac_aux_dir=
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"
637  
638  #if HAVE_DLFCN_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"
646  
647  #if HAVE_DLFCN_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
651    # library exists.
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 ;;
657 -  no)  multilib=no ;;
658 -  *)   as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
659 - esac
660 -else
661 -  multilib=yes
662 -fi
663 -
664 -
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.
668 -
669 -if test "$srcdir" = "."; then
670 -  if test "$with_target_subdir" != "."; then
671 -    multi_basedir="$srcdir/$with_multisrctop../.."
672 -  else
673 -    multi_basedir="$srcdir/$with_multisrctop.."
674 -  fi
675 -else
676 -  multi_basedir="$srcdir/.."
677 -fi
678 -
679 -
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
685 -fi
686 -
687 -ac_config_commands="$ac_config_commands default-1"
688 -
689    BACKTRACE_FILE="backtrace.lo simple.lo"
690  else
691    ac_fn_c_check_header_mongrel "$LINENO" "unwind.h" "ac_cv_header_unwind_h" "$ac_includes_default"
692 @@ -13128,7 +13131,21 @@
693  # INIT-COMMANDS
694  #
695  
696 +srcdir="$srcdir"
697 +host="$host"
698 +target="$target"
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}
705 +CC="$CC"
706 +CXX="$CXX"
707 +GFORTRAN="$GFORTRAN"
708 +GCJ="$GCJ"
709  
710 +
711  # The HP-UX ksh and POSIX shell print the target directory to stdout
712  # if CDPATH is set.
713  (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
714 @@ -13388,20 +13405,6 @@
715  
716  
717  
718 -srcdir="$srcdir"
719 -host="$host"
720 -target="$target"
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}
727 -CC="$CC"
728 -CXX="$CXX"
729 -GFORTRAN="$GFORTRAN"
730 -GCJ="$GCJ"
731 -
732  GCC="$GCC"
733  CC="$CC"
734  acx_cv_header_stdint="$acx_cv_header_stdint"
735 @@ -13434,8 +13437,8 @@
736  do
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 @@
746  
747  
748    case $ac_file$ac_mode in
749 +    "default-1":C)
750 +# Only add multilib support code if we just rebuilt the top-level
751 +# Makefile.
752 +case " $CONFIG_FILES " in
753 + *" Makefile "*)
754 +   ac_file=Makefile . ${multi_basedir}/config-ml.in
755 +   ;;
756 +esac ;;
757      "libtool":C)
758  
759      # See if we are running on zsh, and set the options which allow our
760 @@ -14663,14 +14674,6 @@
761    chmod +x "$ofile"
762  
763   ;;
764 -    "default-1":C)
765 -# Only add multilib support code if we just rebuilt the top-level
766 -# Makefile.
767 -case " $CONFIG_FILES " in
768 - *" Makefile "*)
769 -   ac_file=Makefile . ${multi_basedir}/config-ml.in
770 -   ;;
771 -esac ;;
772      "gstdint.h":C)
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)
779 @@ -1,3 +1,8 @@
780 +2015-01-26  Matthias Klose  <doko@ubuntu.com>
781 +
782 +       * configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
783 +       * configure: Regenerate.
784 +
785  2014-12-19  Release Manager
786  
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)
792 @@ -34,6 +34,10 @@
793  AC_CONFIG_SRCDIR(backtrace.h)
794  AC_CONFIG_HEADER(config.h)
795  
796 +if test -n "${with_target_subdir}"; then
797 +  AM_ENABLE_MULTILIB(, ..)
798 +fi
799 +
800  AC_CANONICAL_SYSTEM
801  target_alias=${target_alias-$host_alias}
802  
803 @@ -83,7 +87,6 @@
804  if test -n "${with_target_subdir}"; then
805    # We are compiling a GCC library.  We can assume that the unwind
806    # library exists.
807 -  AM_ENABLE_MULTILIB(, ..)
808    BACKTRACE_FILE="backtrace.lo simple.lo"
809  else
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);
818  
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)
828 @@ -1,3 +1,12 @@
829 +2015-01-20  Marek Polacek  <polacek@redhat.com>
830 +
831 +       Backport from mainline
832 +       2014-06-23  Marek Polacek  <polacek@redhat.com>
833 +
834 +       PR c/61553
835 +       * c-common.c (get_atomic_generic_size): Don't segfault if the
836 +       type doesn't have a size.
837 +
838  2014-12-19  Release Manager
839  
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 @@
846                     function);
847           return 0;
848         }
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;
852        if (size != size_0)
853         {
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");
862  
863 -  DECL_INITIAL (decl) = value;
864 +  if (value != error_mark_node || TREE_CODE (decl) != FUNCTION_DECL)
865 +    DECL_INITIAL (decl) = value;
866  
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)
873 @@ -1,3 +1,12 @@
874 +2015-02-01  Jakub Jelinek  <jakub@redhat.com>
875 +
876 +       Backported from mainline
877 +       2015-01-27  Jakub Jelinek  <jakub@redhat.com>
878 +
879 +       PR c/64766
880 +       * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL
881 +       of FUNCTION_DECLs with error_mark_node.
882 +
883  2014-12-19  Release Manager
884  
885         * GCC 4.8.4 released.
886 Index: gcc/DATESTAMP
887 ===================================================================
888 --- gcc/DATESTAMP       (.../tags/gcc_4_8_4_release)    (revision 220382)
889 +++ gcc/DATESTAMP       (.../branches/gcc-4_8-branch)   (revision 220382)
890 @@ -1 +1 @@
891 -20141219
892 +20150203
893 Index: gcc/rtlanal.c
894 ===================================================================
895 --- gcc/rtlanal.c       (.../tags/gcc_4_8_4_release)    (revision 220382)
896 +++ gcc/rtlanal.c       (.../branches/gcc-4_8-branch)   (revision 220382)
897 @@ -873,6 +873,17 @@
898  int
899  reg_set_p (const_rtx reg, const_rtx insn)
900  {
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)
904 +    {
905 +      for (int i = 0; i < XVECLEN (PATTERN (insn), 0); ++i)
906 +       if (reg_set_p (reg, XVECEXP (PATTERN (insn), 0, i)))
907 +         return true;
908 +
909 +      return false;
910 +    }
911 +
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.  */
914    if (INSN_P (insn)
915 @@ -884,7 +895,7 @@
916                                                GET_MODE (reg), REGNO (reg)))
917                   || MEM_P (reg)
918                   || find_reg_fusage (insn, CLOBBER, reg)))))
919 -    return 1;
920 +    return true;
921  
922    return set_of (reg, insn) != NULL_RTX;
923  }
924 Index: gcc/DEV-PHASE
925 ===================================================================
926 --- gcc/DEV-PHASE       (.../tags/gcc_4_8_4_release)    (revision 220382)
927 +++ gcc/DEV-PHASE       (.../branches/gcc-4_8-branch)   (revision 220382)
928 @@ -0,0 +1 @@
929 +prerelease
930 Index: gcc/ChangeLog
931 ===================================================================
932 --- gcc/ChangeLog       (.../tags/gcc_4_8_4_release)    (revision 220382)
933 +++ gcc/ChangeLog       (.../branches/gcc-4_8-branch)   (revision 220382)
934 @@ -1,3 +1,137 @@
935 +2015-02-01  Jakub Jelinek  <jakub@redhat.com>
936 +
937 +       Backported from mainline
938 +       2015-01-27  Jakub Jelinek  <jakub@redhat.com>
939 +
940 +       PR rtl-optimization/61058
941 +       * jump.c (cleanup_barriers): Update basic block boundaries
942 +       if BLOCK_FOR_INSN is non-NULL on PREV.
943 +
944 +       2013-04-16  Steven Bosscher  <steven@gcc.gnu.org>
945 +
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.
949 +
950 +       2015-01-26  Jakub Jelinek  <jakub@redhat.com>
951 +
952 +       * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
953 +       OPTION_MASK_QUAD_MEMORY_ATOMIC.
954 +
955 +       2015-01-12  Jakub Jelinek  <jakub@redhat.com>
956 +
957 +       PR tree-optimization/64563
958 +       * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
959 +       instead of != VR_VARYING.
960 +
961 +       PR target/64513
962 +       * config/i386/i386.c (ix86_expand_prologue): Add
963 +       REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
964 +
965 +2015-01-29  Ilya Tocar  <ilya.tocar@intel.com>
966 +
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.
970 +
971 +2015-01-27  Mikael Pettersson  <mikpelinux@gmail.com>
972 +
973 +       Backport from mainline
974 +
975 +       2013-09-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
976 +
977 +       PR middle-end/57748
978 +       * expr.c (expand_assignment): Remove misalignp code path.
979 +
980 +       2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
981 +
982 +       PR middle-end/57748
983 +       * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
984 +       inner_reference_p.
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.
990 +
991 +2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
992 +
993 +       Backport from mainline
994 +       2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
995 +
996 +       PR target/64795
997 +       * config/i386/i386.md (*movdi_internal): Also check operand 0
998 +       to determine TYPE_LEA operand.
999 +       (*movsi_internal): Ditto.
1000 +
1001 +       Backport from mainline
1002 +       2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
1003 +
1004 +       * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
1005 +       alternative 1.
1006 +
1007 +2015-01-15  Martin Liska  <mliska@suse.cz>
1008 +
1009 +       Backport from mainline
1010 +       2014-11-27  Richard Biener  <rguenther@suse.de>
1011 +
1012 +       PR middle-end/63704
1013 +       * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
1014 +       and instead return false when !fstrict-aliasing.
1015 +
1016 +2015-01-14  Renlin Li  <renlin.li@arm.com>
1017 +
1018 +       Backport form mainline
1019 +       2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1020 +
1021 +       PR target/61413
1022 +       * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
1023 +       of __ARM_SIZEOF_WCHAR_T.
1024 +
1025 +2015-01-13  Pat Haugen  <pthaugen@us.ibm.com>
1026 +
1027 +       Backport from mainline
1028 +       2014-12-20  Segher Boessenkool  <segher@kernel.crashing.org>
1029 +
1030 +       PR target/64358
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].
1037 +
1038 +2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
1039 +
1040 +       Backport form mainline
1041 +       2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
1042 +
1043 +       PR target/64479
1044 +       * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
1045 +
1046 +2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
1047 +
1048 +       Backport from mainline:
1049 +       2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
1050 +
1051 +       PR target/64409
1052 +       * config/i386/i386.c (ix86_function_type_abi): Issue an error
1053 +       when ms_abi attribute is used with x32.
1054 +
1055 +2014-12-19  H.J. Lu  <hongjiu.lu@intel.com>
1056 +
1057 +       Backported from mainline
1058 +       2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1059 +
1060 +       PR rtl-optimization/64037
1061 +       * combine.c (setup_incoming_promotions): Pass the argument
1062 +       before any promotions happen to promote_function_mode.
1063 +
1064 +2014-12-19  Jakub Jelinek  <jakub@redhat.com>
1065 +
1066 +       * BASE-VER: Set to 4.8.5.
1067 +       * DEV-PHASE: Set to prerelease.
1068 +
1069  2014-12-19  Release Manager
1070  
1071         * GCC 4.8.4 released.
1072 @@ -382,7 +516,7 @@
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
1075         or in_call_delay.
1076 -       
1077 +
1078  2014-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1079  
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)
1085 @@ -0,0 +1,6 @@
1086 +/* { dg-do compile { target { ! { ia32 } } } } */
1087 +/* { dg-require-effective-target maybe_x32 } */
1088 +/* { dg-options "-O0 -mx32" } */
1089 +
1090 +int a;
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)
1096 @@ -150,6 +150,8 @@
1097  
1098  /* emmintrin.h */
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)
1109 @@ -1,5 +1,5 @@
1110  /* PR rtl-optimization/57003 */
1111 -/* { dg-do run } */
1112 +/* { dg-do run { target { ! x32 } } } */
1113  /* { dg-options "-O2 -maccumulate-outgoing-args" } */
1114  
1115  #define N 2001
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)
1120 @@ -88,6 +88,8 @@
1121  #endif
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)
1129 @@ -219,6 +221,8 @@
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)
1142 @@ -1,5 +1,5 @@
1143  /* PR target/60516 */
1144 -/* { dg-do compile } */
1145 +/* { dg-do compile { target { ! x32 } } } */
1146  /* { dg-options "-O2" } */
1147  
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)
1153 @@ -0,0 +1,17 @@
1154 +/* PR target/64513 */
1155 +/* { dg-do compile } */
1156 +/* { dg-options "-O2 -mstack-arg-probe" } */
1157 +
1158 +struct A {};
1159 +struct B { struct A y; };
1160 +int foo (struct A);
1161 +
1162 +int
1163 +bar (int x)
1164 +{
1165 +  struct B b;
1166 +  int c;
1167 +  while (x--)
1168 +    c = foo (b.y);
1169 +  return c;
1170 +}
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)
1175 @@ -0,0 +1,20 @@
1176 +! PR fortran/64528
1177 +! { dg-do compile }
1178 +! { dg-options "-O -fno-tree-dce -fno-tree-ccp" }
1179 +
1180 +program pr64528
1181 +  interface
1182 +     subroutine foo(x)
1183 +       integer, value :: x
1184 +     end subroutine foo
1185 +  end interface
1186 +  integer :: x
1187 +  x = 10
1188 +  call foo(x)
1189 +  if(x .ne. 10) then
1190 +  endif
1191 +end program pr64528
1192 +subroutine foo(x)
1193 +  integer, value :: x
1194 +  x = 11
1195 +end subroutine foo
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)
1200 @@ -0,0 +1,53 @@
1201 +! { dg-do run }
1202 +!
1203 +! PR 63733: [4.8/4.9/5 Regression] [OOP] wrong resolution for OPERATOR generics
1204 +!
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>
1208 +
1209 +module overwrite
1210 +  type parent
1211 +   contains
1212 +     procedure :: sum => sum_parent
1213 +     generic   :: operator(+) => sum
1214 +  end type
1215 +
1216 +  type, extends(parent) ::  child
1217 +  contains
1218 +    procedure :: sum => sum_child
1219 +  end type
1220 +
1221 +contains
1222 +
1223 +  integer function sum_parent(op1,op2)
1224 +    implicit none
1225 +    class(parent), intent(in) :: op1, op2
1226 +    sum_parent = 0
1227 +  end function
1228 +
1229 +  integer function sum_child(op1,op2)
1230 +    implicit none
1231 +    class(child) , intent(in) :: op1
1232 +    class(parent), intent(in) :: op2
1233 +    sum_child = 1
1234 +  end function
1235 +
1236 +end module
1237 +
1238 +program drive
1239 +  use overwrite
1240 +  implicit none
1241 +
1242 +  type(parent) :: m1, m2
1243 +  class(parent), pointer :: mres
1244 +  type(child)  :: h1, h2
1245 +  class(parent), pointer :: hres
1246 +
1247 +  if (m1 + m2 /= 0) call abort()
1248 +  if (h1 + m2 /= 1) call abort()
1249 +  if (h1%sum(h2) /= 1) call abort()
1250 +
1251 +end
1252 +
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)
1258 @@ -0,0 +1,30 @@
1259 +! { dg-do compile }
1260 +!
1261 +! PR 64244: [4.8/4.9/5 Regression] ICE at class.c:236 when using non_overridable
1262 +!
1263 +! Contributed by OndÅ™ej ÄŒertík <ondrej.certik@gmail.com>
1264 +
1265 +module m
1266 +  implicit none
1267 +
1268 +  type :: A
1269 +  contains
1270 +    generic :: f => g
1271 +    procedure, non_overridable :: g
1272 +  end type
1273 +
1274 +contains
1275 +
1276 +  subroutine g(this)
1277 +    class(A), intent(in) :: this
1278 +  end subroutine
1279 +
1280 +end module
1281 +
1282 +
1283 +program test_non_overridable
1284 +  use m, only: A
1285 +  implicit none
1286 +  class(A), allocatable :: h
1287 +  call h%f()
1288 +end
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)
1293 @@ -0,0 +1,12 @@
1294 +! { dg-do run }
1295 +! { dg-options "-Warray-temporaries" }
1296 +! PR 56867 - substrings were not checked for dependency.
1297 +program main
1298 +  character(len=4) :: a
1299 +  character(len=4) :: c(3)
1300 +  c(1) = 'abcd'
1301 +  c(2) = '1234'
1302 +  c(3) = 'wxyz'
1303 +  c(:)(1:2) = c(2)(2:3)   ! { dg-warning "array temporary" }
1304 +  if (c(3) .ne. '23yz') call abort
1305 +end program main
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)
1310 @@ -0,0 +1,10 @@
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-*-* } } */
1315 +
1316 +void
1317 +foo (void)
1318 +{
1319 +  __builtin_unreachable ();
1320 +}
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)
1325 @@ -0,0 +1,9 @@
1326 +/* PR c/64766 */
1327 +/* { dg-do compile } */
1328 +
1329 +void
1330 +foo ()
1331 +{
1332 +}
1333 +
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)
1339 @@ -0,0 +1,14 @@
1340 +/* PR tree-optimization/64563 */
1341 +/* { dg-do compile } */
1342 +/* { dg-options "-Os -Wtype-limits" } */
1343 +
1344 +int a, b, c, d, f;
1345 +unsigned int e;
1346 +
1347 +void
1348 +foo (void)
1349 +{
1350 +  d = b = (a != (e | 4294967288UL));
1351 +  if (!d)
1352 +    c = f || b;
1353 +}
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)
1358 @@ -1,3 +1,103 @@
1359 +2015-02-01  Jakub Jelinek  <jakub@redhat.com>
1360 +
1361 +       Backported from mainline
1362 +       2015-01-27  Jakub Jelinek  <jakub@redhat.com>
1363 +
1364 +       PR rtl-optimization/61058
1365 +       * gcc.dg/pr61058.c: New test.
1366 +
1367 +       PR c/64766
1368 +       * gcc.dg/pr64766.c: New test.
1369 +
1370 +       2015-01-13  Jakub Jelinek  <jakub@redhat.com>
1371 +
1372 +       PR fortran/64528
1373 +       * gfortran.dg/pr64528.f90: New test.
1374 +
1375 +       2015-01-12  Jakub Jelinek  <jakub@redhat.com>
1376 +
1377 +       PR tree-optimization/64563
1378 +       * gcc.dg/pr64563.c: New test.
1379 +
1380 +       PR target/64513
1381 +       * gcc.target/i386/pr64513.c: New test.
1382 +
1383 +2015-01-29  Ilya Tocar  <ilya.tocar@intel.com>
1384 +
1385 +       * gcc.target/i386/sse-14.c: Test new intrinsic.
1386 +       * gcc.target/i386/sse-22.c: Ditto.
1387 +
1388 +2015-01-27  Mikael Pettersson  <mikpelinux@gmail.com>
1389 +
1390 +       Backport from mainline
1391 +
1392 +       2013-09-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1393 +
1394 +       PR middle-end/57748
1395 +       * gcc.dg/torture/pr57748-1.c: New test.
1396 +       * gcc.dg/torture/pr57748-2.c: New test.
1397 +
1398 +       2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1399 +
1400 +       PR middle-end/57748
1401 +       * gcc.dg/torture/pr57748-3.c: New test.
1402 +       * gcc.dg/torture/pr57748-4.c: New test.
1403 +
1404 +2015-01-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1405 +
1406 +       PR fortran/56867
1407 +       * gfortran.dg/dependency_45.f90:  New test.
1408 +
1409 +2015-01-24  Thomas Koenig  <tkoenig@netcologne.de>
1410 +
1411 +       Backport from trunk
1412 +       PR fortran/57023
1413 +       * gfortran.dg/internal_pack_15.f90:  New test.
1414 +
1415 +2015-01-20  Marek Polacek  <polacek@redhat.com>
1416 +
1417 +       Backport from mainline
1418 +       2014-06-23  Marek Polacek  <polacek@redhat.com>
1419 +
1420 +       PR c/61553
1421 +       * c-c++-common/pr61553.c: New test.
1422 +
1423 +2015-01-12  Janus Weil  <janus@gcc.gnu.org>
1424 +
1425 +       Backport from mainline
1426 +       PR fortran/63733
1427 +       * gfortran.dg/typebound_operator_20.f90: New.
1428 +
1429 +2014-12-28  H.J. Lu  <hongjiu.lu@intel.com>
1430 +
1431 +       Backport from mainline:
1432 +       2014-12-28  H.J. Lu  <hongjiu.lu@intel.com>
1433 +
1434 +       * gcc.target/i386/pr57003.c: Skip on x32.
1435 +       * gcc.target/i386/pr60516.c: Likewise.
1436 +
1437 +2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>
1438 +
1439 +       Backport from mainline:
1440 +       2014-12-26  H.J. Lu  <hongjiu.lu@intel.com>
1441 +
1442 +       PR target/64409
1443 +       * gcc.target/i386/pr64409.c: New test.
1444 +
1445 +2014-12-23  Janus Weil  <janus@gcc.gnu.org>
1446 +
1447 +       Backport from mainline
1448 +       PR fortran/64244
1449 +       * gfortran.dg/typebound_call_26.f90: New.
1450 +
1451 +2014-12-19  H.J. Lu  <hongjiu.lu@intel.com>
1452 +
1453 +       Backported from mainline
1454 +       2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1455 +
1456 +       PR rtl-optimization/64037
1457 +       * g++.dg/pr64037.C: New test.
1458 +
1459  2014-12-19  Release Manager
1460  
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)
1466 @@ -0,0 +1,27 @@
1467 +// { dg-do run { target i?86-*-* x86_64-*-* } }
1468 +// { dg-options "-std=c++11 -Os" }
1469 +
1470 +enum class X : unsigned char {
1471 +  V = 2,
1472 +};
1473 +
1474 +static void
1475 +__attribute__((noinline,noclone))
1476 +foo(unsigned &out, unsigned a, X b)
1477 +{
1478 +  out = static_cast<unsigned>(b);
1479 +}
1480 +
1481 +int main()
1482 +{
1483 +  unsigned deadbeef = 0xDEADBEEF;
1484 +  asm volatile ("" : "+d" (deadbeef), "+c" (deadbeef));
1485 +
1486 +  unsigned out;
1487 +  foo(out, 2, X::V);
1488 +
1489 +  if (out != 2)
1490 +    __builtin_abort ();
1491 +
1492 +  return 0;
1493 +}
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)
1498 @@ -0,0 +1,12 @@
1499 +// PR c++/64297
1500 +// { dg-do compile { target c++11 } }
1501 +
1502 +struct A {
1503 +  typedef int X;
1504 +  template <int> X m_fn1() const;
1505 +};
1506 +template <typename> struct is_function {};
1507 +is_function<int() const &> i;
1508 +struct D {
1509 +  template <typename Y, typename = is_function<Y>> D(Y);
1510 +} b(&A::m_fn1<0>);
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)
1515 @@ -0,0 +1,18 @@
1516 +// PR c++/64487
1517 +
1518 +struct foo {
1519 +      int member;
1520 +};
1521 +
1522 +template < int N>
1523 +struct bar {};
1524 +
1525 +template <int N>
1526 +struct qux {
1527 +        static bar<N+__builtin_offsetof(foo,member)> static_member;
1528 +};
1529 +
1530 +template <int N>
1531 +bar<N+__builtin_offsetof(foo,member)> qux<N>::static_member;
1532 +
1533 +int main() { }
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)
1538 @@ -0,0 +1,7 @@
1539 +// PR c++/64251
1540 +
1541 +class DictionaryValue {};
1542 +template <typename T> void CreateValue(T) {
1543 +  DictionaryValue(0);
1544 +  CreateValue(0);
1545 +}
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)
1550 @@ -0,0 +1,8 @@
1551 +/* PR c/61553 */
1552 +/* { dg-do compile } */
1553 +
1554 +void
1555 +foo (char *s)
1556 +{
1557 +  __atomic_store (s, (void *) 0, __ATOMIC_SEQ_CST); /* { dg-error "size mismatch" } */
1558 +}
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
1565       complex.  */
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);
1575  }
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)
1580 @@ -1,3 +1,15 @@
1581 +2015-01-13  Jason Merrill  <jason@redhat.com>
1582 +
1583 +       PR c++/64487
1584 +       * semantics.c (finish_offsetof): Handle templates here.
1585 +       * parser.c (cp_parser_builtin_offsetof): Not here.
1586 +
1587 +       PR c++/64251
1588 +       * decl2.c (mark_used): Don't mark if in_template_function.
1589 +
1590 +       PR c++/64297
1591 +       * typeck.c (apply_memfn_quals): Correct wrong TYPE_CANONICAL.
1592 +
1593  2014-12-19  Release Manager
1594  
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 @@
1601  tree
1602  finish_offsetof (tree expr)
1603  {
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)
1607 +    {
1608 +      expr = build1 (OFFSETOF_EXPR, size_type_node, expr);
1609 +      return expr;
1610 +    }
1611 +
1612    if (TREE_CODE (expr) == PSEUDO_DTOR_EXPR)
1613      {
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 @@
1620        --function_depth;
1621      }
1622  
1623 -  if (processing_template_decl)
1624 +  if (processing_template_decl || in_template_function ())
1625      return true;
1626  
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 @@
1633      }
1634  
1635   success:
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);
1640 -  else
1641 -    expr = finish_offsetof (expr);
1642 +  expr = finish_offsetof (expr);
1643  
1644   failure:
1645    parser->integral_constant_expression_p = save_ice_p;
1646 Index: gcc/jump.c
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))
1652             delete_insn (insn);
1653           else if (prev != PREV_INSN (insn))
1654 -           reorder_insns (insn, insn, prev);
1655 +           {
1656 +             basic_block bb = BLOCK_FOR_INSN (prev);
1657 +             rtx end = PREV_INSN (insn);
1658 +             reorder_insns_nobb (insn, insn, prev);
1659 +             if (bb)
1660 +               {
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
1668 +                    pass at all.  */
1669 +                 BB_END (bb) = prev;
1670 +                 do
1671 +                   {
1672 +                     prev = NEXT_INSN (prev);
1673 +                     if (prev != insn && BLOCK_FOR_INSN (prev) == bb)
1674 +                       BLOCK_FOR_INSN (prev) = NULL;
1675 +                   }
1676 +                 while (prev != end);
1677 +               }
1678 +           }
1679         }
1680      }
1681    return 0;
1682 Index: gcc/expr.c
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 @@
1687        int unsignedp;
1688        int volatilep = 0;
1689        tree tem;
1690 -      bool misalignp;
1691 -      rtx mem = NULL_RTX;
1692  
1693        push_temp_slots ();
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);
1698  
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))
1708 -       {
1709 -         struct expand_operand ops[2];
1710 +      to_rtx = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE);
1711  
1712 -         misalignp = true;
1713 -         to_rtx = gen_reg_rtx (mode);
1714 -         mem = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE);
1715 -
1716 -         /* If the misaligned store doesn't overwrite all bits, perform
1717 -            rmw cycle on MEM.  */
1718 -         if (bitsize != GET_MODE_BITSIZE (mode))
1719 -           {
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);
1725 -
1726 -             mem = copy_rtx (mem);
1727 -           }
1728 -       }
1729 -      else
1730 -       {
1731 -         misalignp = false;
1732 -         to_rtx = expand_expr (tem, NULL_RTX, VOIDmode, EXPAND_WRITE);
1733 -       }
1734 -
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);
1740         }
1741  
1742 -      if (misalignp)
1743 -       {
1744 -         struct expand_operand ops[2];
1745 -
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);
1751 -       }
1752 -
1753        if (result)
1754         preserve_temp_slots (result);
1755        pop_temp_slots ();
1756 @@ -5262,7 +5216,7 @@
1757        temp = expand_expr_real (exp, tmp_target, GET_MODE (target),
1758                                (call_param_p
1759                                 ? EXPAND_STACK_PARM : EXPAND_NORMAL),
1760 -                              &alt_rtl);
1761 +                              &alt_rtl, false);
1762      }
1763  
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
1769 -   recursively.  */
1770 +   recursively.
1771  
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.  */
1780 +
1781  rtx
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)
1786  {
1787    rtx ret;
1788  
1789 @@ -7897,7 +7861,8 @@
1790        return ret ? ret : const0_rtx;
1791      }
1792  
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);
1796    return ret;
1797  }
1798  
1799 @@ -9190,7 +9155,8 @@
1800  
1801  rtx
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)
1806  {
1807    rtx op0, op1, temp, decl_rtl;
1808    tree type;
1809 @@ -9336,7 +9302,7 @@
1810  
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 @@
1819      case SAVE_EXPR:
1820        {
1821         tree val = treeop0;
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);
1825  
1826         if (!SAVE_EXPR_RESOLVED_P (exp))
1827           {
1828 @@ -9706,6 +9673,7 @@
1829           MEM_VOLATILE_P (temp) = 1;
1830         if (modifier != EXPAND_WRITE
1831             && modifier != EXPAND_MEMORY
1832 +           && !inner_reference_p
1833             && mode != BLKmode
1834             && align < GET_MODE_ALIGNMENT (mode))
1835           {
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.  */
1839         orig_op0 = op0
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)))
1844 -                             != INTEGER_CST)
1845 -                         && modifier != EXPAND_STACK_PARM
1846 -                         ? target : NULL_RTX),
1847 -                        VOIDmode,
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)))
1856 +                                  != INTEGER_CST)
1857 +                              && modifier != EXPAND_STACK_PARM
1858 +                              ? target : NULL_RTX),
1859 +                             VOIDmode,
1860 +                             (modifier == EXPAND_INITIALIZER
1861 +                              || modifier == EXPAND_CONST_ADDRESS
1862 +                              || modifier == EXPAND_STACK_PARM)
1863 +                             ? modifier : EXPAND_NORMAL,
1864 +                             NULL, true);
1865  
1866  
1867         /* If the bitfield is volatile, we want to access it in the
1868 @@ -10302,17 +10271,18 @@
1869           {
1870             /* See the normal_inner_ref case for the rationale.  */
1871             orig_op0
1872 -             = expand_expr (tem,
1873 -                            (TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
1874 -                             && (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
1875 -                                 != INTEGER_CST)
1876 -                             && modifier != EXPAND_STACK_PARM
1877 -                             ? target : NULL_RTX),
1878 -                            VOIDmode,
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)))
1886 +                                      != INTEGER_CST)
1887 +                                  && modifier != EXPAND_STACK_PARM
1888 +                                  ? target : NULL_RTX),
1889 +                                 VOIDmode,
1890 +                                 (modifier == EXPAND_INITIALIZER
1891 +                                  || modifier == EXPAND_CONST_ADDRESS
1892 +                                  || modifier == EXPAND_STACK_PARM)
1893 +                                 ? modifier : EXPAND_NORMAL,
1894 +                                 NULL, true);
1895  
1896             if (MEM_P (orig_op0))
1897               {
1898 @@ -10339,8 +10309,8 @@
1899        }
1900  
1901        if (!op0)
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);
1906  
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)));
1912             }
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))
1919 -           {
1920 -             rtx reg, insn;
1921 -
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
1925 -                fail.  */
1926 -             reg = gen_reg_rtx (mode);
1927 -
1928 -             /* Nor can the insn generator.  */
1929 -             insn = GEN_FCN (icode) (reg, op0);
1930 -             emit_insn (insn);
1931 -             return reg;
1932 -           }
1933 -         else if (STRICT_ALIGNMENT
1934 +         else if (modifier != EXPAND_WRITE
1935 +                  && modifier != EXPAND_MEMORY
1936 +                  && !inner_reference_p
1937                    && mode != BLKmode
1938                    && MEM_ALIGN (op0) < GET_MODE_ALIGNMENT (mode))
1939             {
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));
1944 -             rtx new_rtx
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)
1952 +               {
1953 +                 rtx reg, insn;
1954  
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
1959 +                    fail.  */
1960 +                 reg = gen_reg_rtx (mode);
1961  
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));
1967 -             else
1968 -               emit_move_insn (new_with_op0_mode, op0);
1969 +                 /* Nor can the insn generator.  */
1970 +                 insn = GEN_FCN (icode) (reg, op0);
1971 +                 emit_insn (insn);
1972 +                 return reg;
1973 +               }
1974 +             else if (STRICT_ALIGNMENT)
1975 +               {
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));
1980 +                 rtx new_rtx
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);
1984  
1985 -             op0 = new_rtx;
1986 +                 gcc_assert (!TREE_ADDRESSABLE (exp));
1987 +
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));
1993 +                 else
1994 +                   emit_move_insn (new_with_op0_mode, op0);
1995 +
1996 +                 op0 = new_rtx;
1997 +               }
1998             }
1999  
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);
2007  
2008      default:
2009        return expand_expr_real_2 (&ops, target, tmode, modifier);
2010 Index: gcc/expr.h
2011 ===================================================================
2012 --- gcc/expr.h  (.../tags/gcc_4_8_4_release)    (revision 220382)
2013 +++ gcc/expr.h  (.../branches/gcc-4_8-branch)   (revision 220382)
2014 @@ -41,7 +41,8 @@
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,
2023                       EXPAND_MEMORY};
2024 @@ -428,9 +429,9 @@
2025  
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);
2035  
2036 @@ -441,13 +442,13 @@
2037  expand_expr (tree exp, rtx target, enum machine_mode mode,
2038              enum expand_modifier modifier)
2039  {
2040 -  return expand_expr_real (exp, target, mode, modifier, NULL);
2041 +  return expand_expr_real (exp, target, mode, modifier, NULL, false);
2042  }
2043  
2044  static inline rtx
2045  expand_normal (tree exp)
2046  {
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);
2049  }
2050  
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 @@
2057    gfc_user_op *uop;
2058    gfc_intrinsic_op i;
2059    const char *gname;
2060 +  gfc_typebound_proc* tbo;
2061 +  gfc_expr* tb_base;
2062  
2063    sym = NULL;
2064  
2065 @@ -3573,8 +3575,50 @@
2066  
2067    i = fold_unary_intrinsic (e->value.op.op);
2068  
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);
2073 +  else
2074 +    switch (i)
2075 +      {
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); \
2081 +    if (!tbo) \
2082 +      tbo = matching_typebound_op (&tb_base, actual, \
2083 +                                  INTRINSIC_##comp##_OS, NULL, &gname); \
2084 +    break;
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
2092 +
2093 +       default:
2094 +         tbo = matching_typebound_op (&tb_base, actual, i, NULL, &gname);
2095 +         break;
2096 +      }
2097 +
2098 +  /* If there is a matching typebound-operator, replace the expression with
2099 +      a call to it and succeed.  */
2100 +  if (tbo)
2101      {
2102 +      gcc_assert (tb_base);
2103 +      build_compcall_for_operator (e, actual, tb_base, tbo, gname);
2104 +
2105 +      if (gfc_resolve_expr (e) == FAILURE)
2106 +       return MATCH_ERROR;
2107 +      else
2108 +       return MATCH_YES;
2109 +    }
2110
2111 +  if (i == INTRINSIC_USER)
2112 +    {
2113        for (ns = gfc_current_ns; ns; ns = ns->parent)
2114         {
2115           uop = gfc_find_uop (e->value.op.uop->name, ns);
2116 @@ -3623,54 +3667,6 @@
2117  
2118    if (sym == NULL)
2119      {
2120 -      gfc_typebound_proc* tbo;
2121 -      gfc_expr* tb_base;
2122 -
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);
2127 -      else
2128 -       switch (i)
2129 -         {
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); \
2135 -    if (!tbo) \
2136 -      tbo = matching_typebound_op (&tb_base, actual, \
2137 -                                  INTRINSIC_##comp##_OS, NULL, &gname); \
2138 -    break;
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
2146 -
2147 -           default:
2148 -             tbo = matching_typebound_op (&tb_base, actual, i, NULL, &gname);
2149 -             break;
2150 -         }
2151 -
2152 -      /* If there is a matching typebound-operator, replace the expression with
2153 -        a call to it and succeed.  */
2154 -      if (tbo)
2155 -       {
2156 -         gfc_try result;
2157 -
2158 -         gcc_assert (tb_base);
2159 -         build_compcall_for_operator (e, actual, tb_base, tbo, gname);
2160 -
2161 -         result = gfc_resolve_expr (e);
2162 -         if (result == FAILURE)
2163 -           return MATCH_ERROR;
2164 -
2165 -         return MATCH_YES;
2166 -       }
2167 -
2168        /* Don't use gfc_free_actual_arglist().  */
2169        free (actual->next);
2170        free (actual);
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 @@
2176  
2177    for (ss = rss; ss != gfc_ss_terminator; ss = ss->next)
2178      {
2179 -      if (ss->info->type != GFC_SS_SECTION)
2180 -       continue;
2181  
2182        ss_expr = ss->info->expr;
2183  
2184 +      if (ss->info->type != GFC_SS_SECTION)
2185 +       {
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)
2190 +           
2191 +           nDepend = gfc_check_dependency (dest_expr, ss_expr, false);
2192 +         continue;
2193 +       }
2194 +
2195        if (dest_expr->symtree->n.sym != ss_expr->symtree->n.sym)
2196         {
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)
2202 @@ -1,3 +1,42 @@
2203 +2015-02-01  Jakub Jelinek  <jakub@redhat.com>
2204 +
2205 +       Backported from mainline
2206 +       2015-01-13  Jakub Jelinek  <jakub@redhat.com>
2207 +
2208 +       PR fortran/64528
2209 +       * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
2210 +       on dummy args with VALUE attribute.
2211 +
2212 +2015-01-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
2213 +
2214 +       PR fortran/56867
2215 +       * trans-array.c (gfc_conv_resolve_dependencies):  Also check
2216 +       dependencies when there may be substrings of character arrays.
2217 +
2218 +2015-01-24  Thomas Koenig  <tkoenig@netcologne.de>
2219 +
2220 +       Backport from trunk
2221 +       PR fortran/57023
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.
2225 +
2226 +2015-01-12  Janus Weil  <janus@gcc.gnu.org>
2227 +
2228 +       Backport from mainline
2229 +       PR fortran/63733
2230 +       * interface.c (gfc_extend_expr): Look for type-bound operators before
2231 +       non-typebound ones.
2232 +
2233 +2014-12-23  Janus Weil  <janus@gcc.gnu.org>
2234 +
2235 +       Backport from mainline
2236 +       PR fortran/64244
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.
2241 +
2242  2014-12-19  Release Manager
2243  
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.  */
2251  
2252  static gfc_try
2253 -resolve_typebound_call (gfc_code* c, const char **name)
2254 +resolve_typebound_call (gfc_code* c, const char **name, bool *overridable)
2255  {
2256    gfc_actual_arglist* newactual;
2257    gfc_symtree* target;
2258 @@ -6072,6 +6072,10 @@
2259    if (resolve_typebound_generic_call (c->expr1, name) == FAILURE)
2260      return FAILURE;
2261  
2262 +  /* Pass along the NON_OVERRIDABLE attribute of the specific TBP. */
2263 +  if (overridable)
2264 +    *overridable = !c->expr1->value.compcall.tbp->non_overridable;
2265 +
2266    /* Transform into an ordinary EXEC_CALL for now.  */
2267  
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);
2272  
2273 -      if (resolve_typebound_call (code, &name) == FAILURE)
2274 +      if (resolve_typebound_call (code, &name, NULL) == FAILURE)
2275         return FAILURE;
2276  
2277        /* Use the generic name if it is there.  */
2278 @@ -6356,7 +6360,7 @@
2279      }
2280  
2281    if (st == NULL)
2282 -    return resolve_typebound_call (code, NULL);
2283 +    return resolve_typebound_call (code, NULL, NULL);
2284  
2285    if (resolve_ref (code->expr1) == FAILURE)
2286      return FAILURE;
2287 @@ -6369,10 +6373,10 @@
2288          || (!class_ref && st->n.sym->ts.type != BT_CLASS))
2289      {
2290        gfc_free_ref_list (new_ref);
2291 -      return resolve_typebound_call (code, NULL);
2292 +      return resolve_typebound_call (code, NULL, NULL);
2293      }
2294  
2295 -  if (resolve_typebound_call (code, &name) == FAILURE)
2296 +  if (resolve_typebound_call (code, &name, &overridable) == FAILURE)
2297      {
2298        gfc_free_ref_list (new_ref);
2299        return FAILURE;
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;
2322  }
2323  
2324 +/* Callback function for checking if an expression depends on a
2325 +   dummy variable which is any other than INTENT(IN).  */
2326  
2327 +static int
2328 +callback_dummy_intent_not_in (gfc_expr **ep,
2329 +                             int *walk_subtrees ATTRIBUTE_UNUSED,
2330 +                             void *data ATTRIBUTE_UNUSED)
2331 +{
2332 +  gfc_expr *e = *ep;
2333 +
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;
2337 +  else
2338 +    return 0;
2339 +}
2340 +
2341 +/* Auxiliary function to check if subexpressions have dummy variables which
2342 +   are not intent(in).
2343 +*/
2344 +
2345 +static bool
2346 +dummy_intent_not_in (gfc_expr **ep)
2347 +{
2348 +  return gfc_expr_walker (ep, callback_dummy_intent_not_in, NULL);
2349 +}
2350 +
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.  */
2359  
2360  bool
2361  gfc_full_array_ref_p (gfc_ref *ref, bool *contiguous)
2362 @@ -1672,7 +1701,8 @@
2363           && (!ref->u.ar.as
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])))
2369         lbound_OK = false;
2370        /* Check the upper bound.  */
2371        if (ref->u.ar.end[i]
2372 @@ -1679,7 +1709,8 @@
2373           && (!ref->u.ar.as
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])))
2379         ubound_OK = false;
2380        /* Check the stride.  */
2381        if (ref->u.ar.stride[i]
2382 Index: gcc/alias.c
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 @@
2387  static inline int
2388  mems_in_disjoint_alias_sets_p (const_rtx mem1, const_rtx mem2)
2389  {
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)));
2399 -
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)));
2404  }
2405  
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 @@
2412    if (lhs)
2413      expand_assignment (lhs, exp, false);
2414    else
2415 -    expand_expr_real_1 (exp, const0_rtx, VOIDmode, EXPAND_NORMAL, NULL);
2416 +    expand_expr (exp, const0_rtx, VOIDmode, EXPAND_NORMAL);
2417  
2418    mark_transaction_restart_calls (stmt);
2419  }
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));
2426  
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);
2433  
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")
2447            ]
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")
2457            ]
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 @@
2464  #ifdef __OPTIMIZE__
2465  extern __inline __m256i
2466  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2467 +_mm256_bslli_epi128 (__m256i __A, const int __N)
2468 +{
2469 +  return (__m256i)__builtin_ia32_pslldqi256 (__A, __N * 8);
2470 +}
2471 +
2472 +extern __inline __m256i
2473 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2474  _mm256_slli_si256 (__m256i __A, const int __N)
2475  {
2476    return (__m256i)__builtin_ia32_pslldqi256 (__A, __N * 8);
2477  }
2478  #else
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))
2483  #endif
2484 @@ -721,11 +730,20 @@
2485  #ifdef __OPTIMIZE__
2486  extern __inline __m256i
2487  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2488 +_mm256_bsrli_epi128 (__m256i __A, const int __N)
2489 +{
2490 +  return (__m256i)__builtin_ia32_psrldqi256 (__A, __N * 8);
2491 +}
2492 +
2493 +extern __inline __m256i
2494 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2495  _mm256_srli_si256 (__m256i __A, const int __N)
2496  {
2497    return (__m256i)__builtin_ia32_psrldqi256 (__A, __N * 8);
2498  }
2499  #else
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))
2504  #endif
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 @@
2523  
2524  #ifdef __OPTIMIZE__
2525  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2526 +_mm_bsrli_si128 (__m128i __A, const int __N)
2527 +{
2528 +  return (__m128i)__builtin_ia32_psrldqi128 (__A, __N * 8);
2529 +}
2530 +
2531 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2532 +_mm_bslli_si128 (__m128i __A, const int __N)
2533 +{
2534 +  return (__m128i)__builtin_ia32_pslldqi128 (__A, __N * 8);
2535 +}
2536 +
2537 +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2538  _mm_srli_si128 (__m128i __A, const int __N)
2539  {
2540    return (__m128i)__builtin_ia32_psrldqi128 (__A, __N * 8);
2541 @@ -1154,6 +1166,10 @@
2542    return (__m128i)__builtin_ia32_pslldqi128 (__A, __N * 8);
2543  }
2544  #else
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)
2558         {
2559           if (lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (fntype)))
2560 -           abi = MS_ABI;
2561 +           {
2562 +             if (TARGET_X32)
2563 +               {
2564 +                 static bool warned = false;
2565 +                 if (!warned)
2566 +                   {
2567 +                     error ("X32 does not support ms_abi attribute");
2568 +                     warned = true;
2569 +                   }
2570 +               }
2571 +             abi = MS_ABI;
2572 +           }
2573         }
2574        else if (lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (fntype)))
2575         abi = SYSV_ABI;
2576 @@ -10483,6 +10494,10 @@
2577               if (sp_is_cfa_reg)
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)));
2584             }
2585         }
2586  
2587 @@ -10496,6 +10511,10 @@
2588               if (sp_is_cfa_reg)
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)));
2595             }
2596         }
2597  
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)
2602 @@ -91,6 +91,7 @@
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);
2617  
2618 +  /* For canonical RTL, if only one arm is inverted it is the first.  */
2619 +  if (!complement_op1_p && complement_op2_p)
2620 +    {
2621 +      rtx temp = op1;
2622 +      op1 = op2;
2623 +      op2 = temp;
2624 +    }
2625 +
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"
2636          [(not:BOOL_128
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)"
2642  {
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)"
2646    [(const_int 0)]
2647  {
2648 -  rs6000_split_logical (operands, GET_CODE (operands[3]), false, true, false,
2649 +  rs6000_split_logical (operands, GET_CODE (operands[3]), false, false, true,
2650                         NULL_RTX);
2651    DONE;
2652  }
2653 @@ -8660,14 +8660,14 @@
2654    [(set (match_operand:TI2 0 "int_reg_operand" "=&r,r,r")
2655         (match_operator:TI2 3 "boolean_operator"
2656          [(not:TI2
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)"
2662    "#"
2663    "reload_completed && !TARGET_P8_VECTOR && (GET_CODE (operands[3]) != AND)"
2664    [(const_int 0)]
2665  {
2666 -  rs6000_split_logical (operands, GET_CODE (operands[3]), false, true, false,
2667 +  rs6000_split_logical (operands, GET_CODE (operands[3]), false, false, true,
2668                         NULL_RTX);
2669    DONE;
2670  }
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)
2675 @@ -63,8 +63,8 @@
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);     \