diff -Nrcpad gcc-4.9.0/ChangeLog gcc-4.9.1/ChangeLog *** gcc-4.9.0/ChangeLog Tue Apr 22 09:41:41 2014 --- gcc-4.9.1/ChangeLog Wed Jul 16 10:02:06 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/INSTALL/binaries.html gcc-4.9.1/INSTALL/binaries.html *** gcc-4.9.0/INSTALL/binaries.html Tue Apr 22 09:44:42 2014 --- gcc-4.9.1/INSTALL/binaries.html Wed Jul 16 10:06:10 2014 *************** OpenServer/Unixware. *** 125,135 ****
  • Solaris 2 (SPARC, Intel): --- 125,131 ----
  • Solaris 2 (SPARC, Intel): diff -Nrcpad gcc-4.9.0/INSTALL/build.html gcc-4.9.1/INSTALL/build.html *** gcc-4.9.0/INSTALL/build.html Tue Apr 22 09:44:41 2014 --- gcc-4.9.1/INSTALL/build.html Wed Jul 16 10:06:09 2014 *************** Finally a stagefeedback com *** 437,444 ****

    Unlike standard bootstrap, several additional restrictions apply. The compiler used to build stage1 needs to support a 64-bit integral type. ! It is recommended to only use GCC for this. Also parallel make is currently ! not supported since collisions in profile collecting may occur.


    Return to the GCC Installation page --- 437,443 ----

    Unlike standard bootstrap, several additional restrictions apply. The compiler used to build stage1 needs to support a 64-bit integral type. ! It is recommended to only use GCC for this.


    Return to the GCC Installation page diff -Nrcpad gcc-4.9.0/INSTALL/specific.html gcc-4.9.1/INSTALL/specific.html *** gcc-4.9.0/INSTALL/specific.html Tue Apr 22 09:44:38 2014 --- gcc-4.9.1/INSTALL/specific.html Wed Jul 16 10:06:07 2014 *************** removed and the system libunwind library *** 616,624 ****


    aarch64*-*-*

    !

    Pre 2.24 binutils does not have support for selecting -mabi and does not ! support ILP32. If GCC 4.9 or later is built with pre 2.24, GCC will not ! support option -mabi=ilp32.


    --- 616,624 ----


    aarch64*-*-*

    !

    Binutils pre 2.24 does not have support for selecting -mabi and ! does not support ILP32. If it is used to build GCC 4.9 or later, GCC will ! not support option -mabi=ilp32.


    diff -Nrcpad gcc-4.9.0/LAST_UPDATED gcc-4.9.1/LAST_UPDATED *** gcc-4.9.0/LAST_UPDATED Tue Apr 22 09:44:37 2014 --- gcc-4.9.1/LAST_UPDATED Wed Jul 16 10:06:04 2014 *************** *** 1 **** ! Obtained from SVN: tags/gcc_4_9_0_release revision 209612 --- 1 ---- ! Obtained from SVN: tags/gcc_4_9_1_release revision 212636 diff -Nrcpad gcc-4.9.0/MD5SUMS gcc-4.9.1/MD5SUMS *** gcc-4.9.0/MD5SUMS Tue Apr 22 10:53:41 2014 --- gcc-4.9.1/MD5SUMS Wed Jul 16 11:16:24 2014 *************** *** 1,5 **** # This file contains the MD5 checksums of the files in the ! # gcc-4.9.0.tar.bz2 tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the --- 1,5 ---- # This file contains the MD5 checksums of the files in the ! # gcc-4.9.1.tar.bz2 tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the *************** bda40697a9e2e23c4a52125fc1cc713d .dir-l *** 16,26 **** fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 8d6d05e379c4a8df790fbc678299a8a3 ChangeLog 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 79ef16e405f5873970e04cee49091ff8 INSTALL/README ! 2ac324e177e1068e2c7e9c2ad3aa779d INSTALL/binaries.html ! f2594062b115667717f768157a776465 INSTALL/build.html a75a16d0b16482ab73219c31f90f1265 INSTALL/configure.html a09a2c134251cbc03a4d8c47881c96bf INSTALL/download.html f71e8877b0791a16025b2bd2663f0865 INSTALL/finalinstall.html --- 16,26 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 29e14d389b1c0e65e6ae681fe06c7857 ChangeLog 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 79ef16e405f5873970e04cee49091ff8 INSTALL/README ! 8fd5b9bf92cf218220799a40e8148fd1 INSTALL/binaries.html ! ddc94339e7cc49fddbf73d22ba6bc9d2 INSTALL/build.html a75a16d0b16482ab73219c31f90f1265 INSTALL/configure.html a09a2c134251cbc03a4d8c47881c96bf INSTALL/download.html f71e8877b0791a16025b2bd2663f0865 INSTALL/finalinstall.html *************** d365b39a74c405586955c87e540531ac INSTAL *** 28,45 **** 4e742a49a16683b5759b0763fb109e84 INSTALL/index.html 37c24a83ee5d2059fce28b7e56527bf8 INSTALL/old.html bca4120af0b2247e337e0b6991ed3702 INSTALL/prerequisites.html ! f060c2181d42f672076f86141966e64d INSTALL/specific.html 86dd39fb0df38e33811ae7942add5854 INSTALL/test.html ! 80f106aa8640529921d7dfcb42e401ee LAST_UPDATED 5df43eb77ba93510a6adee7bd06bd774 MAINTAINERS e6078d46d3729f3f514954081bfd9480 Makefile.def 356452c2d3677e10f0047801465f2ea7 Makefile.in f3a76b2dae23759df8f4bf5f1088f950 Makefile.tpl ! b5c55edd6d5a6fa42f76d5c01460a014 NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c 2caafacabf758bb76a9dfce1fc544b97 boehm-gc/BCC_MAKEFILE ! a800b05eea93a3656166cbb96dbe6432 boehm-gc/ChangeLog c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE 3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c 5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx --- 28,45 ---- 4e742a49a16683b5759b0763fb109e84 INSTALL/index.html 37c24a83ee5d2059fce28b7e56527bf8 INSTALL/old.html bca4120af0b2247e337e0b6991ed3702 INSTALL/prerequisites.html ! 1217d89de9b6c4a463ac85ecf755e1cf INSTALL/specific.html 86dd39fb0df38e33811ae7942add5854 INSTALL/test.html ! 5dfe8d6f44a964ca04e0c4da1a3f0e80 LAST_UPDATED 5df43eb77ba93510a6adee7bd06bd774 MAINTAINERS e6078d46d3729f3f514954081bfd9480 Makefile.def 356452c2d3677e10f0047801465f2ea7 Makefile.in f3a76b2dae23759df8f4bf5f1088f950 Makefile.tpl ! 74d32ab573d398ae610c31f1efbb006f NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c 2caafacabf758bb76a9dfce1fc544b97 boehm-gc/BCC_MAKEFILE ! 6c6cf7f4bd69abdad0091e39c3cb2f0a boehm-gc/ChangeLog c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE 3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c 5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx *************** b04a1232318128ebd7c630fca10d02e5 boehm- *** 218,224 **** eea34cf893bb060ee20189e256a8065a config.guess 040359150cf11493f973a46d8a25b06b config.rpath 9e38dc3cc2b4e471ea192c8984fb0cd1 config.sub ! 1c536859092822f48876e093c0c2728e config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 9238d23c68259d195b332db71892d242 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 218,224 ---- eea34cf893bb060ee20189e256a8065a config.guess 040359150cf11493f973a46d8a25b06b config.rpath 9e38dc3cc2b4e471ea192c8984fb0cd1 config.sub ! 002024109027edb448563ba4e17df987 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 9238d23c68259d195b332db71892d242 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** b6afa5c33fb98edfaf591dd38d198b0d config *** 301,307 **** e249d18c447a8372fd1ed5f084284d6b config/zlib.m4 2aee2a912a0f3cadd86b0ab07d01c110 configure 0a1b5029c2e53271ca6339f01757cc34 configure.ac ! aaccaa28104c9d5dde05a003d2ec5226 contrib/ChangeLog 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa e0ea80d7094bf66610f2f60db444f9a1 contrib/analyze_brprob 998f0112578f801ac84646f060e18f89 contrib/check_GNU_style.sh --- 301,307 ---- e249d18c447a8372fd1ed5f084284d6b config/zlib.m4 2aee2a912a0f3cadd86b0ab07d01c110 configure 0a1b5029c2e53271ca6339f01757cc34 configure.ac ! 5eea86cbadf6888fca1d5cb97ea71df3 contrib/ChangeLog 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa e0ea80d7094bf66610f2f60db444f9a1 contrib/analyze_brprob 998f0112578f801ac84646f060e18f89 contrib/check_GNU_style.sh *************** db03e57377f9eb202b7b783eb81fe40d contri *** 324,330 **** 480dbaa133b74e68d41762d6596bd034 contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build 2a5f30b12e8aab5e135e7f4dfd7d6519 contrib/gcc_update ! 41804fd84ba2402d1b8a2d7979dedbd5 contrib/gennews 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c fa945bac89ee68b410027dcfe1312f4b contrib/index-prop 43e3d77ae19b5c6304d6d6846792c173 contrib/make-obstacks-texi.pl --- 324,330 ---- 480dbaa133b74e68d41762d6596bd034 contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build 2a5f30b12e8aab5e135e7f4dfd7d6519 contrib/gcc_update ! 7a9f4e8f88e74e4e83fa3ccb960b442b contrib/gennews 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c fa945bac89ee68b410027dcfe1312f4b contrib/index-prop 43e3d77ae19b5c6304d6d6846792c173 contrib/make-obstacks-texi.pl *************** fa945bac89ee68b410027dcfe1312f4b contri *** 333,339 **** 0fb5c8c3cd465d8bd57b55b2548c683a contrib/paranoia.cc 9083c56c1c89c5bec355a27f78e49807 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh ! 02992e52bfd0c60e25a3970249b90e02 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup --- 333,339 ---- 0fb5c8c3cd465d8bd57b55b2548c683a contrib/paranoia.cc 9083c56c1c89c5bec355a27f78e49807 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh ! b09237f96cc90e605875486d065ffbbf contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup *************** f251d49dd87647250fcd74dd50b7835f contri *** 392,398 **** e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! eee9e8a09a9d2e921d33eab3f94f72a4 contrib/regression/ChangeLog 30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png 777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist --- 392,398 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 5b76e18edfd2f7e11820243112e1ef67 contrib/regression/ChangeLog 30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png 777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist *************** e00fa8f7dd72b80ca5a64130e85fe4f4 contri *** 416,422 **** 6ed51d5edccbae74c6500732f8a40540 contrib/update-copyright.py 7cb42cbdf8becd280d1e16191416fb62 contrib/warn_summary 21504de31981a67b5b93b265029d1865 depcomp ! a38690f84bc8c30e2f9ee3434766ecc8 fixincludes/ChangeLog c23ba4c4f4ca4dfcdd9b4155e4626da7 fixincludes/Makefile.in 4eb8fdda3b3e303c7aa822d341495822 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 416,422 ---- 6ed51d5edccbae74c6500732f8a40540 contrib/update-copyright.py 7cb42cbdf8becd280d1e16191416fb62 contrib/warn_summary 21504de31981a67b5b93b265029d1865 depcomp ! 61aae72ab9e62647bad5bd0ba1b90c33 fixincludes/ChangeLog c23ba4c4f4ca4dfcdd9b4155e4626da7 fixincludes/Makefile.in 4eb8fdda3b3e303c7aa822d341495822 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 550,561 **** 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h f9abccf4b8b7eac82a99bb1f9ef6832f gcc/ABOUT-GCC-NLS ! 12c685a5239eb2421fb99d6211a31d2c gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! abe43b4eec0f7a36b8fff4884ea829a4 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 --- 550,561 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h f9abccf4b8b7eac82a99bb1f9ef6832f gcc/ABOUT-GCC-NLS ! b73567b635a03772e7a52b29fa7a12ee gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! 1a17ac233399b10a193fe4343c14e764 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 579,585 **** 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 766c23d7fd70339aa367112c80a90a13 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 --- 579,585 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 3814e94fd45d6453d6951a69af800953 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 *************** ec6799501b2eb2923d5de6a66169dbd2 gcc/ON *** 591,597 **** 65b0958f3e11d2f408011ac52955b811 gcc/acinclude.m4 8dcfee0fc9b019ed7810de9926841795 gcc/aclocal.m4 30995d78221b41ce62c92b2f601b4ebb gcc/ada/9drpc.adb ! 8023dbbd6cf13249e3c703346e047f0a gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 --- 591,597 ---- 65b0958f3e11d2f408011ac52955b811 gcc/acinclude.m4 8dcfee0fc9b019ed7810de9926841795 gcc/aclocal.m4 30995d78221b41ce62c92b2f601b4ebb gcc/ada/9drpc.adb ! 2eaa1b634c73ed0dab2f1330e32a2af8 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** d210cc29f95f5e604759f93402708276 gcc/ad *** 1226,1233 **** 9493e0e9238e73f4ebdbaef95b89989a gcc/ada/cio.c ada2f539221a75ff168031eff7815c0f gcc/ada/clean.adb 9a36d574098d976ee0279592d026b972 gcc/ada/clean.ads ! 20f62cdc28eaef50f89b843b3b9c7cc2 gcc/ada/comperr.adb ! e46cbbab0c251b90c32553f7cd454455 gcc/ada/comperr.ads fbd23958a6d5c4207e39317e708436ac gcc/ada/config-lang.in 6e05548d8d2fbb2b63a0f07476437fb3 gcc/ada/csets.adb 4e4a23a69754d2ec7a8951a8570fe5b0 gcc/ada/csets.ads --- 1226,1233 ---- 9493e0e9238e73f4ebdbaef95b89989a gcc/ada/cio.c ada2f539221a75ff168031eff7815c0f gcc/ada/clean.adb 9a36d574098d976ee0279592d026b972 gcc/ada/clean.ads ! 4aef9db9727ddb63adc4a92e757c5436 gcc/ada/comperr.adb ! 1ad3f00ba3288ec56abed700e8fe5eff gcc/ada/comperr.ads fbd23958a6d5c4207e39317e708436ac gcc/ada/config-lang.in 6e05548d8d2fbb2b63a0f07476437fb3 gcc/ada/csets.adb 4e4a23a69754d2ec7a8951a8570fe5b0 gcc/ada/csets.ads *************** ecedcb5ea2f415e4cb95a20610fac247 gcc/ad *** 1266,1272 **** f768c6b870ebc746874cc73fcdbdf7ab gcc/ada/exp_atag.ads 13e8a8feb8fa7a1bfb1990c1b25c879d gcc/ada/exp_attr.adb 5702351fe63e0743b3814a1800c30ed2 gcc/ada/exp_attr.ads ! b48d9a5c86e8364287d5edfa50b78fa7 gcc/ada/exp_cg.adb 4eabed8d6501ce1ad40758d4710a9831 gcc/ada/exp_cg.ads 5ccfa8aff821d4ddb7a383357ddb3724 gcc/ada/exp_ch10.ads ab12a2bd11ed3ade8004fe061fd0f523 gcc/ada/exp_ch11.adb --- 1266,1272 ---- f768c6b870ebc746874cc73fcdbdf7ab gcc/ada/exp_atag.ads 13e8a8feb8fa7a1bfb1990c1b25c879d gcc/ada/exp_attr.adb 5702351fe63e0743b3814a1800c30ed2 gcc/ada/exp_attr.ads ! 47f473b5c4602ac1bb03108dba91a1d3 gcc/ada/exp_cg.adb 4eabed8d6501ce1ad40758d4710a9831 gcc/ada/exp_cg.ads 5ccfa8aff821d4ddb7a383357ddb3724 gcc/ada/exp_ch10.ads ab12a2bd11ed3ade8004fe061fd0f523 gcc/ada/exp_ch11.adb *************** cf555c5918a73c14828608b56e779484 gcc/ad *** 1293,1301 **** 5c78630af699c2c8866d59d8f8abffe8 gcc/ada/exp_ch9.ads d839fc69ad7fb176e706739beaa91e63 gcc/ada/exp_code.adb d2e1249b6b65db4c78621b52c7dc14fc gcc/ada/exp_code.ads ! 313bb90ebc481c1617f766e248ad7105 gcc/ada/exp_dbug.adb ! 2fa6fd1cad24e36376b4e0780aae3a52 gcc/ada/exp_dbug.ads ! 773db59e5debdf769b8e642b7037afad gcc/ada/exp_disp.adb c192de81f13f3cdf2a0ca3f633d956e8 gcc/ada/exp_disp.ads f96cc62086b3fe7b9a72604a429c8c8a gcc/ada/exp_dist.adb d692d8d0a9890eca6c46d32547c20c29 gcc/ada/exp_dist.ads --- 1293,1301 ---- 5c78630af699c2c8866d59d8f8abffe8 gcc/ada/exp_ch9.ads d839fc69ad7fb176e706739beaa91e63 gcc/ada/exp_code.adb d2e1249b6b65db4c78621b52c7dc14fc gcc/ada/exp_code.ads ! a0e02892c3f365ba1c2fb5e7b5407e06 gcc/ada/exp_dbug.adb ! 0d7c0581afa280425de092cd0b33a32b gcc/ada/exp_dbug.ads ! fb4d06c9e6bf3a22adf5396afb6ad7f6 gcc/ada/exp_disp.adb c192de81f13f3cdf2a0ca3f633d956e8 gcc/ada/exp_disp.ads f96cc62086b3fe7b9a72604a429c8c8a gcc/ada/exp_dist.adb d692d8d0a9890eca6c46d32547c20c29 gcc/ada/exp_dist.ads *************** a199309c4e98c096c259c05ff02b86db gcc/ad *** 1326,1332 **** cfd69fe81b466d6645a6f64a92e243ed gcc/ada/expander.adb 856cf1514fa6e098c62b2213757c16bd gcc/ada/expander.ads 7d93fd1e41c9e1089f5354141c2a45b8 gcc/ada/expect.c ! a2f56a8f24b7e2571aa376b073f108bf gcc/ada/fe.h 875d98b79093e1d2a6626a408d638d00 gcc/ada/final.c e8be99a2722456562ee665aec5b92580 gcc/ada/fmap.adb c1521c6e3b4d7465c7d7c52c05cba906 gcc/ada/fmap.ads --- 1326,1332 ---- cfd69fe81b466d6645a6f64a92e243ed gcc/ada/expander.adb 856cf1514fa6e098c62b2213757c16bd gcc/ada/expander.ads 7d93fd1e41c9e1089f5354141c2a45b8 gcc/ada/expect.c ! 9a406035019bea08a3c724f6033a711b gcc/ada/fe.h 875d98b79093e1d2a6626a408d638d00 gcc/ada/final.c e8be99a2722456562ee665aec5b92580 gcc/ada/fmap.adb c1521c6e3b4d7465c7d7c52c05cba906 gcc/ada/fmap.ads *************** d7eca93022b3adc8f4a61dbe910e95d2 gcc/ad *** 1558,1578 **** b45654446bc74bb68ae4adef78906e9b gcc/ada/g-zspche.ads 698b837b776abdf33504479af8506a50 gcc/ada/g-zstspl.ads ec9434db1d60180addfe46d2744f6380 gcc/ada/gcc-interface/Make-lang.in ! fc6e59fdc9ea9329c0d8cec36f6dd0f6 gcc/ada/gcc-interface/Makefile.in d47cdfac076a7e474979da4139393b39 gcc/ada/gcc-interface/ada-tree.def a283b124426371820055dc3a8082b6a8 gcc/ada/gcc-interface/ada-tree.h 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 4cbfd794461da0feb1b8661ec623b6c6 gcc/ada/gcc-interface/config-lang.in cf89e8e38d01ca91bfed6c342ee1c569 gcc/ada/gcc-interface/cuintp.c ! 102923abb29b03f41695246cfdc82516 gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h b18231cb03f2f97b42fb46387ca5d9be gcc/ada/gcc-interface/gigi.h 551c6c4d04e4f9c63340554e826c7bed gcc/ada/gcc-interface/lang-specs.h f4ffb206fe0e51f054ea66a5daaa32ff gcc/ada/gcc-interface/lang.opt ! 1718f4d0012556901214e4eafc4c49a7 gcc/ada/gcc-interface/misc.c 4ce109758af9fd09626d5277a2507764 gcc/ada/gcc-interface/targtyps.c ! 61a9064b795a1391858ed057bc136de9 gcc/ada/gcc-interface/trans.c ! 31f221fe81d7fee9ed5bfd540ea0dde4 gcc/ada/gcc-interface/utils.c 7b11749f4e6d3dd14546d219cb372cb0 gcc/ada/gcc-interface/utils2.c 78e1564fc6e18145efeeea01940a4cb4 gcc/ada/get_scos.adb baa8fdaf8d693eb6c5a7e42944887584 gcc/ada/get_scos.ads --- 1558,1578 ---- b45654446bc74bb68ae4adef78906e9b gcc/ada/g-zspche.ads 698b837b776abdf33504479af8506a50 gcc/ada/g-zstspl.ads ec9434db1d60180addfe46d2744f6380 gcc/ada/gcc-interface/Make-lang.in ! c7513fa4215e55ec6302debfeb9d2964 gcc/ada/gcc-interface/Makefile.in d47cdfac076a7e474979da4139393b39 gcc/ada/gcc-interface/ada-tree.def a283b124426371820055dc3a8082b6a8 gcc/ada/gcc-interface/ada-tree.h 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 4cbfd794461da0feb1b8661ec623b6c6 gcc/ada/gcc-interface/config-lang.in cf89e8e38d01ca91bfed6c342ee1c569 gcc/ada/gcc-interface/cuintp.c ! 31eef307443e6a2eff2dae2574fb077c gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h b18231cb03f2f97b42fb46387ca5d9be gcc/ada/gcc-interface/gigi.h 551c6c4d04e4f9c63340554e826c7bed gcc/ada/gcc-interface/lang-specs.h f4ffb206fe0e51f054ea66a5daaa32ff gcc/ada/gcc-interface/lang.opt ! c34631d0635fe85f8015d681e1a9f5da gcc/ada/gcc-interface/misc.c 4ce109758af9fd09626d5277a2507764 gcc/ada/gcc-interface/targtyps.c ! c1e11cf924f59cc38344d4300a1d5ea5 gcc/ada/gcc-interface/trans.c ! 671bbb5c023f9271e36e25a93de01aba gcc/ada/gcc-interface/utils.c 7b11749f4e6d3dd14546d219cb372cb0 gcc/ada/gcc-interface/utils2.c 78e1564fc6e18145efeeea01940a4cb4 gcc/ada/get_scos.adb baa8fdaf8d693eb6c5a7e42944887584 gcc/ada/get_scos.ads *************** c40aa5991541ff9c1916c95c822ae607 gcc/ad *** 1645,1651 **** d7687cbf6b1c440a90c770b40742ab35 gcc/ada/indepsw-mingw.adb fa914ddcd147d8430f947dc903d68021 gcc/ada/indepsw.adb 5b85c73b60202d26b3cccad29575fd6a gcc/ada/indepsw.ads ! 59f1b9334085641476c51a4efa2f1f19 gcc/ada/init.c f27041d879873bad257544aba837b673 gcc/ada/initialize.c 172b35fc27ac645ebd334bef3f9dbf82 gcc/ada/inline.adb 190c3fbbc0e399688e01b2150271dacc gcc/ada/inline.ads --- 1645,1651 ---- d7687cbf6b1c440a90c770b40742ab35 gcc/ada/indepsw-mingw.adb fa914ddcd147d8430f947dc903d68021 gcc/ada/indepsw.adb 5b85c73b60202d26b3cccad29575fd6a gcc/ada/indepsw.ads ! acfdbff5c5b19f4dcebb1d35e93fb745 gcc/ada/init.c f27041d879873bad257544aba837b673 gcc/ada/initialize.c 172b35fc27ac645ebd334bef3f9dbf82 gcc/ada/inline.adb 190c3fbbc0e399688e01b2150271dacc gcc/ada/inline.ads *************** b1a12d53199396f327ddecc980e710d1 gcc/ad *** 2666,2672 **** 4521682baf658427c38e7e4194c86ab9 gcc/ada/ttypes.ads 373e654bed9f76ed6875cee226d0dcbc gcc/ada/types.adb be7ee8bf42f632905fd0e265732c810d gcc/ada/types.ads ! 72311200c3e0a1c92b46efc3a971d2d2 gcc/ada/types.h 441db1972464d6fa9f7e955634586561 gcc/ada/ug_words 54a60157722eefc861657338313fefea gcc/ada/uintp.adb f49db1f5ff371d16dc0543a76ba05d6b gcc/ada/uintp.ads --- 2666,2672 ---- 4521682baf658427c38e7e4194c86ab9 gcc/ada/ttypes.ads 373e654bed9f76ed6875cee226d0dcbc gcc/ada/types.adb be7ee8bf42f632905fd0e265732c810d gcc/ada/types.ads ! f6b6a35037bb773569ed43b3125aaf18 gcc/ada/types.h 441db1972464d6fa9f7e955634586561 gcc/ada/ug_words 54a60157722eefc861657338313fefea gcc/ada/uintp.adb f49db1f5ff371d16dc0543a76ba05d6b gcc/ada/uintp.ads *************** ea19de2a367c59c3e9ca2ffb169870f9 gcc/al *** 2710,2716 **** f806ef31303c8073c9399221837a0cca gcc/alias.h 62460fd310b0c679995a9f3e7a5dd196 gcc/alloc-pool.c 381b28a1bdd5698b2aa6b37bbe7bd591 gcc/alloc-pool.h ! f2703a2c5283028811b9314f55a3f876 gcc/asan.c 3e1fa4c99f53f52f13177fbdc594c191 gcc/asan.h cfd590b0822ba24a9383ebb7ce10a076 gcc/attribs.c a53a9ce9c944413119fc0a25fb06a976 gcc/attribs.h --- 2710,2716 ---- f806ef31303c8073c9399221837a0cca gcc/alias.h 62460fd310b0c679995a9f3e7a5dd196 gcc/alloc-pool.c 381b28a1bdd5698b2aa6b37bbe7bd591 gcc/alloc-pool.h ! 01f9205a58ab703ad269012b0f203bba gcc/asan.c 3e1fa4c99f53f52f13177fbdc594c191 gcc/asan.h cfd590b0822ba24a9383ebb7ce10a076 gcc/attribs.c a53a9ce9c944413119fc0a25fb06a976 gcc/attribs.h *************** af0e8c840fa48a6200875c0df80dd7f7 gcc/bu *** 2726,2739 **** 435c31f0e374dedc231c9bfea1ee4de0 gcc/builtins.c 709447be4b984f09869436e1af94d606 gcc/builtins.def 4b25cb43c45b2775bf3398cad0b2f997 gcc/builtins.h ! 429fcb29f67015be15355b2e9669d103 gcc/c-family/ChangeLog 73540d5b0f49564e0c08e24b6feeb126 gcc/c-family/array-notation-common.c 522dd88f1775b9c27c88bdec1b215f33 gcc/c-family/c-ada-spec.c 10157e4802b298ec57f6bbe626694034 gcc/c-family/c-ada-spec.h 005a6e6078a443f37358315735999e75 gcc/c-family/c-cilkplus.c ! fe4405afc690b12573dd77c70f79a145 gcc/c-family/c-common.c 3ce0acd449868895cda4785a578266e2 gcc/c-family/c-common.def ! 5d7444bae9d31d85d704048f1092625e gcc/c-family/c-common.h 3b67756246e8ee78f5476f7d6e1e5a26 gcc/c-family/c-cppbuiltin.c dbc45b842496652a81ddf71534f085cb gcc/c-family/c-dump.c d903f037f15d1a4333bff696b8b4951a gcc/c-family/c-format.c --- 2726,2739 ---- 435c31f0e374dedc231c9bfea1ee4de0 gcc/builtins.c 709447be4b984f09869436e1af94d606 gcc/builtins.def 4b25cb43c45b2775bf3398cad0b2f997 gcc/builtins.h ! 838b89ea6956c366627adb2126adab64 gcc/c-family/ChangeLog 73540d5b0f49564e0c08e24b6feeb126 gcc/c-family/array-notation-common.c 522dd88f1775b9c27c88bdec1b215f33 gcc/c-family/c-ada-spec.c 10157e4802b298ec57f6bbe626694034 gcc/c-family/c-ada-spec.h 005a6e6078a443f37358315735999e75 gcc/c-family/c-cilkplus.c ! 9adbf544851a929b93b59f8f294623a8 gcc/c-family/c-common.c 3ce0acd449868895cda4785a578266e2 gcc/c-family/c-common.def ! 2f64edf02605a36ddcb4643da27c6200 gcc/c-family/c-common.h 3b67756246e8ee78f5476f7d6e1e5a26 gcc/c-family/c-cppbuiltin.c dbc45b842496652a81ddf71534f085cb gcc/c-family/c-dump.c d903f037f15d1a4333bff696b8b4951a gcc/c-family/c-format.c *************** d903f037f15d1a4333bff696b8b4951a gcc/c- *** 2741,2751 **** 69e2a115308d9b72ce2c53b23ca14cdb gcc/c-family/c-gimplify.c a3c101e11d8d2321151be53333283c58 gcc/c-family/c-lex.c 5c6cd6a62c649574128a4651f621a0b0 gcc/c-family/c-objc.h ! 1dc164b29bfc4608e65bc1dbbf3075f3 gcc/c-family/c-omp.c ! cb6a908fe3e325518d31541c95382ebd gcc/c-family/c-opts.c 6f8ef838c68a594024f4c12c021f38be gcc/c-family/c-pch.c a764fac4f453e4c326786cf0400015da gcc/c-family/c-ppoutput.c ! b657c501deaf141499da23ce44944859 gcc/c-family/c-pragma.c 61e3aeb23503e1772d1c2c1fdbcea56f gcc/c-family/c-pragma.h 7958151ac6795655d68812f5a45303f9 gcc/c-family/c-pretty-print.c 822314f9921231408f230b215ee5b6d1 gcc/c-family/c-pretty-print.h --- 2741,2751 ---- 69e2a115308d9b72ce2c53b23ca14cdb gcc/c-family/c-gimplify.c a3c101e11d8d2321151be53333283c58 gcc/c-family/c-lex.c 5c6cd6a62c649574128a4651f621a0b0 gcc/c-family/c-objc.h ! 6fcd9cdd64b600cd292be161b04ea969 gcc/c-family/c-omp.c ! 9dadf710ab87357edd7ac40326f605d2 gcc/c-family/c-opts.c 6f8ef838c68a594024f4c12c021f38be gcc/c-family/c-pch.c a764fac4f453e4c326786cf0400015da gcc/c-family/c-ppoutput.c ! dce0ba09fb1c4c409b75ef665ff94efc gcc/c-family/c-pragma.c 61e3aeb23503e1772d1c2c1fdbcea56f gcc/c-family/c-pragma.h 7958151ac6795655d68812f5a45303f9 gcc/c-family/c-pretty-print.c 822314f9921231408f230b215ee5b6d1 gcc/c-family/c-pretty-print.h *************** b657c501deaf141499da23ce44944859 gcc/c- *** 2759,2778 **** 8041b1cda8919775362c4465096c609b gcc/c-family/cilk.c 85b441a3f28a2bd4e2ca99f03490e65e gcc/c-family/cppspec.c 00be2969ca302d49f76b65173590c942 gcc/c-family/stub-objc.c ! 2dff10b90e21925148128f0ea3ca20f0 gcc/c/ChangeLog 5d46413a194e3bb9b8b12f6e49e911c3 gcc/c/Make-lang.in ! 9ec984df7cf8a2836f79a2162e03b3b6 gcc/c/c-array-notation.c f8a2e7536c39b4d1e3f4b1d5ee6d62c5 gcc/c/c-aux-info.c 3bda18438dfe79a5fcacb0ec192cf602 gcc/c/c-convert.c ! 4604723e8e99cf3ff16e8d68f6feb581 gcc/c/c-decl.c 80705e9d8c52ab1b2501574d0dc8ab67 gcc/c/c-errors.c 12ec429c86710adfcfe5eed23174aead gcc/c/c-lang.c 8b01b74da83bfb4d6dc1127114c72f94 gcc/c/c-lang.h e8fa0ec0164ceb8a90d6ae74f9c7fd1b gcc/c/c-objc-common.c 941499386ac0a23999c942a8986f8e61 gcc/c/c-objc-common.h ! 1307f7b7625b59fe133120362328b6da gcc/c/c-parser.c 66a995603b2cd1394afbfb29b90fe209 gcc/c/c-tree.h ! b3b78f574305a73e4d51b5fc69bf9dda gcc/c/c-typeck.c 62032db4c55340bd16e7f80d99c0b016 gcc/c/config-lang.in 597ddbe49d6b3528aa5670f785ed61e8 gcc/c/gccspec.c e972cc617a462165838c95421a29ca5e gcc/caller-save.c --- 2759,2778 ---- 8041b1cda8919775362c4465096c609b gcc/c-family/cilk.c 85b441a3f28a2bd4e2ca99f03490e65e gcc/c-family/cppspec.c 00be2969ca302d49f76b65173590c942 gcc/c-family/stub-objc.c ! 1d6e9f4ede8900c62fcd5a689271133e gcc/c/ChangeLog 5d46413a194e3bb9b8b12f6e49e911c3 gcc/c/Make-lang.in ! d7a3c457ca29e4251a7b5d56221cd69e gcc/c/c-array-notation.c f8a2e7536c39b4d1e3f4b1d5ee6d62c5 gcc/c/c-aux-info.c 3bda18438dfe79a5fcacb0ec192cf602 gcc/c/c-convert.c ! 3cc1c7d292032aaf8d66085b8dc20ce3 gcc/c/c-decl.c 80705e9d8c52ab1b2501574d0dc8ab67 gcc/c/c-errors.c 12ec429c86710adfcfe5eed23174aead gcc/c/c-lang.c 8b01b74da83bfb4d6dc1127114c72f94 gcc/c/c-lang.h e8fa0ec0164ceb8a90d6ae74f9c7fd1b gcc/c/c-objc-common.c 941499386ac0a23999c942a8986f8e61 gcc/c/c-objc-common.h ! fc253e1619b9a8a5fc616ce97c6b09f1 gcc/c/c-parser.c 66a995603b2cd1394afbfb29b90fe209 gcc/c/c-tree.h ! cb28b4a54311cba22def99ce6e89cfda gcc/c/c-typeck.c 62032db4c55340bd16e7f80d99c0b016 gcc/c/config-lang.in 597ddbe49d6b3528aa5670f785ed61e8 gcc/c/gccspec.c e972cc617a462165838c95421a29ca5e gcc/caller-save.c *************** e136a667dd62eb56a89111c4fcb045eb gcc/cf *** 2783,2789 **** 02943835098f2e8538a6df30ad37cf85 gcc/cfganal.c 4d8cc1876560628dabb57cefce453d9d gcc/cfgbuild.c 373997b7234f5abbda49e47e5cd973ca gcc/cfgcleanup.c ! 520104bc5700831e918532f501fa7010 gcc/cfgexpand.c b3c947b28531afadb81599f4a0d73783 gcc/cfgexpand.h a6a0c9ebc641dfa71f1f2e5188b0da21 gcc/cfghooks.c 17095bd67a8350591e1bd47ec9355698 gcc/cfghooks.h --- 2783,2789 ---- 02943835098f2e8538a6df30ad37cf85 gcc/cfganal.c 4d8cc1876560628dabb57cefce453d9d gcc/cfgbuild.c 373997b7234f5abbda49e47e5cd973ca gcc/cfgcleanup.c ! 567226e4328d5bfff1f1b9746e1e8c2e gcc/cfgexpand.c b3c947b28531afadb81599f4a0d73783 gcc/cfgexpand.h a6a0c9ebc641dfa71f1f2e5188b0da21 gcc/cfghooks.c 17095bd67a8350591e1bd47ec9355698 gcc/cfghooks.h *************** a6a0c9ebc641dfa71f1f2e5188b0da21 gcc/cf *** 2792,2802 **** 4465b1eb3d111a823235d7e5458b8889 gcc/cfgloopanal.c a7a8e23de07e7514d4e470f630ee8e1e gcc/cfgloopmanip.c 0dec1bf60fb09e18cda16146df5e275d gcc/cfgrtl.c ! 52f46e8841f01be23f4b2c95639280ae gcc/cgraph.c ! 7674cf940b4d786f88075268cadb3e8a gcc/cgraph.h fcb9af5cf8a6d1c7a195ca1c007c9e3f gcc/cgraphbuild.c ! db61dc560eb7b548aaf9a52a603cbcbb gcc/cgraphclones.c ! 6929849b51d262f226099cb75f6cfade gcc/cgraphunit.c 554526d022cd2d03e42412e6886c1338 gcc/cif-code.def f264c8d0b8b475e306ad180dadec1a98 gcc/cilk-builtins.def 05497e8da0a9b1c9dfb1957920b812c7 gcc/cilk-common.c --- 2792,2802 ---- 4465b1eb3d111a823235d7e5458b8889 gcc/cfgloopanal.c a7a8e23de07e7514d4e470f630ee8e1e gcc/cfgloopmanip.c 0dec1bf60fb09e18cda16146df5e275d gcc/cfgrtl.c ! 444bde39f32fb5b9671d26f44171421f gcc/cgraph.c ! 7cc4dd8df507eb56aadd2311f739e311 gcc/cgraph.h fcb9af5cf8a6d1c7a195ca1c007c9e3f gcc/cgraphbuild.c ! d62467388a9a6820a3f988a536433852 gcc/cgraphclones.c ! 3997d6631c4d50c3403b5b7b45b3a390 gcc/cgraphunit.c 554526d022cd2d03e42412e6886c1338 gcc/cif-code.def f264c8d0b8b475e306ad180dadec1a98 gcc/cilk-builtins.def 05497e8da0a9b1c9dfb1957920b812c7 gcc/cilk-common.c *************** f0fff0035c48bf460268a3e13ee6af37 gcc/co *** 2807,2813 **** 56efb0c450fd51a9713a2dde395871bd gcc/collect2.c f925b9d3bc0775367c24b644d8e35002 gcc/collect2.h d37c34609a296ebc9dd4d677348419ea gcc/combine-stack-adj.c ! 49346b3ce7ce5180f0fe84291406bcd4 gcc/combine.c bc34d644ab9d1299c59daeb7a59e1087 gcc/common.opt a0c9b1ade89a8b10502b808eda27512d gcc/common/common-target-def.h 82f688c1c764b568b712d183e502bc24 gcc/common/common-target.def --- 2807,2813 ---- 56efb0c450fd51a9713a2dde395871bd gcc/collect2.c f925b9d3bc0775367c24b644d8e35002 gcc/collect2.h d37c34609a296ebc9dd4d677348419ea gcc/combine-stack-adj.c ! 7477ad9438742a77e965dd5bb722f35c gcc/combine.c bc34d644ab9d1299c59daeb7a59e1087 gcc/common.opt a0c9b1ade89a8b10502b808eda27512d gcc/common/common-target-def.h 82f688c1c764b568b712d183e502bc24 gcc/common/common-target.def *************** d34f05fd6320395d42378fe449c6f95b gcc/co *** 2840,2845 **** --- 2840,2846 ---- c89c903fdaeebf0937c539fe077d79bc gcc/common/config/mips/mips-common.c fc30a9a41b3f761ba5fff6f2c1581944 gcc/common/config/mmix/mmix-common.c e3c6c57c2590f0a3610edb36b66dfc03 gcc/common/config/mn10300/mn10300-common.c + a5289d44a7568876d6b8474ce02597f1 gcc/common/config/msp430/msp430-common.c ef89260dc33590c40c56cc99fedc1511 gcc/common/config/nds32/nds32-common.c 598e0913f0667a262988f8a38927b2c6 gcc/common/config/nios2/nios2-common.c 5cd6f4c52d593fe8262f4f38668e7bf0 gcc/common/config/pa/pa-common.c *************** ef0ef64208ca9035f93ed6d6e9606df6 gcc/co *** 2861,2869 **** 2ebc5e4eccb7d2c52897dd83a4be28a7 gcc/compare-elim.c e82a81c423eccb73f4e9f04c09a5cae1 gcc/conditions.h a40ac599c845be41c961d15dfd9559b3 gcc/config.build ! 7ec66ee3b384f4fc04b63987c11b3e21 gcc/config.gcc 9eba81e694fe412bcfa8aafa6743a568 gcc/config.host ! 0d9065d0b9bc757911399a1b4127aa6d gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 21a150941d104bd2b16b4b064132b82b gcc/config/aarch64/aarch64-arches.def 526b5bd7fea44716301891aad5581e68 gcc/config/aarch64/aarch64-builtins.c --- 2862,2870 ---- 2ebc5e4eccb7d2c52897dd83a4be28a7 gcc/compare-elim.c e82a81c423eccb73f4e9f04c09a5cae1 gcc/conditions.h a40ac599c845be41c961d15dfd9559b3 gcc/config.build ! 0ed6c6819c194b5fc2f037ec312d30ed gcc/config.gcc 9eba81e694fe412bcfa8aafa6743a568 gcc/config.host ! 844939897f9a01558ce5f9f36bf0e344 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 21a150941d104bd2b16b4b064132b82b gcc/config/aarch64/aarch64-arches.def 526b5bd7fea44716301891aad5581e68 gcc/config/aarch64/aarch64-builtins.c *************** fa8ac6bece011754d6e9cd8fa724af78 gcc/co *** 2871,2900 **** 79287aa831c8692a259b3fc99493fc1f gcc/config/aarch64/aarch64-elf-raw.h 0da8426685ba7860c8cacd8f15a98f78 gcc/config/aarch64/aarch64-elf.h 1f97cd7b50aac2382f0009c8933516a8 gcc/config/aarch64/aarch64-linux.h ! 51bc0a1ddf9bda2e6a7c597b8e7a6782 gcc/config/aarch64/aarch64-modes.def 719c650d0bf63bbe2a04c38aad30d8ca gcc/config/aarch64/aarch64-option-extensions.def a3008f913374a88b9de4022df0b84d4c gcc/config/aarch64/aarch64-opts.h e786c44f23ac42a3b66f08e8865d0b0a gcc/config/aarch64/aarch64-protos.h 0a8a4231dd82bedb83a9d89591dfd07f gcc/config/aarch64/aarch64-simd-builtins.def ! e0f8f1d76d1dae334cf39aaf5a922533 gcc/config/aarch64/aarch64-simd.md d0075eefdaf65db63dacef89ea39e1ea gcc/config/aarch64/aarch64-tune.md ! b8d56e96679088e423ae1431579ee273 gcc/config/aarch64/aarch64.c ! 0d33e7e507dd97cbe7bf272379fa8dab gcc/config/aarch64/aarch64.h ! f63fe28acb626e46d41cba25d7ddbdce gcc/config/aarch64/aarch64.md 5f65f38fa897daabd9e7f57dd1a9e90a gcc/config/aarch64/aarch64.opt ! d744a2fc495a74654c2bc56f58b45274 gcc/config/aarch64/arm_neon.h 563bb636b7b9dfcfc4fb5fd31576726b gcc/config/aarch64/atomics.md e1792eef6442fd7efd11eb48c3c9a450 gcc/config/aarch64/biarchilp32.h c206feb1f06af29cb310e7af1a86d8ee gcc/config/aarch64/biarchlp64.h b01df6d05d957e306ba5c14f633d2320 gcc/config/aarch64/constraints.md 61def47e552d5a0279fbbe8a7a5fc8ad gcc/config/aarch64/gentune.sh ! d8521aa09888da5924979d87c18a69f4 gcc/config/aarch64/iterators.md 0d943cb735d61d6bb3c8b3260e47805c gcc/config/aarch64/predicates.md a381f4f44bffba3068dea2bcf86b1c37 gcc/config/aarch64/t-aarch64 c5163265d2d83b8fe360d25202a8b342 gcc/config/aarch64/t-aarch64-linux 9d0a5d95304a9bd6b70b0e316bd30832 gcc/config/alpha/alpha-modes.def b1dbf3309f3744b073c14d10174ad350 gcc/config/alpha/alpha-protos.h ! 34f1fc8f7bc037838e036d6819487b42 gcc/config/alpha/alpha.c 26d7e3357f7c361c8e6343bd33837415 gcc/config/alpha/alpha.h b88e1217fbf0f3dae5b18f17063bf733 gcc/config/alpha/alpha.md 0112499d08da07e950408270a411f17b gcc/config/alpha/alpha.opt --- 2872,2901 ---- 79287aa831c8692a259b3fc99493fc1f gcc/config/aarch64/aarch64-elf-raw.h 0da8426685ba7860c8cacd8f15a98f78 gcc/config/aarch64/aarch64-elf.h 1f97cd7b50aac2382f0009c8933516a8 gcc/config/aarch64/aarch64-linux.h ! 19acc0c5b8eaf2ec35cb01753657f65d gcc/config/aarch64/aarch64-modes.def 719c650d0bf63bbe2a04c38aad30d8ca gcc/config/aarch64/aarch64-option-extensions.def a3008f913374a88b9de4022df0b84d4c gcc/config/aarch64/aarch64-opts.h e786c44f23ac42a3b66f08e8865d0b0a gcc/config/aarch64/aarch64-protos.h 0a8a4231dd82bedb83a9d89591dfd07f gcc/config/aarch64/aarch64-simd-builtins.def ! e92c68894aa2124bdd3fde807ebe5a28 gcc/config/aarch64/aarch64-simd.md d0075eefdaf65db63dacef89ea39e1ea gcc/config/aarch64/aarch64-tune.md ! d179820d7b55a2585bfe2aed5196f0be gcc/config/aarch64/aarch64.c ! 52f8eb234212c8c48c3468fd5318f1e9 gcc/config/aarch64/aarch64.h ! 1b2d799df61cb7053044749de1a94364 gcc/config/aarch64/aarch64.md 5f65f38fa897daabd9e7f57dd1a9e90a gcc/config/aarch64/aarch64.opt ! 04a9a881cdda356dc9397436e1175cd8 gcc/config/aarch64/arm_neon.h 563bb636b7b9dfcfc4fb5fd31576726b gcc/config/aarch64/atomics.md e1792eef6442fd7efd11eb48c3c9a450 gcc/config/aarch64/biarchilp32.h c206feb1f06af29cb310e7af1a86d8ee gcc/config/aarch64/biarchlp64.h b01df6d05d957e306ba5c14f633d2320 gcc/config/aarch64/constraints.md 61def47e552d5a0279fbbe8a7a5fc8ad gcc/config/aarch64/gentune.sh ! f4b897b3be3c77cd2b507ea94363a21e gcc/config/aarch64/iterators.md 0d943cb735d61d6bb3c8b3260e47805c gcc/config/aarch64/predicates.md a381f4f44bffba3068dea2bcf86b1c37 gcc/config/aarch64/t-aarch64 c5163265d2d83b8fe360d25202a8b342 gcc/config/aarch64/t-aarch64-linux 9d0a5d95304a9bd6b70b0e316bd30832 gcc/config/alpha/alpha-modes.def b1dbf3309f3744b073c14d10174ad350 gcc/config/alpha/alpha-protos.h ! 718370bc105011b843caf56c9aca49f1 gcc/config/alpha/alpha.c 26d7e3357f7c361c8e6343bd33837415 gcc/config/alpha/alpha.h b88e1217fbf0f3dae5b18f17063bf733 gcc/config/alpha/alpha.md 0112499d08da07e950408270a411f17b gcc/config/alpha/alpha.opt *************** e35b1e71205f3168b496715bc00cfbec gcc/co *** 2936,2966 **** 592330b7b4a8a7b6708c760c980be7e9 gcc/config/arm/aarch-common-protos.h 6f5f08370088230ff90314f46f9f7d7a gcc/config/arm/aarch-common.c 9321b0cdefad344e9a1f5562d699dd1c gcc/config/arm/aarch-cost-tables.h ! 22ba327bc30b4f5e7a072f727c46d89b gcc/config/arm/aout.h 2a5e85335df5916cba0b8ad0a995b677 gcc/config/arm/arm-arches.def fd7fbd9763af884894e66aca6091cd11 gcc/config/arm/arm-c.c ! 990ac7296d4b4bcac097d093565c4727 gcc/config/arm/arm-cores.def 717f132978455853fdebde9cd08f2ce3 gcc/config/arm/arm-fixed.md cc77f434f0e62473275484fc733f9e2f gcc/config/arm/arm-fpus.def b8712fbb401b24fa48945dac9bfe367c gcc/config/arm/arm-generic.md a10288b2cb1af625b28612f6454a8386 gcc/config/arm/arm-ldmstm.ml cf094505e37b191ba07edb74fbac88b1 gcc/config/arm/arm-modes.def ! e78af379056e6bf4060a0d2552d420a5 gcc/config/arm/arm-opts.h 985bd0307db7a7dcdad194d599f5c624 gcc/config/arm/arm-protos.h d4141d32e48618aa5ba56b67b3b6f221 gcc/config/arm/arm-tables.opt d5d7db112e25b2d92afea2a696a57ff9 gcc/config/arm/arm-tune.md ! 904a02287a0b495a86a23e9dce8cdac9 gcc/config/arm/arm.c ! ed8bea5ab7eab5b3ce8cafb6d1e0df6d gcc/config/arm/arm.h ! bc4b012b05f7c982e378994e229c8359 gcc/config/arm/arm.md 7ec80248e2019885ec3fa78e3d2df3b7 gcc/config/arm/arm.opt 55a87c11458722539f3821c53f4b8c5f gcc/config/arm/arm1020e.md 7c28931b2e524e1b44678ca8334d5d54 gcc/config/arm/arm1026ejs.md dfdf8a4aee915224ee2bc49fae27c588 gcc/config/arm/arm1136jfs.md 45ac9277861b1a3d206e924adc48e8ba gcc/config/arm/arm926ejs.md 88a5b7809812aa7a05f031af0da0e964 gcc/config/arm/arm_acle.h ! d6139d5f8fe594d8bfeef9696109ad2c gcc/config/arm/arm_neon.h 57ea068bd966895991477ffd6e51d2f2 gcc/config/arm/arm_neon_builtins.def ! bc8ca7f0793af390c643b7fc7cf661f2 gcc/config/arm/bpabi.h 1d36ffaf951df98052e3f212624f4570 gcc/config/arm/coff.h 014379a6df6bf446bf48de1cdb795218 gcc/config/arm/constraints.md 0cb3e2e12b3a38d03abbdeda5baf61cc gcc/config/arm/cortex-a15-neon.md --- 2937,2967 ---- 592330b7b4a8a7b6708c760c980be7e9 gcc/config/arm/aarch-common-protos.h 6f5f08370088230ff90314f46f9f7d7a gcc/config/arm/aarch-common.c 9321b0cdefad344e9a1f5562d699dd1c gcc/config/arm/aarch-cost-tables.h ! ea8d6fd4a3a9ed6dc6e6fe9518fdd574 gcc/config/arm/aout.h 2a5e85335df5916cba0b8ad0a995b677 gcc/config/arm/arm-arches.def fd7fbd9763af884894e66aca6091cd11 gcc/config/arm/arm-c.c ! ec1ec936dedafc71f84328103593f58c gcc/config/arm/arm-cores.def 717f132978455853fdebde9cd08f2ce3 gcc/config/arm/arm-fixed.md cc77f434f0e62473275484fc733f9e2f gcc/config/arm/arm-fpus.def b8712fbb401b24fa48945dac9bfe367c gcc/config/arm/arm-generic.md a10288b2cb1af625b28612f6454a8386 gcc/config/arm/arm-ldmstm.ml cf094505e37b191ba07edb74fbac88b1 gcc/config/arm/arm-modes.def ! 050d4ca3b04fd3fc1406a0dcbebfe6d9 gcc/config/arm/arm-opts.h 985bd0307db7a7dcdad194d599f5c624 gcc/config/arm/arm-protos.h d4141d32e48618aa5ba56b67b3b6f221 gcc/config/arm/arm-tables.opt d5d7db112e25b2d92afea2a696a57ff9 gcc/config/arm/arm-tune.md ! 84548cbc1ffc6a16eb12eece72917cc9 gcc/config/arm/arm.c ! 4c8130737c990b8939f9a33c1f6314d5 gcc/config/arm/arm.h ! 9e01454206781ded996aff1835119141 gcc/config/arm/arm.md 7ec80248e2019885ec3fa78e3d2df3b7 gcc/config/arm/arm.opt 55a87c11458722539f3821c53f4b8c5f gcc/config/arm/arm1020e.md 7c28931b2e524e1b44678ca8334d5d54 gcc/config/arm/arm1026ejs.md dfdf8a4aee915224ee2bc49fae27c588 gcc/config/arm/arm1136jfs.md 45ac9277861b1a3d206e924adc48e8ba gcc/config/arm/arm926ejs.md 88a5b7809812aa7a05f031af0da0e964 gcc/config/arm/arm_acle.h ! 7757b942b9956d106f93c0bec956896c gcc/config/arm/arm_neon.h 57ea068bd966895991477ffd6e51d2f2 gcc/config/arm/arm_neon_builtins.def ! ebcb1b558c456101c18d856467a5ffe4 gcc/config/arm/bpabi.h 1d36ffaf951df98052e3f212624f4570 gcc/config/arm/coff.h 014379a6df6bf446bf48de1cdb795218 gcc/config/arm/constraints.md 0cb3e2e12b3a38d03abbdeda5baf61cc gcc/config/arm/cortex-a15-neon.md *************** f1c35fe36074aeb6b86bf3df9b9809cb gcc/co *** 2979,2985 **** 1d56e0ea31042b3affc03861cb6a14a2 gcc/config/arm/crypto.def d5c5c3524695653b76c4f2c0f4962135 gcc/config/arm/crypto.md 6eee2b8989e806a15ddf1164190ae779 gcc/config/arm/driver-arm.c ! c21dcae115511871aabca10a1284c0e6 gcc/config/arm/elf.h 68cb8271ca3a2efc000d490e96066dfe gcc/config/arm/fa526.md 091065d093420ecc514c25df889f23fb gcc/config/arm/fa606te.md 504b87c80c9fc45168f5d95a3111845d gcc/config/arm/fa626te.md --- 2980,2986 ---- 1d56e0ea31042b3affc03861cb6a14a2 gcc/config/arm/crypto.def d5c5c3524695653b76c4f2c0f4962135 gcc/config/arm/crypto.md 6eee2b8989e806a15ddf1164190ae779 gcc/config/arm/driver-arm.c ! 8aa2af0f9cf690414116130a59f6ead0 gcc/config/arm/elf.h 68cb8271ca3a2efc000d490e96066dfe gcc/config/arm/fa526.md 091065d093420ecc514c25df889f23fb gcc/config/arm/fa606te.md 504b87c80c9fc45168f5d95a3111845d gcc/config/arm/fa626te.md *************** baac023f963fbf3f3056d327e5a7f0c2 gcc/co *** 2993,3009 **** 0a29e3add3cde2528f46f0ea3e4a9d16 gcc/config/arm/ldmstm.md 15a62603ee5291a6e33533c06353786e gcc/config/arm/ldrdstrd.md 11a002db4ff19e479f0d124cdafb860a gcc/config/arm/linux-eabi.h ! 749a26b5388fa3f5575f3ba347ca5b8a gcc/config/arm/linux-elf.h ! e5707fd0263e93cfd7e4f294d88db7a5 gcc/config/arm/linux-gas.h b7897a497d5fe972d6d7d42299cf7334 gcc/config/arm/marvell-f-iwmmxt.md b1c28c557bd726126ce8dc1cca03d981 gcc/config/arm/marvell-pj4.md 771faa70c2051051996ec38873011acc gcc/config/arm/mmintrin.h - 1ee25c02568a36d527c0f8ebd7af594f gcc/config/arm/neon-docgen.ml - 575e419fc8cdf990cc4ff317aac599b4 gcc/config/arm/neon-gen.ml 7a5eba056883c332ad3a5fe1725cc6c2 gcc/config/arm/neon-testgen.ml a5bcc027bcaf911067121805327b6407 gcc/config/arm/neon.md d16795d6009d62f44e69fece0b527660 gcc/config/arm/neon.ml ! 795ef8ff5bb19feeb771758cf2384c31 gcc/config/arm/netbsd-elf.h 24a26d6ba1e6ebf3a9676ee91cd6efb4 gcc/config/arm/predicates.md e062772cc17dc38f590c49d66b7495e5 gcc/config/arm/rtems-eabi.h f1380539ece11e800120f6dd294810c0 gcc/config/arm/semi.h --- 2994,3008 ---- 0a29e3add3cde2528f46f0ea3e4a9d16 gcc/config/arm/ldmstm.md 15a62603ee5291a6e33533c06353786e gcc/config/arm/ldrdstrd.md 11a002db4ff19e479f0d124cdafb860a gcc/config/arm/linux-eabi.h ! 1659d9b210406f8ab375e650ec9524b4 gcc/config/arm/linux-elf.h ! c0316bad2e142d642f4edea6c49a1661 gcc/config/arm/linux-gas.h b7897a497d5fe972d6d7d42299cf7334 gcc/config/arm/marvell-f-iwmmxt.md b1c28c557bd726126ce8dc1cca03d981 gcc/config/arm/marvell-pj4.md 771faa70c2051051996ec38873011acc gcc/config/arm/mmintrin.h 7a5eba056883c332ad3a5fe1725cc6c2 gcc/config/arm/neon-testgen.ml a5bcc027bcaf911067121805327b6407 gcc/config/arm/neon.md d16795d6009d62f44e69fece0b527660 gcc/config/arm/neon.ml ! a24042b796d08a2cd687392b38423454 gcc/config/arm/netbsd-elf.h 24a26d6ba1e6ebf3a9676ee91cd6efb4 gcc/config/arm/predicates.md e062772cc17dc38f590c49d66b7495e5 gcc/config/arm/rtems-eabi.h f1380539ece11e800120f6dd294810c0 gcc/config/arm/semi.h *************** cda57f2e60bf2b2516287537752ed00e gcc/co *** 3020,3049 **** 6a2754e02840c8bafdf59d8df84f5c35 gcc/config/arm/t-vxworks bcd5d34153856d124d957f7232436d2c gcc/config/arm/thumb2.md aff5361a35cf3b67875219f0cf3033e8 gcc/config/arm/types.md ! a5012a589602d48db53fabb9dc9109cd gcc/config/arm/uclinux-eabi.h ! 7ef376804eee1de2ab012b3b7091e541 gcc/config/arm/uclinux-elf.h 75e200f7915fb565020d3cb835874ace gcc/config/arm/unknown-elf.h c136d87590d20ac3cfb14cbfae13ffea gcc/config/arm/unspecs.md 3d0b0d6a1ba842743ec73559bd4deff8 gcc/config/arm/vec-common.md 6602aa41ff91da4bf98cb2adf2f43c7b gcc/config/arm/vfp.md 81b24c3d99f42aaf80b43d705f3f7ea3 gcc/config/arm/vfp11.md ! 0cc82c8ffc973f91ed1c3859c23e186e gcc/config/arm/vxworks.h 7ea704769204d420cbcbb2f114349312 gcc/config/arm/vxworks.opt a17a638dc98f3f18b0e13448c69e1e65 gcc/config/arm/x-arm b5a2b09861de6689113db05b64719022 gcc/config/avr/avr-arch.h 2643f8b817df1b5cb3b39737fdb810ad gcc/config/avr/avr-c.c 8b8a7041f9af051e650a9caa8a73e3f7 gcc/config/avr/avr-devices.c 5b18e57e6b772fc6eff612a345599f23 gcc/config/avr/avr-dimode.md ! 964d39554ea32300f4353e8bf87c115a gcc/config/avr/avr-fixed.md 0ea9e1292fa63ad32d73b8c1ea6175e9 gcc/config/avr/avr-log.c ! 12514ae1006cd842cff739c9680f69e2 gcc/config/avr/avr-mcus.def f2654233df6eb02ba173ff479c08e9a5 gcc/config/avr/avr-modes.def f18b33ac6648ea748c8b996ee866aa3a gcc/config/avr/avr-protos.h 5ebe500ff3ac2700f5b1bc9c761a0c87 gcc/config/avr/avr-stdint.h 7344d18acafd2951ffbf2c0a9f014f08 gcc/config/avr/avr-tables.opt ! c4c13b493b766197778c55301a2613e3 gcc/config/avr/avr.c ! 14d8b02e8292c150bb47704e7442bc82 gcc/config/avr/avr.h ! 1cc6502c3e804c18ea0d4e157317d782 gcc/config/avr/avr.md 421709cbe0735ad8406c0430cf5087d8 gcc/config/avr/avr.opt d661391f9cbec6e8f6a68663a2f1eef7 gcc/config/avr/avrlibc.h df7d2059ef5d7a0c8b8680202c92f0c8 gcc/config/avr/builtins.def --- 3019,3048 ---- 6a2754e02840c8bafdf59d8df84f5c35 gcc/config/arm/t-vxworks bcd5d34153856d124d957f7232436d2c gcc/config/arm/thumb2.md aff5361a35cf3b67875219f0cf3033e8 gcc/config/arm/types.md ! 1e08e1c9ef0b4ef9afbd7098ed370a30 gcc/config/arm/uclinux-eabi.h ! 9a1e2a69825c4161470dc22b2622e678 gcc/config/arm/uclinux-elf.h 75e200f7915fb565020d3cb835874ace gcc/config/arm/unknown-elf.h c136d87590d20ac3cfb14cbfae13ffea gcc/config/arm/unspecs.md 3d0b0d6a1ba842743ec73559bd4deff8 gcc/config/arm/vec-common.md 6602aa41ff91da4bf98cb2adf2f43c7b gcc/config/arm/vfp.md 81b24c3d99f42aaf80b43d705f3f7ea3 gcc/config/arm/vfp11.md ! 892885b7d4dc935afdd8917fc2d277e6 gcc/config/arm/vxworks.h 7ea704769204d420cbcbb2f114349312 gcc/config/arm/vxworks.opt a17a638dc98f3f18b0e13448c69e1e65 gcc/config/arm/x-arm b5a2b09861de6689113db05b64719022 gcc/config/avr/avr-arch.h 2643f8b817df1b5cb3b39737fdb810ad gcc/config/avr/avr-c.c 8b8a7041f9af051e650a9caa8a73e3f7 gcc/config/avr/avr-devices.c 5b18e57e6b772fc6eff612a345599f23 gcc/config/avr/avr-dimode.md ! 6360195f2f3c5789d2f40cea7408f84f gcc/config/avr/avr-fixed.md 0ea9e1292fa63ad32d73b8c1ea6175e9 gcc/config/avr/avr-log.c ! 48400c902cb5f518f34efe8178f569b4 gcc/config/avr/avr-mcus.def f2654233df6eb02ba173ff479c08e9a5 gcc/config/avr/avr-modes.def f18b33ac6648ea748c8b996ee866aa3a gcc/config/avr/avr-protos.h 5ebe500ff3ac2700f5b1bc9c761a0c87 gcc/config/avr/avr-stdint.h 7344d18acafd2951ffbf2c0a9f014f08 gcc/config/avr/avr-tables.opt ! 039808b0d14099c7c5d41b144f7db0f0 gcc/config/avr/avr.c ! 9f36e271302a29de37eae1f2ce2b1b0c gcc/config/avr/avr.h ! e11cb18f03e4fbe2cd763d60120d2f50 gcc/config/avr/avr.md 421709cbe0735ad8406c0430cf5087d8 gcc/config/avr/avr.opt d661391f9cbec6e8f6a68663a2f1eef7 gcc/config/avr/avrlibc.h df7d2059ef5d7a0c8b8680202c92f0c8 gcc/config/avr/builtins.def *************** cab1f31b62c7e70b908f7e965a6986bf gcc/co *** 3137,3143 **** 08dc860eb57f4234525d5a7c354e6531 gcc/config/darwin.opt a58fdc493363dfcf3d26a22cbacc78d7 gcc/config/darwin10.h 8f2cdbd6cce4cf6cc3b6312c89ab384a gcc/config/darwin9.h ! 3936580e0711aeda2dc1e0b4b6ad2eb7 gcc/config/dbx.h 6992e29d69610bac1fc942b933479a3c gcc/config/dbxcoff.h 799a2e144a506e2b4880dfe40e4e3241 gcc/config/dbxelf.h c79e4c5a8e729a0c1c7b6f3a5723ff97 gcc/config/default-c.c --- 3136,3142 ---- 08dc860eb57f4234525d5a7c354e6531 gcc/config/darwin.opt a58fdc493363dfcf3d26a22cbacc78d7 gcc/config/darwin10.h 8f2cdbd6cce4cf6cc3b6312c89ab384a gcc/config/darwin9.h ! d52e26808053c62149da62094c2d53f2 gcc/config/dbx.h 6992e29d69610bac1fc942b933479a3c gcc/config/dbxcoff.h 799a2e144a506e2b4880dfe40e4e3241 gcc/config/dbxelf.h c79e4c5a8e729a0c1c7b6f3a5723ff97 gcc/config/default-c.c *************** a9e1cde30a6ecf9d70e7db1d49a3a8f6 gcc/co *** 3239,3251 **** 24c5f3a19dc3f8efde748b4e1fb28aa1 gcc/config/i386/cygming.opt e21436b3decf985d45fcb3570935958f gcc/config/i386/cygwin-stdint.h b8c56841226d00f3611e76df81bc1c32 gcc/config/i386/cygwin-w64.h ! a4281656c7c96108f69b4d49b64346bc gcc/config/i386/cygwin.h 21dcaf77cc8fb36ae705ee603ce101e7 gcc/config/i386/darwin.h f662aa7a9eab8bad5800512a3187b0c8 gcc/config/i386/darwin64.h e7c8adf4ccaf394835acedd1e77b0be5 gcc/config/i386/djgpp-stdint.h ed2a20210c9db85baa32cfae1070d72a gcc/config/i386/djgpp.h b5c747e37b508b664a1ff09f6e55f235 gcc/config/i386/djgpp.opt ! 8d3102a8b712400dbd808d9910635dba gcc/config/i386/driver-i386.c 8ee7873e94be2782003bd626af507dea gcc/config/i386/emmintrin.h c10561ee6fc509ac4572687dc0f67e76 gcc/config/i386/f16cintrin.h 301045a5d299805e520b98e6c019c4eb gcc/config/i386/fma4intrin.h --- 3238,3250 ---- 24c5f3a19dc3f8efde748b4e1fb28aa1 gcc/config/i386/cygming.opt e21436b3decf985d45fcb3570935958f gcc/config/i386/cygwin-stdint.h b8c56841226d00f3611e76df81bc1c32 gcc/config/i386/cygwin-w64.h ! 04d0e764f6744c7e9b76a39d0381d053 gcc/config/i386/cygwin.h 21dcaf77cc8fb36ae705ee603ce101e7 gcc/config/i386/darwin.h f662aa7a9eab8bad5800512a3187b0c8 gcc/config/i386/darwin64.h e7c8adf4ccaf394835acedd1e77b0be5 gcc/config/i386/djgpp-stdint.h ed2a20210c9db85baa32cfae1070d72a gcc/config/i386/djgpp.h b5c747e37b508b664a1ff09f6e55f235 gcc/config/i386/djgpp.opt ! 4a6351b62d521bfcc95294ec2e18673f gcc/config/i386/driver-i386.c 8ee7873e94be2782003bd626af507dea gcc/config/i386/emmintrin.h c10561ee6fc509ac4572687dc0f67e76 gcc/config/i386/f16cintrin.h 301045a5d299805e520b98e6c019c4eb gcc/config/i386/fma4intrin.h *************** a206f895a51dca0acbbd5c40439f43ac gcc/co *** 3271,3279 **** fbc0e51208d80f573c53d5b2172b2750 gcc/config/i386/i386-modes.def 1fc953e4fa5bc7c93802f7952b7dafbc gcc/config/i386/i386-opts.h b2009cc823c7348862f1dd5b62268874 gcc/config/i386/i386-protos.h ! 5a3d6e3603783530ff8af3cd36274b56 gcc/config/i386/i386.c cc283b2c0490928dcd63471d19148858 gcc/config/i386/i386.h ! f6762ecc5776c962f05fbd3d189a99b4 gcc/config/i386/i386.md 8ae240f9350420a2a75307b02b20422a gcc/config/i386/i386.opt ddbc3d63f2446262d897ba8f20043c58 gcc/config/i386/i386elf.h c238f4d065449a93da6bce13121a2c3d gcc/config/i386/ia32intrin.h --- 3270,3278 ---- fbc0e51208d80f573c53d5b2172b2750 gcc/config/i386/i386-modes.def 1fc953e4fa5bc7c93802f7952b7dafbc gcc/config/i386/i386-opts.h b2009cc823c7348862f1dd5b62268874 gcc/config/i386/i386-protos.h ! e9f3a07488290b60468d00cb4d4565a2 gcc/config/i386/i386.c cc283b2c0490928dcd63471d19148858 gcc/config/i386/i386.h ! 9a8b89ee2e0d7dd72af72a78b1ccf641 gcc/config/i386/i386.md 8ae240f9350420a2a75307b02b20422a gcc/config/i386/i386.opt ddbc3d63f2446262d897ba8f20043c58 gcc/config/i386/i386elf.h c238f4d065449a93da6bce13121a2c3d gcc/config/i386/ia32intrin.h *************** b1b30be7ff3a4fd669a9f6b11c2c8195 gcc/co *** 3295,3301 **** 02bfe0ac147bcb4c9f26f542a3ea1c3a gcc/config/i386/mingw-w64.h 666ec7e2e9890486e50762bfe1ca7c25 gcc/config/i386/mingw-w64.opt d17b901c2f628cb44f5a234eb3572a92 gcc/config/i386/mingw.opt ! 8d288d09714f4e79aae5458ef6848407 gcc/config/i386/mingw32.h 97f47580518fbe15e82cf9bd4741669f gcc/config/i386/mm3dnow.h e4e116de997ab92599e67a55612e8c65 gcc/config/i386/mmintrin.h 6417b98a54d4b0b7a5161245196159f4 gcc/config/i386/mmx.md --- 3294,3300 ---- 02bfe0ac147bcb4c9f26f542a3ea1c3a gcc/config/i386/mingw-w64.h 666ec7e2e9890486e50762bfe1ca7c25 gcc/config/i386/mingw-w64.opt d17b901c2f628cb44f5a234eb3572a92 gcc/config/i386/mingw.opt ! 17134943d15d722dccd7c33d27496b58 gcc/config/i386/mingw32.h 97f47580518fbe15e82cf9bd4741669f gcc/config/i386/mm3dnow.h e4e116de997ab92599e67a55612e8c65 gcc/config/i386/mmintrin.h 6417b98a54d4b0b7a5161245196159f4 gcc/config/i386/mmx.md *************** be67d053ecca105537aeb8e554b4cfa1 gcc/co *** 3403,3409 **** 208c523338e87e92859a61537a861ee0 gcc/config/ia64/vect.md bc324d80212cb61b474b747b25885f92 gcc/config/ia64/vms.h f81371dd35397ed28d2a17f175979e8f gcc/config/ia64/vms.opt ! 71188f9c44228efe9db53d6fa9b491b4 gcc/config/initfini-array.h 74314035e956f32870e446464a93df0f gcc/config/iq2000/abi 3a99cc3eedb9706a5a0f28a23617656f gcc/config/iq2000/constraints.md 35560233ecd22b772348ed6390e163d6 gcc/config/iq2000/iq2000-opts.h --- 3402,3408 ---- 208c523338e87e92859a61537a861ee0 gcc/config/ia64/vect.md bc324d80212cb61b474b747b25885f92 gcc/config/ia64/vms.h f81371dd35397ed28d2a17f175979e8f gcc/config/ia64/vms.opt ! 5e1cb7f2cd29907f552aec0922372fc4 gcc/config/initfini-array.h 74314035e956f32870e446464a93df0f gcc/config/iq2000/abi 3a99cc3eedb9706a5a0f28a23617656f gcc/config/iq2000/constraints.md 35560233ecd22b772348ed6390e163d6 gcc/config/iq2000/iq2000-opts.h *************** f276505b774e975b88b6c90362783e73 gcc/co *** 3670,3681 **** 4772463c3b1ea64d84fc459630245dc6 gcc/config/msp430/constraints.md 81c5efbfbbf0226a94fec244522f0086 gcc/config/msp430/msp430-c.c 45e698ba893f440905885dced318b218 gcc/config/msp430/msp430-modes.def ! 2725dd8935cc0b1fe508a73747bfee2e gcc/config/msp430/msp430-protos.h ! 9cd05a6d3ab08982dab0bf70da241111 gcc/config/msp430/msp430.c ! b2e61ed52e0d72055c1528a3de95164a gcc/config/msp430/msp430.h ! 4955a52bd8647e7a5ed0a596c1558c55 gcc/config/msp430/msp430.md ! b73015e7d728b07e82f86543b578c7cf gcc/config/msp430/msp430.opt ! 271e888963ee26b4096af0f70230db1b gcc/config/msp430/predicates.md dc8043434cd35a5508738f23cced8f6a gcc/config/msp430/t-msp430 bef2e0bb04dc995149b8679834ba792e gcc/config/nds32/constants.md d01826784eb6ec8ca848e65ac5584da8 gcc/config/nds32/constraints.md --- 3669,3681 ---- 4772463c3b1ea64d84fc459630245dc6 gcc/config/msp430/constraints.md 81c5efbfbbf0226a94fec244522f0086 gcc/config/msp430/msp430-c.c 45e698ba893f440905885dced318b218 gcc/config/msp430/msp430-modes.def ! e343f3539654f52b3b9a63601843a705 gcc/config/msp430/msp430-opts.h ! da9601ef9725a1ac04f31f9dd8d88b8e gcc/config/msp430/msp430-protos.h ! aadcd4b51cd4514cb6acdc4ca347eaff gcc/config/msp430/msp430.c ! 0463c9d12d75be3d5afb9d8da1286fb5 gcc/config/msp430/msp430.h ! 8f40265829d17cd8fdbd4ec9094e3493 gcc/config/msp430/msp430.md ! 8a2e57378fa5d5962cae3a7e95498eec gcc/config/msp430/msp430.opt ! 1cfe9d75789557869da70353b1cafcab gcc/config/msp430/predicates.md dc8043434cd35a5508738f23cced8f6a gcc/config/msp430/t-msp430 bef2e0bb04dc995149b8679834ba792e gcc/config/nds32/constants.md d01826784eb6ec8ca848e65ac5584da8 gcc/config/nds32/constraints.md *************** afcbf06d28dc939fe7f0fe1f80a1e5ba gcc/co *** 3699,3705 **** c75989e8ba956b93961234f81b1b3e58 gcc/config/netbsd-elf.opt 439770d83eb126178684932270b50d52 gcc/config/netbsd.h ec624b498a34279e8f982b29f9a338af gcc/config/netbsd.opt ! 96fd04552b2b9c6a425b19257d11f244 gcc/config/newlib-stdint.h b7d976992060b59d0ef7031a94475df5 gcc/config/nios2/constraints.md ef734234c709297b1fb7f68b54c6d3de gcc/config/nios2/elf.h ddc88bf2b6aa464fe12463a0467299d5 gcc/config/nios2/elf.opt --- 3699,3705 ---- c75989e8ba956b93961234f81b1b3e58 gcc/config/netbsd-elf.opt 439770d83eb126178684932270b50d52 gcc/config/netbsd.h ec624b498a34279e8f982b29f9a338af gcc/config/netbsd.opt ! 5c96f94f067df4c4104960c5000a2fce gcc/config/newlib-stdint.h b7d976992060b59d0ef7031a94475df5 gcc/config/nios2/constraints.md ef734234c709297b1fb7f68b54c6d3de gcc/config/nios2/elf.h ddc88bf2b6aa464fe12463a0467299d5 gcc/config/nios2/elf.opt *************** e6ce7b8fd7aaeddaa95722dd2257db20 gcc/co *** 3808,3814 **** a126c516a8ecc213c4eae1949e1a2e15 gcc/config/rs6000/aix61.h 7ba56f31fe475125fb79489a951e14c5 gcc/config/rs6000/aix64.opt f99b25eefb9db62d51f310e5b787ff5a gcc/config/rs6000/altivec.h ! c500bcd8daa1df5dd882d5357386ea5c gcc/config/rs6000/altivec.md 87ecd670e3f1a8e2186f29d0b3ee3720 gcc/config/rs6000/biarch64.h 07348cec6e9bf39592be4fad5e165f02 gcc/config/rs6000/cell.md f3ab2b31f64194613298ea7a70a5e4ce gcc/config/rs6000/constraints.md --- 3808,3814 ---- a126c516a8ecc213c4eae1949e1a2e15 gcc/config/rs6000/aix61.h 7ba56f31fe475125fb79489a951e14c5 gcc/config/rs6000/aix64.opt f99b25eefb9db62d51f310e5b787ff5a gcc/config/rs6000/altivec.h ! 87ac343d66c31032b41c494d38ffb0d9 gcc/config/rs6000/altivec.md 87ecd670e3f1a8e2186f29d0b3ee3720 gcc/config/rs6000/biarch64.h 07348cec6e9bf39592be4fad5e165f02 gcc/config/rs6000/cell.md f3ab2b31f64194613298ea7a70a5e4ce gcc/config/rs6000/constraints.md *************** d99ffcd0ce9424a55a2fea384bb1686e gcc/co *** 3820,3826 **** 02ca5caa36de5edf56fe24dbbda6b294 gcc/config/rs6000/darwin7.h 5cbd6ff218133094f33d29711429a7bf gcc/config/rs6000/darwin8.h 1d8de40ad03abb984184f2bd449a4029 gcc/config/rs6000/default64.h ! 7a1401c61271d7d7ad136bbb68b29ea1 gcc/config/rs6000/dfp.md 2441ed646ceea5331ee440418bd26204 gcc/config/rs6000/driver-rs6000.c c8949ac54fd92b36837415b4558f7448 gcc/config/rs6000/e300c2c3.md 1f15aab6bf2c740614cb66d636c01a19 gcc/config/rs6000/e500.h --- 3820,3826 ---- 02ca5caa36de5edf56fe24dbbda6b294 gcc/config/rs6000/darwin7.h 5cbd6ff218133094f33d29711429a7bf gcc/config/rs6000/darwin8.h 1d8de40ad03abb984184f2bd449a4029 gcc/config/rs6000/default64.h ! e0c3e640aac757ec2f33aee03cea2181 gcc/config/rs6000/dfp.md 2441ed646ceea5331ee440418bd26204 gcc/config/rs6000/driver-rs6000.c c8949ac54fd92b36837415b4558f7448 gcc/config/rs6000/e300c2c3.md 1f15aab6bf2c740614cb66d636c01a19 gcc/config/rs6000/e500.h *************** b88b3f163ef0f693776ccfcdb5ee5947 gcc/co *** 3837,3845 **** f993244bbc210c86997e1f962ce62a05 gcc/config/rs6000/genopt.sh 46cf29a42c9dea21b80a0d2adaf86045 gcc/config/rs6000/host-darwin.c 49e9ca19e3ce57f746c48f645ddb6629 gcc/config/rs6000/host-ppc64-darwin.c ! cc22d9575e94320c4263739101254d07 gcc/config/rs6000/htm.md fc49e7468c18e626771f399690584b01 gcc/config/rs6000/htmintrin.h ! 6db289dd98c70ade92bc5ce741966238 gcc/config/rs6000/htmxlintrin.h 94b9c339bd047a988fc31eeb870b056b gcc/config/rs6000/linux.h a53d69dc8707272a24e28a74b326df66 gcc/config/rs6000/linux64.h e8976be8a2c554ec952fa2578c39aba7 gcc/config/rs6000/linux64.opt --- 3837,3845 ---- f993244bbc210c86997e1f962ce62a05 gcc/config/rs6000/genopt.sh 46cf29a42c9dea21b80a0d2adaf86045 gcc/config/rs6000/host-darwin.c 49e9ca19e3ce57f746c48f645ddb6629 gcc/config/rs6000/host-ppc64-darwin.c ! 608b42e39abfee0956b074f3b05d898c gcc/config/rs6000/htm.md fc49e7468c18e626771f399690584b01 gcc/config/rs6000/htmintrin.h ! ce27605188d04634347cddbe29359656 gcc/config/rs6000/htmxlintrin.h 94b9c339bd047a988fc31eeb870b056b gcc/config/rs6000/linux.h a53d69dc8707272a24e28a74b326df66 gcc/config/rs6000/linux64.h e8976be8a2c554ec952fa2578c39aba7 gcc/config/rs6000/linux64.opt *************** fa3263af675169a19805527633e55a4c gcc/co *** 3859,3876 **** ecc63691ee399be45afbeb50ef539bb7 gcc/config/rs6000/power8.md 0eca30e0219caa2c3b9107b8a8934167 gcc/config/rs6000/ppc-asm.h a399e486f9d1ec320a662bd4afffd037 gcc/config/rs6000/ppu_intrinsics.h ! 034b4482bb5c43d49fe72d5ee86f5755 gcc/config/rs6000/predicates.md ! 1e67b012ea1a2a9bc17967d0176399b6 gcc/config/rs6000/rs6000-builtin.def e03a012414e4363cc0297e7022d3d17c gcc/config/rs6000/rs6000-c.c b8e72be81712f25cfaede9887cc18d63 gcc/config/rs6000/rs6000-cpus.def 2b7ac7ddb1e383347e8684708991a45c gcc/config/rs6000/rs6000-linux.c 7d06c2b54e7e78a9a57c2f9719e0d468 gcc/config/rs6000/rs6000-modes.def 09c1fbf640b3bad5ae3bb2300301eaa8 gcc/config/rs6000/rs6000-opts.h ! 1e962a6fe5044ba2cf188d320875649b gcc/config/rs6000/rs6000-protos.h 91c3c0b251bd8b64407d2c54008592a3 gcc/config/rs6000/rs6000-tables.opt ! 8e99fce650a2d7c4802477b619849298 gcc/config/rs6000/rs6000.c ! a3ad0b92d8a977d3b7d0cef20546c521 gcc/config/rs6000/rs6000.h ! 7e0dd7ce95a25e8ce508d8f1d07e91a5 gcc/config/rs6000/rs6000.md 7343b7045580eba4411121ec1934ecad gcc/config/rs6000/rs6000.opt 4449f37807aeb14832c50529169a3ffe gcc/config/rs6000/rs64.md f33e13ba9553f9dffed8aa05d8df34d1 gcc/config/rs6000/rtems.h --- 3859,3876 ---- ecc63691ee399be45afbeb50ef539bb7 gcc/config/rs6000/power8.md 0eca30e0219caa2c3b9107b8a8934167 gcc/config/rs6000/ppc-asm.h a399e486f9d1ec320a662bd4afffd037 gcc/config/rs6000/ppu_intrinsics.h ! 7b4965895e3de2671c0d4baec4bac25c gcc/config/rs6000/predicates.md ! a727574906ad78e966f6cf33cd1b9fbe gcc/config/rs6000/rs6000-builtin.def e03a012414e4363cc0297e7022d3d17c gcc/config/rs6000/rs6000-c.c b8e72be81712f25cfaede9887cc18d63 gcc/config/rs6000/rs6000-cpus.def 2b7ac7ddb1e383347e8684708991a45c gcc/config/rs6000/rs6000-linux.c 7d06c2b54e7e78a9a57c2f9719e0d468 gcc/config/rs6000/rs6000-modes.def 09c1fbf640b3bad5ae3bb2300301eaa8 gcc/config/rs6000/rs6000-opts.h ! cd5c5823d74d91e89b5cde321fa0a0b5 gcc/config/rs6000/rs6000-protos.h 91c3c0b251bd8b64407d2c54008592a3 gcc/config/rs6000/rs6000-tables.opt ! 846d98a534311ea7e86f0de8b3226f9e gcc/config/rs6000/rs6000.c ! 9ec9d392b57323b58611dcbb490a1646 gcc/config/rs6000/rs6000.h ! d792d34d555de1d81a1d5c74fcacadf6 gcc/config/rs6000/rs6000.md 7343b7045580eba4411121ec1934ecad gcc/config/rs6000/rs6000.opt 4449f37807aeb14832c50529169a3ffe gcc/config/rs6000/rs64.md f33e13ba9553f9dffed8aa05d8df34d1 gcc/config/rs6000/rtems.h *************** aeae742b02e4f6ac96fa1a3d18fad193 gcc/co *** 3880,3886 **** a9da2a60ceb8a34d28fd44dfb88da7f7 gcc/config/rs6000/spe.h d8d983e9d6d999fdf563dfe20ed78474 gcc/config/rs6000/spe.md 1bd465f61447745c22afbe27e0f381ec gcc/config/rs6000/spu2vmx.h ! 10a887e10132e9413706333244ff91d4 gcc/config/rs6000/sync.md 8a041c83cc607c42aa7ae7046df74070 gcc/config/rs6000/sysv4.h 7a548d9a782e0a42d0e7ff42a1f331b7 gcc/config/rs6000/sysv4.opt 3b9a0af37461971b0c7698f018bd13af gcc/config/rs6000/sysv4le.h --- 3880,3886 ---- a9da2a60ceb8a34d28fd44dfb88da7f7 gcc/config/rs6000/spe.h d8d983e9d6d999fdf563dfe20ed78474 gcc/config/rs6000/spe.md 1bd465f61447745c22afbe27e0f381ec gcc/config/rs6000/spu2vmx.h ! a9f8e6036f73260991227c777d01a371 gcc/config/rs6000/sync.md 8a041c83cc607c42aa7ae7046df74070 gcc/config/rs6000/sysv4.h 7a548d9a782e0a42d0e7ff42a1f331b7 gcc/config/rs6000/sysv4.opt 3b9a0af37461971b0c7698f018bd13af gcc/config/rs6000/sysv4le.h *************** d23864248497f7f5544c2e1916dc402d gcc/co *** 3910,3916 **** b1f48ff99abc14b3f61842bd2ad8cb9f gcc/config/rs6000/titan.md 0ac3e3c82b12030f8797bf598d14a7df gcc/config/rs6000/vec_types.h afa1b08d7889dfa24025d27c5ebcf9d2 gcc/config/rs6000/vector.md ! 619057d84062c67d970112fcf127b91f gcc/config/rs6000/vsx.md 0c2404e4c53d11d18595ce802fcd85df gcc/config/rs6000/vxworks.h 5c2f724024335c015d76fe32d3da6de9 gcc/config/rs6000/x-aix af875b9bcb1ec1da1f33d5e34df8ca7b gcc/config/rs6000/x-darwin --- 3910,3916 ---- b1f48ff99abc14b3f61842bd2ad8cb9f gcc/config/rs6000/titan.md 0ac3e3c82b12030f8797bf598d14a7df gcc/config/rs6000/vec_types.h afa1b08d7889dfa24025d27c5ebcf9d2 gcc/config/rs6000/vector.md ! 66ec4591374a2a54342c80bb63250479 gcc/config/rs6000/vsx.md 0c2404e4c53d11d18595ce802fcd85df gcc/config/rs6000/vxworks.h 5c2f724024335c015d76fe32d3da6de9 gcc/config/rs6000/x-aix af875b9bcb1ec1da1f33d5e34df8ca7b gcc/config/rs6000/x-darwin *************** e96a736663df72a44ca98273b81a32c5 gcc/co *** 3922,3928 **** e921244f996542b710957fd7ab4e7c8f gcc/config/rs6000/xfpu.md 1efdbc0666cd2a766427ef67bbb15773 gcc/config/rs6000/xilinx.h e7a35ee01feee949866704b0d05f7375 gcc/config/rs6000/xilinx.opt ! 69d954922c9feecc81aa2cbc28850fec gcc/config/rtems.h 4a81983fc5767ef847178b1c398fa112 gcc/config/rtems.opt b883ac69b1a233fdf81421da26748b82 gcc/config/rx/constraints.md e32f17005427bb0f246f390e31202982 gcc/config/rx/predicates.md --- 3922,3928 ---- e921244f996542b710957fd7ab4e7c8f gcc/config/rs6000/xfpu.md 1efdbc0666cd2a766427ef67bbb15773 gcc/config/rs6000/xilinx.h e7a35ee01feee949866704b0d05f7375 gcc/config/rs6000/xilinx.opt ! 4ef07d56945965286be56fe634c74660 gcc/config/rtems.h 4a81983fc5767ef847178b1c398fa112 gcc/config/rtems.opt b883ac69b1a233fdf81421da26748b82 gcc/config/rx/constraints.md e32f17005427bb0f246f390e31202982 gcc/config/rx/predicates.md *************** fd503e66901381fd4a42832d0d3a26d0 gcc/co *** 3987,3993 **** 815bc614203e150615c85713d1aa605a gcc/config/sh/sh-mem.cc ee56adc86b26db0a967855a075947e96 gcc/config/sh/sh-modes.def e0d982724069321bc7bdc47869642298 gcc/config/sh/sh-protos.h ! ef9ef4706de1da43d91e1037839b9a2d gcc/config/sh/sh.c c4e8a30076baf764ee83c7a1427cad1c gcc/config/sh/sh.h 56bc2118729eb86840eaa403473be07a gcc/config/sh/sh.md 738c29389fcea942f96d0f3ef40b61f8 gcc/config/sh/sh.opt --- 3987,3993 ---- 815bc614203e150615c85713d1aa605a gcc/config/sh/sh-mem.cc ee56adc86b26db0a967855a075947e96 gcc/config/sh/sh-modes.def e0d982724069321bc7bdc47869642298 gcc/config/sh/sh-protos.h ! ca269f7f50036a7abfe4c200bef3b526 gcc/config/sh/sh.c c4e8a30076baf764ee83c7a1427cad1c gcc/config/sh/sh.h 56bc2118729eb86840eaa403473be07a gcc/config/sh/sh.md 738c29389fcea942f96d0f3ef40b61f8 gcc/config/sh/sh.opt *************** c44bf50c0ddeb5e7812797cba1198b04 gcc/co *** 4015,4026 **** ee1c8551d20bb54f9fdc06c861fc7855 gcc/config/sol2-10.h b158f432118f2f65990ae38e82cfa8b7 gcc/config/sol2-bi.h 3d12d4d612066683f2ac724e1208053d gcc/config/sol2-c.c 44524ef1851c8536902a3c853a673893 gcc/config/sol2-cxx.c 57069fdd8de13deb38e01e37cc05c6e9 gcc/config/sol2-protos.h 9d646f447e0e9cea13634ba6247c718c gcc/config/sol2-stubs.c ec1cee3f01093189b897e121867d295e gcc/config/sol2.c ! eb380a1bc26c24f3ad116ebc0a888b6b gcc/config/sol2.h ! 98c7dbec52fde3172cca4e3dacdc725b gcc/config/sol2.opt d376961bc8fba1465e216bf051d953a3 gcc/config/sparc/biarch64.h 62b3b82c1d92b5afde36be050abfcd4f gcc/config/sparc/constraints.md ad6e28a5a103aa7f72a933222bffb3ea gcc/config/sparc/cypress.md --- 4015,4028 ---- ee1c8551d20bb54f9fdc06c861fc7855 gcc/config/sol2-10.h b158f432118f2f65990ae38e82cfa8b7 gcc/config/sol2-bi.h 3d12d4d612066683f2ac724e1208053d gcc/config/sol2-c.c + 5c26c2321d68d4724b0d0076803c6b89 gcc/config/sol2-clearcap.map + 73dd11dea23019ab25cbbd70968694e7 gcc/config/sol2-clearcapv2.map 44524ef1851c8536902a3c853a673893 gcc/config/sol2-cxx.c 57069fdd8de13deb38e01e37cc05c6e9 gcc/config/sol2-protos.h 9d646f447e0e9cea13634ba6247c718c gcc/config/sol2-stubs.c ec1cee3f01093189b897e121867d295e gcc/config/sol2.c ! ee49a8b66dfe04b0950ae00082080a2e gcc/config/sol2.h ! 64a06bd4f2ca96a9e838f41d637a809b gcc/config/sol2.opt d376961bc8fba1465e216bf051d953a3 gcc/config/sparc/biarch64.h 62b3b82c1d92b5afde36be050abfcd4f gcc/config/sparc/constraints.md ad6e28a5a103aa7f72a933222bffb3ea gcc/config/sparc/cypress.md *************** a7f11fb79691ee2c896b0cf2880ed295 gcc/co *** 4046,4059 **** 4c9272c156a54169682c4d78519e0574 gcc/config/sparc/sparc-c.c fe11466ca359c98303d1d5a77efc7277 gcc/config/sparc/sparc-modes.def b3a2f800b64aa009f99321dfb6a0f3b6 gcc/config/sparc/sparc-opts.h ! d293d1f15e3d50817d45094addc03686 gcc/config/sparc/sparc-protos.h ! cc83181bf17b40dacf1b54d35a524561 gcc/config/sparc/sparc.c 056e9cce1df0c82fbbf3df07ca8247c8 gcc/config/sparc/sparc.h ! 1bc8e3f63a355025962c17184c8abf24 gcc/config/sparc/sparc.md ! 1ecc43f754c828db35372a102bd69702 gcc/config/sparc/sparc.opt a4e9378ba096bbe768f431e5efe542fe gcc/config/sparc/sparclet.md 23633c532af69df48b8945cd85fa8e89 gcc/config/sparc/supersparc.md ! 02061225bf4b9a7f1d10b8074a261c5b gcc/config/sparc/sync.md 06afb5edf97e75d9c98bd0c7feee7ce8 gcc/config/sparc/sysv4.h a833a63e73fa8b2cd6d957a7dba46b80 gcc/config/sparc/t-elf c220a70c033b2f3839f5da1eaf86bd51 gcc/config/sparc/t-leon --- 4048,4061 ---- 4c9272c156a54169682c4d78519e0574 gcc/config/sparc/sparc-c.c fe11466ca359c98303d1d5a77efc7277 gcc/config/sparc/sparc-modes.def b3a2f800b64aa009f99321dfb6a0f3b6 gcc/config/sparc/sparc-opts.h ! 10784bdb9b36f0c0d8072f1299f9fa9c gcc/config/sparc/sparc-protos.h ! 80cf8d1da0e7beece46d81df37a27494 gcc/config/sparc/sparc.c 056e9cce1df0c82fbbf3df07ca8247c8 gcc/config/sparc/sparc.h ! 809a67243ab306f705824adc49250783 gcc/config/sparc/sparc.md ! 0fc21233cd7245bdd222051524ce0840 gcc/config/sparc/sparc.opt a4e9378ba096bbe768f431e5efe542fe gcc/config/sparc/sparclet.md 23633c532af69df48b8945cd85fa8e89 gcc/config/sparc/supersparc.md ! 9a1ba094e19de6682a05f2e661b89991 gcc/config/sparc/sync.md 06afb5edf97e75d9c98bd0c7feee7ce8 gcc/config/sparc/sysv4.h a833a63e73fa8b2cd6d957a7dba46b80 gcc/config/sparc/t-elf c220a70c033b2f3839f5da1eaf86bd51 gcc/config/sparc/t-leon *************** c2ad6aa93a742ce1813e887d69981b2d gcc/co *** 4108,4114 **** fa90d7365d19dbaf3cae61e13de2e767 gcc/config/t-pnt16-warn 501751f2be56698ed1c9cf18358b67ac gcc/config/t-rtems 51d3678acb41d4448cc332f7a8e8cb2e gcc/config/t-slibgcc ! 4f7c6ccc905067d90494d4d1bb45d388 gcc/config/t-sol2 e05234e1ab29a8bd1212092f1bcd5a74 gcc/config/t-sysroot-suffix d5bba4910d9cc9e902bff4cc8feff8e0 gcc/config/t-vxworks 20ed94baac64f4265b79ab4e13487e16 gcc/config/t-winnt --- 4110,4116 ---- fa90d7365d19dbaf3cae61e13de2e767 gcc/config/t-pnt16-warn 501751f2be56698ed1c9cf18358b67ac gcc/config/t-rtems 51d3678acb41d4448cc332f7a8e8cb2e gcc/config/t-slibgcc ! e6a92484ed674b3c3213e4cfca07314a gcc/config/t-sol2 e05234e1ab29a8bd1212092f1bcd5a74 gcc/config/t-sysroot-suffix d5bba4910d9cc9e902bff4cc8feff8e0 gcc/config/t-vxworks 20ed94baac64f4265b79ab4e13487e16 gcc/config/t-winnt *************** c8984bb3fa0a7d9271f578b4d0a07d13 gcc/co *** 4152,4166 **** a6ae71a556271cc116214b3e9e87d867 gcc/config/usegld.h aa217ffcab0f4b76c0459717934d5bda gcc/config/v850/constraints.md 3cb04126d779bc8a345b096d09d757da gcc/config/v850/predicates.md ! 19e23482aaf4ca61eece1fea5a23c518 gcc/config/v850/rtems.h 41b5d5e91cc905b1e3ba5de47db5f9c6 gcc/config/v850/t-rtems 66ab7b7fe2255c165f979e2b216bd8f7 gcc/config/v850/t-v850 b44b30ed33b02ca0176533d90957b282 gcc/config/v850/v850-c.c 11a7e98cb745eec186b8a9471f8c55e3 gcc/config/v850/v850-modes.def ! 4883b298bdc79ea42637897927fed567 gcc/config/v850/v850-opts.h bb76cf6465c78874169453c0c1814c1f gcc/config/v850/v850-protos.h 3bd8de8345980d16a3939ac539aee1a4 gcc/config/v850/v850.c ! 2cc37b2d1b50b3aeeca4f76a6febaaee gcc/config/v850/v850.h a738c0152bc53c7ee18acf62857c95c0 gcc/config/v850/v850.md 0178572afbc1cc677bf4ca8fea8a70d8 gcc/config/v850/v850.opt 4851493966cb69d11eca715575900ccb gcc/config/vax/builtins.md --- 4154,4168 ---- a6ae71a556271cc116214b3e9e87d867 gcc/config/usegld.h aa217ffcab0f4b76c0459717934d5bda gcc/config/v850/constraints.md 3cb04126d779bc8a345b096d09d757da gcc/config/v850/predicates.md ! 386aa2cbf18ef45000390ccf1bfb5867 gcc/config/v850/rtems.h 41b5d5e91cc905b1e3ba5de47db5f9c6 gcc/config/v850/t-rtems 66ab7b7fe2255c165f979e2b216bd8f7 gcc/config/v850/t-v850 b44b30ed33b02ca0176533d90957b282 gcc/config/v850/v850-c.c 11a7e98cb745eec186b8a9471f8c55e3 gcc/config/v850/v850-modes.def ! 595422e67863727481fd0af4e07d6017 gcc/config/v850/v850-opts.h bb76cf6465c78874169453c0c1814c1f gcc/config/v850/v850-protos.h 3bd8de8345980d16a3939ac539aee1a4 gcc/config/v850/v850.c ! d2a472a98b954b3eb4d5e6ccf30f985c gcc/config/v850/v850.h a738c0152bc53c7ee18acf62857c95c0 gcc/config/v850/v850.md 0178572afbc1cc677bf4ca8fea8a70d8 gcc/config/v850/v850.opt 4851493966cb69d11eca715575900ccb gcc/config/vax/builtins.md *************** a4953dec370aeb83aa4c300580989aca gcc/co *** 4218,4225 **** 3403522b62b3afbdee0c6ba1c08dd9b5 gcc/config/xtensa/xtensa.h d0f70581147ddc12bdd0b9b2002099f9 gcc/config/xtensa/xtensa.md 3626e5875265724499b1e0889df223f8 gcc/config/xtensa/xtensa.opt ! 8100621be2c42a551591323bb0dec425 gcc/configure ! 8ff785664c06b5945215ea6ed1108f6c gcc/configure.ac 3f8600d94fa18c9df14202629b15c30a gcc/context.c a105f73fec5a545a02b66e02a5fc9cd1 gcc/context.h ad2e5674b80419b7901057a9553438d4 gcc/convert.c --- 4220,4227 ---- 3403522b62b3afbdee0c6ba1c08dd9b5 gcc/config/xtensa/xtensa.h d0f70581147ddc12bdd0b9b2002099f9 gcc/config/xtensa/xtensa.md 3626e5875265724499b1e0889df223f8 gcc/config/xtensa/xtensa.opt ! df9f37510364953e4b1a74fddafd5b0a gcc/configure ! 0d863d1fe6d29c2d394c25cce860c6db gcc/configure.ac 3f8600d94fa18c9df14202629b15c30a gcc/context.c a105f73fec5a545a02b66e02a5fc9cd1 gcc/context.h ad2e5674b80419b7901057a9553438d4 gcc/convert.c *************** ad2e5674b80419b7901057a9553438d4 gcc/co *** 4227,4233 **** 7f281fac897d0a12b476c90692737329 gcc/coretypes.h 77f22f105dfdc4a9829de4737400fdc3 gcc/coverage.c fc0ea61bb4cd0e88fcb974874b454f63 gcc/coverage.h ! 96599999d0dbcb083641d0fbe78a27d6 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 --- 4229,4235 ---- 7f281fac897d0a12b476c90692737329 gcc/coretypes.h 77f22f105dfdc4a9829de4737400fdc3 gcc/coverage.c fc0ea61bb4cd0e88fcb974874b454f63 gcc/coverage.h ! 90620d6f2e242e28c716bcbcf0182a93 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp *** 4253,4305 **** 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 455a052c3ba589ded45beac207aae43f gcc/cp/Make-lang.in 2a39a12cc0dff2b94a44e84e818ded9e gcc/cp/NEWS ! 1ed220fc9a91b1e2d8055ed57c933c8c gcc/cp/call.c e184e53ef1c7ccede7b4257052006bd7 gcc/cp/cfns.gperf 66d1092c8be3fffdb7372b46a158ebf6 gcc/cp/cfns.h ! 910d44b3e4d1a6bf0e9a3c7dc0598bf9 gcc/cp/class.c 47867890c0979e43203ac3b48152e806 gcc/cp/config-lang.in ! cc75be02c3d6f7f9c65125374c0b0401 gcc/cp/cp-array-notation.c 65ca14f2797c64f59cf5c6eab039cb48 gcc/cp/cp-cilkplus.c ! 5c48807910c8c81287605f0dbe305ef0 gcc/cp/cp-gimplify.c c0aa2580eac480bebef90fd178f23fce gcc/cp/cp-lang.c ef87c1a033a26e7711907c6b178131b1 gcc/cp/cp-objcp-common.c 9eada522ec909990ce7386714e3c0afa gcc/cp/cp-objcp-common.h d0d99db987a2bd8f0058a1faa5e408e5 gcc/cp/cp-tree.def ! a3688644c5783e84d0837702adf6d30a gcc/cp/cp-tree.h 2d310182ce712621a1c231f8d3450154 gcc/cp/cvt.c 72aec02508b7947aa57a3fdc7907592e gcc/cp/cxx-pretty-print.c 80ee86746b2127c64ef5c25f24ceb14b gcc/cp/cxx-pretty-print.h ! dd6792a8e6b84dd56b7ac60b97f97e9f gcc/cp/decl.c 42cc7ee1282351aee587814acc597508 gcc/cp/decl.h dbc65ed107b0f033dbc47a1901d3c6be gcc/cp/decl2.c 3f6c50620d2953d5b412ff4e390eb7ae gcc/cp/dump.c ! 58e4348d50182a6fa678f3d6112d86f4 gcc/cp/error.c 615a63805536eb9ffe1b46dd1881582c gcc/cp/except.c eb58e03f4b2c41c5e089789e2a83f27e gcc/cp/expr.c f825a4855a4c9f2390afb1302bb4d8d6 gcc/cp/friend.c 4e1f37f96a3d7f70ba70e24cba59dc3a gcc/cp/g++spec.c ! a5dabcb829765fe2506fdfe679534cb1 gcc/cp/init.c ! 0bb50f920201a7665c66a8b34c1dbbad gcc/cp/lambda.c d505a249800c51140eb8d126b620394f gcc/cp/lang-specs.h a9d9b7c8443dcc78573259632806eb39 gcc/cp/lex.c ! 2c850a80db903247f001008baf357822 gcc/cp/mangle.c a331b4a15818458a23cced154db41740 gcc/cp/method.c 88641563e2d3f64a95da6434ecf8de00 gcc/cp/name-lookup.c 2fe9fc47b363db0eb4eb053c2b3b5109 gcc/cp/name-lookup.h a4c4160079301223008ae949e923ae09 gcc/cp/operators.def cab3f4d3911d5d98b499168510c420bf gcc/cp/optimize.c ! 2da908e5f3db5d3a3aa0afe175078c9b gcc/cp/parser.c 7dad8f7951a41247d36a1491c5ed3333 gcc/cp/parser.h ! 74b0261982aec2eeb078b2eb670ffb00 gcc/cp/pt.c 1fb212eac0559ba1dcb95d7a26602e06 gcc/cp/ptree.c da1e4054f89a7112f63ce85825932ca5 gcc/cp/repo.c 42e298dd7b029109771b91c2ed2adaec gcc/cp/rtti.c 6fb2431ec9910cb53f58bdbe3bff5f70 gcc/cp/search.c ! fd23ab9c86b9d7c857c0440da98be254 gcc/cp/semantics.c ! b1bc4d92bafd656e405c2a58d608378f gcc/cp/tree.c 1adee27afd0240132800372d13882a94 gcc/cp/type-utils.h 03213757a1dd8df87d0616f27d88863d gcc/cp/typeck.c ! eb3af5ebc8aeeffe9beaffbdef78ca84 gcc/cp/typeck2.c 74dbaaf0e744d50ebddff66290b3dfd4 gcc/cp/vtable-class-hierarchy.c c69f7cfa3152c54d30a4413e74a55584 gcc/cppbuiltin.c 3ec7183b5a34a0f3e00a2f1e80b9b1d4 gcc/cppbuiltin.h --- 4255,4307 ---- 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 455a052c3ba589ded45beac207aae43f gcc/cp/Make-lang.in 2a39a12cc0dff2b94a44e84e818ded9e gcc/cp/NEWS ! 795a3e86d150ac6ff6ed2e3258814e1d gcc/cp/call.c e184e53ef1c7ccede7b4257052006bd7 gcc/cp/cfns.gperf 66d1092c8be3fffdb7372b46a158ebf6 gcc/cp/cfns.h ! 466bc9f5ef4f8ea3fa10ef2564ea741d gcc/cp/class.c 47867890c0979e43203ac3b48152e806 gcc/cp/config-lang.in ! 6720d2dc0ff79c80bfee1d4a8e7fa99d gcc/cp/cp-array-notation.c 65ca14f2797c64f59cf5c6eab039cb48 gcc/cp/cp-cilkplus.c ! fc4f4b0510305904f62be76691665660 gcc/cp/cp-gimplify.c c0aa2580eac480bebef90fd178f23fce gcc/cp/cp-lang.c ef87c1a033a26e7711907c6b178131b1 gcc/cp/cp-objcp-common.c 9eada522ec909990ce7386714e3c0afa gcc/cp/cp-objcp-common.h d0d99db987a2bd8f0058a1faa5e408e5 gcc/cp/cp-tree.def ! b0c697bcecdbc809a26b1fb7e2fff828 gcc/cp/cp-tree.h 2d310182ce712621a1c231f8d3450154 gcc/cp/cvt.c 72aec02508b7947aa57a3fdc7907592e gcc/cp/cxx-pretty-print.c 80ee86746b2127c64ef5c25f24ceb14b gcc/cp/cxx-pretty-print.h ! 31f4146c017a869e65caf3540a83dee2 gcc/cp/decl.c 42cc7ee1282351aee587814acc597508 gcc/cp/decl.h dbc65ed107b0f033dbc47a1901d3c6be gcc/cp/decl2.c 3f6c50620d2953d5b412ff4e390eb7ae gcc/cp/dump.c ! 4f563217e305eef8adde18a3b3d0c547 gcc/cp/error.c 615a63805536eb9ffe1b46dd1881582c gcc/cp/except.c eb58e03f4b2c41c5e089789e2a83f27e gcc/cp/expr.c f825a4855a4c9f2390afb1302bb4d8d6 gcc/cp/friend.c 4e1f37f96a3d7f70ba70e24cba59dc3a gcc/cp/g++spec.c ! a1474fb450653b16df8e80f1bb84d9b6 gcc/cp/init.c ! be78b35f070bd7382c2233ae8aada26b gcc/cp/lambda.c d505a249800c51140eb8d126b620394f gcc/cp/lang-specs.h a9d9b7c8443dcc78573259632806eb39 gcc/cp/lex.c ! a4fd8479abffd3cacada620714d9306b gcc/cp/mangle.c a331b4a15818458a23cced154db41740 gcc/cp/method.c 88641563e2d3f64a95da6434ecf8de00 gcc/cp/name-lookup.c 2fe9fc47b363db0eb4eb053c2b3b5109 gcc/cp/name-lookup.h a4c4160079301223008ae949e923ae09 gcc/cp/operators.def cab3f4d3911d5d98b499168510c420bf gcc/cp/optimize.c ! 15fa1ea9b2ad4a1adfb7603af94a593c gcc/cp/parser.c 7dad8f7951a41247d36a1491c5ed3333 gcc/cp/parser.h ! 5d73a0128142b13861f975e7d63a9e59 gcc/cp/pt.c 1fb212eac0559ba1dcb95d7a26602e06 gcc/cp/ptree.c da1e4054f89a7112f63ce85825932ca5 gcc/cp/repo.c 42e298dd7b029109771b91c2ed2adaec gcc/cp/rtti.c 6fb2431ec9910cb53f58bdbe3bff5f70 gcc/cp/search.c ! 868801964bdaf1d008e2998cf969f64f gcc/cp/semantics.c ! 1110b6600e0b29cc8cc3b9a534f3a4c0 gcc/cp/tree.c 1adee27afd0240132800372d13882a94 gcc/cp/type-utils.h 03213757a1dd8df87d0616f27d88863d gcc/cp/typeck.c ! 60b85f3b47168c08433dbcdaaf8ccfe9 gcc/cp/typeck2.c 74dbaaf0e744d50ebddff66290b3dfd4 gcc/cp/vtable-class-hierarchy.c c69f7cfa3152c54d30a4413e74a55584 gcc/cppbuiltin.c 3ec7183b5a34a0f3e00a2f1e80b9b1d4 gcc/cppbuiltin.h *************** dfa2f3caa589d990913f898317c3ba04 gcc/di *** 4338,4346 **** ea862db8f1c974282768561f5c6fd263 gcc/diagnostic.c a82f4c29248edc233f641579ab6e772a gcc/diagnostic.def 439f0d28ab1a85692b11ba394cc4e6f6 gcc/diagnostic.h ! 4fbbb71db1722ae5342765a0b1fbc441 gcc/doc/aot-compile.1 ! a4f5d332dae4a0fd204d8bb28855e9b0 gcc/doc/arm-acle-intrinsics.texi ! 8eddcd81550867f0cb449d6d2643e9e8 gcc/doc/arm-neon-intrinsics.texi 9afccee176594b00a1b7a15878bebcd0 gcc/doc/avr-mmcu.texi e1ac881d48757e37668ade03bed6f6d5 gcc/doc/bugreport.texi b57b0997377249aff11e6fcfa9c47200 gcc/doc/cfg.texi --- 4340,4348 ---- ea862db8f1c974282768561f5c6fd263 gcc/diagnostic.c a82f4c29248edc233f641579ab6e772a gcc/diagnostic.def 439f0d28ab1a85692b11ba394cc4e6f6 gcc/diagnostic.h ! 2072ae7c6f8a0f7b3d208c76341f52d1 gcc/doc/aot-compile.1 ! 2931c39155bdab807e1af465d937350c gcc/doc/arm-acle-intrinsics.texi ! 35b6982c7c5b95341a6e28476e4d1daf gcc/doc/arm-neon-intrinsics.texi 9afccee176594b00a1b7a15878bebcd0 gcc/doc/avr-mmcu.texi e1ac881d48757e37668ade03bed6f6d5 gcc/doc/bugreport.texi b57b0997377249aff11e6fcfa9c47200 gcc/doc/cfg.texi *************** f2623c6aeaa1ad4a6474141b9dd5f995 gcc/do *** 4350,4387 **** 429106f28aff7ad80a86d1442fb5003d gcc/doc/configterms.texi 3c64bdb237b5fc38837b9b9bc2fda853 gcc/doc/contrib.texi 6436407c42cecb738124becb9079d978 gcc/doc/contribute.texi ! 34436461cdc0c7ecfb7a40b5e686e422 gcc/doc/cpp.1 b466d87d5a11bb0e1bea3a60a6645b7b gcc/doc/cpp.info 7787bf2f2843f9e075dcabc3ef549147 gcc/doc/cpp.texi 4aa9560d9a516a5df4f7429c00ba1fb2 gcc/doc/cppenv.texi d1619b326f23a607e6cb3a044afcc4df gcc/doc/cppinternals.info ffb92a322644e39300d1398a048cb9a8 gcc/doc/cppinternals.texi 249506473d9c4b6f20554997a9c8946f gcc/doc/cppopts.texi ! 9e34dec3b954fa18067e8949ca9a910d gcc/doc/extend.texi 5ee3105f6fb685feb1259931acfbf79e gcc/doc/fragments.texi de203f1fc34a4d519c489d06bf46b2bf gcc/doc/frontends.texi ! 556f499f2c221eff6a35c3b745af786c gcc/doc/fsf-funding.7 ! 952529ddc42e4badf57f5480f1a7ea68 gcc/doc/g++.1 ! 9effbde8fcf02bcea835284372237e5c gcc/doc/gc-analyze.1 ! 952529ddc42e4badf57f5480f1a7ea68 gcc/doc/gcc.1 ! 9628abd90c18f277c0312630a7400a77 gcc/doc/gcc.info 8daacd29f48167f6b49255b6c181b9bc gcc/doc/gcc.texi ! b821f76036a460788a4f67a985b06c72 gcc/doc/gccinstall.info ! c0218512e3fc985d93bf9beacdeec227 gcc/doc/gccint.info 7911949acb880ae16515d7ca0ede3d9a gcc/doc/gccint.texi ! 27a20c84ea29cb25e1f558e3c2b0fdc2 gcc/doc/gcj-dbtool.1 ! 558701264335d20a6dafb6f544251958 gcc/doc/gcj.1 aab4d3dcd1960876e4dd2744c0595107 gcc/doc/gcj.info ! a2aaacd8a4504c1eee42040c6d62d982 gcc/doc/gcov.1 7a35df8cd0480abb695958df18ea6134 gcc/doc/gcov.texi 5587ca6c5976c7dffb318cf45f5b7f13 gcc/doc/generic.texi 1ded054093de910d9786c62bc4fe8cc6 gcc/doc/gfdl.7 ! 8867d9d5f00d2c3424fcc1ec15d11b36 gcc/doc/gfortran.1 ! 0b52eeba46e08a404b1efdeb0b73b3d7 gcc/doc/gij.1 ac25ba9af042d4f99e0ab97a4f46517a gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 0066e0767ad465789161865c43ff33b5 gcc/doc/gpl.7 ! ef92b0edb983e1c4330f56fabd877997 gcc/doc/grmic.1 f2dd6df88ca65026d154f628ffbc8f13 gcc/doc/gty.texi 34a1955f331ff1028e09083a178c0418 gcc/doc/headerdirs.texi a56cc8baf1b35fa5c4c43bbfdb35b74b gcc/doc/hostconfig.texi --- 4352,4389 ---- 429106f28aff7ad80a86d1442fb5003d gcc/doc/configterms.texi 3c64bdb237b5fc38837b9b9bc2fda853 gcc/doc/contrib.texi 6436407c42cecb738124becb9079d978 gcc/doc/contribute.texi ! d437ef65bb5ccd3d76933938e4e08c3b gcc/doc/cpp.1 b466d87d5a11bb0e1bea3a60a6645b7b gcc/doc/cpp.info 7787bf2f2843f9e075dcabc3ef549147 gcc/doc/cpp.texi 4aa9560d9a516a5df4f7429c00ba1fb2 gcc/doc/cppenv.texi d1619b326f23a607e6cb3a044afcc4df gcc/doc/cppinternals.info ffb92a322644e39300d1398a048cb9a8 gcc/doc/cppinternals.texi 249506473d9c4b6f20554997a9c8946f gcc/doc/cppopts.texi ! 735f272973eb624ca2b27256784794b1 gcc/doc/extend.texi 5ee3105f6fb685feb1259931acfbf79e gcc/doc/fragments.texi de203f1fc34a4d519c489d06bf46b2bf gcc/doc/frontends.texi ! a4cb11efeaf4bf15da2f1eed8f9e0fd0 gcc/doc/fsf-funding.7 ! 6d5daadcb08541e624f682345a1ff88e gcc/doc/g++.1 ! a16b8f53d26e7577a736a15b6c072667 gcc/doc/gc-analyze.1 ! 6d5daadcb08541e624f682345a1ff88e gcc/doc/gcc.1 ! 4c8beb4866137f568bdefc6c862e00d4 gcc/doc/gcc.info 8daacd29f48167f6b49255b6c181b9bc gcc/doc/gcc.texi ! 06c87b043578cf2fd323918518aa0053 gcc/doc/gccinstall.info ! 4ac01439178dd157273447b66868dc7a gcc/doc/gccint.info 7911949acb880ae16515d7ca0ede3d9a gcc/doc/gccint.texi ! fd5d56a283c84be92c4e1d183d7cba73 gcc/doc/gcj-dbtool.1 ! 886766bf5b708c772ddaf91fcc346354 gcc/doc/gcj.1 aab4d3dcd1960876e4dd2744c0595107 gcc/doc/gcj.info ! a34f1de7370f9812f9d7f4020fec0ffc gcc/doc/gcov.1 7a35df8cd0480abb695958df18ea6134 gcc/doc/gcov.texi 5587ca6c5976c7dffb318cf45f5b7f13 gcc/doc/generic.texi 1ded054093de910d9786c62bc4fe8cc6 gcc/doc/gfdl.7 ! 6bb57be9521f2b036ed5d2233cef7068 gcc/doc/gfortran.1 ! efde45760f6dd331477c8fa3939c8c65 gcc/doc/gij.1 ac25ba9af042d4f99e0ab97a4f46517a gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 35bdf87669d3e58fabb135fdd83a6704 gcc/doc/gpl.7 ! 147ed9750a2dff72fc62d4e6f78cbe17 gcc/doc/grmic.1 f2dd6df88ca65026d154f628ffbc8f13 gcc/doc/gty.texi 34a1955f331ff1028e09083a178c0418 gcc/doc/headerdirs.texi a56cc8baf1b35fa5c4c43bbfdb35b74b gcc/doc/hostconfig.texi *************** fd6c359ffd07e895e9b60c12c1bc76c8 gcc/do *** 4393,4404 **** 5f5adc2c6c4ebdcf03cc0125250f5995 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex ca81bf9d3358342ef978866b6895f4ca gcc/doc/install-old.texi ! 36a705ad4747c9ba42a38ddc6b48480a gcc/doc/install.texi 8851ed69b0a7490fa673efa763d090c7 gcc/doc/install.texi2html f1aaec9eb4571d731a4089d5d5ef97fa gcc/doc/interface.texi ! 1ca8071afee5c71cd6b887cc9411c03d gcc/doc/invoke.texi ! b5321deb87587779b8fa0e631185b29b gcc/doc/jcf-dump.1 ! dcda92a48788754d1c476e86dc371535 gcc/doc/jv-convert.1 c36b6709dd343cbcd4b54f0417bcc780 gcc/doc/languages.texi 2ae9a3e90fef1d92ab8196ae773a7673 gcc/doc/libgcc.texi 8b58315c921fc046e0ab6f949ebd5990 gcc/doc/loop.texi --- 4395,4406 ---- 5f5adc2c6c4ebdcf03cc0125250f5995 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex ca81bf9d3358342ef978866b6895f4ca gcc/doc/install-old.texi ! c53e675d2246709e75ea2f39f3a85b1a gcc/doc/install.texi 8851ed69b0a7490fa673efa763d090c7 gcc/doc/install.texi2html f1aaec9eb4571d731a4089d5d5ef97fa gcc/doc/interface.texi ! 308f00964d73903162d4703cf5802c1f gcc/doc/invoke.texi ! 8b4286efc56335723d2be45a2ea1a3ef gcc/doc/jcf-dump.1 ! d12c19c779a2a6a75c8329b054f080ef gcc/doc/jv-convert.1 c36b6709dd343cbcd4b54f0417bcc780 gcc/doc/languages.texi 2ae9a3e90fef1d92ab8196ae773a7673 gcc/doc/libgcc.texi 8b58315c921fc046e0ab6f949ebd5990 gcc/doc/loop.texi *************** ee0a1b01a1a27eee100cc172673b9fe2 gcc/do *** 4411,4430 **** f9f577785f8eae98a97b29568343be95 gcc/doc/passes.texi 6997cbfce5b82226e56271f7498697f5 gcc/doc/plugins.texi 914a3d181f9c38ac74e424d667026b61 gcc/doc/portability.texi ! d56bb820227b6cddf5dbc9f246f8df6a gcc/doc/rebuild-gcj-db.1 fa0276a6b5d315ae4e036add235d9b26 gcc/doc/rtl.texi 3f5d8a76a7ddd984603fb2f35ee46632 gcc/doc/service.texi ! 5c68a874833d75649dad867b1c5db296 gcc/doc/sourcebuild.texi 80f74ac416390bd73b75ae93f1f2f8f8 gcc/doc/standards.texi ! 95089e28a67d22186f3190775ec30f42 gcc/doc/tm.texi ! bd168a92c3471828c75208e25c6c6ab9 gcc/doc/tm.texi.in 2a0f462c8ac98826cc19fc71f6f09014 gcc/doc/tree-ssa.texi f173054a88e0b97206d03f926b8bd696 gcc/doc/trouble.texi b40aba636e9d9d23b966bc47f50ca0ad gcc/dojump.c 1c73909bd45b22ed2b016ad5fe3afca4 gcc/dominance.c 060582ff73194daaccc8cbe92add257a gcc/domwalk.c 297c055c19cbb073b385bb9443fec98c gcc/domwalk.h ! f79339a7902d370cae0f3c87986c844c gcc/double-int.c 9d7f6889e84a85a6aea3abb7201f6f04 gcc/double-int.h 70c3e303b842357f48e72c0b9bfb1d9a gcc/dse.c 1a746ea442089d7bdcdbf56af69a5b3e gcc/dumpfile.c --- 4413,4432 ---- f9f577785f8eae98a97b29568343be95 gcc/doc/passes.texi 6997cbfce5b82226e56271f7498697f5 gcc/doc/plugins.texi 914a3d181f9c38ac74e424d667026b61 gcc/doc/portability.texi ! a8566a07a637ea1a56bb0bfd084caf94 gcc/doc/rebuild-gcj-db.1 fa0276a6b5d315ae4e036add235d9b26 gcc/doc/rtl.texi 3f5d8a76a7ddd984603fb2f35ee46632 gcc/doc/service.texi ! affb8b02a41ee94557fabcdce8048ce2 gcc/doc/sourcebuild.texi 80f74ac416390bd73b75ae93f1f2f8f8 gcc/doc/standards.texi ! 24a01a8bb1b86882ac27a90fbb507fe9 gcc/doc/tm.texi ! eed8aa101de465a7cd9c6aaa39f3f325 gcc/doc/tm.texi.in 2a0f462c8ac98826cc19fc71f6f09014 gcc/doc/tree-ssa.texi f173054a88e0b97206d03f926b8bd696 gcc/doc/trouble.texi b40aba636e9d9d23b966bc47f50ca0ad gcc/dojump.c 1c73909bd45b22ed2b016ad5fe3afca4 gcc/dominance.c 060582ff73194daaccc8cbe92add257a gcc/domwalk.c 297c055c19cbb073b385bb9443fec98c gcc/domwalk.h ! 2e57c82dbd0e91dc5b2e7f8b275f7eaa gcc/double-int.c 9d7f6889e84a85a6aea3abb7201f6f04 gcc/double-int.h 70c3e303b842357f48e72c0b9bfb1d9a gcc/dse.c 1a746ea442089d7bdcdbf56af69a5b3e gcc/dumpfile.c *************** eca799a5ac72d21ac26c0993a7fe198d gcc/du *** 4432,4438 **** 7aca1d34836c11d9a7af3c4f2e2899e3 gcc/dwarf2asm.c 81e5a5988d94ef1528027be5136860e3 gcc/dwarf2asm.h 42be1d7e96240ac3e4821237d124400c gcc/dwarf2cfi.c ! 1a7c6bee2883034efe9eecbe42fb84a1 gcc/dwarf2out.c 140d11658ba70cd9c582828aec6fb9d2 gcc/dwarf2out.h e175f4e3ae8843610ba83ab88ac7c7d2 gcc/emit-rtl.c c6455a67ada52042bea5f8bb117dcdb4 gcc/emit-rtl.h --- 4434,4440 ---- 7aca1d34836c11d9a7af3c4f2e2899e3 gcc/dwarf2asm.c 81e5a5988d94ef1528027be5136860e3 gcc/dwarf2asm.h 42be1d7e96240ac3e4821237d124400c gcc/dwarf2cfi.c ! 07c67d8b1760bd9bcd577d65397c530c gcc/dwarf2out.c 140d11658ba70cd9c582828aec6fb9d2 gcc/dwarf2out.h e175f4e3ae8843610ba83ab88ac7c7d2 gcc/emit-rtl.c c6455a67ada52042bea5f8bb117dcdb4 gcc/emit-rtl.h *************** b0556e2034dd821307551d6d74e745d6 gcc/er *** 4444,4450 **** 24bbd090dbec005ad3793cae5f7e4e19 gcc/except.h 589e62819b3e668ae01defc5f5fb9ad5 gcc/exec-tool.in a38616b15259ffd2171e03ecb4249502 gcc/explow.c ! ba1da1bfbb3288c8e6b89aff8c9a60dc gcc/expmed.c 71dcf205388e1d671c2d94a0d4a3c735 gcc/expmed.h debe880cf639de262487698963b83b80 gcc/expr.c d6416980df886e494b49961d4b3a9984 gcc/expr.h --- 4446,4452 ---- 24bbd090dbec005ad3793cae5f7e4e19 gcc/except.h 589e62819b3e668ae01defc5f5fb9ad5 gcc/exec-tool.in a38616b15259ffd2171e03ecb4249502 gcc/explow.c ! 6459d443bd65bb4141a7d815b3d249ab gcc/expmed.c 71dcf205388e1d671c2d94a0d4a3c735 gcc/expmed.h debe880cf639de262487698963b83b80 gcc/expr.c d6416980df886e494b49961d4b3a9984 gcc/expr.h *************** f21b58f2ee4076afbfccecb6f0b20813 gcc/fi *** 4455,4463 **** e273344d3f81a5d94a7296a6f73d4599 gcc/fixed-value.h 84141e938faf8046cbecad04e080660d gcc/flag-types.h 927cde0489c22a941e547faf5ec11e50 gcc/flags.h ! bfa3c33b1a9c0b95a8b41227093171ef gcc/fold-const.c 926e7b21d0de960d055e2f98520491fc gcc/fold-const.h ! e3feb37017ce740135780b8149ebd3f7 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 --- 4457,4465 ---- e273344d3f81a5d94a7296a6f73d4599 gcc/fixed-value.h 84141e938faf8046cbecad04e080660d gcc/flag-types.h 927cde0489c22a941e547faf5ec11e50 gcc/flags.h ! 1b57a0120edfc1608920462a921aaf23 gcc/fold-const.c 926e7b21d0de960d055e2f98520491fc gcc/fold-const.h ! f131cabe354c5669ae64aff678aa170b gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** ccfa4b65ac8982708cce72fc504e63c9 gcc/fo *** 4482,4508 **** 36047e58fcc2b326025fbf4851f809d4 gcc/fortran/constructor.c ed4dd7bfb8f8c9f4cedd1f0d2943c8ee gcc/fortran/constructor.h cdaada96cc92b73b8913f00cc371b353 gcc/fortran/convert.c ! 359a334754a0cfbcc6d62e7fe9e242e5 gcc/fortran/cpp.c 87a07a13f25c3ba29526f7ff92badbda gcc/fortran/cpp.h 102934decfedea4b5a61c7e853023a49 gcc/fortran/data.c b94dc1f5d1792f2e58b16f6fbdc3a709 gcc/fortran/data.h ! 5f3d1f6ed0f06404fa0f04e3a077518a gcc/fortran/decl.c a13d3780d602ec99bac64635a2472427 gcc/fortran/dependency.c c868d6d4a72cb319fabcfc59e4613fe7 gcc/fortran/dependency.h ! 46c026bdf88def19657fa0fae2a1e2f8 gcc/fortran/dump-parse-tree.c 9499ec386ee632269bb460fc37b41279 gcc/fortran/error.c d321ca0b46df45c3fbc073dd163d4647 gcc/fortran/expr.c ! ce6133a52a0fa6aec2a32bbadf2584bf gcc/fortran/f95-lang.c ! 35359335a2a4611a4bd39850e837d3fd gcc/fortran/frontend-passes.c 0a038b837897c57a2b48cc83a3475346 gcc/fortran/gfc-internals.texi ! c19efada195a0808eff058dffb8dcdc8 gcc/fortran/gfortran.h ! b3c9192114aa576c4b1e37059b7ddc4c gcc/fortran/gfortran.info ! 01b74d2257b39a5e878d0d02c961bc24 gcc/fortran/gfortran.texi ! 1f64ebcbca965051ff328411c4a95624 gcc/fortran/gfortranspec.c afbe567cd3204e53be6fbcc32e82e7c1 gcc/fortran/interface.c aeb5696e9535c471d020d3c251c2d89d gcc/fortran/intrinsic.c b32d2f0f3daa0209977368544f5278ef gcc/fortran/intrinsic.h ! f45dec0fb53c4fe3372cea348cbf7c20 gcc/fortran/intrinsic.texi ff09ef92d4e445cac44eee1e2a4a5191 gcc/fortran/invoke.texi d3a2af66f4e1d3472664c1d0ec0bfea9 gcc/fortran/io.c aaa0bd487c1196f96642d9c0d89f1960 gcc/fortran/ioparm.def --- 4484,4510 ---- 36047e58fcc2b326025fbf4851f809d4 gcc/fortran/constructor.c ed4dd7bfb8f8c9f4cedd1f0d2943c8ee gcc/fortran/constructor.h cdaada96cc92b73b8913f00cc371b353 gcc/fortran/convert.c ! 6a25f41ae4ec5f67345432aeacf0f43a gcc/fortran/cpp.c 87a07a13f25c3ba29526f7ff92badbda gcc/fortran/cpp.h 102934decfedea4b5a61c7e853023a49 gcc/fortran/data.c b94dc1f5d1792f2e58b16f6fbdc3a709 gcc/fortran/data.h ! 48ddd8ff961f12e5aefabf1470db4d8d gcc/fortran/decl.c a13d3780d602ec99bac64635a2472427 gcc/fortran/dependency.c c868d6d4a72cb319fabcfc59e4613fe7 gcc/fortran/dependency.h ! 17fd0657b5dd0ca2bb20d1ba3db84cdf gcc/fortran/dump-parse-tree.c 9499ec386ee632269bb460fc37b41279 gcc/fortran/error.c d321ca0b46df45c3fbc073dd163d4647 gcc/fortran/expr.c ! dd44a696cb95e5fca9e2493dd2b52a88 gcc/fortran/f95-lang.c ! d8fa3c5a71b9f5796eb606142df801c6 gcc/fortran/frontend-passes.c 0a038b837897c57a2b48cc83a3475346 gcc/fortran/gfc-internals.texi ! 8c1807f6710f9637de8d7c8da006d0be gcc/fortran/gfortran.h ! 7a0fa8aa41d8ba8c9eea6e8f3ec87c26 gcc/fortran/gfortran.info ! 938a524e09245e10fbef5b331f81fc45 gcc/fortran/gfortran.texi ! 61383efc0d8e4f11fde1c9811c151797 gcc/fortran/gfortranspec.c afbe567cd3204e53be6fbcc32e82e7c1 gcc/fortran/interface.c aeb5696e9535c471d020d3c251c2d89d gcc/fortran/intrinsic.c b32d2f0f3daa0209977368544f5278ef gcc/fortran/intrinsic.h ! 9733ca3ef7f8ba540f3d5bb8f18f8f28 gcc/fortran/intrinsic.texi ff09ef92d4e445cac44eee1e2a4a5191 gcc/fortran/invoke.texi d3a2af66f4e1d3472664c1d0ec0bfea9 gcc/fortran/io.c aaa0bd487c1196f96642d9c0d89f1960 gcc/fortran/ioparm.def *************** aaa0bd487c1196f96642d9c0d89f1960 gcc/fo *** 4512,4555 **** d10f92a8dc76d707df09ce50fc002ab8 gcc/fortran/lang-specs.h bfedddb0e2a4e4d591242403a998177b gcc/fortran/lang.opt f6dbfc92520c8224ad6af651606bf645 gcc/fortran/libgfortran.h ! dabfcac403e2f9a3635d051a434f4b67 gcc/fortran/match.c ! 87c5e85360d47d9a3e9c44e689cc164b gcc/fortran/match.h a3d130b650f04e28104a3180689841ae gcc/fortran/matchexp.c 34817057427c24c69e4e7146fe26f75e gcc/fortran/mathbuiltins.def e0fb4a1ffcb0343a20358ac7e9e3c259 gcc/fortran/misc.c ! ec92e27fc479d48e62b2685f31590d47 gcc/fortran/module.c ! dac352ff9fcc0629ce1b395753c19cf9 gcc/fortran/openmp.c f51d0e2eedb4abe7296518a55e09ca88 gcc/fortran/options.c ! 9ddf6b1c7e1f71ab06663ea220fce3bf gcc/fortran/parse.c 6d0ad629aed04bdd74a9574a8bf4846e gcc/fortran/parse.h fd7c4ac7c689b6a4fb90173f4133229d gcc/fortran/primary.c ! 2894d407b715abd8941c0bc2e50afda8 gcc/fortran/resolve.c ! 1034f94bfb9742bd1a794e92c5a75ba0 gcc/fortran/scanner.c 72c90bd863614df8517636fc47ccfc94 gcc/fortran/scanner.h efa59c20588f8cbfa50de0c93a7eef20 gcc/fortran/simplify.c ! 71985d0e3c14a6c71342913878c5a10b gcc/fortran/st.c ! 4e0587f6c37c4220f168f8e854b6a5fb gcc/fortran/symbol.c 18b66b03bc5d661f80bb81b03f388eb9 gcc/fortran/target-memory.c 2b15769f79ab3546bef45df0d6815e2c gcc/fortran/target-memory.h ! a7eb491b89c92e23b122f0cc6f162d49 gcc/fortran/trans-array.c ! 420d334293cbc543a1986e5160791e87 gcc/fortran/trans-array.h ! 42d8eb5427146efe747093a654b07ae3 gcc/fortran/trans-common.c ad554dd79e97690c9fe5ce1779a7309c gcc/fortran/trans-const.c a3ccaa77809b6dcc6aa42f435c57e3f9 gcc/fortran/trans-const.h ! 68e62222bd1bfcd19a15dd8a8ca89e63 gcc/fortran/trans-decl.c ! 8f2eac3cc158380deeb06b26ab692dc9 gcc/fortran/trans-expr.c 6ea2f877821771858978645b10ea08fd gcc/fortran/trans-intrinsic.c b47cd6ce04818d16aea2c2442ca82278 gcc/fortran/trans-io.c ! 082a60082cecb215d1b7533ce216e3df gcc/fortran/trans-openmp.c ! b7c2b183ea4cfd09ce04a4730c28ddfd gcc/fortran/trans-stmt.c ! c1f84f4dfcfc80070abd0502517f639a gcc/fortran/trans-stmt.h ! 4a39b718d97e5fcd9d95a339c9debbff gcc/fortran/trans-types.c 24e41f2179047fd847c46da3cd1c024c gcc/fortran/trans-types.h ! b4b84e3d822e739b0fed290ee12e2300 gcc/fortran/trans.c ! 2e65b0f18a310ea59273cd8843959d66 gcc/fortran/trans.h 95c41d60adaf583210f110d0984098f7 gcc/fortran/types.def 97b3f764fb651e1611194a18dbcbe3d3 gcc/fp-test.c ! bddd0259c8e15cb6bdcf23eb23190940 gcc/function.c fff264db5393a59b9a99c486322b73f7 gcc/function.h cd8ce281b668e13a32e83cf20a1634c9 gcc/fwprop.c 818a31d5b690a29005322b5357c9f908 gcc/gcc-ar.c --- 4514,4557 ---- d10f92a8dc76d707df09ce50fc002ab8 gcc/fortran/lang-specs.h bfedddb0e2a4e4d591242403a998177b gcc/fortran/lang.opt f6dbfc92520c8224ad6af651606bf645 gcc/fortran/libgfortran.h ! 5e48ec3fb934d950d9d4b474e998763e gcc/fortran/match.c ! a778602b7553d8c2a08d457710752041 gcc/fortran/match.h a3d130b650f04e28104a3180689841ae gcc/fortran/matchexp.c 34817057427c24c69e4e7146fe26f75e gcc/fortran/mathbuiltins.def e0fb4a1ffcb0343a20358ac7e9e3c259 gcc/fortran/misc.c ! ffd8bfce5f606751b4c433c9dd3e6cd2 gcc/fortran/module.c ! 199d16240d064bb53966d66f2a542e12 gcc/fortran/openmp.c f51d0e2eedb4abe7296518a55e09ca88 gcc/fortran/options.c ! fc32c460b6cd9b3d248899bc6b084896 gcc/fortran/parse.c 6d0ad629aed04bdd74a9574a8bf4846e gcc/fortran/parse.h fd7c4ac7c689b6a4fb90173f4133229d gcc/fortran/primary.c ! ad6b0d5e1f473cf51dfb2ccebbba787c gcc/fortran/resolve.c ! 9adf6905ca4673ba2fbf9cbbce54892d gcc/fortran/scanner.c 72c90bd863614df8517636fc47ccfc94 gcc/fortran/scanner.h efa59c20588f8cbfa50de0c93a7eef20 gcc/fortran/simplify.c ! e45fb97ea95ff4c3d74a0fbead1f06f9 gcc/fortran/st.c ! 3871370aa0e7f7c7501c633d4e561739 gcc/fortran/symbol.c 18b66b03bc5d661f80bb81b03f388eb9 gcc/fortran/target-memory.c 2b15769f79ab3546bef45df0d6815e2c gcc/fortran/target-memory.h ! 9c3c626677d3cea17fbe4425bb18990e gcc/fortran/trans-array.c ! fb993a92547683640f7a49d6dd5d0cfe gcc/fortran/trans-array.h ! 6f0a3ffc5ef85f6a9f67c1deaed718de gcc/fortran/trans-common.c ad554dd79e97690c9fe5ce1779a7309c gcc/fortran/trans-const.c a3ccaa77809b6dcc6aa42f435c57e3f9 gcc/fortran/trans-const.h ! f2e437a45f5c0d06e691752db2c1435f gcc/fortran/trans-decl.c ! 6499eb348141916fa43d136bd292ca8c gcc/fortran/trans-expr.c 6ea2f877821771858978645b10ea08fd gcc/fortran/trans-intrinsic.c b47cd6ce04818d16aea2c2442ca82278 gcc/fortran/trans-io.c ! e8d1e2d01ed7c8c15dd07675a0897f7b gcc/fortran/trans-openmp.c ! 6374bfca10befeb53e5ca4d22322b56c gcc/fortran/trans-stmt.c ! 716b10c08519c671b98c6434e2214353 gcc/fortran/trans-stmt.h ! 5147544dd813385df26d0ac0f51948fa gcc/fortran/trans-types.c 24e41f2179047fd847c46da3cd1c024c gcc/fortran/trans-types.h ! 51ee928eabf49de99a0d7e6578e236a2 gcc/fortran/trans.c ! 3123832e121f344eec0a93415ec4c20d gcc/fortran/trans.h 95c41d60adaf583210f110d0984098f7 gcc/fortran/types.def 97b3f764fb651e1611194a18dbcbe3d3 gcc/fp-test.c ! 4ea4072a16caab2b6332ebaadaee2f38 gcc/function.c fff264db5393a59b9a99c486322b73f7 gcc/function.h cd8ce281b668e13a32e83cf20a1634c9 gcc/fwprop.c 818a31d5b690a29005322b5357c9f908 gcc/gcc-ar.c *************** f494127078ee11832d689cde6cc3659b gcc/ge *** 4583,4589 **** 433eb66f3d010864a76c754d81db24cb gcc/genextract.c fe4697f2b98c57d9478b6bb7a7ae2e88 gcc/genflags.c e041d627ebfb410e6ac9821a3ebb3d42 gcc/gengenrtl.c ! 9b8f0d2f17c80f6ff5fd6319f7369382 gcc/gengtype-lex.c 689319748dcd572b0d864e2f427c5ffa gcc/gengtype-lex.l cbbcd3bf3726ae98ca84780142a68208 gcc/gengtype-parse.c 4eaf2d492394ef805a5d5ae40b3405b1 gcc/gengtype-state.c --- 4585,4591 ---- 433eb66f3d010864a76c754d81db24cb gcc/genextract.c fe4697f2b98c57d9478b6bb7a7ae2e88 gcc/genflags.c e041d627ebfb410e6ac9821a3ebb3d42 gcc/gengenrtl.c ! e029143273161cfc842f402872ede845 gcc/gengtype-lex.c 689319748dcd572b0d864e2f427c5ffa gcc/gengtype-lex.l cbbcd3bf3726ae98ca84780142a68208 gcc/gengtype-parse.c 4eaf2d492394ef805a5d5ae40b3405b1 gcc/gengtype-state.c *************** fd959eed75ba50c9ce0144de59c6453d gcc/gi *** 4614,4625 **** b2116458d45929978ab35d0063286333 gcc/gimple-fold.h 0fe61c47348d45f1c4d1c2f982b1e449 gcc/gimple-iterator.c 17559f5a410f8d50a42723d5e5e0bc71 gcc/gimple-iterator.h ! d5b3c841aa21c9571759196e5299b4bc gcc/gimple-low.c 7acad740b79bb8d5813ca5adaed51ea9 gcc/gimple-low.h bce8302c35666fa97812af572784ddb4 gcc/gimple-pretty-print.c fd36993cffdf23f8818cd5ab8119f9ef gcc/gimple-pretty-print.h a55e2dba541a5690618f749ab8209b06 gcc/gimple-ssa-isolate-paths.c ! 3c7181d1dd3aba8a2e25d2612ba3cc9f gcc/gimple-ssa-strength-reduction.c 65c5fd48c73569d5d8c6cb61fa000a0f gcc/gimple-ssa.h 05ea5f1994babea73ca748acd5ef37c6 gcc/gimple-streamer-in.c d27ff703db577eb6b990d1d617cfe155 gcc/gimple-streamer-out.c --- 4616,4627 ---- b2116458d45929978ab35d0063286333 gcc/gimple-fold.h 0fe61c47348d45f1c4d1c2f982b1e449 gcc/gimple-iterator.c 17559f5a410f8d50a42723d5e5e0bc71 gcc/gimple-iterator.h ! 5003f659d2dabc1078b9b1f733dea592 gcc/gimple-low.c 7acad740b79bb8d5813ca5adaed51ea9 gcc/gimple-low.h bce8302c35666fa97812af572784ddb4 gcc/gimple-pretty-print.c fd36993cffdf23f8818cd5ab8119f9ef gcc/gimple-pretty-print.h a55e2dba541a5690618f749ab8209b06 gcc/gimple-ssa-isolate-paths.c ! ddfcd12ffaa58e2c4343f8868d646bcc gcc/gimple-ssa-strength-reduction.c 65c5fd48c73569d5d8c6cb61fa000a0f gcc/gimple-ssa.h 05ea5f1994babea73ca748acd5ef37c6 gcc/gimple-streamer-in.c d27ff703db577eb6b990d1d617cfe155 gcc/gimple-streamer-out.c *************** c5289edd7df36bab34b0a7146643c60a gcc/gi *** 4631,4638 **** e59654c510717f38e5835473b88512f8 gcc/gimple.h 79b09968dccc8cd8a7a3bd3b2449b1b7 gcc/gimplify-me.c 0fe03cac0c9e29cc1e32425f09eb2c17 gcc/gimplify-me.h ! b70a6f4bd27f94701ed6a838e70ce584 gcc/gimplify.c ! 37ff4336f0f0ec290f8652bccd3ba720 gcc/gimplify.h 2ac6b57e8aad060fa48b9a8a039a708a gcc/ginclude/float.h a610d6820fa8bbb9030d13a1dcd4ee52 gcc/ginclude/iso646.h 6433efea489e00fb72b79d0db6179e90 gcc/ginclude/stdalign.h --- 4633,4640 ---- e59654c510717f38e5835473b88512f8 gcc/gimple.h 79b09968dccc8cd8a7a3bd3b2449b1b7 gcc/gimplify-me.c 0fe03cac0c9e29cc1e32425f09eb2c17 gcc/gimplify-me.h ! a9d1a518623d40e08ef02e39d4ebdaa2 gcc/gimplify.c ! 331c48030a046b27a704925015fd1649 gcc/gimplify.h 2ac6b57e8aad060fa48b9a8a039a708a gcc/ginclude/float.h a610d6820fa8bbb9030d13a1dcd4ee52 gcc/ginclude/iso646.h 6433efea489e00fb72b79d0db6179e90 gcc/ginclude/stdalign.h *************** b20d2dc1cb683fcd184dd5581c236ba8 gcc/gi *** 4648,4654 **** d699488411097f968823f9f7e77d33fa gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h d0018c8b069fef23a59561ff2f8dc915 gcc/glimits.h ! 84a3c830762454edd2d7436084b3fa90 gcc/go/ChangeLog 84d2ef4a6fee7df8a45a370a6b605aae gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc e6bece4f0caf0458c84d9b29ca0de83e gcc/go/config-lang.in --- 4650,4656 ---- d699488411097f968823f9f7e77d33fa gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h d0018c8b069fef23a59561ff2f8dc915 gcc/glimits.h ! a277a575bf893dc8df4230bc554357b1 gcc/go/ChangeLog 84d2ef4a6fee7df8a45a370a6b605aae gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc e6bece4f0caf0458c84d9b29ca0de83e gcc/go/config-lang.in *************** a9976cefc0150a7132d127b093292abb gcc/go *** 4681,4690 **** 2a2578ae2b3378d37d61324c02656e27 gcc/go/gofrontend/gogo-tree.cc fbd5ef95dfe6c1db3cd54ba4bc33109b gcc/go/gofrontend/gogo.cc e33b0b4c9d13b6266a694e094d738133 gcc/go/gofrontend/gogo.h ! a54db7e2c0bee63493b5e156afd1e29c gcc/go/gofrontend/import-archive.cc 499fe8bccdd0651f0566d8c145b8d5f7 gcc/go/gofrontend/import.cc 46ea027bf693486499d4396551ed674d gcc/go/gofrontend/import.h ! 33c61fb692bc083f4b5774ea4325871f gcc/go/gofrontend/lex.cc 50f7fe6bed67437bd8cdedbdadbfd777 gcc/go/gofrontend/lex.h 98235b1a736055cd6a130337a9ee8e8e gcc/go/gofrontend/operator.h fa42c777e5714a649057baddfa33ca30 gcc/go/gofrontend/parse.cc --- 4683,4692 ---- 2a2578ae2b3378d37d61324c02656e27 gcc/go/gofrontend/gogo-tree.cc fbd5ef95dfe6c1db3cd54ba4bc33109b gcc/go/gofrontend/gogo.cc e33b0b4c9d13b6266a694e094d738133 gcc/go/gofrontend/gogo.h ! 19530349ffce8b937ed080715e7442d8 gcc/go/gofrontend/import-archive.cc 499fe8bccdd0651f0566d8c145b8d5f7 gcc/go/gofrontend/import.cc 46ea027bf693486499d4396551ed674d gcc/go/gofrontend/import.h ! 0d90ebaff0c2a2d319c12a150479e5ce gcc/go/gofrontend/lex.cc 50f7fe6bed67437bd8cdedbdadbfd777 gcc/go/gofrontend/lex.h 98235b1a736055cd6a130337a9ee8e8e gcc/go/gofrontend/operator.h fa42c777e5714a649057baddfa33ca30 gcc/go/gofrontend/parse.cc *************** df0b2e89a7ce7d87c1816e63cdecbf48 gcc/go *** 4695,4702 **** 30dd3449497113e8536805ec47db0d63 gcc/go/gofrontend/statements.cc 26fa4c1f2268d3e5180280310918ed0b gcc/go/gofrontend/statements.h 0ba1a11b029f92c6795e4c940c966f48 gcc/go/gofrontend/string-dump.h ! a4b994f44698b8a89e8c75119144265f gcc/go/gofrontend/types.cc ! f2cb4f81684d611386905f2fff829bd4 gcc/go/gofrontend/types.h 14f99064d66c4b9bc9ab92b14d4e7afe gcc/go/gofrontend/unsafe.cc dd84ec7483eb88b19ce6722e47c1a1f2 gcc/go/gospec.c 4d471970b23da7e4147258ef9373b38e gcc/go/lang-specs.h --- 4697,4704 ---- 30dd3449497113e8536805ec47db0d63 gcc/go/gofrontend/statements.cc 26fa4c1f2268d3e5180280310918ed0b gcc/go/gofrontend/statements.h 0ba1a11b029f92c6795e4c940c966f48 gcc/go/gofrontend/string-dump.h ! 807127e169b2ac5e8222bd4c8f66f1f8 gcc/go/gofrontend/types.cc ! 2edc37f5e0fd28a18b5988791482cf60 gcc/go/gofrontend/types.h 14f99064d66c4b9bc9ab92b14d4e7afe gcc/go/gofrontend/unsafe.cc dd84ec7483eb88b19ce6722e47c1a1f2 gcc/go/gospec.c 4d471970b23da7e4147258ef9373b38e gcc/go/lang-specs.h *************** fa16dedaafdb2228849f12a7ffd2e158 gcc/gr *** 4715,4721 **** 1400b8e99d3520aa60a29717280777e2 gcc/graphite-optimize-isl.c 7acfa753917c853e000017c393da3fc3 gcc/graphite-poly.c f9c785410cfde9d61c3ffb670dced572 gcc/graphite-poly.h ! ab1e6698efdaf3110847f7d273bdbc78 gcc/graphite-scop-detection.c 2c30c8f2568b1d728f9ba0e3929140d6 gcc/graphite-scop-detection.h 3d283157b1a0b1afd2a76a27ce09465c gcc/graphite-sese-to-poly.c 49ddf476aa0ab3084a087850dbf32c8b gcc/graphite-sese-to-poly.h --- 4717,4723 ---- 1400b8e99d3520aa60a29717280777e2 gcc/graphite-optimize-isl.c 7acfa753917c853e000017c393da3fc3 gcc/graphite-poly.c f9c785410cfde9d61c3ffb670dced572 gcc/graphite-poly.h ! 89fcadefa8e3b6c09169e1c840d54860 gcc/graphite-scop-detection.c 2c30c8f2568b1d728f9ba0e3929140d6 gcc/graphite-scop-detection.h 3d283157b1a0b1afd2a76a27ce09465c gcc/graphite-sese-to-poly.c 49ddf476aa0ab3084a087850dbf32c8b gcc/graphite-sese-to-poly.h *************** bf8ea69460dc53e98b80abbf629386bc gcc/in *** 4752,4766 **** 00fcd665255c519c1dffc8cce3472d98 gcc/internal-fn.h d9360459f2f4e913687597f9589da5da gcc/intl.c 828d71668221b7c1bd27436bf9a019bc gcc/intl.h ! c1423c98892b40ef08f44d0701ddf8e0 gcc/ipa-cp.c ! fc02b557228552e7d857db952632c4b0 gcc/ipa-devirt.c 1b8d3fb6c67dd0e13f67b75b924c3a3d gcc/ipa-inline-analysis.c ! ae7311c23f026fe0be71fd216e23d50e gcc/ipa-inline-transform.c ! 45752dfeb17ec8efd11c9e60b0b01c7c gcc/ipa-inline.c ! e3d2f4bfa7033d1b8fbd2134612adaf4 gcc/ipa-inline.h bc1b3139cd7a986ee918134a0530cff0 gcc/ipa-profile.c ! e99b183d28cc3fd85de7ad3aa4a19c8d gcc/ipa-prop.c ! 4a9fb2a454b41089783929875d644ede gcc/ipa-prop.h 5d7c7c3998bd7526105c1e995c55b1a4 gcc/ipa-pure-const.c 4d91788577e596f236457cd265942705 gcc/ipa-ref-inline.h 1855589dcb6587a046dcb728192ee425 gcc/ipa-ref.c --- 4754,4768 ---- 00fcd665255c519c1dffc8cce3472d98 gcc/internal-fn.h d9360459f2f4e913687597f9589da5da gcc/intl.c 828d71668221b7c1bd27436bf9a019bc gcc/intl.h ! 0006560fc2f706fce1ac466939c40369 gcc/ipa-cp.c ! f36213d901d1d1bd81b45ac95eaf53ee gcc/ipa-devirt.c 1b8d3fb6c67dd0e13f67b75b924c3a3d gcc/ipa-inline-analysis.c ! 86e89dfc4cd8b878835b47d24fb38ef7 gcc/ipa-inline-transform.c ! 07b45af4191a711dea059475f57c1a15 gcc/ipa-inline.c ! ef5aed192294b1ea841838ffe38b6ad0 gcc/ipa-inline.h bc1b3139cd7a986ee918134a0530cff0 gcc/ipa-profile.c ! 44fe8a05d2644cd22ac19740a96f22c1 gcc/ipa-prop.c ! 4cfe52b86527ded18edfae21b3a945cf gcc/ipa-prop.h 5d7c7c3998bd7526105c1e995c55b1a4 gcc/ipa-pure-const.c 4d91788577e596f236457cd265942705 gcc/ipa-ref-inline.h 1855589dcb6587a046dcb728192ee425 gcc/ipa-ref.c *************** e99b183d28cc3fd85de7ad3aa4a19c8d gcc/ip *** 4770,4787 **** 6b64a43c2c779189270aa17b12713e99 gcc/ipa-split.c 446a574aba27a93de95b2b0c4b4cecbe gcc/ipa-utils.c f1a401a90912552f632b32c77c399c6c gcc/ipa-utils.h ! 579652fdce69538790449c49dc8145f8 gcc/ipa.c dd7ab034904148f42c51b046d7f0b572 gcc/ira-build.c 43905ebf4d26681958db7403ec946ebc gcc/ira-color.c 70bab789c6dafc2ab624cc7af66b192e gcc/ira-conflicts.c ! 41e9c50f013de42327bb4af6a3bb6395 gcc/ira-costs.c 2bd26b2844144d614e2af6f5617f0c46 gcc/ira-emit.c 6488cfc31e614d186769d37bd27cb054 gcc/ira-int.h 9c77805567ace1d43ebfaadc852c23c5 gcc/ira-lives.c 09d12eb5ca58b3a053aceb771c071238 gcc/ira.c a143bddc3bc8d88afb0b31089aefe816 gcc/ira.h 843275b56a150408da64a72a1e86fd31 gcc/is-a.h ! 69d277ee47c79b208afe37ec68dae66f gcc/java/ChangeLog 3becfaac793f49e1f52cd74e78172b48 gcc/java/ChangeLog.ptr 1c698a5c434720749e71a0ea3eb5a0ea gcc/java/ChangeLog.tree-ssa 3e907c2321d94f9d70c9bfcc63d251c3 gcc/java/Make-lang.in --- 4772,4789 ---- 6b64a43c2c779189270aa17b12713e99 gcc/ipa-split.c 446a574aba27a93de95b2b0c4b4cecbe gcc/ipa-utils.c f1a401a90912552f632b32c77c399c6c gcc/ipa-utils.h ! da8f2c35f7821cbc3822da57cfdccf9d gcc/ipa.c dd7ab034904148f42c51b046d7f0b572 gcc/ira-build.c 43905ebf4d26681958db7403ec946ebc gcc/ira-color.c 70bab789c6dafc2ab624cc7af66b192e gcc/ira-conflicts.c ! 860fc86150488ec9dc71e5fa1468c1f2 gcc/ira-costs.c 2bd26b2844144d614e2af6f5617f0c46 gcc/ira-emit.c 6488cfc31e614d186769d37bd27cb054 gcc/ira-int.h 9c77805567ace1d43ebfaadc852c23c5 gcc/ira-lives.c 09d12eb5ca58b3a053aceb771c071238 gcc/ira.c a143bddc3bc8d88afb0b31089aefe816 gcc/ira.h 843275b56a150408da64a72a1e86fd31 gcc/is-a.h ! aa42185fde7647b4f50fe0755cbc9810 gcc/java/ChangeLog 3becfaac793f49e1f52cd74e78172b48 gcc/java/ChangeLog.ptr 1c698a5c434720749e71a0ea3eb5a0ea gcc/java/ChangeLog.tree-ssa 3e907c2321d94f9d70c9bfcc63d251c3 gcc/java/Make-lang.in *************** d03d50952e0b5598e011458b4c4a2b7f gcc/ja *** 4825,4833 **** ba23c462cffc03660fd11fb0c4392c4c gcc/java/zextract.c 9c0b0201efef1378fbce54f5bd65c98e gcc/java/zipfile.h 03b9495809742f845dbb701be808117d gcc/jump.c ! 7838c4f8587c371ecd31b9e52b498200 gcc/langhooks-def.h ! c54aaeebda7b472c47d94d80c8be3d57 gcc/langhooks.c ! ed206298e22a303c30ef36e0bbd20a48 gcc/langhooks.h 7b2bf12099bae7074b15d1964c8821c0 gcc/lcm.c 8693ecbe418eceacb540aed3603d8766 gcc/libfuncs.h 5314cfbffeb18b917515c40fdbc36540 gcc/limitx.h --- 4827,4835 ---- ba23c462cffc03660fd11fb0c4392c4c gcc/java/zextract.c 9c0b0201efef1378fbce54f5bd65c98e gcc/java/zipfile.h 03b9495809742f845dbb701be808117d gcc/jump.c ! 1ec3b83a546f9030158a6466675214f6 gcc/langhooks-def.h ! db9b7dec34f0a81ec5a37dbb74f862a9 gcc/langhooks.c ! 40cb75b6a10a6d71bc4d62aeaef5cc97 gcc/langhooks.h 7b2bf12099bae7074b15d1964c8821c0 gcc/lcm.c 8693ecbe418eceacb540aed3603d8766 gcc/libfuncs.h 5314cfbffeb18b917515c40fdbc36540 gcc/limitx.h *************** ed206298e22a303c30ef36e0bbd20a48 gcc/la *** 4835,4841 **** bcd8945e5414cda5e3ad03542a2d011d gcc/lists.c 16086d64468975aa4ba54f78d2a7b542 gcc/lock-and-run.sh 208b088d7ccccc8e6c543e63fdea06fa gcc/loop-doloop.c ! b2e8b3596aa6202b3a28b571d7ab31ce gcc/loop-init.c 961aa1aafb4d7f6633b1296cae0f3adf gcc/loop-invariant.c ec482357a36adb888741b89a43153c39 gcc/loop-iv.c 64a1aad9486a60d822da0c2f90e3d74d gcc/loop-unroll.c --- 4837,4843 ---- bcd8945e5414cda5e3ad03542a2d011d gcc/lists.c 16086d64468975aa4ba54f78d2a7b542 gcc/lock-and-run.sh 208b088d7ccccc8e6c543e63fdea06fa gcc/loop-doloop.c ! 2d37d0b843b816b1c6dd9aad0304fca4 gcc/loop-init.c 961aa1aafb4d7f6633b1296cae0f3adf gcc/loop-invariant.c ec482357a36adb888741b89a43153c39 gcc/loop-iv.c 64a1aad9486a60d822da0c2f90e3d74d gcc/loop-unroll.c *************** b8ec1125f50fd732ec79e25188b65195 gcc/lo *** 4844,4851 **** ea528889eab563f14e1de595d2accbea gcc/lower-subreg.h c5d6f1be07de4f413bcade24de1eb227 gcc/lra-assigns.c dc1627ac98262eabf9f97f3174ae4d9b gcc/lra-coalesce.c ! c70a27b61278483ebab628a2533c55f5 gcc/lra-constraints.c ! 91aa820c388b2095bf8b1956e6bb1079 gcc/lra-eliminations.c e3cc33f3adfbde793a360b287c829ccb gcc/lra-int.h b739e070bd2225a3a9caa382b77fe577 gcc/lra-lives.c ca992aec926a40acb7ddb9ca411175f9 gcc/lra-spills.c --- 4846,4853 ---- ea528889eab563f14e1de595d2accbea gcc/lower-subreg.h c5d6f1be07de4f413bcade24de1eb227 gcc/lra-assigns.c dc1627ac98262eabf9f97f3174ae4d9b gcc/lra-coalesce.c ! 633b3d9192a422c6138881cab3e3abf6 gcc/lra-constraints.c ! 13d0b61525b9064a61d09f25fd0ad388 gcc/lra-eliminations.c e3cc33f3adfbde793a360b287c829ccb gcc/lra-int.h b739e070bd2225a3a9caa382b77fe577 gcc/lra-lives.c ca992aec926a40acb7ddb9ca411175f9 gcc/lra-spills.c *************** f6df3e8bdd1544526a9063ecaa5262a2 gcc/lt *** 4858,4868 **** 1ad7c612bb12a8205345f45c9902dbff gcc/lto-section-in.c 4ef9318ae61cbd95ceba4d21ac1dc3bc gcc/lto-section-out.c 9d90309ed38ceafd2737c415ab3b73b7 gcc/lto-streamer-in.c ! 5b1dc7a9d599c8a7d5fb86745620eda6 gcc/lto-streamer-out.c 81d24bca19f31cd5f0e863be0155267b gcc/lto-streamer.c b6667b25d54cd3d347edba40e635a6f8 gcc/lto-streamer.h b22d02e83c5f71264232ba966fa80333 gcc/lto-wrapper.c ! 7a77723cb569c38f04c6d2c1c575c814 gcc/lto/ChangeLog bd46eeecd1e05c40c9228f70c479cb8b gcc/lto/Make-lang.in 02974c5a3053c08f1c7046c3c00f237e gcc/lto/common.c d2a23372f33fc6333deb5309623e859d gcc/lto/common.h --- 4860,4870 ---- 1ad7c612bb12a8205345f45c9902dbff gcc/lto-section-in.c 4ef9318ae61cbd95ceba4d21ac1dc3bc gcc/lto-section-out.c 9d90309ed38ceafd2737c415ab3b73b7 gcc/lto-streamer-in.c ! 6363140d711d0e7a7105c3c997df1ef3 gcc/lto-streamer-out.c 81d24bca19f31cd5f0e863be0155267b gcc/lto-streamer.c b6667b25d54cd3d347edba40e635a6f8 gcc/lto-streamer.h b22d02e83c5f71264232ba966fa80333 gcc/lto-wrapper.c ! 8936d922009af7d728c70ab3886be78e gcc/lto/ChangeLog bd46eeecd1e05c40c9228f70c479cb8b gcc/lto/Make-lang.in 02974c5a3053c08f1c7046c3c00f237e gcc/lto/common.c d2a23372f33fc6333deb5309623e859d gcc/lto/common.h *************** ef39413097ebe13a67bb11ebb1b6a3a9 gcc/lt *** 4873,4879 **** 825fbe769aa70a26c698b09302310552 gcc/lto/lto-object.c 5ce936a1f06cbe68ffb6f15bfeb6fc88 gcc/lto/lto-partition.c 8977b46ede8ac142c4b6cef5cd202c65 gcc/lto/lto-partition.h ! e9f8090d5f38cfe55dfa4bd772a25dbb gcc/lto/lto-symtab.c cdfee539cfd3256004050bc33902c8f1 gcc/lto/lto-tree.h 535b0080fabf084d8709a1d179f82c53 gcc/lto/lto.c 53d38a820f2ac6511c4a3f1184674822 gcc/lto/lto.h --- 4875,4881 ---- 825fbe769aa70a26c698b09302310552 gcc/lto/lto-object.c 5ce936a1f06cbe68ffb6f15bfeb6fc88 gcc/lto/lto-partition.c 8977b46ede8ac142c4b6cef5cd202c65 gcc/lto/lto-partition.h ! a9663f2ad1ef207f00d8e9fbdece6519 gcc/lto/lto-symtab.c cdfee539cfd3256004050bc33902c8f1 gcc/lto/lto-tree.h 535b0080fabf084d8709a1d179f82c53 gcc/lto/lto.c 53d38a820f2ac6511c4a3f1184674822 gcc/lto/lto.h *************** fcc2286edf21da424cd748f78bab8beb gcc/ma *** 4885,4891 **** c105259690227bdba523ebbdb6785a23 gcc/mode-classes.def 5990f0f03ab20c63f205f98103605d90 gcc/mode-switching.c ea3034ca83cb71b140bd50490e453acb gcc/modulo-sched.c ! cea0753f59b148c97a9230af18260dfe gcc/objc/ChangeLog f7d80205bd69247c50937b75822d6bd9 gcc/objc/Make-lang.in 9e4f3a7afe892a3c94dacd501fa3b35f gcc/objc/config-lang.in f4d88f51dbafbe757f45be85d78212b3 gcc/objc/lang-specs.h --- 4887,4893 ---- c105259690227bdba523ebbdb6785a23 gcc/mode-classes.def 5990f0f03ab20c63f205f98103605d90 gcc/mode-switching.c ea3034ca83cb71b140bd50490e453acb gcc/modulo-sched.c ! 78f49ff1378cc3a8aaaa089e78571d21 gcc/objc/ChangeLog f7d80205bd69247c50937b75822d6bd9 gcc/objc/Make-lang.in 9e4f3a7afe892a3c94dacd501fa3b35f gcc/objc/config-lang.in f4d88f51dbafbe757f45be85d78212b3 gcc/objc/lang-specs.h *************** c122edc5c6b17b4d321a60351edeafed gcc/ob *** 4904,4910 **** ef6e827e622bc98f856c61b276dc8c64 gcc/objc/objc-runtime-shared-support.c dab6095a59a77d76a9ffdf45011ed784 gcc/objc/objc-runtime-shared-support.h a20e652c78591a316ce03a188632848f gcc/objc/objc-tree.def ! 99f035685dd2d8035a3d8121840f65ee gcc/objcp/ChangeLog 79e09c916d955993dc8964962930f661 gcc/objcp/Make-lang.in e75a1a94a911654e611dc33cc33ed861 gcc/objcp/config-lang.in d551c7316da761fc633ce118cc2b5e8e gcc/objcp/lang-specs.h --- 4906,4912 ---- ef6e827e622bc98f856c61b276dc8c64 gcc/objc/objc-runtime-shared-support.c dab6095a59a77d76a9ffdf45011ed784 gcc/objc/objc-runtime-shared-support.h a20e652c78591a316ce03a188632848f gcc/objc/objc-tree.def ! fb8e95f0185879ad9781fc10df395939 gcc/objcp/ChangeLog 79e09c916d955993dc8964962930f661 gcc/objcp/Make-lang.in e75a1a94a911654e611dc33cc33ed861 gcc/objcp/config-lang.in d551c7316da761fc633ce118cc2b5e8e gcc/objcp/lang-specs.h *************** f1fe0e2522617705fd8c3550c0e11716 gcc/ob *** 4914,4920 **** b287f66d35995315cca62a202c60bb74 gcc/omega.c 010649dbdbf5e49817e4ea9f867a7bff gcc/omega.h 21429c2e0fbb11feafa4b0713ffd0458 gcc/omp-builtins.def ! f26a560e5c6f914b54f634408d144c07 gcc/omp-low.c 768117c1b005da4325bccda2b1aafbf8 gcc/omp-low.h f1316591a0b9cca13acbe19ecbc3bbc2 gcc/opt-functions.awk dea8fbe4f187428f3ca66daeae92f165 gcc/opt-gather.awk --- 4916,4922 ---- b287f66d35995315cca62a202c60bb74 gcc/omega.c 010649dbdbf5e49817e4ea9f867a7bff gcc/omega.h 21429c2e0fbb11feafa4b0713ffd0458 gcc/omp-builtins.def ! 0e7d90d8255b0ebdcdce7bd859483943 gcc/omp-low.c 768117c1b005da4325bccda2b1aafbf8 gcc/omp-low.h f1316591a0b9cca13acbe19ecbc3bbc2 gcc/opt-functions.awk dea8fbe4f187428f3ca66daeae92f165 gcc/opt-gather.awk *************** ea7ba995cdc17d9cc64b18b75e660dc1 gcc/op *** 4929,4947 **** 1ddfeafac813cf8a92d2c3e589959754 gcc/opts-common.c f8af27e8d310fb07ee954b9d51720a44 gcc/opts-diagnostic.h 8d0e45b60b7e191de6268565d8f7be68 gcc/opts-global.c ! f0d81e40a553c25127f2ba08b8d59d94 gcc/opts.c a8111e6b093d3a2ffb9761954116196f gcc/opts.h aed504b0320caa1fe29201ae90d7696b gcc/output.h 1a435aeba364655d22922ca5ce6d6a57 gcc/params.c ccfd047721d6ef8fbf1de21f9ce3d72c gcc/params.def bd4f289f412d22ec498d4945cb7892b6 gcc/params.h b61dc6bbf55ac62d93ddeaa57e1034d7 gcc/pass_manager.h ! 881287af7fb13d7da6651d92e7936bfe gcc/passes.c 05e2c2f175685b9549570e51b3dd799a gcc/passes.def 1e36a92344845ad1cb58222eea33d560 gcc/plugin.c e68ff8352334b5b009a28b53fb9284ca gcc/plugin.def c26393f8f5ea723bfcc15bf50ee1cc7d gcc/plugin.h ! 706a43669ae00ed9fa3d772d5b6459c7 gcc/po/ChangeLog 75ba3ed7c2ea3070333b11ced79b1cc8 gcc/po/EXCLUDES 1da2375d1cb67532f3330921d29cd450 gcc/po/be.gmo ef9de679afafaa38517caa5a594e771a gcc/po/be.po --- 4931,4949 ---- 1ddfeafac813cf8a92d2c3e589959754 gcc/opts-common.c f8af27e8d310fb07ee954b9d51720a44 gcc/opts-diagnostic.h 8d0e45b60b7e191de6268565d8f7be68 gcc/opts-global.c ! a2552b89daebdcf868040ae6a98e6d41 gcc/opts.c a8111e6b093d3a2ffb9761954116196f gcc/opts.h aed504b0320caa1fe29201ae90d7696b gcc/output.h 1a435aeba364655d22922ca5ce6d6a57 gcc/params.c ccfd047721d6ef8fbf1de21f9ce3d72c gcc/params.def bd4f289f412d22ec498d4945cb7892b6 gcc/params.h b61dc6bbf55ac62d93ddeaa57e1034d7 gcc/pass_manager.h ! 9072ae9400752c4738ce43bc338e2f54 gcc/passes.c 05e2c2f175685b9549570e51b3dd799a gcc/passes.def 1e36a92344845ad1cb58222eea33d560 gcc/plugin.c e68ff8352334b5b009a28b53fb9284ca gcc/plugin.def c26393f8f5ea723bfcc15bf50ee1cc7d gcc/plugin.h ! 5c2f41ff65d94fed018df2830326783e gcc/po/ChangeLog 75ba3ed7c2ea3070333b11ced79b1cc8 gcc/po/EXCLUDES 1da2375d1cb67532f3330921d29cd450 gcc/po/be.gmo ef9de679afafaa38517caa5a594e771a gcc/po/be.po *************** fd7ece5b815ea48c4860ed2fc449ade0 gcc/po *** 4971,4984 **** 28ab66c54e1279b684f5240a46adc7a7 gcc/po/ru.po 56c8cc4daf3693852ab6e11be298083a gcc/po/sr.gmo edc2c082d66ed31ad2c5897a23f09b8d gcc/po/sr.po ! d1f020c9a99ddcffda08d5f1f112901f gcc/po/sv.gmo ! f0e0da51bf7ee2ca2aa08bd2954c8968 gcc/po/sv.po 50c9101bba2810cbc8f32fdf0154b842 gcc/po/tr.gmo 70f05386117166e45871362f9bed6288 gcc/po/tr.po 70add2819182fb77e30058d218746ad2 gcc/po/vi.gmo 6b8be71c236a0ffdb8beabb1e48c9714 gcc/po/vi.po ! 4bcbbee8cefeef73ad8921889e8769f3 gcc/po/zh_CN.gmo ! da7cf7070e0b6d7b860bd2504261ae6e gcc/po/zh_CN.po c0a6da01a1a90e55a45d23532046d414 gcc/po/zh_TW.gmo 3c222a095eadff06aa61b52919603ca2 gcc/po/zh_TW.po f6726e62db99c4bd4123f60cde728904 gcc/pointer-set.c --- 4973,4986 ---- 28ab66c54e1279b684f5240a46adc7a7 gcc/po/ru.po 56c8cc4daf3693852ab6e11be298083a gcc/po/sr.gmo edc2c082d66ed31ad2c5897a23f09b8d gcc/po/sr.po ! ce615528bd4a3a1885147e51b029dcc6 gcc/po/sv.gmo ! 7b50cd91f6dbfff3c10c3f39cccbc939 gcc/po/sv.po 50c9101bba2810cbc8f32fdf0154b842 gcc/po/tr.gmo 70f05386117166e45871362f9bed6288 gcc/po/tr.po 70add2819182fb77e30058d218746ad2 gcc/po/vi.gmo 6b8be71c236a0ffdb8beabb1e48c9714 gcc/po/vi.po ! 5246a6782003fa351975b52b29769147 gcc/po/zh_CN.gmo ! 6c55f69a1f24f470653cb44d3dd3fe73 gcc/po/zh_CN.po c0a6da01a1a90e55a45d23532046d414 gcc/po/zh_TW.gmo 3c222a095eadff06aa61b52919603ca2 gcc/po/zh_TW.po f6726e62db99c4bd4123f60cde728904 gcc/pointer-set.c *************** d869921e527aaf5b3eaad357e63dcb90 gcc/re *** 5007,5013 **** 0862d16c511514fc4b9419fe8d2249fb gcc/realmpfr.h 5b9b5b3852225006cfc895ff9315681f gcc/recog.c f8e8e735b5e2da8b23f855f10cf967d9 gcc/recog.h ! f72c7af647eb1b9bbf7430ece8542199 gcc/ree.c 705e5e05416b08906b765349ad349138 gcc/reg-notes.def 72ea708b4dc70ce4438d69d2319a2fde gcc/reg-stack.c 592552d455fba1ac9581479157402123 gcc/regcprop.c --- 5009,5015 ---- 0862d16c511514fc4b9419fe8d2249fb gcc/realmpfr.h 5b9b5b3852225006cfc895ff9315681f gcc/recog.c f8e8e735b5e2da8b23f855f10cf967d9 gcc/recog.h ! 24eb88f29672c729eeb9c8cd44b47709 gcc/ree.c 705e5e05416b08906b765349ad349138 gcc/reg-notes.def 72ea708b4dc70ce4438d69d2319a2fde gcc/reg-stack.c 592552d455fba1ac9581479157402123 gcc/regcprop.c *************** a2bfa6c5434e12ef7fa5bb01467e9d04 gcc/sc *** 5043,5049 **** 36e2f10716593b481f8fb4e2836311ff gcc/sdbout.h 7d34229f0dd766db5d88ad4d07e7ac7f gcc/sel-sched-dump.c ce9747499f85453b18cc17486a613be1 gcc/sel-sched-dump.h ! 750e946a821c0b64a9537ac1eb5026f3 gcc/sel-sched-ir.c 20d66daf1a82ba97d0c7d7408435ef3c gcc/sel-sched-ir.h cf60677a76338769fb2db05176673243 gcc/sel-sched.c e7143a8fa4f763d1920eae298c76e3d6 gcc/sel-sched.h --- 5045,5051 ---- 36e2f10716593b481f8fb4e2836311ff gcc/sdbout.h 7d34229f0dd766db5d88ad4d07e7ac7f gcc/sel-sched-dump.c ce9747499f85453b18cc17486a613be1 gcc/sel-sched-dump.h ! 11a4d53aa01f91bf8d1e0b742058385f gcc/sel-sched-ir.c 20d66daf1a82ba97d0c7d7408435ef3c gcc/sel-sched-ir.h cf60677a76338769fb2db05176673243 gcc/sel-sched.c e7143a8fa4f763d1920eae298c76e3d6 gcc/sel-sched.h *************** c0cd2e2c2904476803fb2df9600d2865 gcc/st *** 5068,5074 **** 373962dfad4478b106fdeaac9d95cdf9 gcc/streamer-hooks.h 1fe7e856e0066010e5281b160ab86b16 gcc/stringpool.c aeb9c7847a29ddd73aaba4fe6916c482 gcc/stringpool.h ! 5ee8172bf47d0223df6fe75c280e8b70 gcc/symtab.c fb2c182d3b4fe1a83d730402d2dd93f1 gcc/sync-builtins.def 39bafcedb9b2dcef106d2a0338d4f027 gcc/system.h 6f7212d96dbe608531046cd09ce61d7c gcc/target-def.h --- 5070,5076 ---- 373962dfad4478b106fdeaac9d95cdf9 gcc/streamer-hooks.h 1fe7e856e0066010e5281b160ab86b16 gcc/stringpool.c aeb9c7847a29ddd73aaba4fe6916c482 gcc/stringpool.h ! 4442eb1dcb11e9e35122e80ccfadd6c2 gcc/symtab.c fb2c182d3b4fe1a83d730402d2dd93f1 gcc/sync-builtins.def 39bafcedb9b2dcef106d2a0338d4f027 gcc/system.h 6f7212d96dbe608531046cd09ce61d7c gcc/target-def.h *************** dd5e75577e30df65977e84f24fbfa8f2 gcc/ta *** 5079,5085 **** 5096a6cda7c1340a6843c4eee249eb97 gcc/target.h be5e3bfa678dd16872775c30f8c43ce4 gcc/targhooks.c 8e6bbb74d18a1c0dc21dee6ba057882f gcc/targhooks.h ! 00e103354f56c5ed082d7bfa518b4ba4 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 --- 5081,5087 ---- 5096a6cda7c1340a6843c4eee249eb97 gcc/target.h be5e3bfa678dd16872775c30f8c43ce4 gcc/targhooks.c 8e6bbb74d18a1c0dc21dee6ba057882f gcc/targhooks.h ! a4bb28b328e913c4c86847ad2d1fdc93 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** f09fabcd0e90cac8285146d1d11a50da gcc/te *** 7790,7797 **** 2c088e019fefc928fe277ef1f4fb7d33 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457-2.c bba6114b4cfe4a3376c77f125d594f06 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457.c 953c3a0fd51c86c993a221c31e5211ec gcc/testsuite/c-c++-common/cilk-plus/AN/pr57490.c ! caec5195ca9756829fab7d458899c693 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c a36b3974157c0833a64435f6ab921c63 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57577.c 48e29ba8dcd43d0483eaa269c8168397 gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c 4dfe5bd9bbbf2b8f4fd4e8f2929b2810 gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c 4cbb8c454d5869ef6fd39d428da765a0 gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch3.c --- 7792,7802 ---- 2c088e019fefc928fe277ef1f4fb7d33 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457-2.c bba6114b4cfe4a3376c77f125d594f06 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457.c 953c3a0fd51c86c993a221c31e5211ec gcc/testsuite/c-c++-common/cilk-plus/AN/pr57490.c ! 43824703e1a03545ac36b780d6e1942a gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541-2.c ! a3f5fc8ddb22402540a7884bec069d00 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c a36b3974157c0833a64435f6ab921c63 gcc/testsuite/c-c++-common/cilk-plus/AN/pr57577.c + 18b9ecb01f318e46e1b1618d51b65ecf gcc/testsuite/c-c++-common/cilk-plus/AN/pr58942.c + b642b955aa866b79df8b35740b79d712 gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c 48e29ba8dcd43d0483eaa269c8168397 gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c 4dfe5bd9bbbf2b8f4fd4e8f2929b2810 gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c 4cbb8c454d5869ef6fd39d428da765a0 gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch3.c *************** ef0d0c971bad41a313b87776cadd1f1c gcc/te *** 7813,7818 **** --- 7818,7824 ---- b5bfde6a9dd678a448b8474f39ba919b gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c b8b1cd4b185e786ec2db1f3a6cdfdc64 gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c 3c1aba27f563b43e7496044a67a04215 gcc/testsuite/c-c++-common/cilk-plus/CK/invalid_spawns.c + e30e70e0f3ee94bd63ee8448c326b114 gcc/testsuite/c-c++-common/cilk-plus/CK/invalid_sync.cc 4973d12eddd618d656dec825d9f862ca gcc/testsuite/c-c++-common/cilk-plus/CK/no_args_error.c baaa8dcaf89f3b8cd67c3c385d275b85 gcc/testsuite/c-c++-common/cilk-plus/CK/pr59631.c 0fdcd72893b4a82aea59579baa2dfba1 gcc/testsuite/c-c++-common/cilk-plus/CK/pr60197-2.c *************** c0e0d2f46bf19ec2b6f3291f97a1ac27 gcc/te *** 7963,7969 **** c2e14df2c3c1f90d28c611400c8d66df gcc/testsuite/c-c++-common/gomp/atomic-13.c 7e932cfe67a56047f2793f8f073026d8 gcc/testsuite/c-c++-common/gomp/atomic-14.c ea35c8898a66194ddfd4052e95c9b78c gcc/testsuite/c-c++-common/gomp/atomic-15.c ! 041021ef9972945e372ef740ba657791 gcc/testsuite/c-c++-common/gomp/atomic-16.c 02a1665574401bc7491c754880894569 gcc/testsuite/c-c++-common/gomp/atomic-2.c 36961f7538f3a387eb44b9dd71182644 gcc/testsuite/c-c++-common/gomp/atomic-3.c b2ce89f1ba635f8d6701308583cd4759 gcc/testsuite/c-c++-common/gomp/atomic-4.c --- 7969,7975 ---- c2e14df2c3c1f90d28c611400c8d66df gcc/testsuite/c-c++-common/gomp/atomic-13.c 7e932cfe67a56047f2793f8f073026d8 gcc/testsuite/c-c++-common/gomp/atomic-14.c ea35c8898a66194ddfd4052e95c9b78c gcc/testsuite/c-c++-common/gomp/atomic-15.c ! 0129f6c1e124f845d12d0e1105a1272a gcc/testsuite/c-c++-common/gomp/atomic-16.c 02a1665574401bc7491c754880894569 gcc/testsuite/c-c++-common/gomp/atomic-2.c 36961f7538f3a387eb44b9dd71182644 gcc/testsuite/c-c++-common/gomp/atomic-3.c b2ce89f1ba635f8d6701308583cd4759 gcc/testsuite/c-c++-common/gomp/atomic-4.c *************** a7d789b5091f59130b63c3467560e1e1 gcc/te *** 7984,7993 **** --- 7990,8005 ---- fe151bac678698a31d909bd16fae419b gcc/testsuite/c-c++-common/gomp/pr58551.c 6d1dc12c879ee866b842cec98b946a0d gcc/testsuite/c-c++-common/gomp/pr58703.c 8bae1133175c7b4a752ebdc6baba26e4 gcc/testsuite/c-c++-common/gomp/pr58809.c + 63108e4eb634574549c4c4c319dc6ae0 gcc/testsuite/c-c++-common/gomp/pr59073.c 5d8f96921e9524db1e999bab7eac1116 gcc/testsuite/c-c++-common/gomp/pr59152.c 05e6a38172b7bfc26de83040dfc8c364 gcc/testsuite/c-c++-common/gomp/pr59467.c c282b9ecbe7c1cafd42ab3e0184003b2 gcc/testsuite/c-c++-common/gomp/pr59917-1.c aae6611cdfa9d295d22870f8c9222f69 gcc/testsuite/c-c++-common/gomp/pr59917-2.c + 648e6282c96355072c109ed1a82ea4d7 gcc/testsuite/c-c++-common/gomp/pr60823-1.c + 5724f24c4f1988cd1539ef0c5e147b98 gcc/testsuite/c-c++-common/gomp/pr60823-2.c + defbe62797ed1363de67a60914b29aa7 gcc/testsuite/c-c++-common/gomp/pr60823-3.c + 33408e801b735ed22ebf0d36f8fd7554 gcc/testsuite/c-c++-common/gomp/pr61486-1.c + 8e7463bc9420fce6b1a1443c77ad841e gcc/testsuite/c-c++-common/gomp/pr61486-2.c 328147f679f9eac26be960bf85acb2e8 gcc/testsuite/c-c++-common/gomp/sections1.c c7cb982e272572b3d42948b23c3c6229 gcc/testsuite/c-c++-common/gomp/simd1.c 3ffb158d7db65691583ca6ff7330457a gcc/testsuite/c-c++-common/gomp/simd2.c *************** dad442c09041500a2c414da240f49b82 gcc/te *** 8127,8132 **** --- 8139,8145 ---- baa15b278da5bb4b2b348d4043f1c97e gcc/testsuite/c-c++-common/torture/pr58794-1.c c816e733ed428f32e49d50b564aaef54 gcc/testsuite/c-c++-common/torture/pr58794-2.c 51789b713733d1d6693238c2ca4e9b85 gcc/testsuite/c-c++-common/torture/pr60026.c + 233a29474162885f1e2509bbf25e078f gcc/testsuite/c-c++-common/torture/pr60971.c fdeec1e5ecb339bf68961fab033b606e gcc/testsuite/c-c++-common/torture/vector-compare-1.c e098360b3686787abea6589b13d9e806 gcc/testsuite/c-c++-common/torture/vector-compare-2.c 26c13a49130d1f2d291bea112073585f gcc/testsuite/c-c++-common/torture/vector-shift.c *************** de3d6255780c29f63df3f8d96932bd39 gcc/te *** 8872,8877 **** --- 8885,8891 ---- 1bc1c995533b047ed8df6f6f24905cd1 gcc/testsuite/g++.dg/cpp0x/constexpr-99.C 785343af0b3355420f795309fbe121fb gcc/testsuite/g++.dg/cpp0x/constexpr-abi1.C 7d8afd8896f969ba303cb470f166dc1a gcc/testsuite/g++.dg/cpp0x/constexpr-access.C + b2677ed5d88c259b9b0fac3db40c4180 gcc/testsuite/g++.dg/cpp0x/constexpr-aggr1.C 3f271472f05de1e297d6ea28097b47d1 gcc/testsuite/g++.dg/cpp0x/constexpr-and.C d184daf58a1efefa9b5d9f2675332595 gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr.C 8fd033f4e6b69599a1e293c45d0814cb gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr2.C *************** b0f3e3a129a29b94607b7667c179da90 gcc/te *** 9012,9017 **** --- 9026,9032 ---- 71bf544adf239f884a43b6d72e78604e gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C e29b90d7c0ad7662446a6055addb6315 gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C fa7ac28bbeb7f5a520d7f5c5847dedff gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem.C + 02a38a7d530d4818a0d8dbbb4225efd9 gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem2.C 2e9d0ef04a28487562d30ab99afa37a2 gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub.C c893e2388f9acef593b874b1e6b02071 gcc/testsuite/g++.dg/cpp0x/constexpr-pure.C 3d462eb6b34feb0c1cf9349c9e6e976c gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C *************** f98c98ebe90dfc39170c4a4f40861306 gcc/te *** 9047,9052 **** --- 9062,9068 ---- a05dfbf634e5313455c47b794057b288 gcc/testsuite/g++.dg/cpp0x/constexpr-template4.C fa38f028820b71aa1be6862fa8eb6f7c gcc/testsuite/g++.dg/cpp0x/constexpr-template5.C 7af69efd7e063989a419444f87d1e491 gcc/testsuite/g++.dg/cpp0x/constexpr-template6.C + fac54481719d52997e799f9f5944ce10 gcc/testsuite/g++.dg/cpp0x/constexpr-template7.C 53ba7c64d852ccf921166074b871f796 gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C 77e5599180280cec4988ec1ddb372b25 gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C e4e296b91d878f03ac7d69d384efc1f4 gcc/testsuite/g++.dg/cpp0x/constexpr-typedef1.C *************** bf3070d396c7bb7e08191019deb59497 gcc/te *** 9188,9193 **** --- 9204,9210 ---- acc6bd6fd744bdc18ca97d53d2b93372 gcc/testsuite/g++.dg/cpp0x/defaulted46.C 9c11c2857ec4e4034b1d9d143b50000f gcc/testsuite/g++.dg/cpp0x/defaulted47.C c7e6cc6230f1d5b6c871906050eb4a8e gcc/testsuite/g++.dg/cpp0x/defaulted48.C + f43c03a4784f2f2c60f5f1a33fb05baa gcc/testsuite/g++.dg/cpp0x/defaulted49.C f850ce13cb38dd65e14979303082c6cf gcc/testsuite/g++.dg/cpp0x/defaulted5.C 1983e4823fae7dc43730a329ff221148 gcc/testsuite/g++.dg/cpp0x/defaulted6.C bbb1e584edf09356b8623f522ff03019 gcc/testsuite/g++.dg/cpp0x/defaulted7.C *************** fda4f7d4f4b57c79d7734d634ae9041f gcc/te *** 9373,9378 **** --- 9390,9396 ---- ec9b8f74c4220a07771e91a84c8311aa gcc/testsuite/g++.dg/cpp0x/inh-ctor9.C 09f09079c354ad93c3844a14549e0854 gcc/testsuite/g++.dg/cpp0x/initlist-array2.C 2689261b6dbe2bf5875e915ce8a31a53 gcc/testsuite/g++.dg/cpp0x/initlist-array3.C + 6c1907913d332611dd16d03002d759f9 gcc/testsuite/g++.dg/cpp0x/initlist-array4.C 75dbdd73972da9a369980925ff477d9d gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C 994605127bf908d7a5b9745b9991101e gcc/testsuite/g++.dg/cpp0x/initlist-ctor1.C 8642aa67406b008384f59447a05a884c gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C *************** d5b016047cf8f1ab79bc52ea41141d4c gcc/te *** 9466,9471 **** --- 9484,9491 ---- f4e51372ebce70d4e70fe4c30c9c5df3 gcc/testsuite/g++.dg/cpp0x/initlist80.C 02ef88866a33af3b82367f920d4380ba gcc/testsuite/g++.dg/cpp0x/initlist81.C 3df81dd8acdfbccf6fba7648b64b32c5 gcc/testsuite/g++.dg/cpp0x/initlist82.C + e19590cab587582486b601d5b4135a2e gcc/testsuite/g++.dg/cpp0x/initlist84.C + ce1c3896ddd664d6cbfa86d425a7cf39 gcc/testsuite/g++.dg/cpp0x/initlist86.C de6fe33f85a45970df99586b8f8f48c8 gcc/testsuite/g++.dg/cpp0x/initlist9.C 2bd94659e18571416ec707555f61b80d gcc/testsuite/g++.dg/cpp0x/inline-ns1.C 3e2f011d130eb1b8b8c5b45e6f650dfb gcc/testsuite/g++.dg/cpp0x/inline-ns2.C *************** b8f5e644f92e53096f2cac6fa2abc634 gcc/te *** 9488,9493 **** --- 9508,9514 ---- 22fc25fa709265abbae77ff5d72e72f8 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C 1d85414b94d2d104004fc7341b90a896 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C 64bc761abc3783521fdfb26f930f3410 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C + e513b4dcc45e6063745c03c7c99151fa gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C 25265bcafc26c3a0ab3727a9ff348916 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv.C 299fbfde279f22ba6cf7e79d7e17f49b gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv2.C 13859d1112ce3900c792dcdc2e8ae085 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv3.C *************** adb1d2fb2d918c692d644ded0dc5f428 gcc/te *** 9583,9588 **** --- 9604,9610 ---- 06d36011a13482624806d2ac0b6cc62c gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template10.C 0480ccf1db57a209026d61f347f2558b gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template11.C 5a2e25e55c03b3d576cbd41cd3919157 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template12.C + 5eb96d2cc00390806e540f86524b3658 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template13.C ba1b33731a2a8e72850872d9f2918923 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C 94cfc36278ab817fd2df7010aa3c83ba gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template3.C e099bfa2ff82527ea9b86eaaab9acb43 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template4.C *************** bde8c4c4c753e9d6da1e9bf4d5eeb363 gcc/te *** 9600,9605 **** --- 9622,9628 ---- cb3b2650a080bd9c7acfa0a46c317afe gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this15.C 1552f0ad6ccfb863bbdcf5b710f3b84d gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this16.C 0d9d1df756c17ed3794931d85361bea9 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this17.C + 4140ff305c161e7f2fe64321a7e90846 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this18.C 53707c7f73c56183ff77914e6f7417b9 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C 4d206d41378a3a22959ec8c2c1439014 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this3.C 63fdeead97cb6030e039c864293a278b gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C *************** ef20e3e0e53b4fb3163e5066efb89b64 gcc/te *** 9667,9672 **** --- 9690,9699 ---- bb52d0707dea46cd2224e8f36c397c29 gcc/testsuite/g++.dg/cpp0x/nsdmi-local.C 532b3e2c733c1b03dfa22d18667650fb gcc/testsuite/g++.dg/cpp0x/nsdmi-sizeof.C 6a97f223fff723db9f950c32a7828e35 gcc/testsuite/g++.dg/cpp0x/nsdmi-template1.C + 4826317ec7401f0dceb7076d880beac7 gcc/testsuite/g++.dg/cpp0x/nsdmi-template10.C + c56f71db72e83d4f4135a61f033eddbb gcc/testsuite/g++.dg/cpp0x/nsdmi-template11.C + 6a7ab71ba1c7fa9cc3345da8f9afe903 gcc/testsuite/g++.dg/cpp0x/nsdmi-template12.C + b10aa26824c27a87b56ae1ff32b2a84b gcc/testsuite/g++.dg/cpp0x/nsdmi-template13.C d83133afa9fe5d533ed8b6cecc90cc44 gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C a4838f227c782d1dc8cc894a19deb0d1 gcc/testsuite/g++.dg/cpp0x/nsdmi-template3.C ecc55c2acf604366d5eab66ebf6a29dd gcc/testsuite/g++.dg/cpp0x/nsdmi-template4.C *************** bbce95e97ae41e0f3fe3ba83781deb99 gcc/te *** 9674,9679 **** --- 9701,9707 ---- 3a5b1755ff3b8f25bdc5d3343ec58d7e gcc/testsuite/g++.dg/cpp0x/nsdmi-template6.C bca364bb7be51173c515446b467d101b gcc/testsuite/g++.dg/cpp0x/nsdmi-template7.C 8228a8cc4123378699db41bb692816a8 gcc/testsuite/g++.dg/cpp0x/nsdmi-template8.C + 10d5192bc22fb982a714dabcc1321c84 gcc/testsuite/g++.dg/cpp0x/nsdmi-template9.C d1503365b6615b562965b9d47e9327c5 gcc/testsuite/g++.dg/cpp0x/nsdmi-union1.C 97244e2bdff262e5f89cc9d5717cbeee gcc/testsuite/g++.dg/cpp0x/nsdmi-union2.C 24d435bfe180c503be113a8efa76cca0 gcc/testsuite/g++.dg/cpp0x/nsdmi-union3.C *************** c5f3717677f94f92f6a25afd1b3fafa2 gcc/te *** 9796,9810 **** --- 9824,9841 ---- e9cd0db7db25af8829963f7122d2ed31 gcc/testsuite/g++.dg/cpp0x/pr57981.C 016ebcf6c9d25c8f22cd01c52f674b94 gcc/testsuite/g++.dg/cpp0x/pr58072.C 66a132ab0a4f16eb332c03fd38067a1c gcc/testsuite/g++.dg/cpp0x/pr58080.C + 10115e7416304bd9586633e7a175c150 gcc/testsuite/g++.dg/cpp0x/pr58155.C fde4df725e337b433baf1bd5c4490563 gcc/testsuite/g++.dg/cpp0x/pr58510.C 99345be72ff580dd3de1858994530c51 gcc/testsuite/g++.dg/cpp0x/pr58563.C b2c6b8e617bc163eb317b7668652e006 gcc/testsuite/g++.dg/cpp0x/pr58674.C 135956a1794cb24e32c252e833402edb gcc/testsuite/g++.dg/cpp0x/pr58707.C + c2caeb92016de47392b35fa937c864f8 gcc/testsuite/g++.dg/cpp0x/pr58781.C 0015dc46694c26453738cf6d0f1ff9f1 gcc/testsuite/g++.dg/cpp0x/pr58871.C 91fd57600ae1f1e9e0fb675962816f3e gcc/testsuite/g++.dg/cpp0x/pr59111.C 97725be33d84460ca43942d2adc95953 gcc/testsuite/g++.dg/cpp0x/pr59641.C 3d0500d1d666af43dc6c0f875f02c205 gcc/testsuite/g++.dg/cpp0x/pr60047.C b183a4e80609d3b7c1a96a71d68c8355 gcc/testsuite/g++.dg/cpp0x/pr60215.C + 0ec463c125bf90b0bc2b4ce4298afcc7 gcc/testsuite/g++.dg/cpp0x/pr60249.C 53428f69a6d0153074c9b06ee9fbe9e7 gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C 6e8e648c26d9bf237cc152180e88c2c2 gcc/testsuite/g++.dg/cpp0x/range-for1.C 5c7a98d8ca2f0f427c081bf6902aa831 gcc/testsuite/g++.dg/cpp0x/range-for10.C *************** e25aa6f18faad387b7f1ade3529476a6 gcc/te *** 9842,9847 **** --- 9873,9879 ---- 0a0c7a2db84d28ba649ea53e136a1d9c gcc/testsuite/g++.dg/cpp0x/ref-qual12.C 759a26dd15a061d3f5a982b5eb65098b gcc/testsuite/g++.dg/cpp0x/ref-qual13.C bf679e1b75877f28dc4d57155f61bcb1 gcc/testsuite/g++.dg/cpp0x/ref-qual14.C + baf0dc0526b9c7116fa5e5cbccbe2286 gcc/testsuite/g++.dg/cpp0x/ref-qual15.C 17d77d3ef6cc0e1cfd53228f15a40017 gcc/testsuite/g++.dg/cpp0x/ref-qual2.C 68b27ec15231994ad0330625660d2720 gcc/testsuite/g++.dg/cpp0x/ref-qual3.C 1bb06529f586a3e77263290dd006534e gcc/testsuite/g++.dg/cpp0x/ref-qual4.C *************** c271006c8055b6ab792c26bdb8a60c51 gcc/te *** 9940,9945 **** --- 9972,9978 ---- 7f9ec6f23b495a9ffdc2eb43224e4e97 gcc/testsuite/g++.dg/cpp0x/sfinae48.C 07a6e388376959abb699902ddf79cfaa gcc/testsuite/g++.dg/cpp0x/sfinae49.C d5e6c1bb41ba570249eba838c6885b91 gcc/testsuite/g++.dg/cpp0x/sfinae5.C + e658abe19e3f9090108ecdee6c7ff751 gcc/testsuite/g++.dg/cpp0x/sfinae50.C 7d2a515d9dca41b0e82b2e6ea54bd2d3 gcc/testsuite/g++.dg/cpp0x/sfinae6.C ec1a51ea3fd41e6e61c8f425bde1fd0b gcc/testsuite/g++.dg/cpp0x/sfinae7.C 547894832b1452d5f513938e0cb8a166 gcc/testsuite/g++.dg/cpp0x/sfinae8.C *************** dcf2e8b00c5683679b9562aeaff1d2f2 gcc/te *** 10132,10138 **** --- 10165,10174 ---- 081a4bedbab268a6ae607a361a5687db gcc/testsuite/g++.dg/cpp0x/variadic154.C bbeb66e2a1c3ff1e5215a3de0291398a gcc/testsuite/g++.dg/cpp0x/variadic155.C 0e3dc026b07c4ba87c8c89d690eccc97 gcc/testsuite/g++.dg/cpp0x/variadic156.C + a516c60e45bf1eecdf3636277e7f49cb gcc/testsuite/g++.dg/cpp0x/variadic158.C + bf231bc932b6dcd397fde94abd58295c gcc/testsuite/g++.dg/cpp0x/variadic159.C ef6cd86993fd9e98b5c841e854f1e291 gcc/testsuite/g++.dg/cpp0x/variadic16.C + 5348f57a43bc1324c15c9e5945ba3ebe gcc/testsuite/g++.dg/cpp0x/variadic160.C 3bff3422f4558e688cb85c201d29da39 gcc/testsuite/g++.dg/cpp0x/variadic17.C e7b3b347202f88043f677ea7ce8e4e18 gcc/testsuite/g++.dg/cpp0x/variadic18.C b6eb5a5a2dea08c17e47320efabe05df gcc/testsuite/g++.dg/cpp0x/variadic19.C *************** af92f508689d2ab734f15be4a34a21a8 gcc/te *** 10333,10338 **** --- 10369,10375 ---- 119423feeda4a9e445a82989e694bc55 gcc/testsuite/g++.dg/cpp1y/pr59635.C f653995a9fc3c07c5f78cb893a5d0f36 gcc/testsuite/g++.dg/cpp1y/pr59636.C 89674d408dfbc12f05e3c06cd0c72ada gcc/testsuite/g++.dg/cpp1y/pr59638.C + 761afa9b3e6b38bb9e9836c267285705 gcc/testsuite/g++.dg/cpp1y/pr59867.C 4f72056a5c0a9c06897a661b1a5ccf00 gcc/testsuite/g++.dg/cpp1y/pr60033.C ae8b2c75d98bcfd540cfa668c012d7e1 gcc/testsuite/g++.dg/cpp1y/pr60052.C 8fcfe639eb392754703259ddfa944fb2 gcc/testsuite/g++.dg/cpp1y/pr60053.C *************** a26a24dcac8fa1d56d36002c9551d274 gcc/te *** 10417,10422 **** --- 10454,10460 ---- 09b1f81116f03c2c68f057d9f2799605 gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C 5f527b1d5db3338320735cddde309293 gcc/testsuite/g++.dg/debug/dwarf2/icf.C 94ab24c4c92e0025c8c21c00e7088ab9 gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C + aeaf229ff1bb7dd4ac9bc56468134190 gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-2.C cd2f8eb018e0f3274a839788f6516dbd gcc/testsuite/g++.dg/debug/dwarf2/imported-module-2.C 00073dddfb84caf2285834b264334fb6 gcc/testsuite/g++.dg/debug/dwarf2/imported-module-3.C f328f5fd374ff3e1abef9c5c385bb657 gcc/testsuite/g++.dg/debug/dwarf2/imported-module-4.C *************** b3cbbd79d5ff077a6732280d76b2284e gcc/te *** 10445,10450 **** --- 10483,10489 ---- 83e103e0e6e4fc3fb74441438b2c7288 gcc/testsuite/g++.dg/debug/dwarf2/pr46527.C 77d7e1ad341ac6addc71df4dbb8ec2e2 gcc/testsuite/g++.dg/debug/dwarf2/pr52260.C ba3a14694481b03351ebef6174059c0f gcc/testsuite/g++.dg/debug/dwarf2/pr54508.C + 97f5ea2ec0d8ed4da158c8c51e4f395d gcc/testsuite/g++.dg/debug/dwarf2/pr61433.C 6a221e4796f80705722794e4cb854118 gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C 61c15278662fb88f21f9d3f56b288d93 gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C 1c216c5d6dbf7b013153d4ca504eeebc gcc/testsuite/g++.dg/debug/dwarf2/pubnames-3.C *************** a2e70aa0695a209f89997a3a585cda4e gcc/te *** 10960,10965 **** --- 10999,11005 ---- ad9b04984e82c2e0e1fb2025de8f9a23 gcc/testsuite/g++.dg/ext/complit11.C ab6acb4a7c8c1d0b3e7717da4ac42983 gcc/testsuite/g++.dg/ext/complit12.C 1ef2d5904216cc610d5c5dde143f79ac gcc/testsuite/g++.dg/ext/complit13.C + 07cb245f4432f072b7263e83c675d2de gcc/testsuite/g++.dg/ext/complit14.C 7350965e2763a3a6e1d4346deaa1e94e gcc/testsuite/g++.dg/ext/complit2.C 7c0cfd2335d61954c46222aa7517e055 gcc/testsuite/g++.dg/ext/complit3.C f2a3354acae823d1855d3f7820f78229 gcc/testsuite/g++.dg/ext/complit4.C *************** c268699333b239c371d1bdc906ea54ad gcc/te *** 11785,11790 **** --- 11825,11831 ---- 28ced8869a7baac26a49e3084bf7d851 gcc/testsuite/g++.dg/init/copy4.C 02c689a173b02b7312d282add8f14591 gcc/testsuite/g++.dg/init/copy5.C 5d48182e8fa2907f420bf1ef3d67dba3 gcc/testsuite/g++.dg/init/copy6.C + 401730d1bb87c3edf85010755fe8a2ff gcc/testsuite/g++.dg/init/copy7.C 77ceed5edeb6a109374c44ef23679bef gcc/testsuite/g++.dg/init/ctor1.C a7fab26ec8d16e90cb47357e7759a768 gcc/testsuite/g++.dg/init/ctor10.C 6ee4f7840a21e5a764e2facf94d7e71d gcc/testsuite/g++.dg/init/ctor11.C *************** f98e7ab2646951eca57b37b0ade8c12a gcc/te *** 11967,11973 **** 181d03bf17027cab97eb47736f11ff30 gcc/testsuite/g++.dg/ipa/20090113-1.C 7522727dcb8122398374b49264575c77 gcc/testsuite/g++.dg/ipa/devirt-1.C a38c209b4fc2c2a0b36cf4c89adcf9d8 gcc/testsuite/g++.dg/ipa/devirt-10.C ! 30cb11288b1bdcca3c2f20d03e0033cf gcc/testsuite/g++.dg/ipa/devirt-11.C af8781bfa434602bbdd203a9b683acca gcc/testsuite/g++.dg/ipa/devirt-12.C 95efb847fd00d08421ccc099b6b62a1d gcc/testsuite/g++.dg/ipa/devirt-13.C 26800570b776735a7c4b46e635a55d01 gcc/testsuite/g++.dg/ipa/devirt-14.C --- 12008,12014 ---- 181d03bf17027cab97eb47736f11ff30 gcc/testsuite/g++.dg/ipa/20090113-1.C 7522727dcb8122398374b49264575c77 gcc/testsuite/g++.dg/ipa/devirt-1.C a38c209b4fc2c2a0b36cf4c89adcf9d8 gcc/testsuite/g++.dg/ipa/devirt-10.C ! cfcb8d283cbb4cafcbcdc9e7065786fd gcc/testsuite/g++.dg/ipa/devirt-11.C af8781bfa434602bbdd203a9b683acca gcc/testsuite/g++.dg/ipa/devirt-12.C 95efb847fd00d08421ccc099b6b62a1d gcc/testsuite/g++.dg/ipa/devirt-13.C 26800570b776735a7c4b46e635a55d01 gcc/testsuite/g++.dg/ipa/devirt-14.C *************** d138438781d7fea6fe1c65338c286afb gcc/te *** 11982,11994 **** 6d87b18d1fbfc853e7a4dedb581b38ac gcc/testsuite/g++.dg/ipa/devirt-22.C dfb26a875a3981e85385d162fbc8fb72 gcc/testsuite/g++.dg/ipa/devirt-23.C 540360b373bf580206ab7238bc7a9976 gcc/testsuite/g++.dg/ipa/devirt-24.C ! 0ea3d64f37ec0034e0cdf3da393fe2c8 gcc/testsuite/g++.dg/ipa/devirt-25.C a955053ff50f32fdd98345068ff798fa gcc/testsuite/g++.dg/ipa/devirt-26.C ! 8a2c5cc0f1c6187bc864f03efc389fae gcc/testsuite/g++.dg/ipa/devirt-27.C 4e8c06e1e1145b9d11bc125669054764 gcc/testsuite/g++.dg/ipa/devirt-28.C 31f84d40ad557791781d8a441ce8fb42 gcc/testsuite/g++.dg/ipa/devirt-29.C 48c9df6f6e861f2448fa74314b9affb3 gcc/testsuite/g++.dg/ipa/devirt-3.C 7cd06fb87d4e922414924f6395c7441b gcc/testsuite/g++.dg/ipa/devirt-30.C d2da990ad34e9459150b3aa94be920a9 gcc/testsuite/g++.dg/ipa/devirt-4.C bef829571c10195d63a0c4ff07d958ef gcc/testsuite/g++.dg/ipa/devirt-5.C 8c636e7513618b1b3735a28c660923df gcc/testsuite/g++.dg/ipa/devirt-6.C --- 12023,12036 ---- 6d87b18d1fbfc853e7a4dedb581b38ac gcc/testsuite/g++.dg/ipa/devirt-22.C dfb26a875a3981e85385d162fbc8fb72 gcc/testsuite/g++.dg/ipa/devirt-23.C 540360b373bf580206ab7238bc7a9976 gcc/testsuite/g++.dg/ipa/devirt-24.C ! ecabc1a11f2927b0222d65a9d86c4c38 gcc/testsuite/g++.dg/ipa/devirt-25.C a955053ff50f32fdd98345068ff798fa gcc/testsuite/g++.dg/ipa/devirt-26.C ! 83c12ee028b9711638166b6f6aa4120c gcc/testsuite/g++.dg/ipa/devirt-27.C 4e8c06e1e1145b9d11bc125669054764 gcc/testsuite/g++.dg/ipa/devirt-28.C 31f84d40ad557791781d8a441ce8fb42 gcc/testsuite/g++.dg/ipa/devirt-29.C 48c9df6f6e861f2448fa74314b9affb3 gcc/testsuite/g++.dg/ipa/devirt-3.C 7cd06fb87d4e922414924f6395c7441b gcc/testsuite/g++.dg/ipa/devirt-30.C + 46c20441c2f9bdc827ed732c9e41f089 gcc/testsuite/g++.dg/ipa/devirt-31.C d2da990ad34e9459150b3aa94be920a9 gcc/testsuite/g++.dg/ipa/devirt-4.C bef829571c10195d63a0c4ff07d958ef gcc/testsuite/g++.dg/ipa/devirt-5.C 8c636e7513618b1b3735a28c660923df gcc/testsuite/g++.dg/ipa/devirt-6.C *************** bd532642c33364f27cc5cdac3622c29b gcc/te *** 12045,12055 **** e5598a6623b0d9d17b639bb9715c0aa1 gcc/testsuite/g++.dg/ipa/pr59737.C cc7882632634230561bec7316fae94c5 gcc/testsuite/g++.dg/ipa/pr60419.C 19fe8d73bee48bb2e91c928907e2a11c gcc/testsuite/g++.dg/ipa/pr60457.C ! 944191e3103ec99ba3e88de3e71f26c7 gcc/testsuite/g++.dg/ipa/pr60600.C 190bb52be2caa70fd51cc2a735d45f1e gcc/testsuite/g++.dg/ipa/pr60640-1.C b4277c2887fdb910bdca2a8dbf0de117 gcc/testsuite/g++.dg/ipa/pr60640-2.C 2b5d243c5137f370d06b3628cfde2864 gcc/testsuite/g++.dg/ipa/pr60640-3.C 41bda91df204bac278fc60acb7c02356 gcc/testsuite/g++.dg/ipa/pr60640-4.C 65b30ac9d2b3a2244e49849aaad7dd78 gcc/testsuite/g++.dg/ipa/remref-1.C d26e3f0899c708e0f4b2ec8427502236 gcc/testsuite/g++.dg/ipa/remref-2.C 8a469d09a1c8b835acf9b3b8f7d8078d gcc/testsuite/g++.dg/ipa/type-inheritance-1.C --- 12087,12102 ---- e5598a6623b0d9d17b639bb9715c0aa1 gcc/testsuite/g++.dg/ipa/pr59737.C cc7882632634230561bec7316fae94c5 gcc/testsuite/g++.dg/ipa/pr60419.C 19fe8d73bee48bb2e91c928907e2a11c gcc/testsuite/g++.dg/ipa/pr60457.C ! d48ba9dd79036705896a57df5c510757 gcc/testsuite/g++.dg/ipa/pr60600.C 190bb52be2caa70fd51cc2a735d45f1e gcc/testsuite/g++.dg/ipa/pr60640-1.C b4277c2887fdb910bdca2a8dbf0de117 gcc/testsuite/g++.dg/ipa/pr60640-2.C 2b5d243c5137f370d06b3628cfde2864 gcc/testsuite/g++.dg/ipa/pr60640-3.C 41bda91df204bac278fc60acb7c02356 gcc/testsuite/g++.dg/ipa/pr60640-4.C + 231677eaca7afc4bb98a3094c618e3f3 gcc/testsuite/g++.dg/ipa/pr61085.C + 2c3b07fe4ee36fc9baf0391eed8b9d2d gcc/testsuite/g++.dg/ipa/pr61160-1.C + 185fd53b287f35aa00dc354318e7b17f gcc/testsuite/g++.dg/ipa/pr61160-2.C + a4862cb5f3f58316adc6e36c7d8eb036 gcc/testsuite/g++.dg/ipa/pr61160-3.C + daceb1b2f3cf167fb6e78fc2d34f2778 gcc/testsuite/g++.dg/ipa/pr61540.C 65b30ac9d2b3a2244e49849aaad7dd78 gcc/testsuite/g++.dg/ipa/remref-1.C d26e3f0899c708e0f4b2ec8427502236 gcc/testsuite/g++.dg/ipa/remref-2.C 8a469d09a1c8b835acf9b3b8f7d8078d gcc/testsuite/g++.dg/ipa/type-inheritance-1.C *************** a7e9290a66164d70cf71a687dc002b1d gcc/te *** 12686,12691 **** --- 12733,12742 ---- bc581baefa9c2cdf340c7afe5ec42620 gcc/testsuite/g++.dg/opt/pr59947.C fcc0cbf12c3c1ff2231451798c2c5d37 gcc/testsuite/g++.dg/opt/pr60002.C e676633b5d90b99891eacfad5d4d65cc gcc/testsuite/g++.dg/opt/pr60597.C + cd9ce81573f1dd55ed9926ad0afbe423 gcc/testsuite/g++.dg/opt/pr60849.C + 2ca5ee004fc73e412a39de0dd38e1b4c gcc/testsuite/g++.dg/opt/pr60912.C + b1b3a2b530cb188994df8ef142ab9234 gcc/testsuite/g++.dg/opt/pr61456.C + 6cfd7f0d8649e554551af4ecdbfa227e gcc/testsuite/g++.dg/opt/pr61654.C ac2356162f00cd5e8804482480f1795a gcc/testsuite/g++.dg/opt/pr6713.C 90bdbfd9313461944756a9e9f01ce788 gcc/testsuite/g++.dg/opt/pr7503-1.C 1451eba24eea82cbd0c1ab87885c0f77 gcc/testsuite/g++.dg/opt/preinc1.C *************** b9c612d3d4289676abda6ba55bb98ae9 gcc/te *** 12730,12735 **** --- 12781,12787 ---- f869a43935cc3631852fcb3f8e68ecfd gcc/testsuite/g++.dg/opt/thunk3.C 2abee99752ddcdc2d689d23397d7046e gcc/testsuite/g++.dg/opt/thunk4.C 240c5e869a8b5ad0a8bf6049a8d00862 gcc/testsuite/g++.dg/opt/tmp1.C + 88cb064325abdff24b813c432e193161 gcc/testsuite/g++.dg/opt/typeinfo1.C 5a0d1f452801f903b71f360e2af9dab9 gcc/testsuite/g++.dg/opt/unroll1.C b3a23f133e24d6239172db5b22fe6824 gcc/testsuite/g++.dg/opt/unroll2.C c0e183747d99b3a1525638800b213d82 gcc/testsuite/g++.dg/opt/value-init1.C *************** f30a79885e763e341eec192a87cfd3ff gcc/te *** 13652,13657 **** --- 13704,13713 ---- c48f8e06d0c4fb011bdd97b2641d239a gcc/testsuite/g++.dg/pr59510.C 6ef903a30658765c574e6f3aa8592058 gcc/testsuite/g++.dg/pr59695.C 423a4225250186b2746ca0c376b8124a gcc/testsuite/g++.dg/pr60518.C + 11692c0a1d9e603f30a38169f72d42aa gcc/testsuite/g++.dg/pr60969.C + a11ecfc0510623f70458e31e48d431fb gcc/testsuite/g++.dg/pr61094.C + fa5e79b3c98a745c039b5e34186024a2 gcc/testsuite/g++.dg/pr61289-2.c + 1ec6b4df7e034d65d4befa4778662d11 gcc/testsuite/g++.dg/pr61289.C ae8863cdd596655bd9501c7a7e546fc7 gcc/testsuite/g++.dg/predict-loop-exit-1.C 112161f9cc2e99ed1a64b608b234d230 gcc/testsuite/g++.dg/predict-loop-exit-2.C 9fdf45388f73e8c9a46342cf4ec52cb6 gcc/testsuite/g++.dg/predict-loop-exit-3.C *************** d75b945d8bfffb304a8d55dc4a97d457 gcc/te *** 13883,13888 **** --- 13939,13945 ---- 142422aea9a677fb32502402e895a96d gcc/testsuite/g++.dg/template/conv11.C 6652f3b06cb1bfcdf341802d7b0a8a9a gcc/testsuite/g++.dg/template/conv12.C c31c403acbaa655ae0413e1d4350ae4b gcc/testsuite/g++.dg/template/conv13.C + c28b6679b01f4bbe8403c045289d2aef gcc/testsuite/g++.dg/template/conv14.C 383f6618c1ccaddea23b36ff23d6d35e gcc/testsuite/g++.dg/template/conv2.C be5017725e9889a47d07ba0d3a3464ff gcc/testsuite/g++.dg/template/conv3.C 8e48e2a0d63cdb353b4a07380c4cf577 gcc/testsuite/g++.dg/template/conv4.C *************** d7b45350c258784a47a153c1dedc979d gcc/te *** 14272,14277 **** --- 14329,14335 ---- 331e9bd8d23757608f4687c51ab1c460 gcc/testsuite/g++.dg/template/koenig8.C 0e217ccc45d6ea239c0b368c1909c623 gcc/testsuite/g++.dg/template/koenig9.C 9eed8ce0831bf0313cab105488a8b9f3 gcc/testsuite/g++.dg/template/linkage1.C + 29182ba864d966fb7660afbfb5b53867 gcc/testsuite/g++.dg/template/local-fn1.C b7860e67547fa0e658cae5b27a73d61b gcc/testsuite/g++.dg/template/local1.C d32b0f4cfabbf7cf6a3f55db155096d2 gcc/testsuite/g++.dg/template/local2.C e254df20b082728d0e04a8e1b3b18557 gcc/testsuite/g++.dg/template/local3.C *************** ddd54fa2d302cf8f37c4512b75025445 gcc/te *** 14455,14460 **** --- 14513,14519 ---- 698fef868c92929bbef3fe847bfc6295 gcc/testsuite/g++.dg/template/pr4926-1.C 6465acc359cf71ed791739a364127805 gcc/testsuite/g++.dg/template/pr54858.C bf2a6b6f0f8991958562eeb56f4d4738 gcc/testsuite/g++.dg/template/pr58878.C + ae27fcfe45fb638bb620109e3d14cecf gcc/testsuite/g++.dg/template/pr61537.C 04907f98f8eab7c64ced6646f5140346 gcc/testsuite/g++.dg/template/pretty1.C b1805d4b386b8dcd432f41c68e255100 gcc/testsuite/g++.dg/template/pseudodtor1.C 5bbbdc0bd84a1cf86dd283b16e7aa6ba gcc/testsuite/g++.dg/template/pseudodtor2.C *************** d789c4b198aaf983e81643a1d995a8da gcc/te *** 14481,14486 **** --- 14540,14547 ---- 8694ad15b71a480035424c4134c7c412 gcc/testsuite/g++.dg/template/ptrmem24.C 486102b52761663d2915ac7d52f96b42 gcc/testsuite/g++.dg/template/ptrmem25.C 0d524ba59ac7aba767ec6a00d1495501 gcc/testsuite/g++.dg/template/ptrmem26.C + 5825625a5ba7d28fd8a1fdd113dde9c2 gcc/testsuite/g++.dg/template/ptrmem27.C + d7e997028da5485d49789a1ed367286f gcc/testsuite/g++.dg/template/ptrmem28.C 171d82f45a76129388539c01e3212ec9 gcc/testsuite/g++.dg/template/ptrmem3.C 9a4a21b8504db815b1c727663eff64ff gcc/testsuite/g++.dg/template/ptrmem4.C c1d71028a4f69f5c3fcfd2fd8a35f919 gcc/testsuite/g++.dg/template/ptrmem5.C *************** bfa076f6c872b1975947b8413d453899 gcc/te *** 14876,14881 **** --- 14937,14943 ---- 276b21ff0a55339a3b1af911f5514ec8 gcc/testsuite/g++.dg/tls/thread_local7.C 5cc77d589814bde9b85c3b12c619eb3c gcc/testsuite/g++.dg/tls/thread_local7g.C 9399e18da7889fb7fc5333e641e339e4 gcc/testsuite/g++.dg/tls/thread_local8.C + 46eb3382c1226c7ec68020221453058a gcc/testsuite/g++.dg/tls/thread_local9.C 5c58bf38e3547535a343718f69db04f0 gcc/testsuite/g++.dg/tls/tls.exp 7212556766805451a098e554a8ab648e gcc/testsuite/g++.dg/tls/trivial.C debf53c602437e43da099fa943834a84 gcc/testsuite/g++.dg/tm/20100429.C *************** ce5bd74dda85ecae08b1e79c21fc231c gcc/te *** 15187,15192 **** --- 15249,15256 ---- 8c2dc2c3e3d744280501f821dd5cfb10 gcc/testsuite/g++.dg/torture/pr60659.C 59b64e493342855b4d4f60c5c5b2e866 gcc/testsuite/g++.dg/torture/pr60746.C 5f42e568cc105049d43016ffc65ea36f gcc/testsuite/g++.dg/torture/pr60750.C + 2cd5e243f12b5ca6cf66ca1966b24a84 gcc/testsuite/g++.dg/torture/pr60854.C + ea51728c5e2ae154940893c6ccb374f8 gcc/testsuite/g++.dg/torture/pr60895.C 389892c1f2e87d69449479d1b053c70c gcc/testsuite/g++.dg/torture/predcom-1.C d28910105d9c9253d94d70eacd5e19d4 gcc/testsuite/g++.dg/torture/pushpop_macro.C a1b47b9c3e69d79d1895ebc4fd11032b gcc/testsuite/g++.dg/torture/stackalign/check.h *************** ffa63568656b6e8f88c2e04bcfb82d6f gcc/te *** 15378,15383 **** --- 15442,15448 ---- a82ef6cbe78155176eca6d640870c3a5 gcc/testsuite/g++.dg/tree-ssa/pr54515.C 0302793462643aeaccabd5c387ce8c93 gcc/testsuite/g++.dg/tree-ssa/pr57380.C bb17cbedcbb5bcabb9ee8299f30c3ae9 gcc/testsuite/g++.dg/tree-ssa/pr58404.C + 22dc7006f5ec66c9a231712242810915 gcc/testsuite/g++.dg/tree-ssa/pr61009.C d56e4fc904579446fb892941249b3b4a gcc/testsuite/g++.dg/tree-ssa/pr8781.C 1774a3db4e8c1c639d06cfd8ba95990d gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C fe0c4f92b4591334dd40df6bbeb06f32 gcc/testsuite/g++.dg/tree-ssa/restrict1.C *************** add1cfbf96f3e44641caf48f126f9c38 gcc/te *** 15454,15459 **** --- 15519,15525 ---- 7341ca0a00bff9809481068f2f734d5a gcc/testsuite/g++.dg/vect/pr60023.cc 43a78626ccd2affbd7d45540f8fc64d9 gcc/testsuite/g++.dg/vect/pr60559.cc 3bff2af6c3bfd7ad46d2d49817f2f165 gcc/testsuite/g++.dg/vect/pr60729.cc + 6fedf5fcd346e8a54e1ea882011da7e0 gcc/testsuite/g++.dg/vect/pr60836.cc 2319b033c4be551a98e6e2be4cfa22df gcc/testsuite/g++.dg/vect/slp-pr50413.cc 8d1334dabd32a7cd566077fb76b6ef3f gcc/testsuite/g++.dg/vect/slp-pr50819.cc df93e1203b366a6199944cfb11b3ada2 gcc/testsuite/g++.dg/vect/slp-pr56812.cc *************** c81d14b770f15026bfe61a7d372c3d0c gcc/te *** 20395,20400 **** --- 20461,20467 ---- e700f43c9f64656f7363a44babf1d9f6 gcc/testsuite/gcc.c-torture/compile/pr60556.c d49dbb297cb14ffa50798367f47b01d6 gcc/testsuite/gcc.c-torture/compile/pr60655-1.c ecd86b2ec3c6e99f8c9357249b8569eb gcc/testsuite/gcc.c-torture/compile/pr60655-2.c + eb9a44bf10d9af818d3d8df7abc434ba gcc/testsuite/gcc.c-torture/compile/pr61684.c b9e6ce52b90320c1c3803c25113844c5 gcc/testsuite/gcc.c-torture/compile/pta-1.c ed716c1d1727fc2c748162e0cbc4ee47 gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c 8d869e3426345f0cf8837c5eaafd43b5 gcc/testsuite/gcc.c-torture/compile/simd-1.c *************** e930646e7dc4ae306668360758733d33 gcc/te *** 20898,20903 **** --- 20965,20971 ---- 91f48b05bc9d42c398d7b5856e001a8d gcc/testsuite/gcc.c-torture/execute/20131127-1.c 00319451004c266ad1b8c6aeb089eb51 gcc/testsuite/gcc.c-torture/execute/20140212-1.c 4ad9d497fc6da5c1d93322b91642142c gcc/testsuite/gcc.c-torture/execute/20140326-1.c + a5f4cdd2313a084c86b42c022d5711d7 gcc/testsuite/gcc.c-torture/execute/20140425-1.c 65f01ac7346bd4d47ed9c1ca94ab74ff gcc/testsuite/gcc.c-torture/execute/900409-1.c 5aefab4daab0bd29ecf2a389f3c44f40 gcc/testsuite/gcc.c-torture/execute/920202-1.c 655936aaf9a63e991a555cbc16738485 gcc/testsuite/gcc.c-torture/execute/920302-1.c *************** f121fd0f8e286e507377c1095024e72f gcc/te *** 21916,21921 **** --- 21984,21995 ---- c9a0c78ab7e5e97f8d9f79003415e3c1 gcc/testsuite/gcc.c-torture/execute/pr60062.c 525a1e55ab5e4b58132522416d2abb4a gcc/testsuite/gcc.c-torture/execute/pr60072.c 2d9ffe4c8d2f9f03fc51460365e7419e gcc/testsuite/gcc.c-torture/execute/pr60454.c + 1313e26f31dd7d7fb997709384d78e64 gcc/testsuite/gcc.c-torture/execute/pr60960.c + 0dd9a258a9aa977acb1fcfe61739ec9b gcc/testsuite/gcc.c-torture/execute/pr61306-1.c + 85315cbee1fd6adfa2a8d6182171fa12 gcc/testsuite/gcc.c-torture/execute/pr61306-2.c + 7fe7c6627598916a61238a0e4bf50f86 gcc/testsuite/gcc.c-torture/execute/pr61306-3.c + d8403e0ce437d1323b68336029446357 gcc/testsuite/gcc.c-torture/execute/pr61673.c + 8b656e3edd75c4787214dc55255d9100 gcc/testsuite/gcc.c-torture/execute/pr61725.c ecfc31f12ce09d6ccbcced04ff04deba gcc/testsuite/gcc.c-torture/execute/pr7284-1.c 89f3c7ee990221eeb33cb08a0772e024 gcc/testsuite/gcc.c-torture/execute/pr7284-1.x f4610e3bba97324f7005c428fe41e597 gcc/testsuite/gcc.c-torture/execute/printf-1.c *************** f9442fdd2416c6261814045723c89f0e gcc/te *** 25145,25152 **** --- 25219,25230 ---- 6ac2201f5ceaf1d669d875abfffae276 gcc/testsuite/gcc.dg/graphite/pr46970.c 78520b60a1ee3851ffd28abd9cd2e62d gcc/testsuite/gcc.dg/graphite/pr50561.c c09c7286c8fcd9cc08b18719c098cc60 gcc/testsuite/gcc.dg/graphite/pr54094.c + fb5a862ce6ffbade0ae64b3575de6664 gcc/testsuite/gcc.dg/graphite/pr55022.c + 16b9ffb71e6313c09e32f8d47736f438 gcc/testsuite/gcc.dg/graphite/pr59817-1.c + 3ef979f48d76e0fd94ea3b71fc3510af gcc/testsuite/gcc.dg/graphite/pr59817-2.c 60c6684ae0f8c1d5b794c4d512a928be gcc/testsuite/gcc.dg/graphite/pr60740.c ad18eaa8675b607e46c69dadd60f3046 gcc/testsuite/gcc.dg/graphite/pr60785.c + 1fdc11dc63213a067b8ee7e1279b9614 gcc/testsuite/gcc.dg/graphite/pr60979.c 16574d3df752f79e2361bed11b712e31 gcc/testsuite/gcc.dg/graphite/run-id-1.c 69c11dc302a921c92977db519167bec1 gcc/testsuite/gcc.dg/graphite/run-id-2.c 84a75a861553ce658d85018a3ced0a6b gcc/testsuite/gcc.dg/graphite/run-id-3.c *************** d5a8d86104befcf27df8a5080dbe66ce gcc/te *** 25692,25697 **** --- 25770,25780 ---- 10073f0592215c1f150902dbd5bea335 gcc/testsuite/gcc.dg/lto/pr60404_1.c 57b84f9f4fb097f80fb864bc81c70abb gcc/testsuite/gcc.dg/lto/pr60404_2.c 729e7df711f59da5edc3a02fe050b9eb gcc/testsuite/gcc.dg/lto/pr60461_0.c + fb92fea16dbb92181a81b79e2e378036 gcc/testsuite/gcc.dg/lto/pr60720_0.c + 06c25fe0c80b8959051a62f8f034710a gcc/testsuite/gcc.dg/lto/pr60720_1.c + 3ce380dc49e4f5afb926994881824b04 gcc/testsuite/gcc.dg/lto/pr60911_0.c + ed72338ed55138cf037314e45f0f7818 gcc/testsuite/gcc.dg/lto/pr61526_0.c + 962b3087915e41e8111b94acdd55b56e gcc/testsuite/gcc.dg/lto/pr61526_1.c e36db27b1e4084d326181d15570bf8d4 gcc/testsuite/gcc.dg/lto/resolutions_0.c 1084184a9b11a84eee39ef130211f70b gcc/testsuite/gcc.dg/lto/save-temps_0.c 69ff2353992f738ce7ea3cb89e9db1e4 gcc/testsuite/gcc.dg/lto/trans-mem-3_0.c *************** f6f3bb5c15b24fa2eea3282ce7841295 gcc/te *** 26907,26912 **** --- 26990,26996 ---- 605598c67818ee5aed3cb1f08d3c11f5 gcc/testsuite/gcc.dg/pr57149.c 6c6b53f24a88f01056d8f7861eb857b7 gcc/testsuite/gcc.dg/pr57154.c a7df18a8bb63d3ca237dbd1011053c66 gcc/testsuite/gcc.dg/pr57184.c + 7bcd989620a2a6b05c3e229f5137b250 gcc/testsuite/gcc.dg/pr57233.c e39c9c23ce048b3d87fe811194ae9d86 gcc/testsuite/gcc.dg/pr57286.c e9a2eae4a192d8e2e6dafa7ecc6cf398 gcc/testsuite/gcc.dg/pr57287-2.c 07aacbb657b227fe9d393af35c6bfb45 gcc/testsuite/gcc.dg/pr57287.c *************** b867a773709f523e8f1a27664cb184b2 gcc/te *** 26967,26972 **** --- 27051,27063 ---- 32abf2686c9d3296f9fa19df9002094d gcc/testsuite/gcc.dg/pr60647-2.c c124a95a6e3650b96ef3058205b5ac36 gcc/testsuite/gcc.dg/pr60704.c 2fcb562c88ced77b7ac0bce42b64f443 gcc/testsuite/gcc.dg/pr60797.c + 5559e398e075ca7f9141308579b0fac6 gcc/testsuite/gcc.dg/pr60844.c + 0f7df7fa948acd5723878ae4d5ebceb6 gcc/testsuite/gcc.dg/pr60866.c + d2c91f0601aece029dd3340da8167e6d gcc/testsuite/gcc.dg/pr61045.c + fd6f50979e00ca24a8dde2933369bb11 gcc/testsuite/gcc.dg/pr61053.c + e2d94f81ab73335d50800841dbd4b12c gcc/testsuite/gcc.dg/pr61060.c + cd63a4b9a9b728f357c9ed6bc626c585 gcc/testsuite/gcc.dg/pr61158.c + cea828a43f670db18b27e331441da562 gcc/testsuite/gcc.dg/pr61583.c 8b7d73da2d5d78000716492365a85d5a gcc/testsuite/gcc.dg/pr8715.c 3d08410b2dd57259aa63f0e1c64b376e gcc/testsuite/gcc.dg/pr8788-1.c be04382a35ebb1cfae1b2168f1693a94 gcc/testsuite/gcc.dg/pr8835-1.c *************** f2dddb213748ccb1b2e30ff1ff7f59e4 gcc/te *** 27861,27866 **** --- 27952,27958 ---- 5564f74a800596aaf87f8e8cb5453803 gcc/testsuite/gcc.dg/torture/pr57748-2.c 76796ab921180653905caef9c792720e gcc/testsuite/gcc.dg/torture/pr57748-3.c 85d58426bedaf1d6a74d38d55833e66d gcc/testsuite/gcc.dg/torture/pr57748-4.c + 5bfa303899e64bffcddb82847e6a434f gcc/testsuite/gcc.dg/torture/pr57864.c 6593178a39cf24816cba3dab5b42f172 gcc/testsuite/gcc.dg/torture/pr57993-2.cpp 8f27084dca98134d7f524112d900a2d1 gcc/testsuite/gcc.dg/torture/pr57993.c 95154523d1488e9fe16d67474343c8d5 gcc/testsuite/gcc.dg/torture/pr58018.c *************** cd4b15fda1ef44742db263de30216d1b gcc/te *** 27914,27919 **** --- 28006,28018 ---- 3e0dd582d51f218aa9dbe4841686c12a gcc/testsuite/gcc.dg/torture/pr60183.c 128cefe94a9f05e84df676feb8e099af gcc/testsuite/gcc.dg/torture/pr60733.c bc7d88b95c8be08a1a73b15283ed1f06 gcc/testsuite/gcc.dg/torture/pr60766.c + d6d4353931f1be7031525660bdb72067 gcc/testsuite/gcc.dg/torture/pr60891.c + b7419f520b851243b27be91c272be4ec gcc/testsuite/gcc.dg/torture/pr60903.c + cd6896f9999dc19951f9e8e74e12f5f8 gcc/testsuite/gcc.dg/torture/pr60930.c + dde8b20bde292ea6876f078bf22cadef gcc/testsuite/gcc.dg/torture/pr61010.c + aa3d4a99808d1f2c872d909445ade1a8 gcc/testsuite/gcc.dg/torture/pr61383-1.c + 1aae51ae4d0d0a6f4039b24e664b4b9e gcc/testsuite/gcc.dg/torture/pr61452.c + 025a7e9b280231e992477ec24bb46a30 gcc/testsuite/gcc.dg/torture/pr61681.c c99c3745eca0ddc81822cc070070a4d3 gcc/testsuite/gcc.dg/torture/pr8081.c b3a9e4f2af6462183da8d6c5cb13bf1f gcc/testsuite/gcc.dg/torture/pta-callused-1.c 98fde0e59e55c1ed923ee9d9f034d7f2 gcc/testsuite/gcc.dg/torture/pta-escape-1.c *************** abd4ca43bb4b377619c41f454ad2e646 gcc/te *** 28193,28199 **** 82856885ede689411173996a10bc876e gcc/testsuite/gcc.dg/tree-ssa/alias-28.c 0636ce20d822dd25b9d5ce792a2c3820 gcc/testsuite/gcc.dg/tree-ssa/alias-29.c bb1c37124577d61c99b7e5ebd9d72713 gcc/testsuite/gcc.dg/tree-ssa/alias-3.c ! 52fc06fea0d8944a3c7c7cf58329c649 gcc/testsuite/gcc.dg/tree-ssa/alias-30.c 8cfc15afdd6d383287dda63878fc6083 gcc/testsuite/gcc.dg/tree-ssa/alias-31.c 104c2bb3b44866aa1a413bc286888421 gcc/testsuite/gcc.dg/tree-ssa/alias-4.c 02459b5c01776fac9cbf076da37d3770 gcc/testsuite/gcc.dg/tree-ssa/alias-5.c --- 28292,28298 ---- 82856885ede689411173996a10bc876e gcc/testsuite/gcc.dg/tree-ssa/alias-28.c 0636ce20d822dd25b9d5ce792a2c3820 gcc/testsuite/gcc.dg/tree-ssa/alias-29.c bb1c37124577d61c99b7e5ebd9d72713 gcc/testsuite/gcc.dg/tree-ssa/alias-3.c ! 79dfb5b1039d2883100bde8c195d39c4 gcc/testsuite/gcc.dg/tree-ssa/alias-30.c 8cfc15afdd6d383287dda63878fc6083 gcc/testsuite/gcc.dg/tree-ssa/alias-31.c 104c2bb3b44866aa1a413bc286888421 gcc/testsuite/gcc.dg/tree-ssa/alias-4.c 02459b5c01776fac9cbf076da37d3770 gcc/testsuite/gcc.dg/tree-ssa/alias-5.c *************** f86c57c84246acb027204d4004479c87 gcc/te *** 29099,29104 **** --- 29198,29204 ---- 9118470b664eadf52ee002874f4f83c4 gcc/testsuite/gcc.dg/tree-ssa/vrp88.c 35eaff882f33c5b61e50dd87a512ef72 gcc/testsuite/gcc.dg/tree-ssa/vrp89.c 5a6aee859816e05547591897194aa650 gcc/testsuite/gcc.dg/tree-ssa/vrp90.c + d81d6e7cd77843ad59286339d261f89c gcc/testsuite/gcc.dg/tree-ssa/vrp93.c 63176004cb8d9a996e6fed7812d7df94 gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c 22cecfb6e50e9a0bfcb8417c616ecff4 gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c 22eb0b8eeae794a6956326b2c9383fb2 gcc/testsuite/gcc.dg/trunc-1.c *************** f63ff5680f9ddf2bc63277d0a4c08517 gcc/te *** 29118,29123 **** --- 29218,29224 ---- 7b938b0cb614b822c40b1d1cd3386863 gcc/testsuite/gcc.dg/typedef-redecl.h 44e859486a96c5bde24ac67ae73472fe gcc/testsuite/gcc.dg/typename-vla-1.c 0347a7dc32b8dfb279bdfe3b50e84008 gcc/testsuite/gcc.dg/typeof-1.c + a083e6af94dd22dcc82f08d47dc1c665 gcc/testsuite/gcc.dg/typeof-2.c 38f4467be27d0432adea9abcaf9cc366 gcc/testsuite/gcc.dg/typespec-1.c 7740693c7bb19d8fc6ab727a6ffbb65c gcc/testsuite/gcc.dg/ubsan/c-shift-1.c 2dbfddf9f012a91eb07b3c83841941a1 gcc/testsuite/gcc.dg/ubsan/c99-shift-1.c *************** d057a4907971998a1473fdea2ead40cc gcc/te *** 29241,29246 **** --- 29342,29348 ---- 43d1bfb1c3e82e590c699df9328c86ff gcc/testsuite/gcc.dg/unused-6-no.c e3db8ed02ca0ecad28455ac3f0b93696 gcc/testsuite/gcc.dg/unused-6.c b9094e47fb1bcf5228d5a172f181d34c gcc/testsuite/gcc.dg/unused-7.c + 615e1e240a379f560bb499664764aa19 gcc/testsuite/gcc.dg/unused-8b.c 3026c7972826035f46319fe0338270d0 gcc/testsuite/gcc.dg/unwind-1.c 82e97901e9d95cb7baff3da146a5c919 gcc/testsuite/gcc.dg/utf-array-short-wchar.c 58bb3d290d515392b37ec7e27a115e8e gcc/testsuite/gcc.dg/utf-array.c *************** d29f4943bad625aa38224c822f9da622 gcc/te *** 29620,29627 **** a866350e19555393d6961e8b412e9124 gcc/testsuite/gcc.dg/vect/pr60276.c b107b5d9d8332504cce7d4f98d0296f7 gcc/testsuite/gcc.dg/vect/pr60382.c 170c5596ccb511f48df93f8649f3aba7 gcc/testsuite/gcc.dg/vect/pr60482.c ! 6238a8b7620ccb76249b00f14ace3ada gcc/testsuite/gcc.dg/vect/pr60505.c 410bc9651b5f4b0552af7cad596832e8 gcc/testsuite/gcc.dg/vect/pr60656.c 0706a6b1e589668022cd055b960dd18d gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c 260e2f31b30dda89387f41e7bfe71e1e gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c 4d2e98feff81733536fba7cd2d0ca053 gcc/testsuite/gcc.dg/vect/slp-1.c --- 29722,29731 ---- a866350e19555393d6961e8b412e9124 gcc/testsuite/gcc.dg/vect/pr60276.c b107b5d9d8332504cce7d4f98d0296f7 gcc/testsuite/gcc.dg/vect/pr60382.c 170c5596ccb511f48df93f8649f3aba7 gcc/testsuite/gcc.dg/vect/pr60482.c ! 97f0138cf5bdb9cb11d8e107c00bc27c gcc/testsuite/gcc.dg/vect/pr60505.c 410bc9651b5f4b0552af7cad596832e8 gcc/testsuite/gcc.dg/vect/pr60656.c + 72142e96ba1e228790f86e7f25a6c1a5 gcc/testsuite/gcc.dg/vect/pr60841.c + 785dfb8a3638e3ded94e5cc79249383c gcc/testsuite/gcc.dg/vect/pr61680.c 0706a6b1e589668022cd055b960dd18d gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c 260e2f31b30dda89387f41e7bfe71e1e gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c 4d2e98feff81733536fba7cd2d0ca053 gcc/testsuite/gcc.dg/vect/slp-1.c *************** b5656051aa3112bdcc09d26568b22e20 gcc/te *** 30061,30066 **** --- 30165,30171 ---- 2ea572faabfe8ccd2ffe73544be74ef0 gcc/testsuite/gcc.dg/vect/vect-simd-clone-7.c 1b4a10a7ec4c46b91adfa18c3ce75e34 gcc/testsuite/gcc.dg/vect/vect-simd-clone-8.c a4edce28556de1d94f24aa4e027ca78b gcc/testsuite/gcc.dg/vect/vect-simd-clone-9.c + 4f938eaebf48217ae438f73dece6a598 gcc/testsuite/gcc.dg/vect/vect-singleton_1.c a5494bfefae827ff7fb0c991ea9b9905 gcc/testsuite/gcc.dg/vect/vect-strided-a-mult.c 12b7de6813a00befbee70dae6f9aed0d gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i2.c d82347f60e7f2f61b695aca0b0162789 gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i4.c *************** dd6e0341654a630b56a221e642a1cbb1 gcc/te *** 30112,30118 **** 18d22f4befcbe16f0fa91b011350e636 gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c b53fd5a38e5c7fb23c4d7cdddd35a122 gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c 7cf39e0b990d4134843cf0934748018d gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c ! 4f87272d5e98bcddb685a783562b6553 gcc/testsuite/gcc.dg/vect/vect.exp 70f5bfe5c3206bb27ef00df04395f1b4 gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c c1a258213052c3dfbc9b6a8c1c0d6d6c gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c 1e23759ae2d20580a48c9849cfca511f gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c --- 30217,30223 ---- 18d22f4befcbe16f0fa91b011350e636 gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c b53fd5a38e5c7fb23c4d7cdddd35a122 gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c 7cf39e0b990d4134843cf0934748018d gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c ! 51cf30fb13a2f5b1cab0c930e14801fe gcc/testsuite/gcc.dg/vect/vect.exp 70f5bfe5c3206bb27ef00df04395f1b4 gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c c1a258213052c3dfbc9b6a8c1c0d6d6c gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c 1e23759ae2d20580a48c9849cfca511f gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c *************** b22e613ba2712c4e8f7204eed0adc88a gcc/te *** 30280,30287 **** c3039576bdd2e286778c9c26319c1266 gcc/testsuite/gcc.dg/vmx/ldl.c 02e4a282249f914f0c14a216ba9d4cfc gcc/testsuite/gcc.dg/vmx/mem.c 6aae24591b76899daf226454ac9b1991 gcc/testsuite/gcc.dg/vmx/merge-be-order.c ! eee9871ed36b20241187f151e4501a99 gcc/testsuite/gcc.dg/vmx/merge-vsx-be-order.c ! 25b17ce14463feddc218415eb2a5416b gcc/testsuite/gcc.dg/vmx/merge-vsx.c eb7dd9debe1674f5d04a9841461e4954 gcc/testsuite/gcc.dg/vmx/merge.c 1bf3417266f1541ffcf1dd896b544b2e gcc/testsuite/gcc.dg/vmx/mult-even-odd-be-order.c 69b4a248b11c1f8cdf318024cf68f3f6 gcc/testsuite/gcc.dg/vmx/mult-even-odd.c --- 30385,30392 ---- c3039576bdd2e286778c9c26319c1266 gcc/testsuite/gcc.dg/vmx/ldl.c 02e4a282249f914f0c14a216ba9d4cfc gcc/testsuite/gcc.dg/vmx/mem.c 6aae24591b76899daf226454ac9b1991 gcc/testsuite/gcc.dg/vmx/merge-be-order.c ! 201b16426a5ac5b3987ba0dccc6f5a71 gcc/testsuite/gcc.dg/vmx/merge-vsx-be-order.c ! 2e6a5aaa5824f852ad0030af451aeb08 gcc/testsuite/gcc.dg/vmx/merge-vsx.c eb7dd9debe1674f5d04a9841461e4954 gcc/testsuite/gcc.dg/vmx/merge.c 1bf3417266f1541ffcf1dd896b544b2e gcc/testsuite/gcc.dg/vmx/mult-even-odd-be-order.c 69b4a248b11c1f8cdf318024cf68f3f6 gcc/testsuite/gcc.dg/vmx/mult-even-odd.c *************** a136f7907f14dd778d3f767da4b71219 gcc/te *** 30509,30519 **** 5c50cda62bd8e028126d50524394cdcb gcc/testsuite/gcc.target/aarch64/aapcs64/test_complex.c 610639db1ddaee1b632bcaa03ae9e6d0 gcc/testsuite/gcc.target/aarch64/aapcs64/test_int128.c 6fda7511aca063408b079c2bb62031f8 gcc/testsuite/gcc.target/aarch64/aapcs64/test_quad_double.c ! 2e77e4f91eafedcc40bca64ef88e8b3b gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h 8105c81103c5a63620a7b427d2c63471 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-1.c 596c2fbda9662178d39bdc8ca38a7b1e gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-10.c 00b5c9f8a1a7953292a641277343cd80 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-11.c d58c21aeac15c87b49b1a0cd83c5562a gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-12.c c4a5214c8570b2f0d809b0b52d72ec6d gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-2.c 698de05abc498110e864a6e761b3aafb gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-3.c 09b5b23890423c4c38ce2ed600d2f778 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-4.c --- 30614,30627 ---- 5c50cda62bd8e028126d50524394cdcb gcc/testsuite/gcc.target/aarch64/aapcs64/test_complex.c 610639db1ddaee1b632bcaa03ae9e6d0 gcc/testsuite/gcc.target/aarch64/aapcs64/test_int128.c 6fda7511aca063408b079c2bb62031f8 gcc/testsuite/gcc.target/aarch64/aapcs64/test_quad_double.c ! d9b74395ab6c4b86397ebb8c4882b21d gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h 8105c81103c5a63620a7b427d2c63471 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-1.c 596c2fbda9662178d39bdc8ca38a7b1e gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-10.c 00b5c9f8a1a7953292a641277343cd80 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-11.c d58c21aeac15c87b49b1a0cd83c5562a gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-12.c + 5e80c8e2752a7c20800c170ed731fe83 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-13.c + 7277fa58dadb57113bc4495170498ae7 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-14.c + d6d753fee2cc939c6e58cf69a3d84ce4 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-15.c c4a5214c8570b2f0d809b0b52d72ec6d gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-2.c 698de05abc498110e864a6e761b3aafb gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-3.c 09b5b23890423c4c38ce2ed600d2f778 gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-4.c *************** e668fb9e0d32efadd671247467dc90db gcc/te *** 30639,30644 **** --- 30747,30753 ---- 2ace503de1ebaa7ecee3cea5bdce43de gcc/testsuite/gcc.target/aarch64/pr60580_1.c e3c168f45423111f89f16b75f8973c92 gcc/testsuite/gcc.target/aarch64/pr60675.C ed3b25503ac7374fb7c47e079eb1318a gcc/testsuite/gcc.target/aarch64/pr60697.c + 2cd11476b07e206416f5d88420120ea5 gcc/testsuite/gcc.target/aarch64/pr61325.c 1f95766b4ed5bfb5f2cf1f168a607a8d gcc/testsuite/gcc.target/aarch64/predefine_large.c d38e476730748c653068e7cb2d8d6ca6 gcc/testsuite/gcc.target/aarch64/predefine_small.c 29e7dbfba15c0f945488b33400b908b4 gcc/testsuite/gcc.target/aarch64/predefine_tiny.c *************** a55b339bec69ea2b13fb1d52bcfab8c8 gcc/te *** 30647,30653 **** c5df9016ed51439c58173bf78280bc69 gcc/testsuite/gcc.target/aarch64/sbc.c 3b9354b9a15c8705b143711e5a0eb3cd gcc/testsuite/gcc.target/aarch64/scalar-mov.c cf90801aa8927a70a5207b4cac2643b6 gcc/testsuite/gcc.target/aarch64/scalar-vca.c ! 6cff277ed03444b13a1a7fea53b2a71d gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c d1af130615ebe55d6b2860145acf25fd gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c 884050a96b25562ba73e9f6cd428f9ee gcc/testsuite/gcc.target/aarch64/sha1_1.c fad4b886793516ea2f18ca518bf21e4c gcc/testsuite/gcc.target/aarch64/sha256_1.c --- 30756,30762 ---- c5df9016ed51439c58173bf78280bc69 gcc/testsuite/gcc.target/aarch64/sbc.c 3b9354b9a15c8705b143711e5a0eb3cd gcc/testsuite/gcc.target/aarch64/scalar-mov.c cf90801aa8927a70a5207b4cac2643b6 gcc/testsuite/gcc.target/aarch64/scalar-vca.c ! 56d1246ba8fe7a1c8c69a5ef49e39c01 gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c d1af130615ebe55d6b2860145acf25fd gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c 884050a96b25562ba73e9f6cd428f9ee gcc/testsuite/gcc.target/aarch64/sha1_1.c fad4b886793516ea2f18ca518bf21e4c gcc/testsuite/gcc.target/aarch64/sha256_1.c *************** a3498c06407b0da7dbf55389f7d64ee4 gcc/te *** 30725,30731 **** 35df028f9c45bc9929182bb919a59563 gcc/testsuite/gcc.target/aarch64/vect.x 13829a5e264dfff8be4651d236a5da67 gcc/testsuite/gcc.target/aarch64/vect_saddl_1.c 3ebb64e885f488f353df6f1a07e997f1 gcc/testsuite/gcc.target/aarch64/vect_smlal_1.c ! 5dca5816500cf4784a43933915a3fdb8 gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c 7e66886d01e17a3d5f4d365e18f11743 gcc/testsuite/gcc.target/aarch64/vfp-1.c 73ca66c42633ffbd35e499d89601c37a gcc/testsuite/gcc.target/aarch64/vld1-vst1_1.c bdf9d08039684c459d9bd2f4906dba34 gcc/testsuite/gcc.target/aarch64/vmlsq_laneq.c --- 30834,30840 ---- 35df028f9c45bc9929182bb919a59563 gcc/testsuite/gcc.target/aarch64/vect.x 13829a5e264dfff8be4651d236a5da67 gcc/testsuite/gcc.target/aarch64/vect_saddl_1.c 3ebb64e885f488f353df6f1a07e997f1 gcc/testsuite/gcc.target/aarch64/vect_smlal_1.c ! 91822962d5a71129a8f94a0f50f2c42b gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c 7e66886d01e17a3d5f4d365e18f11743 gcc/testsuite/gcc.target/aarch64/vfp-1.c 73ca66c42633ffbd35e499d89601c37a gcc/testsuite/gcc.target/aarch64/vld1-vst1_1.c bdf9d08039684c459d9bd2f4906dba34 gcc/testsuite/gcc.target/aarch64/vmlsq_laneq.c *************** ff93f7dc5d088eb0d2d55f41d9605da9 gcc/te *** 30735,30740 **** --- 30844,30890 ---- 2655ac4297efd263942058c5d2f07f09 gcc/testsuite/gcc.target/aarch64/volatile-bitfields-1.c 8c5d2f2ef90312aaf1f0ada7c6b329b2 gcc/testsuite/gcc.target/aarch64/volatile-bitfields-2.c db870a58bd047a3aea6a980e79d5f714 gcc/testsuite/gcc.target/aarch64/volatile-bitfields-3.c + 4880f29a3f855267072d6713a36969fb gcc/testsuite/gcc.target/aarch64/vqdmlal_high_lane_s16.c + 16dbe1aa44f454b09e980c7ad06eb278 gcc/testsuite/gcc.target/aarch64/vqdmlal_high_lane_s32.c + 55ef09719ca2f0ecea8218e071ac1246 gcc/testsuite/gcc.target/aarch64/vqdmlal_high_laneq_s16.c + 994fe4c63942b47dea509de593933512 gcc/testsuite/gcc.target/aarch64/vqdmlal_high_laneq_s32.c + c6bc4fe7173b43fecb1b589646f1c198 gcc/testsuite/gcc.target/aarch64/vqdmlal_lane_s16.c + a36e6cd2b3e52a4451f4864f20b7bdf5 gcc/testsuite/gcc.target/aarch64/vqdmlal_lane_s32.c + 82aaa586748c7bdcd0525bb1c3b57521 gcc/testsuite/gcc.target/aarch64/vqdmlal_laneq_s16.c + e1ab7dc0ed83021115757cceb8111f18 gcc/testsuite/gcc.target/aarch64/vqdmlal_laneq_s32.c + 4fce87a86d51e4f66b9e342f66691dd9 gcc/testsuite/gcc.target/aarch64/vqdmlalh_lane_s16.c + 88d50cd2ba32778ba86aa966ccd451bd gcc/testsuite/gcc.target/aarch64/vqdmlals_lane_s32.c + 4d4b80bf2fe2d60827fdccb395deef0e gcc/testsuite/gcc.target/aarch64/vqdmlsl_high_lane_s16.c + 001a3277d06cc27a92070399fac1b2f6 gcc/testsuite/gcc.target/aarch64/vqdmlsl_high_lane_s32.c + 5e2ff8ce7f9e2099ca2180b84e6ce735 gcc/testsuite/gcc.target/aarch64/vqdmlsl_high_laneq_s16.c + 0b5a5e1fec4fd47d767b00883155e2db gcc/testsuite/gcc.target/aarch64/vqdmlsl_high_laneq_s32.c + e846b77f02543314b1300023b0b20886 gcc/testsuite/gcc.target/aarch64/vqdmlsl_lane_s16.c + 7e94044d77773057ce614ba332db4c6c gcc/testsuite/gcc.target/aarch64/vqdmlsl_lane_s32.c + 32fc41cef895166fc1858057d8b40ade gcc/testsuite/gcc.target/aarch64/vqdmlsl_laneq_s32.c + 9338c9acb58e94014bef883c1a69cb19 gcc/testsuite/gcc.target/aarch64/vqdmlslh_lane_s16.c + d5985f9d81afdb5d83ad5045d90e73c1 gcc/testsuite/gcc.target/aarch64/vqdmlsls_lane_s32.c + 0441469dd7f151cc6c5731908a0e2290 gcc/testsuite/gcc.target/aarch64/vqdmulh_laneq_s16.c + ef977c11a066a47886fbc566d87b8266 gcc/testsuite/gcc.target/aarch64/vqdmulh_laneq_s32.c + a812fdfe34a76fc538357652347138d6 gcc/testsuite/gcc.target/aarch64/vqdmulhh_lane_s16.c + e6ae3f3cd8a16f1878dfe66ecac225c5 gcc/testsuite/gcc.target/aarch64/vqdmulhq_laneq_s16.c + c0143267913c582d11a900fb22512cc5 gcc/testsuite/gcc.target/aarch64/vqdmulhq_laneq_s32.c + 115b31e912529a41935f4e844e876c4e gcc/testsuite/gcc.target/aarch64/vqdmulhs_lane_s32.c + a3478ab1544de7f28c956bf030956380 gcc/testsuite/gcc.target/aarch64/vqdmull_high_lane_s16.c + 9b068e636142b0e6f8545b14bb01182c gcc/testsuite/gcc.target/aarch64/vqdmull_high_lane_s32.c + a2a2bc1805727ecf2ce28596ff256fd8 gcc/testsuite/gcc.target/aarch64/vqdmull_high_laneq_s16.c + 5051bef6fcb95f2efdda615f8656d28c gcc/testsuite/gcc.target/aarch64/vqdmull_high_laneq_s32.c + cf0806833b64e1195163f938859c2746 gcc/testsuite/gcc.target/aarch64/vqdmull_lane_s16.c + acedc8b153776b4c42a579f48c279def gcc/testsuite/gcc.target/aarch64/vqdmull_lane_s32.c + c662c11ea6a4cbbb56370052be7a33d0 gcc/testsuite/gcc.target/aarch64/vqdmull_laneq_s16.c + f23677232fded6eda2bf48c5365709ea gcc/testsuite/gcc.target/aarch64/vqdmull_laneq_s32.c + 32975050892de47266a0e7e7d7749ba7 gcc/testsuite/gcc.target/aarch64/vqdmullh_lane_s16.c + 5f5f50626865012ae817cdc53d304530 gcc/testsuite/gcc.target/aarch64/vqdmulls_lane_s32.c + c4dd8458d2d0d59f11c4ca346f5d72d4 gcc/testsuite/gcc.target/aarch64/vqrdmulh_laneq_s16.c + 4bafd8c78bcdf37b8dc4e363f70bf419 gcc/testsuite/gcc.target/aarch64/vqrdmulh_laneq_s32.c + 6ed6331d4a8ff6811a7ff9b0db24e816 gcc/testsuite/gcc.target/aarch64/vqrdmulhh_lane_s16.c + d3da33c25fd27944e08a0e313a6ce076 gcc/testsuite/gcc.target/aarch64/vqrdmulhq_laneq_s16.c + 2f708ea62e1d637ade19885393e84c8c gcc/testsuite/gcc.target/aarch64/vqrdmulhq_laneq_s32.c + 2b9269bfb1a01995a26b521e3573feae gcc/testsuite/gcc.target/aarch64/vqrdmulhs_lane_s32.c 58dd6a3e44637fe97e1b64ad80330e95 gcc/testsuite/gcc.target/aarch64/vrecps.c 907c5d0330b8ae449375937f25cb5507 gcc/testsuite/gcc.target/aarch64/vrecpx.c 93fc6cd2c39a0e44d5a8f0087756fdd1 gcc/testsuite/gcc.target/aarch64/vsqrt.c *************** b36471f8edbf2a11ce23359823ecc10b gcc/te *** 30759,30764 **** --- 30909,30915 ---- 463af7840e4a680c4f850f8d5dfafd3f gcc/testsuite/gcc.target/alpha/pr42448-1.c 0539ee2bde042196f5382b5c738d4f43 gcc/testsuite/gcc.target/alpha/pr42448-2.c 5f0298d225684c28c36ad42548aeccbd gcc/testsuite/gcc.target/alpha/pr42774.c + 4b2dcff48566cef7a104bfadab9354cc gcc/testsuite/gcc.target/alpha/pr61586.c fb02079e819ba875a046565cb325ff01 gcc/testsuite/gcc.target/arc/arc.exp 423fbfcb77e8a6141ca45a6a918e7d06 gcc/testsuite/gcc.target/arc/barrel-shifter-1.c bad20bd941c5cc11536e8d6b5713cdee gcc/testsuite/gcc.target/arc/barrel-shifter-2.c *************** af020e627d5f93cc2c57a41e3bc37e28 gcc/te *** 33124,33130 **** 8b33facd3d82cfd7450f01caa40b46f5 gcc/testsuite/gcc.target/arm/pr46975-2.c 12462c8de0d3b9414c8dad41ea05d880 gcc/testsuite/gcc.target/arm/pr46975.c ed98495500264d289525aebfd2fbd62f gcc/testsuite/gcc.target/arm/pr48183.c ! 5d7de550ff9a13f490729c73dc59f1c5 gcc/testsuite/gcc.target/arm/pr48252.c ec5b96b8283a62c791f40ad2c7334d85 gcc/testsuite/gcc.target/arm/pr49641.c 1b0c11d109e5c1c7dd206ab3c72d6e20 gcc/testsuite/gcc.target/arm/pr50099.c 09333e2679d051041e8e33c603eb8b26 gcc/testsuite/gcc.target/arm/pr50305.c --- 33275,33281 ---- 8b33facd3d82cfd7450f01caa40b46f5 gcc/testsuite/gcc.target/arm/pr46975-2.c 12462c8de0d3b9414c8dad41ea05d880 gcc/testsuite/gcc.target/arm/pr46975.c ed98495500264d289525aebfd2fbd62f gcc/testsuite/gcc.target/arm/pr48183.c ! d744fbeefa1a3fbcff67f43fc4dddd53 gcc/testsuite/gcc.target/arm/pr48252.c ec5b96b8283a62c791f40ad2c7334d85 gcc/testsuite/gcc.target/arm/pr49641.c 1b0c11d109e5c1c7dd206ab3c72d6e20 gcc/testsuite/gcc.target/arm/pr50099.c 09333e2679d051041e8e33c603eb8b26 gcc/testsuite/gcc.target/arm/pr50305.c *************** a6701935d18c8ed062555c8a48454bc9 gcc/te *** 33303,33308 **** --- 33454,33460 ---- 2931177f4aeff49d531d5474224448f6 gcc/testsuite/gcc.target/avr/pr46779-1.c 572dc228e08385a1db0fcbab66dbaa4e gcc/testsuite/gcc.target/avr/pr46779-2.c 421d2b9b36fa2496dce05d129d2c352b gcc/testsuite/gcc.target/avr/pr58545.c + 9e82df166e8b559cb56d2c4f48cbaf30 gcc/testsuite/gcc.target/avr/pr60991.c 881cb1836ddfc3105e0aacacc481aa09 gcc/testsuite/gcc.target/avr/progmem-error-1.c 2eb3f167ae58b534e25afc1b94617746 gcc/testsuite/gcc.target/avr/progmem-error-1.cpp 56de611fd29076ce9da389a853476819 gcc/testsuite/gcc.target/avr/progmem-warning-1.c *************** c458c2462e23a4c58a7e4d05b6200907 gcc/te *** 33333,33338 **** --- 33485,33492 ---- 70b849f57ecf42299230b99b7734dd2d gcc/testsuite/gcc.target/avr/torture/pr51374-1.c 640699ff4839c2a7798488c85177d381 gcc/testsuite/gcc.target/avr/torture/pr51782-1.c 006a6c5a86a749ba6291dfb65e0376e0 gcc/testsuite/gcc.target/avr/torture/pr57631.c + fea352b16ae79edc9965b1f39680a709 gcc/testsuite/gcc.target/avr/torture/pr61055.c + 2531c68fb11c95a62490386167ef9148 gcc/testsuite/gcc.target/avr/torture/pr61443.c 21a45d34960ba9567b9f2483d22c843f gcc/testsuite/gcc.target/avr/torture/progmem-1.c 564c71a894aff68e98d5c4a6db2b47ae gcc/testsuite/gcc.target/avr/torture/progmem-1.cpp e3e1c41865f5287c9ff7e200745758fd gcc/testsuite/gcc.target/avr/torture/sat-hr-plus-minus.c *************** b4097136b326678c552cf24792f79fe8 gcc/te *** 33824,33829 **** --- 33978,33984 ---- 46322bf9b32fe645dd973a6bc8e8b128 gcc/testsuite/gcc.target/i386/avx-os-support.h 62aa13560c827f799be1941a2e6da500 gcc/testsuite/gcc.target/i386/avx-pr51581-1.c c437ae63e2540199d8c765547fc407d6 gcc/testsuite/gcc.target/i386/avx-pr51581-2.c + 2f44e29670d30f0c444f2637c627c838 gcc/testsuite/gcc.target/i386/avx-pr57233.c 4e3d37bb04b99394790fa9e8caddf790 gcc/testsuite/gcc.target/i386/avx-recip-vec.c 02ae18a66bd7b76f7a651b896f066b70 gcc/testsuite/gcc.target/i386/avx-reduc-1.c 772f703b19bb27d5947d136a2f72221e gcc/testsuite/gcc.target/i386/avx-rint-sfix-2-vec.c *************** e082c71a709eff3367dacdb623737c6e gcc/te *** 34394,34399 **** --- 34549,34555 ---- fe43a9deff46d9922603adbeeafc1bca gcc/testsuite/gcc.target/i386/avx2-mul-1.c a544282846ec57648b2f38abf14119f0 gcc/testsuite/gcc.target/i386/avx2-pr51581-1.c 46ffedd4e5e66cd46ad561ee8562eb7b gcc/testsuite/gcc.target/i386/avx2-pr51581-2.c + bbb7100a6167d19314d56f1bcc1d4b22 gcc/testsuite/gcc.target/i386/avx2-pr57233.c 2b83554762241a146df7ccc1617e1bfa gcc/testsuite/gcc.target/i386/avx2-vbroadcastsd_pd-1.c 193f0a7d029b84ce4e3b2e58eac8240a gcc/testsuite/gcc.target/i386/avx2-vbroadcastsd_pd-2.c 84a46e7f4338347591f1c8fe0aaceda5 gcc/testsuite/gcc.target/i386/avx2-vbroadcastsi128-1.c *************** b04f7a12d10f851b8395faea1f5ab501 gcc/te *** 34825,34830 **** --- 34981,34987 ---- 8313d814dd34953aeb41fdd1137e6236 gcc/testsuite/gcc.target/i386/avx512f-kxorw-1.c 88679aecb941ef98e4955fd53f24d648 gcc/testsuite/gcc.target/i386/avx512f-mask-type.h 20d7791d447e454dc99dd9e328d38933 gcc/testsuite/gcc.target/i386/avx512f-os-support.h + b41e564451920ed5e6e2cc790be57646 gcc/testsuite/gcc.target/i386/avx512f-pr57233.c 5158ac78802e368957a44c0f68b3b5d8 gcc/testsuite/gcc.target/i386/avx512f-rounding.c c5975a79a4ea5a75acc7b38b9e6c0c44 gcc/testsuite/gcc.target/i386/avx512f-set-v16sf-1.c bea9dbd9114c8bb3fcd47ad0281ff5c2 gcc/testsuite/gcc.target/i386/avx512f-set-v16sf-2.c *************** a10441579d2b177bca2939688f1d171f gcc/te *** 35557,35564 **** 371f18813dae88e704517a2270da2fa7 gcc/testsuite/gcc.target/i386/call-1.c e7febacbd793814a1bdb3f04d9d9fc7f gcc/testsuite/gcc.target/i386/cleanup-1.c 4b6997eef25c42383324aa984b9b8791 gcc/testsuite/gcc.target/i386/cleanup-2.c - e0242c2120b4d7e26149885baf8fd877 gcc/testsuite/gcc.target/i386/clearcap.map - 49b2c5d20796b3d7cb793898b4398535 gcc/testsuite/gcc.target/i386/clearcapv2.map d4153e1bcf8bc5c311eaf09c93c16d08 gcc/testsuite/gcc.target/i386/clobbers.c 538ab6e8a06c514c724312c46aa4c439 gcc/testsuite/gcc.target/i386/cmov1.c 86cfb515b99e6eea4c48ca1ca4343c48 gcc/testsuite/gcc.target/i386/cmov2.c --- 35714,35719 ---- *************** ebc315087303e52034dda4e281f500fd gcc/te *** 35733,35739 **** d95f56a3f95ba78c3fdb5f418f8d953a gcc/testsuite/gcc.target/i386/hle-xchg-rel-1.c c937938a0a49e70d699ee5ef70d33cb0 gcc/testsuite/gcc.target/i386/hle-xor-acq-1.c 7aef940035776cbf7ecabc540f63e33e gcc/testsuite/gcc.target/i386/hle-xor-rel-1.c ! 1eddd48bb50f37a551309ded89196b6a gcc/testsuite/gcc.target/i386/i386.exp 2f691e14b36dfbcafcb11e2029b39ccc gcc/testsuite/gcc.target/i386/ifcvt-onecmpl-abs-1.c 05bb360a025eed6dd019b28ad5032c23 gcc/testsuite/gcc.target/i386/incoming-1.c 4770d945ceafa0ce8aaebccfb7094734 gcc/testsuite/gcc.target/i386/incoming-10.c --- 35888,35894 ---- d95f56a3f95ba78c3fdb5f418f8d953a gcc/testsuite/gcc.target/i386/hle-xchg-rel-1.c c937938a0a49e70d699ee5ef70d33cb0 gcc/testsuite/gcc.target/i386/hle-xor-acq-1.c 7aef940035776cbf7ecabc540f63e33e gcc/testsuite/gcc.target/i386/hle-xor-rel-1.c ! 9e81adfeacb71e7e4e47ef1578ca849d gcc/testsuite/gcc.target/i386/i386.exp 2f691e14b36dfbcafcb11e2029b39ccc gcc/testsuite/gcc.target/i386/ifcvt-onecmpl-abs-1.c 05bb360a025eed6dd019b28ad5032c23 gcc/testsuite/gcc.target/i386/incoming-1.c 4770d945ceafa0ce8aaebccfb7094734 gcc/testsuite/gcc.target/i386/incoming-10.c *************** c7f426034d9df3b9350c1df80138c8dc gcc/te *** 36343,36348 **** --- 36498,36504 ---- 4be3438b496af45547bcaa622d04847f gcc/testsuite/gcc.target/i386/pr57098.c a995edc07e467f878e75e842897b1cfd gcc/testsuite/gcc.target/i386/pr57106.c 24a8a0f263659238a672eac710e62c30 gcc/testsuite/gcc.target/i386/pr57189.c + bb5074395957224a22a9703b2d5a55a9 gcc/testsuite/gcc.target/i386/pr57233.c 1be3cad52880bd204c5668a12dc63bc1 gcc/testsuite/gcc.target/i386/pr57264.c 14e07824556dcc3c9478b054976196a3 gcc/testsuite/gcc.target/i386/pr57275.c 6af7e4a1f6e542e19ce56a5b5cd909ab gcc/testsuite/gcc.target/i386/pr57293.c *************** ef6b97efa08c7174694a3f12619b3adc gcc/te *** 36418,36423 **** --- 36574,36586 ---- 697da7d0cc19b38fd886149eb3d4af13 gcc/testsuite/gcc.target/i386/pr60516.c 3c94cee0c51e457793c9d3861c12d06d gcc/testsuite/gcc.target/i386/pr60693.c aa9afa3fae8ccdc655d286ee8211123a gcc/testsuite/gcc.target/i386/pr60700.c + 8166dccdf85e516834c35488dbde09e2 gcc/testsuite/gcc.target/i386/pr60868.c + 34cfaa1a2bf79cc8b3e8376802fd83e9 gcc/testsuite/gcc.target/i386/pr60901.c + dd8e17a0fafdd705a4f0de3d73c4d9c0 gcc/testsuite/gcc.target/i386/pr60902.c + 90c5be2a3f80aff7d7204eaa36133881 gcc/testsuite/gcc.target/i386/pr60909-1.c + 65d3cafc066a01d0520d7d9137813522 gcc/testsuite/gcc.target/i386/pr60909-2.c + c2ad80ced67848aa724c64790fae16e7 gcc/testsuite/gcc.target/i386/pr61423.c + 2e681bb97b6870c8edb1514a2edad73a gcc/testsuite/gcc.target/i386/pr61446.c 849234c7a569c1e86023244bc5561263 gcc/testsuite/gcc.target/i386/pr9771-1.c 24ceb6d5f3f5cde4b9d852839bdb98ae gcc/testsuite/gcc.target/i386/prefetchw-1.c f11f4731c396f099373c033ab016a64f gcc/testsuite/gcc.target/i386/prefetchwt1-1.c *************** b4038cdeb4eee7cf1074de1cead1d1b5 gcc/te *** 36677,36682 **** --- 36840,36846 ---- d1e0ff73b10eb61ca8fa06128a453ef9 gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c 308fe64b1fe9bf78b6b4ed03b89a6c2f gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c 5a4b1b55ad120b0697aa2b141f831dcc gcc/testsuite/gcc.target/i386/sse2-por-1.c + 75bdc67a274c371dd4d0c3ceef63beb2 gcc/testsuite/gcc.target/i386/sse2-pr57233.c 306e316bf36fd1022168fa5560198f41 gcc/testsuite/gcc.target/i386/sse2-psadbw-1.c 31949c673c69db630bfaf04449d2677f gcc/testsuite/gcc.target/i386/sse2-pshufd-1.c 2890c692e114956ac819984c965d389e gcc/testsuite/gcc.target/i386/sse2-pshufhw-1.c *************** a4fe926ed930e3d04f3d214919607450 gcc/te *** 36986,36991 **** --- 37150,37156 ---- 80fc45c82401c81c8e327977d855adfe gcc/testsuite/gcc.target/i386/vcvtps2ph-1.c 62f75fee089e9d7544817acc173d5b9e gcc/testsuite/gcc.target/i386/vcvtps2ph-2.c 7bfd4b219fe89df5db7d39dd83f07267 gcc/testsuite/gcc.target/i386/vcvtps2ph-3.c + c3845076ba5898729c1d858ed48d8182 gcc/testsuite/gcc.target/i386/vec-may_alias.c 6c6b35f324ed291cf10b22e9a8f246a4 gcc/testsuite/gcc.target/i386/vecinit-1.c 8c76c9fbb837c00a866f4323808181a0 gcc/testsuite/gcc.target/i386/vecinit-2.c 5c31804a1a01677fce626685b7d3670c gcc/testsuite/gcc.target/i386/vecinit-3.c *************** db9b34ec865040058a6d0689af9b65ef gcc/te *** 37052,37057 **** --- 37217,37223 ---- a390d40d8a1affb5cd5f9f3db7a982e8 gcc/testsuite/gcc.target/i386/xop-mul-1.c 27be770a892c0916dde5fc60ad029da4 gcc/testsuite/gcc.target/i386/xop-pcmov.c e5032ce4f2014410ac00439c345542c0 gcc/testsuite/gcc.target/i386/xop-pcmov2.c + ddea8eaf8adf3f52c33c08d0906add75 gcc/testsuite/gcc.target/i386/xop-pr57233.c 2ab60c120001ef1c9c38bbff7a7468e7 gcc/testsuite/gcc.target/i386/xop-rotate1-int.c 746d986b57318d368f4af996e78bcbc0 gcc/testsuite/gcc.target/i386/xop-rotate1-vector.c cb282467b4bd7e59d4a2c3df01f5daa1 gcc/testsuite/gcc.target/i386/xop-rotate2-int.c *************** f1f6a9ec080c7f1554b538d5701c21e2 gcc/te *** 37834,37839 **** --- 38000,38008 ---- e476471a7edb5f299042583dac1e4886 gcc/testsuite/gcc.target/powerpc/atomic-p8.c 1bb3c02dda5fc71d0e39b0833c955824 gcc/testsuite/gcc.target/powerpc/atomic_load_store-p8.c f7e7c3525d555350473e6eaeb20a763c gcc/testsuite/gcc.target/powerpc/avoid-indexed-addresses.c + 68a98ba6065eb1bd5a5a38ffaebe3628 gcc/testsuite/gcc.target/powerpc/bcd-1.c + 4c4454e8a943ac537214d0651d7689fc gcc/testsuite/gcc.target/powerpc/bcd-2.c + 130b8d095a504ba76a81116d57667e8a gcc/testsuite/gcc.target/powerpc/bcd-3.c d71e4fffd67fe9a02068065c31f40a8c gcc/testsuite/gcc.target/powerpc/block-move-1.c acce3a59dc7d4ef94160abede8f06c07 gcc/testsuite/gcc.target/powerpc/block-move-2.c 8b94a94a7dff0052358065a48eaa4f9f gcc/testsuite/gcc.target/powerpc/bool.c *************** bab9d2b9475b292a01a50c6972b9f682 gcc/te *** 37887,37892 **** --- 38056,38063 ---- a034d7a8bf265623a75800f01113e836 gcc/testsuite/gcc.target/powerpc/darwin-split-ld-stret.c 548fc585bcbf766f23bef7319f0b0a18 gcc/testsuite/gcc.target/powerpc/darwin64-abi.c b4bba5410c6e6f914897ce86ffaca508 gcc/testsuite/gcc.target/powerpc/dfmode_off.c + 57ea0173da68940a58564009a30679b4 gcc/testsuite/gcc.target/powerpc/dfp-builtin-1.c + a5f66daa4a8160a6e06231f0c816da83 gcc/testsuite/gcc.target/powerpc/dfp-builtin-2.c c25b0e4bf35d335bbde9c753c70ff289 gcc/testsuite/gcc.target/powerpc/dfp-dd-2.c 1957dd277fc1f9a9eef7275766fcea8e gcc/testsuite/gcc.target/powerpc/dfp-dd.c b2bd0e99cbcd0dff49c3d07bafb4ad8c gcc/testsuite/gcc.target/powerpc/dfp-td-2.c *************** b04fe8cd314a3a748a73aeec923a8f87 gcc/te *** 37909,37917 **** --- 38080,38091 ---- 008e68ecfc8e883b43cb8fcc43f0e792 gcc/testsuite/gcc.target/powerpc/e500-unord-1.c 47822d8b2aed4011af4831b9d6950e63 gcc/testsuite/gcc.target/powerpc/e500-unord-2.c 52468a71868e251587d1c07bc7e2b10f gcc/testsuite/gcc.target/powerpc/ehreturn.c + 9a3782b86e33933301343450411ef697 gcc/testsuite/gcc.target/powerpc/extend-divide-1.c + 391b21c9192f7bcd5ab0a0179c012e29 gcc/testsuite/gcc.target/powerpc/extend-divide-2.c fbe44e0943c31011fa30a479b0856bc9 gcc/testsuite/gcc.target/powerpc/fusion.c 4109709d89c976bec9d1d05e94004ff2 gcc/testsuite/gcc.target/powerpc/gcse-1.c f5543e6f996fc00e4ca43418e125fb66 gcc/testsuite/gcc.target/powerpc/htm-builtin-1.c + 238571a7588bf04ee725a409029ddaf1 gcc/testsuite/gcc.target/powerpc/htm-ttest.c bd2f03394b7690c22ce1aab465adb75f gcc/testsuite/gcc.target/powerpc/htm-xl-intrin-1.c 8d634b2a7d443f1e5b4b69716e57ac00 gcc/testsuite/gcc.target/powerpc/indexed-addr.c a06c80b6841f0e175447fb154db9d45d gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c *************** c5e75e8af9c592b80468829ced525050 gcc/te *** 37949,37954 **** --- 38123,38131 ---- cf9235cec69f4eadb301d29838226a26 gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-3.c 6708bd01f1d343f54ae84933d94773c6 gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-4.c d34c3ce9f5f4b9ff4e17af15a2345cab gcc/testsuite/gcc.target/powerpc/p8vector-vectorize-5.c + 5fd09506461138827bcc1a6e8e116021 gcc/testsuite/gcc.target/powerpc/pack01.c + c9ce448310ccdac5da6fa5b69ec461fa gcc/testsuite/gcc.target/powerpc/pack02.c + fa72c1f9512bac14ea57ebf20c94c152 gcc/testsuite/gcc.target/powerpc/pack03.c d0bd3df7fee3d73a0acc876ce20691e2 gcc/testsuite/gcc.target/powerpc/paired-1.c 0d7e5847184bc01c42a40dda9b07bda3 gcc/testsuite/gcc.target/powerpc/paired-10.c 2bdeefd1d55b55e6e9b8ace714c9b100 gcc/testsuite/gcc.target/powerpc/paired-2.c *************** e2be005a17035d4d4c6269830259fd72 gcc/te *** 38091,38096 **** --- 38268,38274 ---- 70e395f580930213d5cbd9e97ec91f7f gcc/testsuite/gcc.target/powerpc/pr60137.c 18d594301e79cf9932c8ad49c33828ac gcc/testsuite/gcc.target/powerpc/pr60203.c f128ae78c8eb899c06243379c091ac5a gcc/testsuite/gcc.target/powerpc/pr60676.c + 73ae1ef8995476aa6b62eea67f6f58dd gcc/testsuite/gcc.target/powerpc/pr60735.c 06c624c2b437fc5b9f805dc2231a75b6 gcc/testsuite/gcc.target/powerpc/quad-atomic.c 6e15a41526f5cb59817b7a5541452615 gcc/testsuite/gcc.target/powerpc/recip-1.c 6f035f512a3f0d6917409f569174ccea gcc/testsuite/gcc.target/powerpc/recip-2.c *************** caf83f2b272138041945d99cf818ff06 gcc/te *** 38118,38124 **** aefbc9c117b311a9394883e9c890efb9 gcc/testsuite/gcc.target/powerpc/spe-vector-memset.c 32bb5e201dd78c548aed0cdf044779ec gcc/testsuite/gcc.target/powerpc/spe1.c c9be7e0cc9ba390460928b1de506fa70 gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c ! d032ed8cc3859ce1a17c9d90fc292f26 gcc/testsuite/gcc.target/powerpc/tfmode_off.c e8cdd476c18884428cf136ed2c4548b2 gcc/testsuite/gcc.target/powerpc/timode_off.c 2d7ba7687ab5e578e54145507a734e92 gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c 0126618c8adf18da2ca783d2a0e48645 gcc/testsuite/gcc.target/powerpc/vsx-builtin-2.c --- 38296,38304 ---- aefbc9c117b311a9394883e9c890efb9 gcc/testsuite/gcc.target/powerpc/spe-vector-memset.c 32bb5e201dd78c548aed0cdf044779ec gcc/testsuite/gcc.target/powerpc/spe1.c c9be7e0cc9ba390460928b1de506fa70 gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c ! 18366289600f6f5c0ed1255bd8c267db gcc/testsuite/gcc.target/powerpc/tfmode_off.c ! c2edbb1afba546ea3ac8a5efcaca9c38 gcc/testsuite/gcc.target/powerpc/ti_math1.c ! c3d0d51284479d220a6166a0f362536c gcc/testsuite/gcc.target/powerpc/ti_math2.c e8cdd476c18884428cf136ed2c4548b2 gcc/testsuite/gcc.target/powerpc/timode_off.c 2d7ba7687ab5e578e54145507a734e92 gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c 0126618c8adf18da2ca783d2a0e48645 gcc/testsuite/gcc.target/powerpc/vsx-builtin-2.c *************** f75bb721e18362030639e313b0d650f3 gcc/te *** 38560,38566 **** 4599244d74ba4aabbd69240d86d2fe79 gcc/testsuite/gcc.target/x86_64/abi/args.h 00a7756c300412476dc7df5636d760dd gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s 3003646df75711be87357346568aa8b2 gcc/testsuite/gcc.target/x86_64/abi/asm-support.S ! 2f42b0a9460f5b6c8971e482a15a8b94 gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp f559d61e72669fec3c7c3bb1345a001f gcc/testsuite/gcc.target/x86_64/abi/avx/args.h 2ab990bb306a8a9c1f146095795ed0bb gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S 4061363418adffdceb4cff80966eaf32 gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h --- 38740,38746 ---- 4599244d74ba4aabbd69240d86d2fe79 gcc/testsuite/gcc.target/x86_64/abi/args.h 00a7756c300412476dc7df5636d760dd gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s 3003646df75711be87357346568aa8b2 gcc/testsuite/gcc.target/x86_64/abi/asm-support.S ! 0a783dcc2deac06feabcad9b7d059a45 gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp f559d61e72669fec3c7c3bb1345a001f gcc/testsuite/gcc.target/x86_64/abi/avx/args.h 2ab990bb306a8a9c1f146095795ed0bb gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S 4061363418adffdceb4cff80966eaf32 gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h *************** d3c71d269c1b4265e86c5ace1089e848 gcc/te *** 38568,38574 **** b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c ff732b27c9bb0c5b99ccccb31d12d3ea gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c d02989c16f0d1cd0951fe435483c550e gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c ! c923c773d058813933b5dcda1968332c gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp 2cf03d73572ce81dab43dcceeeacf5c4 gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h 341c91bf54efad299e2f11e9329738fa gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 1c4dc628c680a1d3ad4767c3a1455499 gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h --- 38748,38754 ---- b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c ff732b27c9bb0c5b99ccccb31d12d3ea gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c d02989c16f0d1cd0951fe435483c550e gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c ! 28f88eec378ae21b3480cc98af33b7f4 gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp 2cf03d73572ce81dab43dcceeeacf5c4 gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h 341c91bf54efad299e2f11e9329738fa gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 1c4dc628c680a1d3ad4767c3a1455499 gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h *************** f92a29f768758ce8f239cb4b188de5f1 gcc/te *** 38989,38994 **** --- 39169,39175 ---- f49b54ba1324c9645d5ab321e82b6873 gcc/testsuite/gfortran.dg/allocatable_function_5.f90 a1252b99fdac49d6a298e94e77bea067 gcc/testsuite/gfortran.dg/allocatable_function_6.f90 5204edb24b79e494174f82a33f3de0ac gcc/testsuite/gfortran.dg/allocatable_function_7.f90 + ac3181e47fe7f2ff87e5297ee5638865 gcc/testsuite/gfortran.dg/allocatable_function_8.f90 0eaf05114b7069214e95edca38338c8d gcc/testsuite/gfortran.dg/allocatable_module_1.f90 118b37f650281121c6f7a6e4cf4aa38b gcc/testsuite/gfortran.dg/allocatable_scalar_1.f90 02dd67e4175ac48686f16220da9b9eeb gcc/testsuite/gfortran.dg/allocatable_scalar_10.f90 *************** bab9a93e2fbce2377987fb7f67e82a7a gcc/te *** 39195,39200 **** --- 39376,39384 ---- 4d48a42bc964040c164c122d032b8664 gcc/testsuite/gfortran.dg/arrayio_11.f90 e101afd93c6605938c295b10be41823a gcc/testsuite/gfortran.dg/arrayio_12.f90 8eeabeddf3eeabedb9644e95525e98f3 gcc/testsuite/gfortran.dg/arrayio_13.f90 + c59bae6f311e172f040e939b3bcf1fa4 gcc/testsuite/gfortran.dg/arrayio_14.f90 + 3a163eca93a1b5da0cb1aa1265c1fc34 gcc/testsuite/gfortran.dg/arrayio_15.f90 + 3b626835faa28accd28b7b44c1aa2964 gcc/testsuite/gfortran.dg/arrayio_16.f90 46396e4a37a64cec9c047113bad6eadc gcc/testsuite/gfortran.dg/arrayio_2.f90 464fdf5b0f515ce504fe0f8e2ee07c6b gcc/testsuite/gfortran.dg/arrayio_3.f90 4042242806976787cc2719282ff81591 gcc/testsuite/gfortran.dg/arrayio_4.f90 *************** cf4d952c77026c12dcef405f6e7f2e49 gcc/te *** 39229,39234 **** --- 39413,39420 ---- 984ec0158ef522fe661e4163a5708f35 gcc/testsuite/gfortran.dg/associate_13.f90 7ad97bcf7457ca3c0309724df0caad5e gcc/testsuite/gfortran.dg/associate_14.f90 229584e99cd0fefd1f1309fe2cfe60db gcc/testsuite/gfortran.dg/associate_15.f90 + 0ed1ec5c859d3837356536ddd0e6f9ac gcc/testsuite/gfortran.dg/associate_16.f90 + d8912284402d7f10695694e5d787c65c gcc/testsuite/gfortran.dg/associate_17.f90 c066328da870ad9b313bf9491c5b72d6 gcc/testsuite/gfortran.dg/associate_2.f95 ada9a3758cef9c8c02a55f1139c4f13b gcc/testsuite/gfortran.dg/associate_3.f03 a1f5f0d8423367d45fe9382b407ce7e9 gcc/testsuite/gfortran.dg/associate_4.f08 *************** af62f8e63487374ab7f55bf98ba22f9f gcc/te *** 39807,39813 **** 211e434394ea8ce43ce8f5c2e671416d gcc/testsuite/gfortran.dg/class_array_12.f03 7d1b70fed6324f2dae86399e70c60cb7 gcc/testsuite/gfortran.dg/class_array_13.f90 2880265b32eb89ea2a2339848e096186 gcc/testsuite/gfortran.dg/class_array_14.f90 ! 204f439f174315c159d07cb138c73159 gcc/testsuite/gfortran.dg/class_array_15.f03 5790c36b47ecec9e1e086133517074b9 gcc/testsuite/gfortran.dg/class_array_16.f90 2dcfa225532d68c04bcb2b83adabb1f0 gcc/testsuite/gfortran.dg/class_array_17.f90 c51442df4b78a56b7cd5dc0dacc16f6b gcc/testsuite/gfortran.dg/class_array_18.f90 --- 39993,39999 ---- 211e434394ea8ce43ce8f5c2e671416d gcc/testsuite/gfortran.dg/class_array_12.f03 7d1b70fed6324f2dae86399e70c60cb7 gcc/testsuite/gfortran.dg/class_array_13.f90 2880265b32eb89ea2a2339848e096186 gcc/testsuite/gfortran.dg/class_array_14.f90 ! 716eead744817cb2a71e4d66c7b93e29 gcc/testsuite/gfortran.dg/class_array_15.f03 5790c36b47ecec9e1e086133517074b9 gcc/testsuite/gfortran.dg/class_array_16.f90 2dcfa225532d68c04bcb2b83adabb1f0 gcc/testsuite/gfortran.dg/class_array_17.f90 c51442df4b78a56b7cd5dc0dacc16f6b gcc/testsuite/gfortran.dg/class_array_18.f90 *************** aa9b2006005e6ab72526a2495276d14d gcc/te *** 40003,40008 **** --- 40189,40195 ---- f8a4ca21ccf302214564ec0d59e8fd51 gcc/testsuite/gfortran.dg/count_mask_1.f90 0f69fed692c7480664d7891f27db0443 gcc/testsuite/gfortran.dg/cr_lf.f90 33604a92da75a7b5ee0f958ab81b1328 gcc/testsuite/gfortran.dg/cray_pointers_1.f90 + 1d44af9bd997323c65ffc1ac7e394957 gcc/testsuite/gfortran.dg/cray_pointers_10.f90 9b498b2d4cff83ed58620c1998f47f87 gcc/testsuite/gfortran.dg/cray_pointers_2.f90 49ea5999b0fbbd860fa0b8b1e6a01397 gcc/testsuite/gfortran.dg/cray_pointers_3.f90 c00f3a9d2f365b0dab03e2415fabbc16 gcc/testsuite/gfortran.dg/cray_pointers_4.f90 *************** f12fc8f8c675ad90dacda21c47b123cf gcc/te *** 40068,40074 **** 35efa4236e3136b5b5d89215e9c671a0 gcc/testsuite/gfortran.dg/default_format_2.f90 c286b196507e9ffee9aad5b53cf42fd7 gcc/testsuite/gfortran.dg/default_format_2.inc c767d7f22474c8ad0d004a14d5e33668 gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 ! 12e97e8bf807fa0fafbbf6bfb04a2f14 gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 42b3bc794999b325dd25fadf49212667 gcc/testsuite/gfortran.dg/default_initialization_1.f90 ba730e52e3b48dd9a54bf3a8e2b06575 gcc/testsuite/gfortran.dg/default_initialization_2.f90 82fe74ac8e598a41632b7047330d6d36 gcc/testsuite/gfortran.dg/default_initialization_3.f90 --- 40255,40261 ---- 35efa4236e3136b5b5d89215e9c671a0 gcc/testsuite/gfortran.dg/default_format_2.f90 c286b196507e9ffee9aad5b53cf42fd7 gcc/testsuite/gfortran.dg/default_format_2.inc c767d7f22474c8ad0d004a14d5e33668 gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 ! a8fdda0b2ff88e8a64875e9f9417f37a gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 42b3bc794999b325dd25fadf49212667 gcc/testsuite/gfortran.dg/default_initialization_1.f90 ba730e52e3b48dd9a54bf3a8e2b06575 gcc/testsuite/gfortran.dg/default_initialization_2.f90 82fe74ac8e598a41632b7047330d6d36 gcc/testsuite/gfortran.dg/default_initialization_3.f90 *************** d274474e388646c24096790888b5a1eb gcc/te *** 40473,40478 **** --- 40660,40666 ---- d88c4f69c4e8abbcf539c35db1c38c47 gcc/testsuite/gfortran.dg/finalize_22.f90 694cfd8a3b55175c1a6e16f7d7f60038 gcc/testsuite/gfortran.dg/finalize_23.f90 7777e7da27f0f204cb380c5791769371 gcc/testsuite/gfortran.dg/finalize_24.f90 + 9d8695ba5d9b84a617601b19fbc15f3e gcc/testsuite/gfortran.dg/finalize_25.f90 fd6f56591cff43978fb9e37af994eec0 gcc/testsuite/gfortran.dg/finalize_3.f03 92b4ca27645d88cb11543d720382b004 gcc/testsuite/gfortran.dg/finalize_4.f03 ce817f495edb0ac306d6ae1052014e67 gcc/testsuite/gfortran.dg/finalize_5.f03 *************** f09b279084dd78c867deb4c29a351c13 gcc/te *** 40789,40795 **** 1e220f6220b76cc8c3a456baadfdbc39 gcc/testsuite/gfortran.dg/global_vars_f90_init_driver.c 55e7857d1dafac193e2cd5a0a381424f gcc/testsuite/gfortran.dg/gnu_logical_1.F fcddec2c8be6f5c85fd4943091dc86d1 gcc/testsuite/gfortran.dg/gnu_logical_2.f90 ! 33c63b25f6446aeb7fb749d92c0162dd gcc/testsuite/gfortran.dg/gomp/allocatable_components_1.f90 a2a78b9dfd24cc5b801a51ebf7713787 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.1.1.f90 a939ad660a97fdd3a36058fbbed08e4e gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.1.f90 be2dfd843076b56ef43acf3c66d28133 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.2.f90 --- 40977,40984 ---- 1e220f6220b76cc8c3a456baadfdbc39 gcc/testsuite/gfortran.dg/global_vars_f90_init_driver.c 55e7857d1dafac193e2cd5a0a381424f gcc/testsuite/gfortran.dg/gnu_logical_1.F fcddec2c8be6f5c85fd4943091dc86d1 gcc/testsuite/gfortran.dg/gnu_logical_2.f90 ! fe34d9d42d37b9776459e695b904bc39 gcc/testsuite/gfortran.dg/gomp/affinity-1.f90 ! 5633756a662441452bd869456e985808 gcc/testsuite/gfortran.dg/gomp/allocatable_components_1.f90 a2a78b9dfd24cc5b801a51ebf7713787 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.1.1.f90 a939ad660a97fdd3a36058fbbed08e4e gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.1.f90 be2dfd843076b56ef43acf3c66d28133 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.2.f90 *************** e892480f878db9fb2d75388365b0d38f gcc/te *** 40822,40828 **** 53059af4b001b877b193a648ed0c69f4 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.30.1.f90 87d438d380fe4278f5240b8d1fd0d3db gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.1.f90 0467067c8e8499996af77b64afbb8c31 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.2.f90 ! 20a6f46dda017b3c095be51b91da5df6 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90 182731c8064c6ef83beb1d10cd03700b gcc/testsuite/gfortran.dg/gomp/appendix-a/a.32.1.f90 157bb81ef8b8706d56531116aacc2653 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.1.f90 4ab99a44c0b5a623c5d27396d9bd8a6b gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.2.f90 --- 41011,41017 ---- 53059af4b001b877b193a648ed0c69f4 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.30.1.f90 87d438d380fe4278f5240b8d1fd0d3db gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.1.f90 0467067c8e8499996af77b64afbb8c31 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.2.f90 ! 291e78adbe93a2f84d2a41707864c4d2 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90 182731c8064c6ef83beb1d10cd03700b gcc/testsuite/gfortran.dg/gomp/appendix-a/a.32.1.f90 157bb81ef8b8706d56531116aacc2653 gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.1.f90 4ab99a44c0b5a623c5d27396d9bd8a6b gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.2.f90 *************** e2405fcffa82b9acf1b1076f87c4061a gcc/te *** 40844,40849 **** --- 41033,41039 ---- 953bdf3d3c109936d52b7448c0cf914f gcc/testsuite/gfortran.dg/gomp/appendix-a/a.7.2.f90 990da4894eee5b8e82d214eabde8634d gcc/testsuite/gfortran.dg/gomp/appendix-a/a.8.1.f90 fc76de5411a6ea3d2ef0e979cd24294f gcc/testsuite/gfortran.dg/gomp/appendix-a/a.9.1.f90 + 552f0c0302bb6592f6a2fb291b4586a6 gcc/testsuite/gfortran.dg/gomp/associate1.f90 bab96c8ce5beeb0e7d9e4dae2fd0ea5f gcc/testsuite/gfortran.dg/gomp/block-1.f90 c8bcf6337f95b605de3d54a7f8e5ab84 gcc/testsuite/gfortran.dg/gomp/collapse1.f90 5889f294d23bf018b629ca16a28a09c2 gcc/testsuite/gfortran.dg/gomp/crayptr1.f90 *************** c8bcf6337f95b605de3d54a7f8e5ab84 gcc/te *** 40851,40869 **** --- 41041,41066 ---- 0f6bba7fdd496b28f7b45fd8ee73a58f gcc/testsuite/gfortran.dg/gomp/crayptr3.f90 1c6644a88dc4bee98beb52bb4342fee9 gcc/testsuite/gfortran.dg/gomp/crayptr4.f90 5752af36ad97d8ba0a6600c514a1eb76 gcc/testsuite/gfortran.dg/gomp/crayptr5.f90 + 3637ee280cfe64316f44286f354db90d gcc/testsuite/gfortran.dg/gomp/declare-simd-1.f90 + fa41d6dd0ec4bc45beb3cbce04bf821d gcc/testsuite/gfortran.dg/gomp/depend-1.f90 db187bc842cfaea8dd9eab3344c97e93 gcc/testsuite/gfortran.dg/gomp/do-1.f90 a467591fa5a7397d62aff928d63eb0ad gcc/testsuite/gfortran.dg/gomp/fixed-1.f 14ab6dfa2149c533128a3f201531e525 gcc/testsuite/gfortran.dg/gomp/free-1.f90 b7bb651884d39c2e5dce7d57d46f40a5 gcc/testsuite/gfortran.dg/gomp/free-2.f90 833c786734216c6ed1ad406a53f3af9a gcc/testsuite/gfortran.dg/gomp/gomp.exp + 0cfd422be152bb21744cc7cfe5baf808 gcc/testsuite/gfortran.dg/gomp/intentin1.f90 52223211c34f4dbace5e033f8243ae1f gcc/testsuite/gfortran.dg/gomp/omp_atomic1.f90 0e5454ac80bc199d6cf3e96e9750c33f gcc/testsuite/gfortran.dg/gomp/omp_atomic2.f90 5d43e477ab60e438b8824d612b24022d gcc/testsuite/gfortran.dg/gomp/omp_clauses1.f90 e7227cd823c352d8bcc8b82aeb57d316 gcc/testsuite/gfortran.dg/gomp/omp_do1.f90 + 818c401459cd690f09b6456c6af28b9a gcc/testsuite/gfortran.dg/gomp/omp_do_concurrent.f90 04280f9a588c35300001e54082831f2f gcc/testsuite/gfortran.dg/gomp/omp_parse1.f90 748f336859d6338cc5d7146cd8a4b14b gcc/testsuite/gfortran.dg/gomp/omp_parse2.f 421900bf9ea5cfcbf2d2146fb3d77407 gcc/testsuite/gfortran.dg/gomp/omp_threadprivate1.f90 bdca03c79b16b5f9c19e5c92941f5888 gcc/testsuite/gfortran.dg/gomp/omp_threadprivate2.f90 + c97c8ff2f56cab022d1406778fde6e41 gcc/testsuite/gfortran.dg/gomp/openmp-simd-1.f90 + 59468044bce741ee29e2c3362ce85e1d gcc/testsuite/gfortran.dg/gomp/openmp-simd-2.f90 + 9ec7d78c19b910fb2fc4700d941d4a25 gcc/testsuite/gfortran.dg/gomp/openmp-simd-3.f90 9a6817790a272cd8153d4303d324c00f gcc/testsuite/gfortran.dg/gomp/pr26224.f d2c74a71f2bea0005d853821e6f0142c gcc/testsuite/gfortran.dg/gomp/pr27573.f90 7905e149c2a2dbed5b9dd43384d712f4 gcc/testsuite/gfortran.dg/gomp/pr29759.f90 *************** e321ec3eb6a878488b42bdb5e70a1821 gcc/te *** 40898,40909 **** 6954124ff522f1d30670dc093d886d8b gcc/testsuite/gfortran.dg/gomp/pr57089.f90 bcd9a8c5acf05494271659304f0f0a60 gcc/testsuite/gfortran.dg/gomp/pr59467.f90 b4be3f9de7631846875a711ae9b67293 gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90 ! 4a9d10a348ccf5012c673f2637785ba6 gcc/testsuite/gfortran.dg/gomp/reduction1.f90 02484261b0434dbaf2709c34db58cd4d gcc/testsuite/gfortran.dg/gomp/reduction2.f90 ! 8d18e99707613f2d648e3240f0ba1d76 gcc/testsuite/gfortran.dg/gomp/reduction3.f90 4abf31477ed1e2174ce1a15dea5e1970 gcc/testsuite/gfortran.dg/gomp/sharing-1.f90 0225b461902c034537f77db022b17f11 gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 338202088032a1453c1b11e7f193b475 gcc/testsuite/gfortran.dg/gomp/sharing-3.f90 41759f5578782a6f4ae3601bff797650 gcc/testsuite/gfortran.dg/gomp/workshare1.f90 74f7a0197763c365cb7511562e6e77bf gcc/testsuite/gfortran.dg/gomp/workshare2.f90 50b2c95c698e63006e5f0e8cbcea5a66 gcc/testsuite/gfortran.dg/gomp/workshare3.f90 --- 41095,41118 ---- 6954124ff522f1d30670dc093d886d8b gcc/testsuite/gfortran.dg/gomp/pr57089.f90 bcd9a8c5acf05494271659304f0f0a60 gcc/testsuite/gfortran.dg/gomp/pr59467.f90 b4be3f9de7631846875a711ae9b67293 gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90 ! 87885556568e657ef4c936c53e1c7305 gcc/testsuite/gfortran.dg/gomp/proc_ptr_2.f90 ! 59e444df8ec8f5ea9859b5aef4d75865 gcc/testsuite/gfortran.dg/gomp/reduction1.f90 02484261b0434dbaf2709c34db58cd4d gcc/testsuite/gfortran.dg/gomp/reduction2.f90 ! a2addf1a691db784ba87841fe1cf8f23 gcc/testsuite/gfortran.dg/gomp/reduction3.f90 4abf31477ed1e2174ce1a15dea5e1970 gcc/testsuite/gfortran.dg/gomp/sharing-1.f90 0225b461902c034537f77db022b17f11 gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 338202088032a1453c1b11e7f193b475 gcc/testsuite/gfortran.dg/gomp/sharing-3.f90 + 354de1f16113f3936aaf4a03d2f49a7d gcc/testsuite/gfortran.dg/gomp/target1.f90 + 211df959d7353087bec284fb1e43ceec gcc/testsuite/gfortran.dg/gomp/target2.f90 + 86c0623e8799ecab72ed886c759cde03 gcc/testsuite/gfortran.dg/gomp/target3.f90 + 86f899863718848e682593290355e6c1 gcc/testsuite/gfortran.dg/gomp/udr1.f90 + 2aa1076458fe27767e8682a018266e21 gcc/testsuite/gfortran.dg/gomp/udr2.f90 + 6ddb9641f92715d3a3298771fab84b43 gcc/testsuite/gfortran.dg/gomp/udr3.f90 + 69722424503f758e5d5b5fb26c82af7b gcc/testsuite/gfortran.dg/gomp/udr4.f90 + 4c958e4e2ed3b058d16744bf6f4dc133 gcc/testsuite/gfortran.dg/gomp/udr5.f90 + 4be69272338362c6a969ab47082c5fcc gcc/testsuite/gfortran.dg/gomp/udr6.f90 + d601b4dee96fb1e6923bf1f70930e930 gcc/testsuite/gfortran.dg/gomp/udr7.f90 + 2f369bc0187e2b8a78573295b630c96f gcc/testsuite/gfortran.dg/gomp/udr8.f90 41759f5578782a6f4ae3601bff797650 gcc/testsuite/gfortran.dg/gomp/workshare1.f90 74f7a0197763c365cb7511562e6e77bf gcc/testsuite/gfortran.dg/gomp/workshare2.f90 50b2c95c698e63006e5f0e8cbcea5a66 gcc/testsuite/gfortran.dg/gomp/workshare3.f90 *************** b3194ceb811f07a263b4b3018c8b7155 gcc/te *** 40987,40992 **** --- 41196,41202 ---- 14ef0b0fb7468bddc8da80d525db505d gcc/testsuite/gfortran.dg/graphite/pr43349.f cf66c78971cc0a0ccbbe06e8285499fb gcc/testsuite/gfortran.dg/graphite/pr45758.f90 c35834551693365c4a94cd2ef2b4bd6d gcc/testsuite/gfortran.dg/graphite/pr47019.f + f993bc6aecd63bdc6b9e8b64e54b0800 gcc/testsuite/gfortran.dg/graphite/pr59817.f daa53e999b30e1103a7ea6f3e62ecd91 gcc/testsuite/gfortran.dg/graphite/run-id-1.f f284b8f4f2a5b32dc60a00731241ca8e gcc/testsuite/gfortran.dg/graphite/run-id-2.f90 a9d76d71bfd312f4638121eef4a5b755 gcc/testsuite/gfortran.dg/graphite/scop-1.f *************** fc437ac99c80ded40e13df8066e49a91 gcc/te *** 41407,41412 **** --- 41617,41623 ---- 16b03bca05a6acc43f24be44e1f2ff05 gcc/testsuite/gfortran.dg/list_read_10.f90 e76e21ee6abb6a701aa6c131c97d9312 gcc/testsuite/gfortran.dg/list_read_11.f90 20aebdb97e7740e2d38992e6981de05a gcc/testsuite/gfortran.dg/list_read_12.f90 + a9116f1431f2fcd98ac937aaf225727c gcc/testsuite/gfortran.dg/list_read_13.f 67997f845ffceb239257b26970956c2d gcc/testsuite/gfortran.dg/list_read_2.f90 799ffeafd700d24bd3e365a8addcfa10 gcc/testsuite/gfortran.dg/list_read_3.f90 36e928b3a5b9a5d89ecebae1c130be22 gcc/testsuite/gfortran.dg/list_read_4.f90 *************** b90601c72fd006ff2aa77fcdb00aa6ce gcc/te *** 41740,41746 **** 98b3add6564d9cb2c9fce79f49339208 gcc/testsuite/gfortran.dg/newunit_2.f90 6aa623107a603714b8177f7ed1641e4d gcc/testsuite/gfortran.dg/newunit_3.f90 cf1aadbb18d5e6f8399c252ebc5de0bf gcc/testsuite/gfortran.dg/nint_1.f90 ! 2a9b4addb34839a8caf5cb64192f4a35 gcc/testsuite/gfortran.dg/nint_2.f90 03b84fc5eca43cc5d1a0b1a93937da73 gcc/testsuite/gfortran.dg/no_arg_check_1.f90 e7bc0cb6b865f58b021aad8f7c5ad646 gcc/testsuite/gfortran.dg/no_arg_check_2.f90 b5459269634c18de84d59f7e3bfb7c5c gcc/testsuite/gfortran.dg/no_arg_check_3.f90 --- 41951,41957 ---- 98b3add6564d9cb2c9fce79f49339208 gcc/testsuite/gfortran.dg/newunit_2.f90 6aa623107a603714b8177f7ed1641e4d gcc/testsuite/gfortran.dg/newunit_3.f90 cf1aadbb18d5e6f8399c252ebc5de0bf gcc/testsuite/gfortran.dg/nint_1.f90 ! 42421c2b20fbb6d12877435f629d9adb gcc/testsuite/gfortran.dg/nint_2.f90 03b84fc5eca43cc5d1a0b1a93937da73 gcc/testsuite/gfortran.dg/no_arg_check_1.f90 e7bc0cb6b865f58b021aad8f7c5ad646 gcc/testsuite/gfortran.dg/no_arg_check_2.f90 b5459269634c18de84d59f7e3bfb7c5c gcc/testsuite/gfortran.dg/no_arg_check_3.f90 *************** f202e3843710f9492560538fa53c3847 gcc/te *** 41775,41780 **** --- 41986,41992 ---- a6de0d0b913df7bf4f7e924d87693c5e gcc/testsuite/gfortran.dg/oldstyle_2.f90 22eb37df11114e6c809b504360ee7009 gcc/testsuite/gfortran.dg/oldstyle_3.f90 3dd41260093d8cf9e7bbb41939229a8c gcc/testsuite/gfortran.dg/oldstyle_4.f90 + 782cced02660ac0a383a889e8e5324a5 gcc/testsuite/gfortran.dg/oldstyle_5.f adbcc21a5778904b9a3a281e08e68479 gcc/testsuite/gfortran.dg/only_clause_main.c 2ec0da16b8d33ec015c6c20f193ee162 gcc/testsuite/gfortran.dg/open-options-blanks.f 941113644c9b039dadaf2ea8f8b4331d gcc/testsuite/gfortran.dg/open_access_1.f90 *************** ef1a09bc092a9a36cc34b1e31d30a244 gcc/te *** 41790,41796 **** e548fbe30e98c9d7ac1106482dbc7e3e gcc/testsuite/gfortran.dg/open_status_3.f90 13b9efd2d6877e1ce4634b24aac8b5fc gcc/testsuite/gfortran.dg/openmp-define-1.f90 7c3311ed70efe122c0482f92398333c9 gcc/testsuite/gfortran.dg/openmp-define-2.f90 ! a3a6d581b221bc307171485a58450895 gcc/testsuite/gfortran.dg/openmp-define-3.f90 343d2117bb7c6e6b90b647727aa8bad0 gcc/testsuite/gfortran.dg/operator_1.f90 b17cec21502c8794736dc737cec00cef gcc/testsuite/gfortran.dg/operator_2.f90 0dd70087c9deb3c1435a846982d5b717 gcc/testsuite/gfortran.dg/operator_3.f90 --- 42002,42008 ---- e548fbe30e98c9d7ac1106482dbc7e3e gcc/testsuite/gfortran.dg/open_status_3.f90 13b9efd2d6877e1ce4634b24aac8b5fc gcc/testsuite/gfortran.dg/openmp-define-1.f90 7c3311ed70efe122c0482f92398333c9 gcc/testsuite/gfortran.dg/openmp-define-2.f90 ! 92c557030c984c498211d1b210bcdc7f gcc/testsuite/gfortran.dg/openmp-define-3.f90 343d2117bb7c6e6b90b647727aa8bad0 gcc/testsuite/gfortran.dg/operator_1.f90 b17cec21502c8794736dc737cec00cef gcc/testsuite/gfortran.dg/operator_2.f90 0dd70087c9deb3c1435a846982d5b717 gcc/testsuite/gfortran.dg/operator_3.f90 *************** ba4309199b6de8e3f6569168576b672d gcc/te *** 42469,42475 **** 7bdbcf6bda9a84f72f0ce9ff5baa35b3 gcc/testsuite/gfortran.dg/round_1.f03 8c6826e188281f4ba61e0e09942cb319 gcc/testsuite/gfortran.dg/round_2.f03 1e6dca49810e611218d8671ef4acade6 gcc/testsuite/gfortran.dg/round_3.f08 ! 50d8e1af10610e462e7210d91db177e0 gcc/testsuite/gfortran.dg/round_4.f90 795c3a5486634878e59848252e62aa82 gcc/testsuite/gfortran.dg/rrspacing_1.f90 54535416585a8a8a084e4b2896243778 gcc/testsuite/gfortran.dg/runtime_warning_1.f90 cf312106ea57ecf768f6b24b13308511 gcc/testsuite/gfortran.dg/same_name_1.f90 --- 42681,42687 ---- 7bdbcf6bda9a84f72f0ce9ff5baa35b3 gcc/testsuite/gfortran.dg/round_1.f03 8c6826e188281f4ba61e0e09942cb319 gcc/testsuite/gfortran.dg/round_2.f03 1e6dca49810e611218d8671ef4acade6 gcc/testsuite/gfortran.dg/round_3.f08 ! d14f6788781c04d3f31703e85d091e08 gcc/testsuite/gfortran.dg/round_4.f90 795c3a5486634878e59848252e62aa82 gcc/testsuite/gfortran.dg/rrspacing_1.f90 54535416585a8a8a084e4b2896243778 gcc/testsuite/gfortran.dg/runtime_warning_1.f90 cf312106ea57ecf768f6b24b13308511 gcc/testsuite/gfortran.dg/same_name_1.f90 *************** d7604b4d2f401c17008d23ef48c7da56 gcc/te *** 43571,43577 **** 32af85ba2b22e3a45be1db299d0fc3a0 gcc/testsuite/gnat.dg/aggr9_pkg.ads 35031b3b1cfbf9db80dbdb131ad67e3e gcc/testsuite/gnat.dg/aliased1.adb fc20c665ce493e3af920ca3b8b338e2e gcc/testsuite/gnat.dg/aliased_prefix_accessibility.adb ! a7739809a555fb662a89827d82bc3233 gcc/testsuite/gnat.dg/aliasing1.adb a4902656656cf1933e27aa840c492aae gcc/testsuite/gnat.dg/aliasing1.ads 54f6aed3ad979289cd3a9b9fca61c9d7 gcc/testsuite/gnat.dg/aliasing2.adb fcc69d2d6784a35c97662eebdee16779 gcc/testsuite/gnat.dg/aliasing2.ads --- 43783,43789 ---- 32af85ba2b22e3a45be1db299d0fc3a0 gcc/testsuite/gnat.dg/aggr9_pkg.ads 35031b3b1cfbf9db80dbdb131ad67e3e gcc/testsuite/gnat.dg/aliased1.adb fc20c665ce493e3af920ca3b8b338e2e gcc/testsuite/gnat.dg/aliased_prefix_accessibility.adb ! 9e0da223f4688dd4c3482ce7c4390a98 gcc/testsuite/gnat.dg/aliasing1.adb a4902656656cf1933e27aa840c492aae gcc/testsuite/gnat.dg/aliasing1.ads 54f6aed3ad979289cd3a9b9fca61c9d7 gcc/testsuite/gnat.dg/aliasing2.adb fcc69d2d6784a35c97662eebdee16779 gcc/testsuite/gnat.dg/aliasing2.ads *************** a22dac614adec7200ac46b985a9973bc gcc/te *** 43887,43892 **** --- 44099,44105 ---- 4655c082e4d28f9145dcbe265465a866 gcc/testsuite/gnat.dg/enum1_pkg.ads 7fa9081040c1b11170ec87a324a3ebc0 gcc/testsuite/gnat.dg/enum2.adb 8512bce6ebb7b1c767b2f9d14a48a71e gcc/testsuite/gnat.dg/enum2_pkg.ads + a4f52bfabfe2bc7e231d6ecd5aeefaf6 gcc/testsuite/gnat.dg/enum3.adb 6c032f23ef785bfe07a7d1b1a540adfc gcc/testsuite/gnat.dg/env_compile_capacity.adb 5f85dec3853c4180660d191365838fb2 gcc/testsuite/gnat.dg/env_compile_capacity.ads 797286d8d53abdbd5ade8214dca9db11 gcc/testsuite/gnat.dg/equal1.ads *************** f34c1ccc4215e16c24735299c32e5af3 gcc/te *** 44193,44198 **** --- 44406,44415 ---- ff63882d64d1bc7bf40b07c0ee842ed3 gcc/testsuite/gnat.dg/opt31.adb 20ad547be814ce4a0fc7d07e373934bf gcc/testsuite/gnat.dg/opt32.adb ece02966a92b2ea240da4ed9c82963d9 gcc/testsuite/gnat.dg/opt33.adb + cd1cd547ffd6a15fd43fea30ececc910 gcc/testsuite/gnat.dg/opt38.adb + c7cef5a4232a339afa288abd7cb369dc gcc/testsuite/gnat.dg/opt38_pkg.adb + ba03504b0b64d5f70065d0214412516e gcc/testsuite/gnat.dg/opt38_pkg.ads + fe287ca30d00bf022eed63003e7799b0 gcc/testsuite/gnat.dg/opt39.adb 65e20f998d483941d92a34b07b482d10 gcc/testsuite/gnat.dg/opt3_pkg.ads e98c04ac385dbd0581c1f5fa108caf6b gcc/testsuite/gnat.dg/opt4.adb 3d44b5cac38d62a85266069665682f5d gcc/testsuite/gnat.dg/opt5.adb *************** a441d166cc0d4b34342468308b350060 gcc/te *** 44207,44212 **** --- 44424,44430 ---- ba51f2b4ff3e6536d2d6f2acd9443799 gcc/testsuite/gnat.dg/opt9.adb feb376d91f5514b647b1ad61b025d828 gcc/testsuite/gnat.dg/opt9_pkg.ads fec5c039983cc172fd81dc506725f69c gcc/testsuite/gnat.dg/outer_agg_bitfield_constructor.adb + 4d9b7573a99095e98a73ab165f18724d gcc/testsuite/gnat.dg/overflow_fixed.adb a2d243fe1c9cc4acb1eab0db0f587b81 gcc/testsuite/gnat.dg/overflow_sum.adb 94d7b3cc1345f58f5547ed8c8973d6c0 gcc/testsuite/gnat.dg/overflow_sum2.adb 562961be442c02c3c6c5b534016f3fc1 gcc/testsuite/gnat.dg/overriding_ops.adb *************** fb4505f7d03948961a1b43f3c3735177 gcc/te *** 45835,45840 **** --- 46053,46059 ---- 5ca9c51dae3c7625f396c0d24cf84814 gcc/testsuite/lib/c-compat.exp 71855d0a661e3936c137f1d4ae29f9d1 gcc/testsuite/lib/c-torture.exp c62b99e026ed42b6e82f8480fb487837 gcc/testsuite/lib/cilk-plus-dg.exp + 0fd78d8ca5862167f2d986f8aa365429 gcc/testsuite/lib/clearcap.exp a119592eb7fd6f217ae6b95df83d2b66 gcc/testsuite/lib/compat.exp 13aeaf85fd6afdf8e6afaef752ae087b gcc/testsuite/lib/copy-file.exp 959e1855b178d7db49dd62f2a19c2b95 gcc/testsuite/lib/dejapatches.exp *************** f3784967f82fd982a7b13a211872bdd7 gcc/te *** 45876,45882 **** bd515d57aa30aa3fb51f62e9fc698abc gcc/testsuite/lib/scantree.exp d44c50538cc6d39a3eb1aa063b392626 gcc/testsuite/lib/target-libpath.exp d6e6500432d65180387c39287b536b8a gcc/testsuite/lib/target-supports-dg.exp ! d3d7377c7613aed518b295f4e436f2b9 gcc/testsuite/lib/target-supports.exp 11de8489fa53e77ff9be279e855090eb gcc/testsuite/lib/timeout-dg.exp 038a7798c766b7a7466b09f89b875129 gcc/testsuite/lib/timeout.exp 9aba7d93506cf79e6241eb0b27cdbce3 gcc/testsuite/lib/torture-options.exp --- 46095,46101 ---- bd515d57aa30aa3fb51f62e9fc698abc gcc/testsuite/lib/scantree.exp d44c50538cc6d39a3eb1aa063b392626 gcc/testsuite/lib/target-libpath.exp d6e6500432d65180387c39287b536b8a gcc/testsuite/lib/target-supports-dg.exp ! 12cbb51fb1389b3dbd47c6985af487f4 gcc/testsuite/lib/target-supports.exp 11de8489fa53e77ff9be279e855090eb gcc/testsuite/lib/timeout-dg.exp 038a7798c766b7a7466b09f89b875129 gcc/testsuite/lib/timeout.exp 9aba7d93506cf79e6241eb0b27cdbce3 gcc/testsuite/lib/torture-options.exp *************** f7eea62b481e8b0a731b6272b9cc74bc gcc/tr *** 46826,46835 **** 503ee4098f6eb3e1f6232141559346bc gcc/tree-chrec.c 7bc54df23602d375b2db5b7c4c4d5c6a gcc/tree-chrec.h 30a64a3df6bc881833526501f66db580 gcc/tree-complex.c ! 4f70760d40ea5faeaf2fc2a7b235f14e gcc/tree-core.h 68d17debfd1dc9aa375d8c5cfa5d6346 gcc/tree-data-ref.c eb5d27926043e6b574073a68ae7a6bbd gcc/tree-data-ref.h ! 3dd5a3692ceb0c94441ce1fa308fbead gcc/tree-dfa.c 188948b90ecddaf70eef9d404c377bba gcc/tree-dfa.h 13373f758dbb8bec16c7f6bfc183483f gcc/tree-diagnostic.c 308dd14e2238ac39da0eada1c384605c gcc/tree-diagnostic.h --- 47045,47054 ---- 503ee4098f6eb3e1f6232141559346bc gcc/tree-chrec.c 7bc54df23602d375b2db5b7c4c4d5c6a gcc/tree-chrec.h 30a64a3df6bc881833526501f66db580 gcc/tree-complex.c ! 914d12bc4c885a84e08969baf18e0d85 gcc/tree-core.h 68d17debfd1dc9aa375d8c5cfa5d6346 gcc/tree-data-ref.c eb5d27926043e6b574073a68ae7a6bbd gcc/tree-data-ref.h ! e76e8e1efc24553629d2002ee50fe15d gcc/tree-dfa.c 188948b90ecddaf70eef9d404c377bba gcc/tree-dfa.h 13373f758dbb8bec16c7f6bfc183483f gcc/tree-diagnostic.c 308dd14e2238ac39da0eada1c384605c gcc/tree-diagnostic.h *************** c1de5be4d7c816691e462f98ebbfb35e gcc/tr *** 46840,46853 **** 18f1ee32b871b8e6a91c092dc86652b2 gcc/tree-emutls.c 392b556d7ee2d1f57ef2b4cc6b7566ce gcc/tree-hasher.h 09eb6bde07e86a671ea0c0af5a54dcd2 gcc/tree-if-conv.c ! bc4d003e0876de5cac79fbbfbe1397f6 gcc/tree-inline.c 38c9fe3122537a015ee2e63c38dcdb4d gcc/tree-inline.h 9e237b35b42a8d96e2582a9a4b2e17cf gcc/tree-into-ssa.c 391b426d3a83206f44b13a9784fdc4f4 gcc/tree-into-ssa.h a50e871a6391b650cd6682d5c01811e2 gcc/tree-iterator.c f930e7c2f6a3ed536883d847d3b2ccbb gcc/tree-iterator.h a15cc75a41e7bf2ccfc380cf1eba2caa gcc/tree-loop-distribution.c ! dd3474665f077379bc17e67c77962e53 gcc/tree-nested.c fd0be797829a72cc8aa7075c4f014071 gcc/tree-nested.h f0a4e6c679c97265f09801be43d3a14c gcc/tree-nrv.c 20b5b1a12f858b7354b153c8ffc9772f gcc/tree-object-size.c --- 47059,47072 ---- 18f1ee32b871b8e6a91c092dc86652b2 gcc/tree-emutls.c 392b556d7ee2d1f57ef2b4cc6b7566ce gcc/tree-hasher.h 09eb6bde07e86a671ea0c0af5a54dcd2 gcc/tree-if-conv.c ! 54c9584f7b2133d8f97ee05f49ce5957 gcc/tree-inline.c 38c9fe3122537a015ee2e63c38dcdb4d gcc/tree-inline.h 9e237b35b42a8d96e2582a9a4b2e17cf gcc/tree-into-ssa.c 391b426d3a83206f44b13a9784fdc4f4 gcc/tree-into-ssa.h a50e871a6391b650cd6682d5c01811e2 gcc/tree-iterator.c f930e7c2f6a3ed536883d847d3b2ccbb gcc/tree-iterator.h a15cc75a41e7bf2ccfc380cf1eba2caa gcc/tree-loop-distribution.c ! f233be2ac4a0dd55322b4744dbfc6c86 gcc/tree-nested.c fd0be797829a72cc8aa7075c4f014071 gcc/tree-nested.h f0a4e6c679c97265f09801be43d3a14c gcc/tree-nrv.c 20b5b1a12f858b7354b153c8ffc9772f gcc/tree-object-size.c *************** cd92eadd61507922e22a7777cdd2af65 gcc/tr *** 46860,46866 **** 16ba28fd00b4db08b0a5d81b347083d5 gcc/tree-phinodes.c 8df39df261e9cfd73e097d2b8eb56618 gcc/tree-phinodes.h a83a11aa58d5f244ef2615874775079d gcc/tree-predcom.c ! b5625e795fa95d9aab6fe82577573610 gcc/tree-pretty-print.c 455851cb801e9923d5e78bda86574697 gcc/tree-pretty-print.h 99eb64b4f611fa70c0be1172d2490e61 gcc/tree-profile.c f05617fb6ae3aebf72fe8b08dc2c43cd gcc/tree-scalar-evolution.c --- 47079,47085 ---- 16ba28fd00b4db08b0a5d81b347083d5 gcc/tree-phinodes.c 8df39df261e9cfd73e097d2b8eb56618 gcc/tree-phinodes.h a83a11aa58d5f244ef2615874775079d gcc/tree-predcom.c ! fcf562b10629ef610b52399780252ceb gcc/tree-pretty-print.c 455851cb801e9923d5e78bda86574697 gcc/tree-pretty-print.h 99eb64b4f611fa70c0be1172d2490e61 gcc/tree-profile.c f05617fb6ae3aebf72fe8b08dc2c43cd gcc/tree-scalar-evolution.c *************** f05617fb6ae3aebf72fe8b08dc2c43cd gcc/tr *** 46868,46874 **** c01a6c1b8f3498c4297ae5486d8218e0 gcc/tree-sra.c 42d4f284771214b78fdc24ed8b8b2aab gcc/tree-ssa-address.c 1b77258ce233f1010fc549f8bc5dc234 gcc/tree-ssa-address.h ! 309c5aee027224923b0b81018aa07fb7 gcc/tree-ssa-alias.c 1ed0e9e14e828eebcbd12670911f57b3 gcc/tree-ssa-alias.h 908fae5b3e2e651511a1f59fed4310e4 gcc/tree-ssa-ccp.c 8854db1b9cfdaaeb605c67ebe35d6889 gcc/tree-ssa-coalesce.c --- 47087,47093 ---- c01a6c1b8f3498c4297ae5486d8218e0 gcc/tree-sra.c 42d4f284771214b78fdc24ed8b8b2aab gcc/tree-ssa-address.c 1b77258ce233f1010fc549f8bc5dc234 gcc/tree-ssa-address.h ! 3583fb23bee7cd856dd838440b26a19d gcc/tree-ssa-alias.c 1ed0e9e14e828eebcbd12670911f57b3 gcc/tree-ssa-alias.h 908fae5b3e2e651511a1f59fed4310e4 gcc/tree-ssa-ccp.c 8854db1b9cfdaaeb605c67ebe35d6889 gcc/tree-ssa-coalesce.c *************** ade4acc3cdcdc401a8c6b9b07c09a3f2 gcc/tr *** 46880,46890 **** ab41801eb8e661b97721f2fdfe0af9a4 gcc/tree-ssa-dom.h 287491fa0cac5371bf21b51fa2f9883e gcc/tree-ssa-dse.c eeb18249f19630551d81760b4bf8543c gcc/tree-ssa-forwprop.c ! 09132742bdd50c906f5135b6160acd3e gcc/tree-ssa-ifcombine.c 4316577d7bfe850e5701f66f50da950d gcc/tree-ssa-live.c 73c40cd97a78b00562f807d65b537704 gcc/tree-ssa-live.h 44623445e0a3c3ef90cbdeca15dc7898 gcc/tree-ssa-loop-ch.c ! d079a8d937eb558ee76ca68a6d35ee9b gcc/tree-ssa-loop-im.c de0b463530ea41456521090168225afe gcc/tree-ssa-loop-ivcanon.c 917bdac433d10a17378ef2a0abb40878 gcc/tree-ssa-loop-ivopts.c 02338563356306fac3c2016a7cbb7e18 gcc/tree-ssa-loop-ivopts.h --- 47099,47109 ---- ab41801eb8e661b97721f2fdfe0af9a4 gcc/tree-ssa-dom.h 287491fa0cac5371bf21b51fa2f9883e gcc/tree-ssa-dse.c eeb18249f19630551d81760b4bf8543c gcc/tree-ssa-forwprop.c ! 40873618b7b68316d2968048ff8cb66e gcc/tree-ssa-ifcombine.c 4316577d7bfe850e5701f66f50da950d gcc/tree-ssa-live.c 73c40cd97a78b00562f807d65b537704 gcc/tree-ssa-live.h 44623445e0a3c3ef90cbdeca15dc7898 gcc/tree-ssa-loop-ch.c ! d70235f13b67d1cd315cad0b61a93821 gcc/tree-ssa-loop-im.c de0b463530ea41456521090168225afe gcc/tree-ssa-loop-ivcanon.c 917bdac433d10a17378ef2a0abb40878 gcc/tree-ssa-loop-ivopts.c 02338563356306fac3c2016a7cbb7e18 gcc/tree-ssa-loop-ivopts.h *************** a528b0b164e374835b757aa586261d7a gcc/tr *** 46896,46919 **** 437c9aea9639196d89592ec3141fffda gcc/tree-ssa-loop-unswitch.c 9ee9e10357d8d79a29baa53d34f769bd gcc/tree-ssa-loop.c 10c5655c0beaa92cd03aebe537042e27 gcc/tree-ssa-loop.h ! 61528af55e47456e638ec793d61a2bb2 gcc/tree-ssa-math-opts.c f1ab905b3a864de6c06760872d285039 gcc/tree-ssa-operands.c 18da3215ee1eb3bc5e01eba7c52e4760 gcc/tree-ssa-operands.h 863288b76e2e726b542bbbf75b4993a0 gcc/tree-ssa-phiopt.c 8fb9d0b352dbc5a750557b79d39ecb7b gcc/tree-ssa-phiprop.c f3b38ebf82330446d5ba11dc1c4f9999 gcc/tree-ssa-pre.c ! 6a218f3964aafb0ad32c2c4c24656f22 gcc/tree-ssa-propagate.c 7815765bde42cd1f14f758d5728ff1b8 gcc/tree-ssa-propagate.h ! a105a8fff9d7fc96ff8a5807dec618ca gcc/tree-ssa-reassoc.c ! cec79090f8302ce24c3124ac80ae49d2 gcc/tree-ssa-sccvn.c 2b653bc55e7496a67ed55e853541ad46 gcc/tree-ssa-sccvn.h 7e7a1a092345df08ee409928b3982dfe gcc/tree-ssa-sink.c 544ace7a165f16f1c9762df3a847246f gcc/tree-ssa-strlen.c ! a5f65a2627768e5489628080335c6b35 gcc/tree-ssa-structalias.c ! 90f6f3b5d2fb378039024c5358db286f gcc/tree-ssa-tail-merge.c 062609c7341f33356980b58413052721 gcc/tree-ssa-ter.c b58c1f79a5493a196cfa2fe3743f0f1b gcc/tree-ssa-ter.h ! 51c9c3be8d80f3944fdb6c4600335fb1 gcc/tree-ssa-threadedge.c 516be19b8699fd0711b27443d9c35780 gcc/tree-ssa-threadedge.h 5da1def2ada611ef35889f5f82435404 gcc/tree-ssa-threadupdate.c 51f65d2aae4b00e4f980342a6f3e8f0d gcc/tree-ssa-threadupdate.h --- 47115,47138 ---- 437c9aea9639196d89592ec3141fffda gcc/tree-ssa-loop-unswitch.c 9ee9e10357d8d79a29baa53d34f769bd gcc/tree-ssa-loop.c 10c5655c0beaa92cd03aebe537042e27 gcc/tree-ssa-loop.h ! 31f06ae9e9d3aab469cb81ac503c34b7 gcc/tree-ssa-math-opts.c f1ab905b3a864de6c06760872d285039 gcc/tree-ssa-operands.c 18da3215ee1eb3bc5e01eba7c52e4760 gcc/tree-ssa-operands.h 863288b76e2e726b542bbbf75b4993a0 gcc/tree-ssa-phiopt.c 8fb9d0b352dbc5a750557b79d39ecb7b gcc/tree-ssa-phiprop.c f3b38ebf82330446d5ba11dc1c4f9999 gcc/tree-ssa-pre.c ! 9083eec79d74033bf086e4bb48337a5e gcc/tree-ssa-propagate.c 7815765bde42cd1f14f758d5728ff1b8 gcc/tree-ssa-propagate.h ! 49f3a282983a44d50b2be6d4223a2cc0 gcc/tree-ssa-reassoc.c ! 3b4617ab5995aa30b2f8310cc7840329 gcc/tree-ssa-sccvn.c 2b653bc55e7496a67ed55e853541ad46 gcc/tree-ssa-sccvn.h 7e7a1a092345df08ee409928b3982dfe gcc/tree-ssa-sink.c 544ace7a165f16f1c9762df3a847246f gcc/tree-ssa-strlen.c ! 33a13266aadbcb7114132539a3b14dd7 gcc/tree-ssa-structalias.c ! 26759ddea3c2091a2d428dcad711b886 gcc/tree-ssa-tail-merge.c 062609c7341f33356980b58413052721 gcc/tree-ssa-ter.c b58c1f79a5493a196cfa2fe3743f0f1b gcc/tree-ssa-ter.h ! 6b6af3f5b123f1e218c8a404feab5135 gcc/tree-ssa-threadedge.c 516be19b8699fd0711b27443d9c35780 gcc/tree-ssa-threadedge.h 5da1def2ada611ef35889f5f82435404 gcc/tree-ssa-threadupdate.c 51f65d2aae4b00e4f980342a6f3e8f0d gcc/tree-ssa-threadupdate.h *************** a79b6c80ddc8a564c5cd261cb9b3fdd1 gcc/tr *** 46925,46949 **** 7eac066b68b6b48d3af680244530782d gcc/tree-ssanames.h 53a6aac3efa8ad1efa3c8d85fe729b05 gcc/tree-stdarg.c 69d3270536f329aba1520dbf6de5c133 gcc/tree-stdarg.h ! a40cfa29f8fda80e38f78cf32f7f38c9 gcc/tree-streamer-in.c 1a84a7f62cf8907cb2ea05b556c05a97 gcc/tree-streamer-out.c df287b486f934620deb088f2ee0ce7d6 gcc/tree-streamer.c 66df870f3a2e434206f12dfca5530651 gcc/tree-streamer.h 59772b6a0b414642ac5a2a048d0f3f3d gcc/tree-switch-conversion.c ! b31ae3316201ce279149fe5e7b06de4b gcc/tree-tailcall.c ! edc269fee754426fbefc306d4ad1abad gcc/tree-vect-data-refs.c ! 0e27064ef9d087f1f89864c3e014fa18 gcc/tree-vect-generic.c c4830553b5647a24557575bac1731b99 gcc/tree-vect-loop-manip.c ! 4f794f59f5123dbe288b54e7f5f2217c gcc/tree-vect-loop.c 20abc700ab1045ac316418ded7857b1d gcc/tree-vect-patterns.c ! 570bb562cea9f896cf6d277a778eb509 gcc/tree-vect-slp.c 9c3f0571fc30c94ce244049843fe875f gcc/tree-vect-stmts.c 4a58096af76df477534bbb3ab779b591 gcc/tree-vectorizer.c ! 00577adc4ec453db88a9e940444ffd6b gcc/tree-vectorizer.h ! ddf25802321fbbbf5b2dbc7dd3c34257 gcc/tree-vrp.c ! cdcff8975ef1bf46b4d958ed3dab4420 gcc/tree.c 3b971f9d72f052ea9a5fb6c32f6f9e34 gcc/tree.def ! 0a5666325f0cd0535278735908559c65 gcc/tree.h c1549110ae4675e04b97bd68b4d59a32 gcc/treestruct.def f8da8bc6127f943f29fc1237e2806e29 gcc/tsan.c de06e1e7c04c8221fb7bb5b03eee0230 gcc/tsan.h --- 47144,47168 ---- 7eac066b68b6b48d3af680244530782d gcc/tree-ssanames.h 53a6aac3efa8ad1efa3c8d85fe729b05 gcc/tree-stdarg.c 69d3270536f329aba1520dbf6de5c133 gcc/tree-stdarg.h ! 368b75e67d682575accb291afacae7e0 gcc/tree-streamer-in.c 1a84a7f62cf8907cb2ea05b556c05a97 gcc/tree-streamer-out.c df287b486f934620deb088f2ee0ce7d6 gcc/tree-streamer.c 66df870f3a2e434206f12dfca5530651 gcc/tree-streamer.h 59772b6a0b414642ac5a2a048d0f3f3d gcc/tree-switch-conversion.c ! ba49073bb43840db9e9ff429362ab8b2 gcc/tree-tailcall.c ! 40ab70ef76279b925be56e4990f39935 gcc/tree-vect-data-refs.c ! 2ebebe422bba1deae3219b1f8989ec26 gcc/tree-vect-generic.c c4830553b5647a24557575bac1731b99 gcc/tree-vect-loop-manip.c ! 75b561d43c4bab24c3cab19b15ed57f8 gcc/tree-vect-loop.c 20abc700ab1045ac316418ded7857b1d gcc/tree-vect-patterns.c ! 77fd4e9dc7fd733a55875224826fccdd gcc/tree-vect-slp.c 9c3f0571fc30c94ce244049843fe875f gcc/tree-vect-stmts.c 4a58096af76df477534bbb3ab779b591 gcc/tree-vectorizer.c ! b23aeb290e610825e695bf1897f28c7d gcc/tree-vectorizer.h ! b07eb837f5d883ab7e95b62882281e0f gcc/tree-vrp.c ! e63a58d04d50a799998b1cc7d23609f7 gcc/tree.c 3b971f9d72f052ea9a5fb6c32f6f9e34 gcc/tree.def ! 9f533ff7502e6b3c8ea114b31a7e9309 gcc/tree.h c1549110ae4675e04b97bd68b4d59a32 gcc/treestruct.def f8da8bc6127f943f29fc1237e2806e29 gcc/tsan.c de06e1e7c04c8221fb7bb5b03eee0230 gcc/tsan.h *************** a0a93692959fceb6a4b63e535406bce6 gcc/va *** 46958,46964 **** be46f6bce22394dbb40a2ccd3e1d418e gcc/var-tracking.c ff896ccaa225789c402604a012a30c32 gcc/varasm.c f43ce19a1d9f849b6753808ae1b964bf gcc/varasm.h ! e7fd151858e94cde21b44463abecf853 gcc/varpool.c 06d4f9a4e63450e5e1c9506b8616c387 gcc/vec.c 03ef3ad6f5ef2d3d1ea3e6b8ae490d1e gcc/vec.h b9595435606442955f515535078caa52 gcc/version.c --- 47177,47183 ---- be46f6bce22394dbb40a2ccd3e1d418e gcc/var-tracking.c ff896ccaa225789c402604a012a30c32 gcc/varasm.c f43ce19a1d9f849b6753808ae1b964bf gcc/varasm.h ! e468a68466ed0873d8b5bb1a9777ff24 gcc/varpool.c 06d4f9a4e63450e5e1c9506b8616c387 gcc/vec.c 03ef3ad6f5ef2d3d1ea3e6b8ae490d1e gcc/vec.h b9595435606442955f515535078caa52 gcc/version.c *************** bbeefce8f25a073319ef53f9a55e2583 gcc/we *** 46971,46983 **** 4dcd1437e2deaaef2853f093217fc063 gcc/xcoff.h 28db814d54aae5436666bc9547b4cf0c gcc/xcoffout.c 95e7984ae2ae01abd915f524df765a2b gcc/xcoffout.h ! c8be2196710d4694717387826fd1850b gnattools/ChangeLog 692322cbac4dbf19144764e4486b9f54 gnattools/Makefile.in 41b96b7921d11e52b1d8465ea57136ad gnattools/configure a73c18d8f44ab8bc3e71c3d530fa603e gnattools/configure.ac 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! de508de3a6aec02d0e04a0ce87355f5c include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 20f67b536f003da196c4e0e36c829fcf include/ansidecl.h 8c1a1603cbd7447bde95d9ae8723f232 include/demangle.h --- 47190,47202 ---- 4dcd1437e2deaaef2853f093217fc063 gcc/xcoff.h 28db814d54aae5436666bc9547b4cf0c gcc/xcoffout.c 95e7984ae2ae01abd915f524df765a2b gcc/xcoffout.h ! c0722c0f0f883a7971f1f20be6097f09 gnattools/ChangeLog 692322cbac4dbf19144764e4486b9f54 gnattools/Makefile.in 41b96b7921d11e52b1d8465ea57136ad gnattools/configure a73c18d8f44ab8bc3e71c3d530fa603e gnattools/configure.ac 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! 89bacb33918388be072c8d2b23c53442 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 20f67b536f003da196c4e0e36c829fcf include/ansidecl.h 8c1a1603cbd7447bde95d9ae8723f232 include/demangle.h *************** e34d525d7faceda0dd5cb3eae49c1548 includ *** 47012,47018 **** 0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h f648a66ed08e079e26a24c4346a3ba03 include/xtensa-config.h 0afce91a3daa1fdc32ee36370c1129dd install-sh ! f7609bb103efb231f6aee59ed7c638b2 intl/ChangeLog cad1d6fab2274517783de7433c0faa74 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION --- 47231,47237 ---- 0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h f648a66ed08e079e26a24c4346a3ba03 include/xtensa-config.h 0afce91a3daa1fdc32ee36370c1129dd install-sh ! c340a6027b5bb839e7fd81f2672e95f3 intl/ChangeLog cad1d6fab2274517783de7433c0faa74 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** d50a8c6c5b41089930accbdce767d3c0 intl/p *** 47054,47065 **** b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! f6502cd1f6a829d202c2305b928665aa libada/ChangeLog 205ed97dd66c9e8078c99311e25b584d libada/Makefile.in 8efb9115b70b2aa70c7db10862f7b2f5 libada/configure 6433b3fb1e942dd2597541b21eb8be0f libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 9dd61f097c671a04b0edfedd77f8cfad libatomic/ChangeLog bf2b737497af89020096e79749ced1a6 libatomic/Makefile.am 46bea738c735828c2e94c7f71122785e libatomic/Makefile.in f7853b06953072a9987a45a5b00782d6 libatomic/acinclude.m4 --- 47273,47284 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 95a74939a99a60c0068877fb5c65fe01 libada/ChangeLog 205ed97dd66c9e8078c99311e25b584d libada/Makefile.in 8efb9115b70b2aa70c7db10862f7b2f5 libada/configure 6433b3fb1e942dd2597541b21eb8be0f libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 7770dc2abf69beac14080f078cb2339f libatomic/ChangeLog bf2b737497af89020096e79749ced1a6 libatomic/Makefile.am 46bea738c735828c2e94c7f71122785e libatomic/Makefile.in f7853b06953072a9987a45a5b00782d6 libatomic/acinclude.m4 *************** c03a072efac9b30f8f8429ac52fd246b libato *** 47137,47143 **** 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c cce610fe1b2413dc6f097cb40816e9e8 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! a1f6c36fefc619da897ac9060b272016 libbacktrace/ChangeLog 6af6c9838d1737a87529f290a49f863a libbacktrace/Makefile.am 10502b510e3bb652e63f65eab6326c9d libbacktrace/Makefile.in 1987c0495aeee1bc47709f399772173b libbacktrace/README --- 47356,47362 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c cce610fe1b2413dc6f097cb40816e9e8 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! 875f7c031ff8f59682ac6c6b4c7c2dd3 libbacktrace/ChangeLog 6af6c9838d1737a87529f290a49f863a libbacktrace/Makefile.am 10502b510e3bb652e63f65eab6326c9d libbacktrace/Makefile.in 1987c0495aeee1bc47709f399772173b libbacktrace/README *************** aa0d3848ac3020cb6562c1c923da293c libbac *** 47156,47162 **** 5badd67d5362a883d02092d992e2c605 libbacktrace/fileline.c 4c73c8c2d1aba3b0c421e8b8e163b7ed libbacktrace/filetype.awk 16977003b6cf9fba62ceb490ea19f074 libbacktrace/internal.h ! 41d56b65744d5a34a78cf347f1f93225 libbacktrace/mmap.c b0a8eab539202706059b1cbb305d132e libbacktrace/mmapio.c 86e7417bbd63c38c6f30058e4d2f7bd8 libbacktrace/nounwind.c 915162e3a8fae0ff20d7e9232030a49a libbacktrace/posix.c --- 47375,47381 ---- 5badd67d5362a883d02092d992e2c605 libbacktrace/fileline.c 4c73c8c2d1aba3b0c421e8b8e163b7ed libbacktrace/filetype.awk 16977003b6cf9fba62ceb490ea19f074 libbacktrace/internal.h ! 6940c5afbd9fa8c0932aa32f75836141 libbacktrace/mmap.c b0a8eab539202706059b1cbb305d132e libbacktrace/mmapio.c 86e7417bbd63c38c6f30058e4d2f7bd8 libbacktrace/nounwind.c 915162e3a8fae0ff20d7e9232030a49a libbacktrace/posix.c *************** d15ef1908e6651517fa16aca5927444f libbac *** 47167,47173 **** 1c31e53190ed9e49127ac9a1b8c9dec9 libbacktrace/state.c 7150f898c2b02b634d0f176a1d322385 libbacktrace/stest.c 41b3b24b264c530417d7b6970d7af429 libbacktrace/unknown.c ! 6a9b484426d5c40e4fb851c591bf42eb libcilkrts/ChangeLog 44e8fbbf5f5fdcf45b8dc268c303f4cc libcilkrts/Makefile.am 9e82ac68701a059f6122da2b42d5be43 libcilkrts/Makefile.in 4a307b1474cad63768b2ae0c183b6259 libcilkrts/README --- 47386,47392 ---- 1c31e53190ed9e49127ac9a1b8c9dec9 libbacktrace/state.c 7150f898c2b02b634d0f176a1d322385 libbacktrace/stest.c 41b3b24b264c530417d7b6970d7af429 libbacktrace/unknown.c ! 744f4e563ce155edded27dc0df7a8579 libcilkrts/ChangeLog 44e8fbbf5f5fdcf45b8dc268c303f4cc libcilkrts/Makefile.am 9e82ac68701a059f6122da2b42d5be43 libcilkrts/Makefile.in 4a307b1474cad63768b2ae0c183b6259 libcilkrts/README *************** d4a2c447aba3e1afe4e9522d132a2e62 libcil *** 47275,47281 **** 94c538f9a3100a27649a9dc4d63d1677 libcilkrts/runtime/sysdep.h ffd8820979e88b4845e4b6ae604d2fdf libcilkrts/runtime/worker_mutex.c 9af2df6acad19a2001c2b1f68f5f59be libcilkrts/runtime/worker_mutex.h ! 0b6c3d6e8e0d7fe2e36c3a5fce04b44f libcpp/ChangeLog 07c1fdaef120cbf7edafa33ab3e0a20f libcpp/Makefile.in 7307c791a8de641ef6dada9a179ece57 libcpp/aclocal.m4 d19e8274ac720426c1d890feaa695d2b libcpp/charset.c --- 47494,47500 ---- 94c538f9a3100a27649a9dc4d63d1677 libcilkrts/runtime/sysdep.h ffd8820979e88b4845e4b6ae604d2fdf libcilkrts/runtime/worker_mutex.c 9af2df6acad19a2001c2b1f68f5f59be libcilkrts/runtime/worker_mutex.h ! b61fb01fc9d8c8c8d75012c2fcdf8a63 libcpp/ChangeLog 07c1fdaef120cbf7edafa33ab3e0a20f libcpp/Makefile.in 7307c791a8de641ef6dada9a179ece57 libcpp/aclocal.m4 d19e8274ac720426c1d890feaa695d2b libcpp/charset.c *************** b38b6724cd6b6f363a6a43aaf16f31d7 libcpp *** 47295,47307 **** 14697b3989b853bc975d8031495a37ff libcpp/include/symtab.h ab1504e880a258c78a15e3a6de24f9a0 libcpp/init.c e4beb80693183cdc4c98bef23dea2fc9 libcpp/internal.h ! 360ef2ee5dad5d6b40c8d48cdc923d8f libcpp/lex.c ae8eb46c3ad0c5e352fd21eed18adb3e libcpp/line-map.c a3b42e84107cbc10045e964837492e97 libcpp/macro.c e5e6e60c02d9485ec697dd4f781e5444 libcpp/makeucnid.c 2b26a65df760b88805e260d6da1b8586 libcpp/mkdeps.c eced0388fb8c787f6ddc4e261432d411 libcpp/pch.c ! 76f3706394bf44814a3cdbc90019ec94 libcpp/po/ChangeLog 54906a88ab7fcfdf317421cf7c4303bc libcpp/po/be.gmo ecad891effc5c3a27a61d3faa8aee068 libcpp/po/be.po 5df92306df1918b63b8969719b670bf7 libcpp/po/ca.gmo --- 47514,47526 ---- 14697b3989b853bc975d8031495a37ff libcpp/include/symtab.h ab1504e880a258c78a15e3a6de24f9a0 libcpp/init.c e4beb80693183cdc4c98bef23dea2fc9 libcpp/internal.h ! 91737a79365ff906cad63f5c1d681190 libcpp/lex.c ae8eb46c3ad0c5e352fd21eed18adb3e libcpp/line-map.c a3b42e84107cbc10045e964837492e97 libcpp/macro.c e5e6e60c02d9485ec697dd4f781e5444 libcpp/makeucnid.c 2b26a65df760b88805e260d6da1b8586 libcpp/mkdeps.c eced0388fb8c787f6ddc4e261432d411 libcpp/pch.c ! 24a8966c2132466c5125561150511455 libcpp/po/ChangeLog 54906a88ab7fcfdf317421cf7c4303bc libcpp/po/be.gmo ecad891effc5c3a27a61d3faa8aee068 libcpp/po/be.po 5df92306df1918b63b8969719b670bf7 libcpp/po/ca.gmo *************** bdd5c54bb19a0a1bb3f4b91b4eec3e15 libcpp *** 47351,47357 **** 0852e16675aa93396c6b42956dff1af3 libcpp/ucnid.h c8500dcd582950cb6ed628ffc84e2c09 libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 5d5f20deda36cc7c29ce1b85c661257e libdecnumber/ChangeLog 3b84e93d037a889256842da6a8b66418 libdecnumber/Makefile.in 2746a1155d319a2cda823ee5b58921ce libdecnumber/aclocal.m4 3ee16b60b2f53df578443d0a2e076824 libdecnumber/bid/bid-dpd.h --- 47570,47576 ---- 0852e16675aa93396c6b42956dff1af3 libcpp/ucnid.h c8500dcd582950cb6ed628ffc84e2c09 libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 5dc6fbe6979ae9ce83b1fa3aac2ebb9b libdecnumber/ChangeLog 3b84e93d037a889256842da6a8b66418 libdecnumber/Makefile.in 2746a1155d319a2cda823ee5b58921ce libdecnumber/aclocal.m4 3ee16b60b2f53df578443d0a2e076824 libdecnumber/bid/bid-dpd.h *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 47413,47419 **** 1d6434525d5b6fae13c2e8a996121a5e libdecnumber/dpd/decimal64.c 6b20f17b6f453b9ee65b87eb01d119d7 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 97b2cad4bc8d301d14fc1926d6026f75 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 --- 47632,47638 ---- 1d6434525d5b6fae13c2e8a996121a5e libdecnumber/dpd/decimal64.c 6b20f17b6f453b9ee65b87eb01d119d7 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 39b2737f5a0ee5458284da5922301af4 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** d47c79b281339983862a8e52d8c73f0f libffi *** 47690,47696 **** 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 1235a9bc441affc877d2c91c634ce0b1 libgcc/ChangeLog 7f58014cfac96f94d81457205c18c223 libgcc/Makefile.in 4575e60db0c36a906ae99acf805a0550 libgcc/config.host 25a291c353009228fc85e36e91e64c08 libgcc/config.in --- 47909,47915 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 36ff3e7f2290d495372417ef770bfd1f libgcc/ChangeLog 7f58014cfac96f94d81457205c18c223 libgcc/Makefile.in 4575e60db0c36a906ae99acf805a0550 libgcc/config.host 25a291c353009228fc85e36e91e64c08 libgcc/config.in *************** b61fd5dd5e7cbd99ee040cacd3055ec6 libgcc *** 47777,47783 **** 27de1ebbc2f12b5b9a8e6e0460fb3d9c libgcc/config/arc/t-arc 1c6498366e09d27eef3cc5443272b299 libgcc/config/arc/t-arc-newlib 0e6e6e67c1465c6e8f00f3f1d0dd213f libgcc/config/arc/t-arc700-uClibc ! f05865a040b0a8d835ff6c71e964a360 libgcc/config/arm/bpabi-lib.h a69ec893b0e4432944938ba962a122cf libgcc/config/arm/bpabi-v6m.S 9c293f92f2c8aa994c222af1c87179e0 libgcc/config/arm/bpabi.S 39cd0b4384ba52c9517c6548457950e5 libgcc/config/arm/bpabi.c --- 47996,48002 ---- 27de1ebbc2f12b5b9a8e6e0460fb3d9c libgcc/config/arc/t-arc 1c6498366e09d27eef3cc5443272b299 libgcc/config/arc/t-arc-newlib 0e6e6e67c1465c6e8f00f3f1d0dd213f libgcc/config/arc/t-arc700-uClibc ! 69d95f104130cbb3227704dfd4ea75dd libgcc/config/arm/bpabi-lib.h a69ec893b0e4432944938ba962a122cf libgcc/config/arm/bpabi-v6m.S 9c293f92f2c8aa994c222af1c87179e0 libgcc/config/arm/bpabi.S 39cd0b4384ba52c9517c6548457950e5 libgcc/config/arm/bpabi.c *************** fb587bfcbf0c13179a375bf6d3b7b661 libgcc *** 47792,47798 **** 22d94e88e335f7671d36a7cd9912ce14 libgcc/config/arm/linux-atomic-64bit.c c00d8958faf55dcb0b1e5eacbe7f1d5f libgcc/config/arm/linux-atomic.c df5b9082304d460b3f9c51c48122b5b3 libgcc/config/arm/pr-support.c ! 0b424e73df344bd79e7ed7753abff90f libgcc/config/arm/sfp-machine.h f47aea1fef6da35621bca9a9b47656d4 libgcc/config/arm/symbian-lib.h 6f46bbbd9e7334a061e6dae05c1319b2 libgcc/config/arm/t-arm 95ccb8d9807e7229274f546d4664a038 libgcc/config/arm/t-bpabi --- 48011,48017 ---- 22d94e88e335f7671d36a7cd9912ce14 libgcc/config/arm/linux-atomic-64bit.c c00d8958faf55dcb0b1e5eacbe7f1d5f libgcc/config/arm/linux-atomic.c df5b9082304d460b3f9c51c48122b5b3 libgcc/config/arm/pr-support.c ! 131990bf9b0a8ab71c7abf0c49d4fbfa libgcc/config/arm/sfp-machine.h f47aea1fef6da35621bca9a9b47656d4 libgcc/config/arm/symbian-lib.h 6f46bbbd9e7334a061e6dae05c1319b2 libgcc/config/arm/t-arm 95ccb8d9807e7229274f546d4664a038 libgcc/config/arm/t-bpabi *************** d1337b28acd8dbde9817492f9027dbc3 libgcc *** 47946,47952 **** 1ad8379325b99afa4e196e92cf5a5aba libgcc/config/i386/crti.S a57fb755601c047971e04689034ff273 libgcc/config/i386/crtn.S c2535975d467d390b827e21ee7f9a2d3 libgcc/config/i386/crtprec.c ! 678c48b2cd8358306d0c6998bc9e6c06 libgcc/config/i386/cygming-crtbegin.c e7b956200c902115a507718a103cf015 libgcc/config/i386/cygming-crtend.c cbd36f1edf69f15bf49d0044d38663b5 libgcc/config/i386/cygwin.S 8e657583537e83d8cc15822e9ade5eae libgcc/config/i386/darwin-lib.h --- 48165,48171 ---- 1ad8379325b99afa4e196e92cf5a5aba libgcc/config/i386/crti.S a57fb755601c047971e04689034ff273 libgcc/config/i386/crtn.S c2535975d467d390b827e21ee7f9a2d3 libgcc/config/i386/crtprec.c ! 381536838c868685bd0f2abfa9f81af2 libgcc/config/i386/cygming-crtbegin.c e7b956200c902115a507718a103cf015 libgcc/config/i386/cygming-crtend.c cbd36f1edf69f15bf49d0044d38663b5 libgcc/config/i386/cygwin.S 8e657583537e83d8cc15822e9ade5eae libgcc/config/i386/darwin-lib.h *************** cc6abfc50842e2a704659fc8ca890750 libgcc *** 48026,48032 **** 983913088848c37426464c44ed30f389 libgcc/config/ia64/vms-unwind.h 7a56469ad10b7c48767dcf3b22434e61 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 70ba4bfcb9368d51ca67e556d79a8abe libgcc/config/libbid/ChangeLog bd427e604ec5104368c49c5babee0027 libgcc/config/libbid/_addsub_dd.c e60ac20c51a4ad903984450529a1f0e9 libgcc/config/libbid/_addsub_sd.c 9ce300999fc3b8a8a9a5d57b1d1deb0c libgcc/config/libbid/_addsub_td.c --- 48245,48251 ---- 983913088848c37426464c44ed30f389 libgcc/config/ia64/vms-unwind.h 7a56469ad10b7c48767dcf3b22434e61 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 88069328225f4c5b784f281ff87face6 libgcc/config/libbid/ChangeLog bd427e604ec5104368c49c5babee0027 libgcc/config/libbid/_addsub_dd.c e60ac20c51a4ad903984450529a1f0e9 libgcc/config/libbid/_addsub_sd.c 9ce300999fc3b8a8a9a5d57b1d1deb0c libgcc/config/libbid/_addsub_td.c *************** f35464ee3fe73ceda8fe19215986cb83 libgcc *** 48282,48288 **** 47f595c301c0de6db734c8f30450e180 libgcc/config/msp430/slli.S 76a5c501498c92789a5019b5dbfd4b2d libgcc/config/msp430/srai.S 67eb4bb44496978c58eeecca36f78971 libgcc/config/msp430/srli.S ! 71f9923a59ce99387110cf16cdc70375 libgcc/config/msp430/t-msp430 24223486f1047780652dad7c2b11113b libgcc/config/nds32/crtzero.S 25766e41a9f7032fb9877f6a8f85d785 libgcc/config/nds32/initfini.c 3309bb3bd0d0a83f2e308d032c9803a7 libgcc/config/nds32/isr-library/adj_intr_lvl.inc --- 48501,48507 ---- 47f595c301c0de6db734c8f30450e180 libgcc/config/msp430/slli.S 76a5c501498c92789a5019b5dbfd4b2d libgcc/config/msp430/srai.S 67eb4bb44496978c58eeecca36f78971 libgcc/config/msp430/srli.S ! ebdf0bda076e781cccd9503b489f6ffe libgcc/config/msp430/t-msp430 24223486f1047780652dad7c2b11113b libgcc/config/nds32/crtzero.S 25766e41a9f7032fb9877f6a8f85d785 libgcc/config/nds32/initfini.c 3309bb3bd0d0a83f2e308d032c9803a7 libgcc/config/nds32/isr-library/adj_intr_lvl.inc *************** eb3161bf886026cdcf8a78cea885fdd2 libgcc *** 48785,48791 **** 429659ae1ff2531e3ba2fd0c676a320d libgcc/config/t-slibgcc-hpux 229ab2f70a4aaaf97e2261ec00dc4497 libgcc/config/t-slibgcc-libgcc b5d3fe85dff400a82befa6b901b438ec libgcc/config/t-slibgcc-nolc-override ! 98c72042b97ae21a42e646d80bd3a4fb libgcc/config/t-slibgcc-sld 39082f76e7ff28af867afdb6b93b1891 libgcc/config/t-slibgcc-vms db7f1ee69a9d522e5199b4474c5ff1cb libgcc/config/t-softfp 72f41afb67b3c3c67809819763244452 libgcc/config/t-softfp-excl --- 49004,49010 ---- 429659ae1ff2531e3ba2fd0c676a320d libgcc/config/t-slibgcc-hpux 229ab2f70a4aaaf97e2261ec00dc4497 libgcc/config/t-slibgcc-libgcc b5d3fe85dff400a82befa6b901b438ec libgcc/config/t-slibgcc-nolc-override ! 7324b7b2d5416a7ab9bd659184c79194 libgcc/config/t-slibgcc-sld 39082f76e7ff28af867afdb6b93b1891 libgcc/config/t-slibgcc-vms db7f1ee69a9d522e5199b4474c5ff1cb libgcc/config/t-softfp 72f41afb67b3c3c67809819763244452 libgcc/config/t-softfp-excl *************** e32c5653df9e5c5b602b2a6e6ddeaaf1 libgcc *** 48982,48988 **** 7e5de74bf98e12bb4afb927d0c5d69c3 libgcc/vtv_end_preinit.c 1c9bb66910761539ddc5ff002e70c272 libgcc/vtv_start.c 868ca421eb9feaef7af922f89533ec54 libgcc/vtv_start_preinit.c ! 22dc2014a415529e7d8004ae8c1b91b1 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 --- 49201,49207 ---- 7e5de74bf98e12bb4afb927d0c5d69c3 libgcc/vtv_end_preinit.c 1c9bb66910761539ddc5ff002e70c272 libgcc/vtv_start.c 868ca421eb9feaef7af922f89533ec54 libgcc/vtv_start_preinit.c ! aa381e68a48b616462e4e99160c07012 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** a108bc5517294552e22dc2e360f1198d libgfo *** 49538,49544 **** 9de0a8e2d1cade6367a4d31644c10a7b libgfortran/intrinsics/clock.c d71a656fcde539b83446162276d1bb62 libgfortran/intrinsics/cpu_time.c ae946dafd409ca379c0855f90fa53cf8 libgfortran/intrinsics/cshift0.c ! d6b4eb6cb1c8a35729e47daffda35f74 libgfortran/intrinsics/ctime.c b827d4f4acd4f0a9c746d9551a430d57 libgfortran/intrinsics/date_and_time.c 268b7f00782746fd5de7860c0fcc09c8 libgfortran/intrinsics/dprod_r8.f90 67a5fb3f13f0817c80390d84fc7b8c4b libgfortran/intrinsics/dtime.c --- 49757,49763 ---- 9de0a8e2d1cade6367a4d31644c10a7b libgfortran/intrinsics/clock.c d71a656fcde539b83446162276d1bb62 libgfortran/intrinsics/cpu_time.c ae946dafd409ca379c0855f90fa53cf8 libgfortran/intrinsics/cshift0.c ! 6fa5e66ac6ba5d6a81527a077490a25e libgfortran/intrinsics/ctime.c b827d4f4acd4f0a9c746d9551a430d57 libgfortran/intrinsics/date_and_time.c 268b7f00782746fd5de7860c0fcc09c8 libgfortran/intrinsics/dprod_r8.f90 67a5fb3f13f0817c80390d84fc7b8c4b libgfortran/intrinsics/dtime.c *************** c287df298776a437b3a48419c86b4645 libgfo *** 49603,49609 **** 3265147203606b7bad62e5d2908f9869 libgfortran/io/inquire.c 040686ca709c2eb8e86ffe443d3fd8d6 libgfortran/io/intrinsics.c c35833ba6b9b23bdef8de6e70635aea9 libgfortran/io/io.h ! fc91f07e504c9261c0d49f9d39a14a4c libgfortran/io/list_read.c f0b41e3bb3904d863aec0780e95d876c libgfortran/io/lock.c d7d4ed433bf1c8a869ae50ddb62b42f9 libgfortran/io/open.c 7f0a9a12949149a87ba70a272df7d9db libgfortran/io/read.c --- 49822,49828 ---- 3265147203606b7bad62e5d2908f9869 libgfortran/io/inquire.c 040686ca709c2eb8e86ffe443d3fd8d6 libgfortran/io/intrinsics.c c35833ba6b9b23bdef8de6e70635aea9 libgfortran/io/io.h ! 0d3ffd29f6646e412bc51a6f195371f3 libgfortran/io/list_read.c f0b41e3bb3904d863aec0780e95d876c libgfortran/io/lock.c d7d4ed433bf1c8a869ae50ddb62b42f9 libgfortran/io/open.c 7f0a9a12949149a87ba70a272df7d9db libgfortran/io/read.c *************** d7d4ed433bf1c8a869ae50ddb62b42f9 libgfo *** 49611,49617 **** 0cec0394c4855ce26165f498b52379bc libgfortran/io/transfer.c f936c3b00e7e8e0a02a6295e7b0f27c2 libgfortran/io/transfer128.c cde532cf9943fbd5c2aee09a9e745fb1 libgfortran/io/unit.c ! 511039c57c0fad796caac8498d2477e1 libgfortran/io/unix.c 77d75641d66ddd858c2323836d22c224 libgfortran/io/unix.h c1bcf58817c5f55c9e7bd75ac50bc712 libgfortran/io/write.c f6c291d3d0197f2bd00b964dada60450 libgfortran/io/write_float.def --- 49830,49836 ---- 0cec0394c4855ce26165f498b52379bc libgfortran/io/transfer.c f936c3b00e7e8e0a02a6295e7b0f27c2 libgfortran/io/transfer128.c cde532cf9943fbd5c2aee09a9e745fb1 libgfortran/io/unit.c ! 0bf46fbcca9ef7c6659d267dffbb6406 libgfortran/io/unix.c 77d75641d66ddd858c2323836d22c224 libgfortran/io/unix.h c1bcf58817c5f55c9e7bd75ac50bc712 libgfortran/io/write.c f6c291d3d0197f2bd00b964dada60450 libgfortran/io/write_float.def *************** b2ad6bfcfd1503c2084c749a616619d5 libgo/ *** 49694,49700 **** 0e3a2fb357762bdec163fe51ccb1e951 libgo/README d46376034c1fd6df47c8ba2cd5de9d0a libgo/README.gcc 7281cb4b7a426e299beb22a3191d79c3 libgo/aclocal.m4 ! 2006458cea7d8eb986fc19fb9ceafac4 libgo/config.h.in ad1ce707d70b18d5d14bdbcfef82a9bb libgo/config/README 9a6e33ac95f7d5857d34f53bde4cb610 libgo/config/go.m4 0dbf51539b4d117324c49e2410a7868e libgo/config/libtool.m4 --- 49913,49919 ---- 0e3a2fb357762bdec163fe51ccb1e951 libgo/README d46376034c1fd6df47c8ba2cd5de9d0a libgo/README.gcc 7281cb4b7a426e299beb22a3191d79c3 libgo/aclocal.m4 ! 636bde47828341ba6e598a0f281167cc libgo/config.h.in ad1ce707d70b18d5d14bdbcfef82a9bb libgo/config/README 9a6e33ac95f7d5857d34f53bde4cb610 libgo/config/go.m4 0dbf51539b4d117324c49e2410a7868e libgo/config/libtool.m4 *************** dee72a6a60e99528b0d17bf3ff9a1e15 libgo/ *** 49703,49710 **** bc2f6032c98896249eadb56177c7d357 libgo/config/ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 libgo/config/ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 libgo/config/lt~obsolete.m4 ! 1abd9bf3e0611da88226a02318dfba20 libgo/configure ! fe865d95bef24266c89e3d2724ebbd6a libgo/configure.ac 1ef809eec8a49a2eca44b613eaf9847d libgo/go/archive/tar/common.go 45655d3df8e304b659bb098fc9006e94 libgo/go/archive/tar/reader.go e432f7705cc613af1419f6c711089511 libgo/go/archive/tar/reader_test.go --- 49922,49929 ---- bc2f6032c98896249eadb56177c7d357 libgo/config/ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 libgo/config/ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 libgo/config/lt~obsolete.m4 ! 292416f1fc0ab677291a1094cac27c28 libgo/configure ! 56d57ca3e961e4f201130d371bdd3274 libgo/configure.ac 1ef809eec8a49a2eca44b613eaf9847d libgo/go/archive/tar/common.go 45655d3df8e304b659bb098fc9006e94 libgo/go/archive/tar/reader.go e432f7705cc613af1419f6c711089511 libgo/go/archive/tar/reader_test.go *************** bd8fc56eab9b633e58128083caf5df5f libgo/ *** 51025,51031 **** d2c0f0166aa2cc63cec3270b5fa1d3e2 libgo/go/unicode/utf8/utf8_test.go 8e700e99e52bad7f8289006b7bd149d4 libgo/godeps.sh 8bc70efd6d9c1c8ba1e6df79a2241516 libgo/merge.sh ! b3f8c2f9a46ec559581ca9e007ca3c4e libgo/mksysinfo.sh 06b0ddfbd036dbdfdf8c4c7efb8b746f libgo/runtime/arch.h 0d727dcfb3816731f56f174e8cbd29eb libgo/runtime/array.h d539a7523f322c7b10a6e934c5fa16e6 libgo/runtime/chan.c --- 51244,51250 ---- d2c0f0166aa2cc63cec3270b5fa1d3e2 libgo/go/unicode/utf8/utf8_test.go 8e700e99e52bad7f8289006b7bd149d4 libgo/godeps.sh 8bc70efd6d9c1c8ba1e6df79a2241516 libgo/merge.sh ! 27ae1fdf2b91e9664d6b1e923a866af4 libgo/mksysinfo.sh 06b0ddfbd036dbdfdf8c4c7efb8b746f libgo/runtime/arch.h 0d727dcfb3816731f56f174e8cbd29eb libgo/runtime/array.h d539a7523f322c7b10a6e934c5fa16e6 libgo/runtime/chan.c *************** e89e0219aa4c38b5be8fcfe859855033 libgo/ *** 51129,51135 **** ec646d3074384118062135dba38d8e0c libgo/runtime/mfixalloc.c 66424704bf902fadede61a48abf430c1 libgo/runtime/mgc0.c 8814b7062f80a4c061b106b2c9c7c1bd libgo/runtime/mgc0.h ! 25280d2578cb621c0a1a4808f3f0e792 libgo/runtime/mheap.c b97eeb7e3b957b7fb4f671642734023a libgo/runtime/mprof.goc d15b2c21437b787c0d0e98b9a9740108 libgo/runtime/msize.c c4ce56193babb313ea7bb80c882173e0 libgo/runtime/netpoll.goc --- 51348,51354 ---- ec646d3074384118062135dba38d8e0c libgo/runtime/mfixalloc.c 66424704bf902fadede61a48abf430c1 libgo/runtime/mgc0.c 8814b7062f80a4c061b106b2c9c7c1bd libgo/runtime/mgc0.h ! e66170fdb4388b7e18851ec4e3dd0b29 libgo/runtime/mheap.c b97eeb7e3b957b7fb4f671642734023a libgo/runtime/mprof.goc d15b2c21437b787c0d0e98b9a9740108 libgo/runtime/msize.c c4ce56193babb313ea7bb80c882173e0 libgo/runtime/netpoll.goc *************** dfa78a02a5d317855831a363c6f6b82c libgo/ *** 51140,51146 **** 1b99484119160ad9d9cb5cc381d5b7ae libgo/runtime/panic.c 01541a76054b816f6c8c5558143ef68e libgo/runtime/parfor.c 3eafca6e0006b08920b178c1ca9ee121 libgo/runtime/print.c ! be088933873b3586b23b5492859ccabf libgo/runtime/proc.c f8a80dccc77238f938943b1e8191e2b1 libgo/runtime/race.h f3043edb6d3f3dec7c3d18064c9a2f46 libgo/runtime/reflect.goc 88236bd9baaae0e22c2fe3c097d9cfbf libgo/runtime/rtems-task-variable-add.c --- 51359,51365 ---- 1b99484119160ad9d9cb5cc381d5b7ae libgo/runtime/panic.c 01541a76054b816f6c8c5558143ef68e libgo/runtime/parfor.c 3eafca6e0006b08920b178c1ca9ee121 libgo/runtime/print.c ! a79bd15b7ad910aef1bfe2ebfdf97c64 libgo/runtime/proc.c f8a80dccc77238f938943b1e8191e2b1 libgo/runtime/race.h f3043edb6d3f3dec7c3d18064c9a2f46 libgo/runtime/reflect.goc 88236bd9baaae0e22c2fe3c097d9cfbf libgo/runtime/rtems-task-variable-add.c *************** c95a6cc35511a2183eb5b480fa8ae836 libgo/ *** 51163,51169 **** 207f334413c982763e10e994230fefbf libgo/testsuite/gotest 578a4705035f5cbb8425f2e2eb75a433 libgo/testsuite/lib/libgo.exp 6df485581d2f02246f41b5ca46f5bb5d libgo/testsuite/libgo.testmain/testmain.exp ! 050c8bb88f970bea2fa92a4c08d9fa17 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 0b707c40cd3236f294bcd8a5bcead00f libgomp/Makefile.am d538a08bffc033de3bd6ab6000ee2091 libgomp/Makefile.in --- 51382,51388 ---- 207f334413c982763e10e994230fefbf libgo/testsuite/gotest 578a4705035f5cbb8425f2e2eb75a433 libgo/testsuite/lib/libgo.exp 6df485581d2f02246f41b5ca46f5bb5d libgo/testsuite/libgo.testmain/testmain.exp ! 7763044a5f66fe9f9c25c52d0f70e98c libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 0b707c40cd3236f294bcd8a5bcead00f libgomp/Makefile.am d538a08bffc033de3bd6ab6000ee2091 libgomp/Makefile.in *************** cd992e3cb72acf469ea9463e733d19fc libgom *** 51222,51238 **** 033ba0d8f9cd68151cebebf17bf33589 libgomp/iter.c 5f2f63229277fb78ee8308c045d7b476 libgomp/iter_ull.c 1f693ed86e1282c2307d65c71055023e libgomp/libgomp.h ! 576982b551550b2fd60e8132ca5891e5 libgomp/libgomp.info 6cbe48d155b1725f5e32de30d5daedb4 libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in ! dce36ef18f99dd59489caa7388103c55 libgomp/libgomp.texi 19cd0ff067db126556be252f2c754934 libgomp/libgomp_f.h.in 23a87a355a8dd0b8bd4c15174738b461 libgomp/libgomp_g.h ddd43eaec8e3214ed28a1fb346758714 libgomp/loop.c aa0f0b8c12c665d06664bf1efc315be1 libgomp/loop_ull.c b41bce1b1aadda6779b912891eba1906 libgomp/omp.h.in ! 7c977650212bd2f23070bdffc0eda075 libgomp/omp_lib.f90.in ! 7443cac321c74f24354ce00172e01ec3 libgomp/omp_lib.h.in 30ceb3811741e12322b00026bbfdf1e5 libgomp/ordered.c 47c08ff69d5d9d3b173bd58c96f13a21 libgomp/parallel.c 368e6e721ed45c2c90d7396d4ed21bad libgomp/sections.c --- 51441,51457 ---- 033ba0d8f9cd68151cebebf17bf33589 libgomp/iter.c 5f2f63229277fb78ee8308c045d7b476 libgomp/iter_ull.c 1f693ed86e1282c2307d65c71055023e libgomp/libgomp.h ! cb364fb5e2911a114c03ff5088059936 libgomp/libgomp.info 6cbe48d155b1725f5e32de30d5daedb4 libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in ! 57242f2ada25ede0584dba75bcb07620 libgomp/libgomp.texi 19cd0ff067db126556be252f2c754934 libgomp/libgomp_f.h.in 23a87a355a8dd0b8bd4c15174738b461 libgomp/libgomp_g.h ddd43eaec8e3214ed28a1fb346758714 libgomp/loop.c aa0f0b8c12c665d06664bf1efc315be1 libgomp/loop_ull.c b41bce1b1aadda6779b912891eba1906 libgomp/omp.h.in ! 1205ac703dbb7f8c65a0d9cc655afe4e libgomp/omp_lib.f90.in ! 9a991ce228c7ab6290f86b0b3265629e libgomp/omp_lib.h.in 30ceb3811741e12322b00026bbfdf1e5 libgomp/ordered.c 47c08ff69d5d9d3b173bd58c96f13a21 libgomp/parallel.c 368e6e721ed45c2c90d7396d4ed21bad libgomp/sections.c *************** ba5ed16a48b3a78511b4913cdd4d7617 libgom *** 51251,51258 **** 5562ceebc0054102930e3944e3d8cea0 libgomp/testsuite/libgomp.c++/atomic-11.C 60fb93a6f619d4375a1224303e0884ea libgomp/testsuite/libgomp.c++/atomic-12.C a56e4a1dad7c21fecfbf5dd26cb1f86a libgomp/testsuite/libgomp.c++/atomic-13.C ! 63da250a39155cc5c2679f50bafe413a libgomp/testsuite/libgomp.c++/atomic-14.C ! 998d78d48199bf9a944cf00743b4f08e libgomp/testsuite/libgomp.c++/atomic-15.C 11dca764f708d500baba4ceaa6de9b54 libgomp/testsuite/libgomp.c++/atomic-2.C ed304e6a8199d4a60a7bb4acd1a4f4fc libgomp/testsuite/libgomp.c++/atomic-3.C f944acede3f9beeaf281ef9282c0ff44 libgomp/testsuite/libgomp.c++/atomic-4.C --- 51470,51477 ---- 5562ceebc0054102930e3944e3d8cea0 libgomp/testsuite/libgomp.c++/atomic-11.C 60fb93a6f619d4375a1224303e0884ea libgomp/testsuite/libgomp.c++/atomic-12.C a56e4a1dad7c21fecfbf5dd26cb1f86a libgomp/testsuite/libgomp.c++/atomic-13.C ! f5aa3b6a543d3042289d53904701574b libgomp/testsuite/libgomp.c++/atomic-14.C ! 156c6a231b71803eea67391fb8826eab libgomp/testsuite/libgomp.c++/atomic-15.C 11dca764f708d500baba4ceaa6de9b54 libgomp/testsuite/libgomp.c++/atomic-2.C ed304e6a8199d4a60a7bb4acd1a4f4fc libgomp/testsuite/libgomp.c++/atomic-3.C f944acede3f9beeaf281ef9282c0ff44 libgomp/testsuite/libgomp.c++/atomic-4.C *************** e4c259ceb3f0850ee4a9c2d8db93fa19 libgom *** 51289,51295 **** cf8630c02b905d98e08a439066bb9815 libgomp/testsuite/libgomp.c++/ctor-8.C 0bd7fe39119bfc0574561c1e381edc5b libgomp/testsuite/libgomp.c++/ctor-9.C e1ee4867ce68141a641f925070e14fdc libgomp/testsuite/libgomp.c++/for-1.C ! a669a7a87be033fa10ce5831ba56bd7b libgomp/testsuite/libgomp.c++/for-10.C dfe85033dffc4c50dfe322315583cac7 libgomp/testsuite/libgomp.c++/for-11.C b64542faf55a399e300d1e45dd199dea libgomp/testsuite/libgomp.c++/for-2.C ea264f143b0032900269cff3dd21e0cc libgomp/testsuite/libgomp.c++/for-3.C --- 51508,51514 ---- cf8630c02b905d98e08a439066bb9815 libgomp/testsuite/libgomp.c++/ctor-8.C 0bd7fe39119bfc0574561c1e381edc5b libgomp/testsuite/libgomp.c++/ctor-9.C e1ee4867ce68141a641f925070e14fdc libgomp/testsuite/libgomp.c++/for-1.C ! 325a8a87e18b89a296100f50ff483415 libgomp/testsuite/libgomp.c++/for-10.C dfe85033dffc4c50dfe322315583cac7 libgomp/testsuite/libgomp.c++/for-11.C b64542faf55a399e300d1e45dd199dea libgomp/testsuite/libgomp.c++/for-2.C ea264f143b0032900269cff3dd21e0cc libgomp/testsuite/libgomp.c++/for-3.C *************** a1833069552b16c28ced3f3d98d919bd libgom *** 51346,51351 **** --- 51565,51575 ---- 4c94d5cac60e507291540a0f2e3436c1 libgomp/testsuite/libgomp.c++/simd-6.C 56e5a5def81a4763b39f8f8ea0468a5e libgomp/testsuite/libgomp.c++/simd-7.C 5e39603f7135e44a8a4eddc2486914e0 libgomp/testsuite/libgomp.c++/simd-8.C + e7079692a564dbf5ba9a4e6b88667164 libgomp/testsuite/libgomp.c++/simd-9.C + efbd2e4864876ba2f991a788cf935827 libgomp/testsuite/libgomp.c++/simd10.C + 25dbd1440a09a94fee9305462af883ac libgomp/testsuite/libgomp.c++/simd11.C + 4943afa1e0250f27fcf341e04af0c9cb libgomp/testsuite/libgomp.c++/simd12.C + 96c3fedeca45853d33c4b89a99b13bf7 libgomp/testsuite/libgomp.c++/simd13.C 989f18f6eb61c820627dc227d206e00d libgomp/testsuite/libgomp.c++/single-1.C fa90d4613f21c2fc2203f662585b40a3 libgomp/testsuite/libgomp.c++/single-2.C 7d0f24f8edab30e9e5aa2d3f5133e9f4 libgomp/testsuite/libgomp.c++/single-3.C *************** b5f7bab4126564eb440b88c3b697d94b libgom *** 51405,51411 **** 85ee71c5eb239b17bb9095c68fbcb661 libgomp/testsuite/libgomp.c/atomic-14.c 33127ad11444516f01f50d3c91a2f1d6 libgomp/testsuite/libgomp.c/atomic-15.c 6f72ee0577bc6156aa5c8df3b6419bbb libgomp/testsuite/libgomp.c/atomic-16.c ! 0ad9f2e3d666958d47ff539a07b4b3e4 libgomp/testsuite/libgomp.c/atomic-17.c b2cad381aa4dd3db0ef4c2a7e632baf1 libgomp/testsuite/libgomp.c/atomic-2.c b0fbce555e04a1378026d70e19942300 libgomp/testsuite/libgomp.c/atomic-3.c 55ed566464c81304a5007804570816ec libgomp/testsuite/libgomp.c/atomic-4.c --- 51629,51635 ---- 85ee71c5eb239b17bb9095c68fbcb661 libgomp/testsuite/libgomp.c/atomic-14.c 33127ad11444516f01f50d3c91a2f1d6 libgomp/testsuite/libgomp.c/atomic-15.c 6f72ee0577bc6156aa5c8df3b6419bbb libgomp/testsuite/libgomp.c/atomic-16.c ! 0ab38a97361e81570c040a605673de79 libgomp/testsuite/libgomp.c/atomic-17.c b2cad381aa4dd3db0ef4c2a7e632baf1 libgomp/testsuite/libgomp.c/atomic-2.c b0fbce555e04a1378026d70e19942300 libgomp/testsuite/libgomp.c/atomic-3.c 55ed566464c81304a5007804570816ec libgomp/testsuite/libgomp.c/atomic-4.c *************** de1b3aba7d6f4f22f41698059f92139b libgom *** 51437,51444 **** eee3a5f96082366f174ca0d6447da3d9 libgomp/testsuite/libgomp.c/depend-4.c 6658653ddd5ca0b2b531abd1158e9371 libgomp/testsuite/libgomp.c/for-1.c c8a38164050e9ce322ff7c77a9f0f96c libgomp/testsuite/libgomp.c/for-1.h ! 4ba00234487347368a6840b472021871 libgomp/testsuite/libgomp.c/for-2.c ! afbaf65a5d3f8a65a3bd27fe69af97b7 libgomp/testsuite/libgomp.c/for-2.h a2c7676fd46d069ce39b4d8a7c16ba5d libgomp/testsuite/libgomp.c/for-3.c 00d45ed4a463f0629d2d21a38fe0073a libgomp/testsuite/libgomp.c/icv-1.c 6619bda92e7a29f372b1a0bc19ef2c79 libgomp/testsuite/libgomp.c/icv-2.c --- 51661,51668 ---- eee3a5f96082366f174ca0d6447da3d9 libgomp/testsuite/libgomp.c/depend-4.c 6658653ddd5ca0b2b531abd1158e9371 libgomp/testsuite/libgomp.c/for-1.c c8a38164050e9ce322ff7c77a9f0f96c libgomp/testsuite/libgomp.c/for-1.h ! 41fae244753e1767688f062024db0e24 libgomp/testsuite/libgomp.c/for-2.c ! 2cf8aa5f45f0ddc2da9d951ba4897c71 libgomp/testsuite/libgomp.c/for-2.h a2c7676fd46d069ce39b4d8a7c16ba5d libgomp/testsuite/libgomp.c/for-3.c 00d45ed4a463f0629d2d21a38fe0073a libgomp/testsuite/libgomp.c/icv-1.c 6619bda92e7a29f372b1a0bc19ef2c79 libgomp/testsuite/libgomp.c/icv-2.c *************** eedf4ded48f258d9de2bce91fae39374 libgom *** 51454,51459 **** --- 51678,51684 ---- 683302cd2c348c750020ecdfcfa8c7de libgomp/testsuite/libgomp.c/loop-13.c 81cd8a77c25ea49d08f07250f984f35d libgomp/testsuite/libgomp.c/loop-14.c dffc3aabaa5b2461aa560fc66c80c0fe libgomp/testsuite/libgomp.c/loop-15.c + 8257d204f0bf53b53ae5433dcee92216 libgomp/testsuite/libgomp.c/loop-16.c fcf0b70da92fc55e6cdd5d1a77923dc3 libgomp/testsuite/libgomp.c/loop-2.c 2d311b74a086fbde01cc1251018f8c89 libgomp/testsuite/libgomp.c/loop-3.c 3e1854d7c928c20929261995df919755 libgomp/testsuite/libgomp.c/loop-4.c *************** aed7e36c7c93e3badbbf11beaf753207 libgom *** 51546,51556 **** --- 51771,51792 ---- 6059443919441f3c8acfe62439b65044 libgomp/testsuite/libgomp.c/shared-2.c 7b472060fcdfa5aa072be093a71d8d41 libgomp/testsuite/libgomp.c/shared-3.c d687c7ee2b97ca318eb2cbe2d9e32923 libgomp/testsuite/libgomp.c/simd-1.c + d584069147624aaa771a8fbe26a34b92 libgomp/testsuite/libgomp.c/simd-10.c + 4b97c8d0be63a89338a88d29f5f0fbad libgomp/testsuite/libgomp.c/simd-11.c + e2fb02a03879cc3eefcf136169a6aa04 libgomp/testsuite/libgomp.c/simd-12.c + 6d5662514cdcb1fa1445426457b8795a libgomp/testsuite/libgomp.c/simd-13.c + b6e3d868c2031082285e4d860a3d50a2 libgomp/testsuite/libgomp.c/simd-14.c + 873b738f8e15236955d11bfcb97f6032 libgomp/testsuite/libgomp.c/simd-15.c + 027b30720640c006221c9b4acfb8c976 libgomp/testsuite/libgomp.c/simd-16.c + 91a244fceb3e523fe73360a1817b9d6d libgomp/testsuite/libgomp.c/simd-17.c d825417b8e2624e2972edaefb1333efd libgomp/testsuite/libgomp.c/simd-2.c 92361ad7427a9ea00af35e9e86485641 libgomp/testsuite/libgomp.c/simd-3.c 8d5767814fdf98dacd112725c1647994 libgomp/testsuite/libgomp.c/simd-4.c 91b5ed7d04f7567188bdb6f72bf88c56 libgomp/testsuite/libgomp.c/simd-5.c da6350b2bde6abd3e194167a5b3eb74f libgomp/testsuite/libgomp.c/simd-6.c + f7ffd498a19cadfe20b0cbe2bd4e62f1 libgomp/testsuite/libgomp.c/simd-7.c + 9bb4ef88871b44e41ac2f641b409f04a libgomp/testsuite/libgomp.c/simd-8.c + b898403c47aaf9326713abfd2c7ed020 libgomp/testsuite/libgomp.c/simd-9.c 21b382f164a90f3510cb97d72b5288b0 libgomp/testsuite/libgomp.c/single-1.c f96d46491425528d3d7b30c80c64952a libgomp/testsuite/libgomp.c/single-2.c a3d6465fcc15265d1c049a81027ae8db libgomp/testsuite/libgomp.c/sort-1.c *************** b7efacf79d1aeccedabb2bb25be9f758 libgom *** 51561,51566 **** --- 51797,51803 ---- 4ebf32f910116d66ca9d291de6853ff9 libgomp/testsuite/libgomp.c/target-5.c 478dec9f49fcb1b67e9fe82cbb95d254 libgomp/testsuite/libgomp.c/target-6.c 6e8611e391b050b0df3fb173cfc1fc67 libgomp/testsuite/libgomp.c/target-7.c + daf22b86ee42ffc308b6a344aea724e9 libgomp/testsuite/libgomp.c/target-8.c 05e0040fe890c467b6069b850ae3a252 libgomp/testsuite/libgomp.c/task-1.c b07f3ce8ad8f8edece7624d18f5d154d libgomp/testsuite/libgomp.c/task-2.c f7ff00e5f2a30832f7f427c91fa1f61b libgomp/testsuite/libgomp.c/task-3.c *************** b467375fe1cd3ce78d417aeb33f9f364 libgom *** 51574,51580 **** --- 51811,51824 ---- 4e04bd947e2e4aa6b0d33535232575a6 libgomp/testsuite/libgomp.c/udr-2.c 26a632a90e3b65f74ab6b734c3fd0d94 libgomp/testsuite/libgomp.c/udr-3.c 35c4904668124586d73a652acb4ed703 libgomp/testsuite/libgomp.c/vla-1.c + 72f799d6a28401fdff759786ae76ed6e libgomp/testsuite/libgomp.fortran/aligned1.f03 + 71944b8bef7f0e4b6f81cf656e8b99d8 libgomp/testsuite/libgomp.fortran/alloc-comp-1.f90 + b8dd09f53416d6c63bc6648223c60f11 libgomp/testsuite/libgomp.fortran/alloc-comp-2.f90 + 71f9dfa4865a762564750c9cb7de2ca7 libgomp/testsuite/libgomp.fortran/alloc-comp-3.f90 56a24835fa9d124fad3d523ffafe3b21 libgomp/testsuite/libgomp.fortran/allocatable1.f90 + 956fa22db4361f8a28a17d9ee348259a libgomp/testsuite/libgomp.fortran/allocatable10.f90 + d21f2d58b9ffe5ef1aaf580180dfdad4 libgomp/testsuite/libgomp.fortran/allocatable11.f90 + 4cc63c460b69cefd0cf2a165978338c6 libgomp/testsuite/libgomp.fortran/allocatable12.f90 927bc460f431a751bec399f6f3f1eae7 libgomp/testsuite/libgomp.fortran/allocatable2.f90 1746499596b2e82f512b2f7679eba1b1 libgomp/testsuite/libgomp.fortran/allocatable3.f90 f32aba254f0d07b32bb09a6665fa5d11 libgomp/testsuite/libgomp.fortran/allocatable4.f90 *************** f32aba254f0d07b32bb09a6665fa5d11 libgom *** 51582,51587 **** --- 51826,51832 ---- 6bd96bc59a02f0cff14cedaa535e2b87 libgomp/testsuite/libgomp.fortran/allocatable6.f90 71d5213bf85633a62cd15b3c8d85606b libgomp/testsuite/libgomp.fortran/allocatable7.f90 a5c3b87debe112259e6655553f327b36 libgomp/testsuite/libgomp.fortran/allocatable8.f90 + ba13b71662af2e95ad0d09be9e3aa86a libgomp/testsuite/libgomp.fortran/allocatable9.f90 d69ebafdf43e748e354c0c05228cdd0c libgomp/testsuite/libgomp.fortran/appendix-a/a.15.1.f90 3f53f7b5eb9ab9c8cb9eb0edfeedad91 libgomp/testsuite/libgomp.fortran/appendix-a/a.16.1.f90 519d7f01f054c7eb7495ba49409d2c51 libgomp/testsuite/libgomp.fortran/appendix-a/a.18.1.f90 *************** c41b35e438ba2e9b553b7a8b4ab48ae1 libgom *** 51606,51611 **** --- 51851,51864 ---- f34e0c37442a4a7019dadca0b34ac11d libgomp/testsuite/libgomp.fortran/appendix-a/a.40.1.f90 04f8ab2d7e7bf368add9b8d8c9a8c1bf libgomp/testsuite/libgomp.fortran/appendix-a/a.5.1.f90 6116086a89b906c26bd9afe26e57a07a libgomp/testsuite/libgomp.fortran/appendix-a/a10.1.f90 + ba05d0e1b584ec6c750d14a486ac83b2 libgomp/testsuite/libgomp.fortran/associate1.f90 + 41cd3ed9183e6bc7b20ef8836663fbdd libgomp/testsuite/libgomp.fortran/associate2.f90 + cb0b79f7bddc47118981784eb7ba6f75 libgomp/testsuite/libgomp.fortran/cancel-do-1.f90 + 2a5fe3d97ff9f23e08df5e015a45e3bc libgomp/testsuite/libgomp.fortran/cancel-do-2.f90 + a110324b7cb72dc5755c1ad39c5230fd libgomp/testsuite/libgomp.fortran/cancel-parallel-1.f90 + e804e30e2adbfe3b45724f1d27673f8a libgomp/testsuite/libgomp.fortran/cancel-parallel-3.f90 + b9afb6ff66c727dc1eae6ec7017f6d44 libgomp/testsuite/libgomp.fortran/cancel-sections-1.f90 + 11bef914844f26ca1de29fda6df378cb libgomp/testsuite/libgomp.fortran/cancel-taskgroup-2.f90 d647e114a637a61f5170b3f577ebeb09 libgomp/testsuite/libgomp.fortran/character1.f90 527829a886591ba771eaaa6b79d07ad6 libgomp/testsuite/libgomp.fortran/character2.f90 98f9782da53de2e437f3670c305d4ea2 libgomp/testsuite/libgomp.fortran/collapse1.f90 *************** c4ac0f05c4dc83a45fe9be076ad84959 libgom *** 51620,51625 **** --- 51873,51884 ---- 4935884f21e6712b4f39b275079f0979 libgomp/testsuite/libgomp.fortran/crayptr1.f90 2fd37c1401303ca48058d885c14bbc9f libgomp/testsuite/libgomp.fortran/crayptr2.f90 a80ce4249b45880d8fb3896d2804747e libgomp/testsuite/libgomp.fortran/crayptr3.f90 + f5efb536310d1e6326052b063becef4e libgomp/testsuite/libgomp.fortran/declare-simd-1.f90 + c0ebd55529e9baf82532c7b2f51f3fe4 libgomp/testsuite/libgomp.fortran/declare-simd-2.f90 + 0ffd85be0cdc2738928b8085de5bcffc libgomp/testsuite/libgomp.fortran/declare-simd-3.f90 + 6e835db912fa2be675117b66187801c7 libgomp/testsuite/libgomp.fortran/depend-1.f90 + 501e003d6de5432f0ae9aabf28a1785b libgomp/testsuite/libgomp.fortran/depend-2.f90 + a569a86614b3eb780060b03cae7470a1 libgomp/testsuite/libgomp.fortran/depend-3.f90 ed11df4baf7b08723fe3d9e881036bed libgomp/testsuite/libgomp.fortran/do1.f90 3e9f4c16fbcd55d7ad1c66acde8a2a71 libgomp/testsuite/libgomp.fortran/do2.f90 45f840dcecbdacf158c18a01710c8763 libgomp/testsuite/libgomp.fortran/fortran.exp *************** b8337eeb8f903e8cba864798369482ad libgom *** 51637,51646 **** --- 51896,51907 ---- 8934ee3a053a4179545b9e79fd5cb2bb libgomp/testsuite/libgomp.fortran/nestedfn2.f90 a9ae54e23bafe9142ed3fee717823360 libgomp/testsuite/libgomp.fortran/nestedfn3.f90 61d44d5f6efe0553ec613e3f73ba1ed5 libgomp/testsuite/libgomp.fortran/nestedfn4.f90 + 5c2e73626905053c6cadd12f341036c4 libgomp/testsuite/libgomp.fortran/nestedfn5.f90 e863b24ed37278eaafc48570498cbbda libgomp/testsuite/libgomp.fortran/omp_atomic1.f90 2453d7412313367c31ca23e641719185 libgomp/testsuite/libgomp.fortran/omp_atomic2.f90 3245438b8d6d4d38923518299c0fcfe7 libgomp/testsuite/libgomp.fortran/omp_atomic3.f90 b7ae32017adcedabb18b40d236b2c2ff libgomp/testsuite/libgomp.fortran/omp_atomic4.f90 + a4dba85fc89bafd4bfeaca52301b1532 libgomp/testsuite/libgomp.fortran/omp_atomic5.f90 571baa2c0ffb5f61a61d1ee7e4744599 libgomp/testsuite/libgomp.fortran/omp_cond1.f 47ef1f5906cca9cb33adf59409c8422d libgomp/testsuite/libgomp.fortran/omp_cond2.f 3f611530c87478c4eefc94de263b2ad6 libgomp/testsuite/libgomp.fortran/omp_cond3.F90 *************** e98c9ef094189dadf79f0fa02389aca2 libgom *** 51654,51661 **** c910dfe57b9f53b8992d397c3571fd09 libgomp/testsuite/libgomp.fortran/omp_reduction.f 77c80068c3418c0e379971a5e4ac91f1 libgomp/testsuite/libgomp.fortran/omp_workshare1.f 4c7b256074253b51c44fe0f469b4512e libgomp/testsuite/libgomp.fortran/omp_workshare2.f ! 4ffb1064fa1cc39ffc18b17145647612 libgomp/testsuite/libgomp.fortran/openmp_version-1.f ! 2f266c96aefe7956c1b41718afd9f2d8 libgomp/testsuite/libgomp.fortran/openmp_version-2.f90 bd4f1fc88afdef5e17260c0d1f276b1b libgomp/testsuite/libgomp.fortran/pointer1.f90 68926972a15f091338fdd2c4911d21c2 libgomp/testsuite/libgomp.fortran/pointer2.f90 6c679ff49d6363b86f77ad4d1ea6ee34 libgomp/testsuite/libgomp.fortran/pr25162.f --- 51915,51922 ---- c910dfe57b9f53b8992d397c3571fd09 libgomp/testsuite/libgomp.fortran/omp_reduction.f 77c80068c3418c0e379971a5e4ac91f1 libgomp/testsuite/libgomp.fortran/omp_workshare1.f 4c7b256074253b51c44fe0f469b4512e libgomp/testsuite/libgomp.fortran/omp_workshare2.f ! 2831b1f46df2aa1dec0adf81da0a77e1 libgomp/testsuite/libgomp.fortran/openmp_version-1.f ! 2c343f6f113766adffe1de8547e1bdf9 libgomp/testsuite/libgomp.fortran/openmp_version-2.f90 bd4f1fc88afdef5e17260c0d1f276b1b libgomp/testsuite/libgomp.fortran/pointer1.f90 68926972a15f091338fdd2c4911d21c2 libgomp/testsuite/libgomp.fortran/pointer2.f90 6c679ff49d6363b86f77ad4d1ea6ee34 libgomp/testsuite/libgomp.fortran/pr25162.f *************** ddd13da7e261528309013b3a49c05bca libgom *** 51677,51682 **** --- 51938,51944 ---- 59e84625ad4e7a9efce95deaae9a6074 libgomp/testsuite/libgomp.fortran/pr48894.f90 40b8d47a0d185d1cd5afdf5de857c4db libgomp/testsuite/libgomp.fortran/pr49792-1.f90 d40bb4d01cb9e310f1f5f2f8112947c3 libgomp/testsuite/libgomp.fortran/pr49792-2.f90 + ed38be90cae92afacea925b0c0c3c356 libgomp/testsuite/libgomp.fortran/procptr1.f90 4af6e9394ddc7a6c89dca2968cac162e libgomp/testsuite/libgomp.fortran/recursion1.f90 f7a52f7caa9a62d15b0f1270dc461c08 libgomp/testsuite/libgomp.fortran/reduction1.f90 0afa716c312eb72430b0e7e942b66c76 libgomp/testsuite/libgomp.fortran/reduction2.f90 *************** d1aa9a0d9140de4ed5479375127bba4b libgom *** 51690,51707 **** --- 51952,52000 ---- 1f82243a8f0a7760c615332b7656be74 libgomp/testsuite/libgomp.fortran/retval2.f90 411e72fddee46be87cb1f3a53f2488e4 libgomp/testsuite/libgomp.fortran/sharing1.f90 3b56e022c6f666bfa9c89a3c28f0a500 libgomp/testsuite/libgomp.fortran/sharing2.f90 + dbb326b55c871713fdc1de45c38a7c23 libgomp/testsuite/libgomp.fortran/simd1.f90 + 8ceea2a4b33050312931a78e4f46bd6f libgomp/testsuite/libgomp.fortran/simd2.f90 + 034f4c3fa611a401281064988a3e228f libgomp/testsuite/libgomp.fortran/simd3.f90 + 462b4c390c030e55cc9db21a19137006 libgomp/testsuite/libgomp.fortran/simd4.f90 + 5861fe58475761f0cb54c8755c49499a libgomp/testsuite/libgomp.fortran/simd5.f90 + d86df9609cefa51152b9350aacb817e1 libgomp/testsuite/libgomp.fortran/simd6.f90 + 870b23ab9545da157e901683ff994ce3 libgomp/testsuite/libgomp.fortran/simd7.f90 166b5da3db2f62a2df7c6d3b58af4eaf libgomp/testsuite/libgomp.fortran/stack.f90 ddb20b7f8cb9aa13372d922fad1ddb95 libgomp/testsuite/libgomp.fortran/strassen.f90 be4a9506a28165677f79dbf7eea9dc39 libgomp/testsuite/libgomp.fortran/tabs1.f90 a8af85b9fb1ec1aac107848d192f6c66 libgomp/testsuite/libgomp.fortran/tabs2.f + 510eea5efdbce62755f50df6244acebe libgomp/testsuite/libgomp.fortran/target1.f90 + e7b2e7644f4981570bf4e4d8123aa095 libgomp/testsuite/libgomp.fortran/target2.f90 + 11a77b021164127357401380e5d1d2da libgomp/testsuite/libgomp.fortran/target3.f90 + 30f9fbc9bb3d35ad4e9ac77e3fa1c4f2 libgomp/testsuite/libgomp.fortran/target4.f90 + da080fe37da01c114e251fc67e64287c libgomp/testsuite/libgomp.fortran/target5.f90 + f66a5081bf7730dffebdba49894d2c54 libgomp/testsuite/libgomp.fortran/target6.f90 + 881ca68a517e287bc011679bb19d953a libgomp/testsuite/libgomp.fortran/target7.f90 + a75ebee6d4c3f7b5a041b1208b48d7e3 libgomp/testsuite/libgomp.fortran/target8.f90 3a4bc67e69df5eb5726956f8c0f6b0c7 libgomp/testsuite/libgomp.fortran/task1.f90 58b7d380f359d6a326f0fc046f014c2d libgomp/testsuite/libgomp.fortran/task2.f90 190771ec6fc8070c1b15d6bc4103cc9e libgomp/testsuite/libgomp.fortran/task3.f90 99b0461034cab757c5038bc87a6a547a libgomp/testsuite/libgomp.fortran/task4.f90 + 6fff773e2d31ef51153c030c719d62e5 libgomp/testsuite/libgomp.fortran/taskgroup1.f90 1d32702e4b540eb31abac9a94083a959 libgomp/testsuite/libgomp.fortran/threadprivate1.f90 789a1579a73a9912a2800d6c6717ad42 libgomp/testsuite/libgomp.fortran/threadprivate2.f90 0825abd8dca38d283771f7bb2d385fb8 libgomp/testsuite/libgomp.fortran/threadprivate3.f90 59c99788fd51984ac1ed8ab7c5df4d35 libgomp/testsuite/libgomp.fortran/threadprivate4.f90 + 211a08e0c9797a94e5c0c7220f19a139 libgomp/testsuite/libgomp.fortran/udr1.f90 + 4782493aba8c54c49e57d5c798e1781d libgomp/testsuite/libgomp.fortran/udr10.f90 + 5e2c1bcf663ecf040fe096a5dce80be6 libgomp/testsuite/libgomp.fortran/udr11.f90 + f293f1be6e5cfc8c8b98dd542706cbce libgomp/testsuite/libgomp.fortran/udr12.f90 + a4dd971f4d8eda45b0dd2611b3eed443 libgomp/testsuite/libgomp.fortran/udr13.f90 + f93bcd7e7f316e54a12fff301c8bb8e1 libgomp/testsuite/libgomp.fortran/udr14.f90 + 90e626816b064f1555d5fbf68caf5d43 libgomp/testsuite/libgomp.fortran/udr15.f90 + a05850a4a0bd9a2361ebfc916b7a9d00 libgomp/testsuite/libgomp.fortran/udr2.f90 + 84da432f1f34fe8f451cd8b9d8bce9fa libgomp/testsuite/libgomp.fortran/udr3.f90 + 850b2de5fa999416ac7aa4cfd2676570 libgomp/testsuite/libgomp.fortran/udr4.f90 + b656a37206639af2edd615193df33ceb libgomp/testsuite/libgomp.fortran/udr5.f90 + 7724c54f6ab053faed6ef4b726537a65 libgomp/testsuite/libgomp.fortran/udr6.f90 + 5373e3f88be1334dc28ffb71eadcf3f8 libgomp/testsuite/libgomp.fortran/udr7.f90 + 24dc784a193aeda044549291e21a0ad7 libgomp/testsuite/libgomp.fortran/udr8.f90 + b468dfcb8761e4a8f3e2caabdf9b2a62 libgomp/testsuite/libgomp.fortran/udr9.f90 fd6becb20369d6ac5a1bacfc014b31a3 libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90 41d6cd26c0dd69586ce6eb144daf2093 libgomp/testsuite/libgomp.fortran/vla1.f90 4263959ee016933e58197580eb07520d libgomp/testsuite/libgomp.fortran/vla2.f90 *************** adeb43ecb87dafa9913dd663bab2ffce libgom *** 51728,51734 **** 54f9ab06f446afe0bc8a6e6f07a83d6c libgomp/work.c 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 780259c74c81d8f8e9301f098331ac53 libiberty/ChangeLog a5d547789d7db4375ced07d9103d520e libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README a23c6974fb1adf6977b5f5454c430bf0 libiberty/_doprnt.c --- 52021,52027 ---- 54f9ab06f446afe0bc8a6e6f07a83d6c libgomp/work.c 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 7c43f6f1245efc0f716b479592ca91f5 libiberty/ChangeLog a5d547789d7db4375ced07d9103d520e libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README a23c6974fb1adf6977b5f5454c430bf0 libiberty/_doprnt.c *************** cdc140ce93944c5bb2ac62cd3dfd86d6 libibe *** 51879,51897 **** 4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c ! 37fe63edbb6d024fa4103fdb8239c407 libitm/ChangeLog 800745ad84882bc445410a58c2fddd51 libitm/Makefile.am 232e2b039eaa7ea7006437397392ae64 libitm/Makefile.in 1529a197c135a0629228fc9d31998589 libitm/aatree.cc 7b1b43184a6209c1b1a137a5fc6065e7 libitm/aatree.h ! 3674449b8cac55a89286179cd0b23809 libitm/acinclude.m4 94efa0c0176ffe7ccddefedbc7bf422c libitm/aclocal.m4 c83d7c56996a8da20b9c4e3fc130ad41 libitm/alloc.cc 80400bb5e438158aca8dc4d4e0682477 libitm/alloc_c.cc a1afed4e585fa3a1b7bcf7bd24e3cca2 libitm/alloc_cpp.cc 22a3b0e50cae33b93cc9092ca4fa4473 libitm/barrier.cc 4a2bae53331d4d3a34927fae2463d106 libitm/beginend.cc - 13c1205a3cbd2d6cd8d6531983c3b639 libitm/clearcap.map 7cd1b6956902226fa26938c62fed3134 libitm/clone.cc 083df06b45dfb981ffb97547251e2bb6 libitm/common.h 05ea82fd12c7b4a030b6310b862ff47d libitm/config.h.in --- 52172,52189 ---- 4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c ! 5def6bc3ce74ccef8d3b4191094a1785 libitm/ChangeLog 800745ad84882bc445410a58c2fddd51 libitm/Makefile.am 232e2b039eaa7ea7006437397392ae64 libitm/Makefile.in 1529a197c135a0629228fc9d31998589 libitm/aatree.cc 7b1b43184a6209c1b1a137a5fc6065e7 libitm/aatree.h ! 60c5bf0d4f3941ae12577c319ae67baa libitm/acinclude.m4 94efa0c0176ffe7ccddefedbc7bf422c libitm/aclocal.m4 c83d7c56996a8da20b9c4e3fc130ad41 libitm/alloc.cc 80400bb5e438158aca8dc4d4e0682477 libitm/alloc_c.cc a1afed4e585fa3a1b7bcf7bd24e3cca2 libitm/alloc_cpp.cc 22a3b0e50cae33b93cc9092ca4fa4473 libitm/barrier.cc 4a2bae53331d4d3a34927fae2463d106 libitm/beginend.cc 7cd1b6956902226fa26938c62fed3134 libitm/clone.cc 083df06b45dfb981ffb97547251e2bb6 libitm/common.h 05ea82fd12c7b4a030b6310b862ff47d libitm/config.h.in *************** c932e770e61c41823c34c8bc35bf1826 libitm *** 51934,51940 **** 7aa2e131698a512bed54804e17ceb065 libitm/config/x86/target.h d2dbbbb75cd9c5edfde395ad53e62153 libitm/config/x86/x86_avx.cc b9557cfa4f6c06b54f305a5b85fd1015 libitm/config/x86/x86_sse.cc ! 0045541ad9f5ae3f0fac08bd0e31c7ce libitm/configure 923e894a4f47f976d8e49af5afc13105 libitm/configure.ac 147a47d0c4814b75a3825c0bca693d99 libitm/configure.tgt 95fda76bdc2a5bcbcfb720b1f3bb1600 libitm/containers.h --- 52226,52232 ---- 7aa2e131698a512bed54804e17ceb065 libitm/config/x86/target.h d2dbbbb75cd9c5edfde395ad53e62153 libitm/config/x86/x86_avx.cc b9557cfa4f6c06b54f305a5b85fd1015 libitm/config/x86/x86_sse.cc ! acc6a26688cae0fd1d43ca2d36a0e0b4 libitm/configure 923e894a4f47f976d8e49af5afc13105 libitm/configure.ac 147a47d0c4814b75a3825c0bca693d99 libitm/configure.tgt 95fda76bdc2a5bcbcfb720b1f3bb1600 libitm/containers.h *************** ef24198422c19f99b0c41be6a16f7081 libitm *** 51981,51987 **** d482ef5219faa907ff83393d6628de60 libitm/useraction.cc b18e667b8febff13520856a6c985a788 libitm/util.cc 94d55d512a9ba36caa9b7df079bae19f libjava/COPYING ! 5e2c838b69c613f1b94fdbd679819755 libjava/ChangeLog 03e1f38b916604fdf1470238201325f3 libjava/ChangeLog-1998 691acb61fbd6a2235826ff55db5578be libjava/ChangeLog-1999 b58c6701706771a02bf00a77666941ef libjava/ChangeLog-2000 --- 52273,52279 ---- d482ef5219faa907ff83393d6628de60 libitm/useraction.cc b18e667b8febff13520856a6c985a788 libitm/util.cc 94d55d512a9ba36caa9b7df079bae19f libjava/COPYING ! b96200f06646d43a62c6048a4e2e2485 libjava/ChangeLog 03e1f38b916604fdf1470238201325f3 libjava/ChangeLog-1998 691acb61fbd6a2235826ff55db5578be libjava/ChangeLog-1999 b58c6701706771a02bf00a77666941ef libjava/ChangeLog-2000 *************** de54f80484e640306e109e785e4611c8 libjav *** 52022,52028 **** 880a25226e4e4e4c241663041d24f8dd libjava/classpath/AUTHORS efd97e0bb913655e0c8b16fa78bdded4 libjava/classpath/BUGS af0004801732bc4b20d90f351cf80510 libjava/classpath/COPYING ! 4f28e8ff207bafea344f2d3918cd861f libjava/classpath/ChangeLog 3418fae58de967afe26d915a4b18d82c libjava/classpath/ChangeLog-2003 a5b72adb94a3c362738b0f52e57a82af libjava/classpath/ChangeLog-2004 61159c6e0802d0d2a92b3051003db5c5 libjava/classpath/ChangeLog-2005 --- 52314,52320 ---- 880a25226e4e4e4c241663041d24f8dd libjava/classpath/AUTHORS efd97e0bb913655e0c8b16fa78bdded4 libjava/classpath/BUGS af0004801732bc4b20d90f351cf80510 libjava/classpath/COPYING ! 42ed4bd3309333bcbbaf241f30327c71 libjava/classpath/ChangeLog 3418fae58de967afe26d915a4b18d82c libjava/classpath/ChangeLog-2003 a5b72adb94a3c362738b0f52e57a82af libjava/classpath/ChangeLog-2004 61159c6e0802d0d2a92b3051003db5c5 libjava/classpath/ChangeLog-2005 *************** b343eec566430e85d1f95c21438aa4ee libjav *** 52063,52080 **** 8e47b82e10c52c7434946f7552f1b333 libjava/classpath/doc/cp-tools.info 0349e5c38c548584225423ef4bafd20b libjava/classpath/doc/cp-tools.texinfo 3155d9bd9a7bf4aff2ff0dfe4a2cb878 libjava/classpath/doc/cp-vmintegration.texinfo ! c0c0e81b77952682626c07d8f3bf48b7 libjava/classpath/doc/gappletviewer.1 ! 8d4c248122d8d8b5aeb543425eb485a0 libjava/classpath/doc/gjar.1 ! 93cac536c263d4c94f75fe011d219f27 libjava/classpath/doc/gjarsigner.1 ! 8a418a99010f0cc7adda21f618d62433 libjava/classpath/doc/gjavah.1 ! 41f9cbbf7a0329e9e58f7531b6e6d58e libjava/classpath/doc/gjdoc.1 ! 25dfd043e4ad42a70874ca7eaa7c7576 libjava/classpath/doc/gkeytool.1 ! 384916dc8f8e2f999ce3a92fc8b620f8 libjava/classpath/doc/gnative2ascii.1 ! 9f05869a4f2ee199e364dead4bbc2186 libjava/classpath/doc/gorbd.1 ! 5a7e049f52bdb1a55390424b51bda8c3 libjava/classpath/doc/grmid.1 ! 077fa87e7b56a0d2d205afb29e7b88e9 libjava/classpath/doc/grmiregistry.1 ! 3bbda322d57e9d53953d3b7d82dcebc1 libjava/classpath/doc/gserialver.1 ! 5a0bcf97da9224b9f415d48d095431b5 libjava/classpath/doc/gtnameserv.1 7e4e31659df1c7e815f9151958dceef2 libjava/classpath/doc/texi2pod.pl 01b23c87dcf82048a5958c8224653305 libjava/classpath/doc/texinfo.tex b1e0c0c30547d57d7a09b04d47c70b06 libjava/classpath/examples/.cvsignore --- 52355,52372 ---- 8e47b82e10c52c7434946f7552f1b333 libjava/classpath/doc/cp-tools.info 0349e5c38c548584225423ef4bafd20b libjava/classpath/doc/cp-tools.texinfo 3155d9bd9a7bf4aff2ff0dfe4a2cb878 libjava/classpath/doc/cp-vmintegration.texinfo ! 3b53b8c2b69159094d75733cf63abc48 libjava/classpath/doc/gappletviewer.1 ! 115cb92b0ffc5a51119f488a13ce566e libjava/classpath/doc/gjar.1 ! 9e39f569a94ac6ba3fa0155a87350708 libjava/classpath/doc/gjarsigner.1 ! d9b29e442a6f0f3fbff7312d391b5b15 libjava/classpath/doc/gjavah.1 ! ed73d4a0b361a6f75d37214b4e1473d0 libjava/classpath/doc/gjdoc.1 ! 9cd43593d014d62c583507bf674ec9f7 libjava/classpath/doc/gkeytool.1 ! efd3c4eafb5daffd5570901d687f9366 libjava/classpath/doc/gnative2ascii.1 ! c9f9abfad9b9e879f347121011b27481 libjava/classpath/doc/gorbd.1 ! d6ec26206a8b4e6f959ae1ca2dc384e1 libjava/classpath/doc/grmid.1 ! a7746f2831d24822c3f518c2f44c4989 libjava/classpath/doc/grmiregistry.1 ! e90c5489749cf9eec13252c3322472d9 libjava/classpath/doc/gserialver.1 ! 52cc4c619dc3de17d05718b2c92732ae libjava/classpath/doc/gtnameserv.1 7e4e31659df1c7e815f9151958dceef2 libjava/classpath/doc/texi2pod.pl 01b23c87dcf82048a5958c8224653305 libjava/classpath/doc/texinfo.tex b1e0c0c30547d57d7a09b04d47c70b06 libjava/classpath/examples/.cvsignore *************** a40a8f1527e2703fe2f08bf7276d8591 libjav *** 74291,74297 **** 697ca1de35069bd86456a5a19b9c4f11 libjava/libgcj.ver 184718636f014ef2ca46d62ba8d6c3bf libjava/libgcj_bc.c e3eda01d9815f8d24aae2dbd89b68b06 libjava/libltdl/COPYING.LIB ! 280ac83707eb05cd59d920b5e7af6a6e libjava/libltdl/ChangeLog 349267319e3d55dcf180a20f85394144 libjava/libltdl/Makefile.am 930c6383a37e6cc8e0625c9a281eda95 libjava/libltdl/Makefile.in 36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README --- 74583,74589 ---- 697ca1de35069bd86456a5a19b9c4f11 libjava/libgcj.ver 184718636f014ef2ca46d62ba8d6c3bf libjava/libgcj_bc.c e3eda01d9815f8d24aae2dbd89b68b06 libjava/libltdl/COPYING.LIB ! 3cde4e147c854a7505649f0c24fcbb14 libjava/libltdl/ChangeLog 349267319e3d55dcf180a20f85394144 libjava/libltdl/Makefile.am 930c6383a37e6cc8e0625c9a281eda95 libjava/libltdl/Makefile.in 36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README *************** d41d8cd98f00b204e9800998ecf8427e libjav *** 75989,75995 **** 434ac04eb066f5075299583492846410 libjava/verify.cc 355440a0c2fb5e16259d7ae381b37ed5 libjava/win32-threads.cc 434d5e5e91727dec004f0d1d1fab47ec libjava/win32.cc ! 13927143527f024eaa30c0c5b9a6b6ad libobjc/ChangeLog 5b7fbdee280ee8842f0d92c076996a91 libobjc/Makefile.in e4893352ae160018db798e6ecf5e5378 libobjc/NXConstStr.m 3989d86c4963b58cd68b2584b937e20a libobjc/Object.m --- 76281,76287 ---- 434ac04eb066f5075299583492846410 libjava/verify.cc 355440a0c2fb5e16259d7ae381b37ed5 libjava/win32-threads.cc 434d5e5e91727dec004f0d1d1fab47ec libjava/win32.cc ! 03a1b5f3b4fd735e510d24f1bee46af0 libobjc/ChangeLog 5b7fbdee280ee8842f0d92c076996a91 libobjc/Makefile.in e4893352ae160018db798e6ecf5e5378 libobjc/NXConstStr.m 3989d86c4963b58cd68b2584b937e20a libobjc/Object.m *************** bf68b180d5f82fed7851e900d9c2e00e libobj *** 76047,76053 **** 8824087a6da69f8b39bb0b25a8097646 libobjc/sendmsg.c e6a04cd604bd9234cf63edd367b0d90c libobjc/thr.c a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 2b2c0ccadbb525a55c204dc7f1f1561f libquadmath/ChangeLog 76ca0ca0f1d83d1c11535e45e1044572 libquadmath/Makefile.am e786ca4a729f6b1b34b37c7d15a02ae5 libquadmath/Makefile.in 4c8b4478a1031d129e7cc6b341876b99 libquadmath/acinclude.m4 --- 76339,76345 ---- 8824087a6da69f8b39bb0b25a8097646 libobjc/sendmsg.c e6a04cd604bd9234cf63edd367b0d90c libobjc/thr.c a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! aabf04a57ae6c00023e007e726360064 libquadmath/ChangeLog 76ca0ca0f1d83d1c11535e45e1044572 libquadmath/Makefile.am e786ca4a729f6b1b34b37c7d15a02ae5 libquadmath/Makefile.in 4c8b4478a1031d129e7cc6b341876b99 libquadmath/acinclude.m4 *************** e766022f8615b72cbc38335d262e9d3d libqua *** 76178,76184 **** a81cc82679e80c86cfbd5575867450d0 libquadmath/strtod/strtod_l.c da808e110fc09ebd41ebd405790a70df libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c ! f43703fb95087ae5f6a8ab8a0793339f libsanitizer/ChangeLog 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 5c6a385040bdd0ebb0bc0a3498a6f538 libsanitizer/MERGE 8a92cfa8e4db49510b1a78b9b175583d libsanitizer/Makefile.am --- 76470,76476 ---- a81cc82679e80c86cfbd5575867450d0 libquadmath/strtod/strtod_l.c da808e110fc09ebd41ebd405790a70df libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c ! c02cb224eaa3a464e5510b840b966448 libsanitizer/ChangeLog 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 5c6a385040bdd0ebb0bc0a3498a6f538 libsanitizer/MERGE 8a92cfa8e4db49510b1a78b9b175583d libsanitizer/Makefile.am *************** b5ce42595a9ea1f02cd73595c9bd9366 libsan *** 76401,76407 **** 2219f17a5c8740755ef8e9831cbaa8fe libsanitizer/ubsan/ubsan_type_hash.h e3dd09193c7915da7b4966ed821529c1 libsanitizer/ubsan/ubsan_value.cc b223f4ad4acdcad3f796a2d39e6ff81e libsanitizer/ubsan/ubsan_value.h ! c4385c8d28ba876e17f6242c3e904267 libssp/ChangeLog 01d9954c400db04da1b8705029e6d9d9 libssp/Makefile.am 6f9651cc4e77f9e7629b0142b05a90e0 libssp/Makefile.in 8b0dd0c2a8b446bf5577a8562ad19885 libssp/aclocal.m4 --- 76693,76699 ---- 2219f17a5c8740755ef8e9831cbaa8fe libsanitizer/ubsan/ubsan_type_hash.h e3dd09193c7915da7b4966ed821529c1 libsanitizer/ubsan/ubsan_value.cc b223f4ad4acdcad3f796a2d39e6ff81e libsanitizer/ubsan/ubsan_value.h ! 53db63ea57cf4b324d38c8e9f41682a3 libssp/ChangeLog 01d9954c400db04da1b8705029e6d9d9 libssp/Makefile.am 6f9651cc4e77f9e7629b0142b05a90e0 libssp/Makefile.in 8b0dd0c2a8b446bf5577a8562ad19885 libssp/aclocal.m4 *************** aeb2f84c5e8ba3215469d507bd2efe57 libssp *** 76430,76436 **** e9ab923d2562bf5f5be6883dfb9f0184 libssp/strncpy-chk.c 5e0d8b8a766c31b12354baec1b7a159c libssp/vsnprintf-chk.c f56ab1f8922a16f7e9e4f5270ae1e34e libssp/vsprintf-chk.c ! 1a8f6e700007b6a608009660de48ebc7 libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 --- 76722,76728 ---- e9ab923d2562bf5f5be6883dfb9f0184 libssp/strncpy-chk.c 5e0d8b8a766c31b12354baec1b7a159c libssp/vsnprintf-chk.c f56ab1f8922a16f7e9e4f5270ae1e34e libssp/vsprintf-chk.c ! 6b86d49ce89be74236bb5539c0bf3e9a libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** e24504647642dbafa49db140acc95c21 libstd *** 76643,76649 **** 1d3eb837e8c17cf0d0ad6d151e8d1777 libstdc++-v3/doc/html/ext/lwg-active.html 68372fa89a0decb4aa5f941df5484129 libstdc++-v3/doc/html/ext/lwg-closed.html 2defa75c6dc8ce9a6f6b775439df3b7c libstdc++-v3/doc/html/ext/lwg-defects.html ! a14649ebd9755de4404f37ba6732487d libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png --- 76935,76941 ---- 1d3eb837e8c17cf0d0ad6d151e8d1777 libstdc++-v3/doc/html/ext/lwg-active.html 68372fa89a0decb4aa5f941df5484129 libstdc++-v3/doc/html/ext/lwg-closed.html 2defa75c6dc8ce9a6f6b775439df3b7c libstdc++-v3/doc/html/ext/lwg-defects.html ! c69ec11cafce0d5c44cae4cd87842360 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png *************** e1f4e8c45aef131bced71b1a7fcae8d6 libstd *** 76831,76837 **** f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! ee2a1b703e1eb8fc3aaac1c05aec6e41 libstdc++-v3/doc/xml/faq.xml 0408e04957d20fcb2a1048c482230ec0 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml df4574d04d7f029398ab0183832017b6 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot --- 77123,77129 ---- f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! a017272ecd74d4bd4949fd4ce69b337e libstdc++-v3/doc/xml/faq.xml 0408e04957d20fcb2a1048c482230ec0 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml df4574d04d7f029398ab0183832017b6 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot *************** c636510c157da389af5eec411942cfa6 libstd *** 77100,77106 **** 91203e2a620dcff7176bced04d474d2e libstdc++-v3/include/bits/functional_hash.h 3a5c3b695bc6a8715b2d70e8c2f9f2ff libstdc++-v3/include/bits/gslice.h b6807699296278224532f23ba4838e6c libstdc++-v3/include/bits/gslice_array.h ! d498eec3bc5ba12914e4497bf436cb00 libstdc++-v3/include/bits/hashtable.h 9700c22307c69c419f5ce1653aa56128 libstdc++-v3/include/bits/hashtable_policy.h e4a2fdc54d33a55caaa4b27be128f84a libstdc++-v3/include/bits/indirect_array.h 2d1e6e437cad5c97116088dded5da482 libstdc++-v3/include/bits/ios_base.h --- 77392,77398 ---- 91203e2a620dcff7176bced04d474d2e libstdc++-v3/include/bits/functional_hash.h 3a5c3b695bc6a8715b2d70e8c2f9f2ff libstdc++-v3/include/bits/gslice.h b6807699296278224532f23ba4838e6c libstdc++-v3/include/bits/gslice_array.h ! a85e548377ccf42ef83ed339308093b9 libstdc++-v3/include/bits/hashtable.h 9700c22307c69c419f5ce1653aa56128 libstdc++-v3/include/bits/hashtable_policy.h e4a2fdc54d33a55caaa4b27be128f84a libstdc++-v3/include/bits/indirect_array.h 2d1e6e437cad5c97116088dded5da482 libstdc++-v3/include/bits/ios_base.h *************** fa4fc451d4d980056e5bb42f077d30d1 libstd *** 77128,77144 **** ad4740e59e8cbd9ac6b9be2d488a3ff8 libstdc++-v3/include/bits/regex.h 649cb03167606d553e53cbe051581c71 libstdc++-v3/include/bits/regex.tcc 373a94fd87da4362c71ba2d3ac8076ce libstdc++-v3/include/bits/regex_automaton.h ! bd70946861bab70b4d2960a772a42568 libstdc++-v3/include/bits/regex_automaton.tcc ! b5c7637da9dc934e6b3361189c540bc3 libstdc++-v3/include/bits/regex_compiler.h ! 6e87e732acdc9f133eedde3cad7fc3f2 libstdc++-v3/include/bits/regex_compiler.tcc fcf411de1eb0b855de59fa82d47ed503 libstdc++-v3/include/bits/regex_constants.h 267e61d65dd573a232e4794b8a41c090 libstdc++-v3/include/bits/regex_error.h 87657e7a2c416958809f7ddbeb0340c0 libstdc++-v3/include/bits/regex_executor.h ! 4f14def11f42509666af99f46fb8eea0 libstdc++-v3/include/bits/regex_executor.tcc 40d92d78e2e4d68bd737a1c39f1e8c9a libstdc++-v3/include/bits/regex_scanner.h cb07487a8c867ffe44908705172d1d83 libstdc++-v3/include/bits/regex_scanner.tcc ebd42997721b883b0c545520f6e1923d libstdc++-v3/include/bits/shared_ptr.h ! 2c73a21b63642d56430e02d019b9a72c libstdc++-v3/include/bits/shared_ptr_base.h 6a86488bbca653f3a59bb8fa94b4e8a2 libstdc++-v3/include/bits/slice_array.h 6571ee6b9bcceaf19c56c7480d662850 libstdc++-v3/include/bits/sstream.tcc 6612703d15fae484dd38041011614cd2 libstdc++-v3/include/bits/stl_algo.h --- 77420,77436 ---- ad4740e59e8cbd9ac6b9be2d488a3ff8 libstdc++-v3/include/bits/regex.h 649cb03167606d553e53cbe051581c71 libstdc++-v3/include/bits/regex.tcc 373a94fd87da4362c71ba2d3ac8076ce libstdc++-v3/include/bits/regex_automaton.h ! 0e859039cfef2b8e10086955d682f645 libstdc++-v3/include/bits/regex_automaton.tcc ! c9c0486da3c81cb40ea3367cdd91f8c0 libstdc++-v3/include/bits/regex_compiler.h ! 4987af0d9f1776172a13cf84b43f55a2 libstdc++-v3/include/bits/regex_compiler.tcc fcf411de1eb0b855de59fa82d47ed503 libstdc++-v3/include/bits/regex_constants.h 267e61d65dd573a232e4794b8a41c090 libstdc++-v3/include/bits/regex_error.h 87657e7a2c416958809f7ddbeb0340c0 libstdc++-v3/include/bits/regex_executor.h ! d999eb2188ec36f75633f184618ea95f libstdc++-v3/include/bits/regex_executor.tcc 40d92d78e2e4d68bd737a1c39f1e8c9a libstdc++-v3/include/bits/regex_scanner.h cb07487a8c867ffe44908705172d1d83 libstdc++-v3/include/bits/regex_scanner.tcc ebd42997721b883b0c545520f6e1923d libstdc++-v3/include/bits/shared_ptr.h ! 73934af07bbc86b6572b24058ba7f506 libstdc++-v3/include/bits/shared_ptr_base.h 6a86488bbca653f3a59bb8fa94b4e8a2 libstdc++-v3/include/bits/slice_array.h 6571ee6b9bcceaf19c56c7480d662850 libstdc++-v3/include/bits/sstream.tcc 6612703d15fae484dd38041011614cd2 libstdc++-v3/include/bits/stl_algo.h *************** ebd42997721b883b0c545520f6e1923d libstd *** 77148,77154 **** 31b2e6563922b13c61f34302db1e0895 libstdc++-v3/include/bits/stl_deque.h 564c232f6a3984a902168c5ed63dee3d libstdc++-v3/include/bits/stl_function.h e94510088da5bc4e0335075b0964b5a3 libstdc++-v3/include/bits/stl_heap.h ! ef1aefd927cd362719132b6701a0527e libstdc++-v3/include/bits/stl_iterator.h 430ba07bbc7a44cc10ce3890ca06a940 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 032892ca6b0d5c74ee60b73ef2a30cf1 libstdc++-v3/include/bits/stl_iterator_base_types.h a26666e5ba01046b83884d262adef1ca libstdc++-v3/include/bits/stl_list.h --- 77440,77446 ---- 31b2e6563922b13c61f34302db1e0895 libstdc++-v3/include/bits/stl_deque.h 564c232f6a3984a902168c5ed63dee3d libstdc++-v3/include/bits/stl_function.h e94510088da5bc4e0335075b0964b5a3 libstdc++-v3/include/bits/stl_heap.h ! 18667479413ea2ec58c9d8dd1f83bcfc libstdc++-v3/include/bits/stl_iterator.h 430ba07bbc7a44cc10ce3890ca06a940 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 032892ca6b0d5c74ee60b73ef2a30cf1 libstdc++-v3/include/bits/stl_iterator_base_types.h a26666e5ba01046b83884d262adef1ca libstdc++-v3/include/bits/stl_list.h *************** c7775476ce9b7afb9233ef7bdf872cd4 libstd *** 77163,77171 **** a0088f41806a01bec922402b3eca201c libstdc++-v3/include/bits/stl_set.h 7d7a50c1bcb46613e4ec87b9c376df26 libstdc++-v3/include/bits/stl_stack.h ba1d780f102f7ce8ebfcb87dd4a48d7b libstdc++-v3/include/bits/stl_tempbuf.h ! a8129e4da6ba88dd94051aa5f64667ed libstdc++-v3/include/bits/stl_tree.h 8f773b6de66ac394bddf286331b71818 libstdc++-v3/include/bits/stl_uninitialized.h ! 5d5c1e9bbf937f39841caaecbd05757f libstdc++-v3/include/bits/stl_vector.h 4a227ea0bd121a073811a974d1d3f9b9 libstdc++-v3/include/bits/stream_iterator.h 122883005110d85812da6f01829e96e9 libstdc++-v3/include/bits/streambuf.tcc 1c437562e43cf8a7a1f4ba02bb308f04 libstdc++-v3/include/bits/streambuf_iterator.h --- 77455,77463 ---- a0088f41806a01bec922402b3eca201c libstdc++-v3/include/bits/stl_set.h 7d7a50c1bcb46613e4ec87b9c376df26 libstdc++-v3/include/bits/stl_stack.h ba1d780f102f7ce8ebfcb87dd4a48d7b libstdc++-v3/include/bits/stl_tempbuf.h ! cc79503887a370ccd44ef029cca3e47f libstdc++-v3/include/bits/stl_tree.h 8f773b6de66ac394bddf286331b71818 libstdc++-v3/include/bits/stl_uninitialized.h ! 647b57eaafb7ef6fa20b9974a21cd063 libstdc++-v3/include/bits/stl_vector.h 4a227ea0bd121a073811a974d1d3f9b9 libstdc++-v3/include/bits/stream_iterator.h 122883005110d85812da6f01829e96e9 libstdc++-v3/include/bits/streambuf.tcc 1c437562e43cf8a7a1f4ba02bb308f04 libstdc++-v3/include/bits/streambuf_iterator.h *************** ffe4b2ce633d829846436fb65cfa1510 libstd *** 77178,77184 **** 918fb95f55f1fe8f78197411d268b5c1 libstdc++-v3/include/bits/valarray_array.h 4a627b9075252068afa8da4696a387fc libstdc++-v3/include/bits/valarray_array.tcc 485a0086425b2772da4e15fd41433c43 libstdc++-v3/include/bits/valarray_before.h ! d7147c7c297fdc86dcf25ab4ef8b0985 libstdc++-v3/include/bits/vector.tcc c2ea3321ad369e72704e3afde6828ecb libstdc++-v3/include/c/cassert ae6a534cd39eaec2a78f42fcf9df0039 libstdc++-v3/include/c/cctype a4c5d9b471b21331d7351b5999bb5710 libstdc++-v3/include/c/cerrno --- 77470,77476 ---- 918fb95f55f1fe8f78197411d268b5c1 libstdc++-v3/include/bits/valarray_array.h 4a627b9075252068afa8da4696a387fc libstdc++-v3/include/bits/valarray_array.tcc 485a0086425b2772da4e15fd41433c43 libstdc++-v3/include/bits/valarray_before.h ! 6034ae6655f7418322c7bc1cd98eba08 libstdc++-v3/include/bits/vector.tcc c2ea3321ad369e72704e3afde6828ecb libstdc++-v3/include/c/cassert ae6a534cd39eaec2a78f42fcf9df0039 libstdc++-v3/include/c/cctype a4c5d9b471b21331d7351b5999bb5710 libstdc++-v3/include/c/cerrno *************** ab1016486b6656005c913345e073abcf libstd *** 77292,77301 **** 37dcb5505d644050637f490189f58833 libstdc++-v3/include/debug/string 56f3ad660e8300705b324a3f985b90c1 libstdc++-v3/include/debug/unordered_map 5e4e3827840ba1320c7dddbd85f56ebd libstdc++-v3/include/debug/unordered_set ! 7c7720a25327cff231296154af94ae1a libstdc++-v3/include/debug/vector 7e2551d2c2dd7bb997d42a690593b3fa libstdc++-v3/include/decimal/decimal ac52c8af39627ef083a226df42fc31fb libstdc++-v3/include/decimal/decimal.h ! ef11306e00bcc0f4f269855252b1aeaa libstdc++-v3/include/experimental/optional 5c356e2454335ced2476f7f9fdf04cb9 libstdc++-v3/include/experimental/string_view 25ac6a5e2e4bb3f2cc6cc5879b90ca32 libstdc++-v3/include/experimental/string_view.tcc 246337397419fba205fe59ea330ef425 libstdc++-v3/include/ext/algorithm --- 77584,77593 ---- 37dcb5505d644050637f490189f58833 libstdc++-v3/include/debug/string 56f3ad660e8300705b324a3f985b90c1 libstdc++-v3/include/debug/unordered_map 5e4e3827840ba1320c7dddbd85f56ebd libstdc++-v3/include/debug/unordered_set ! d9f9a801dbe5afcecb48a69ab8d93f32 libstdc++-v3/include/debug/vector 7e2551d2c2dd7bb997d42a690593b3fa libstdc++-v3/include/decimal/decimal ac52c8af39627ef083a226df42fc31fb libstdc++-v3/include/decimal/decimal.h ! 9f57830b191f4bf2721cef3ccf82a697 libstdc++-v3/include/experimental/optional 5c356e2454335ced2476f7f9fdf04cb9 libstdc++-v3/include/experimental/string_view 25ac6a5e2e4bb3f2cc6cc5879b90ca32 libstdc++-v3/include/experimental/string_view.tcc 246337397419fba205fe59ea330ef425 libstdc++-v3/include/ext/algorithm *************** b405e08a37e04a980f1d9aa24cd89cdd libstd *** 77669,77680 **** bdd91fa0453fe14cc18653b7dc6927f2 libstdc++-v3/include/std/deque 99ccf219bea076709ff5aa261b1e2d48 libstdc++-v3/include/std/forward_list 597cc52c077c63f1fdddbfa95c4bdf1f libstdc++-v3/include/std/fstream ! 65b7a77990429e2e268f5b68eef98716 libstdc++-v3/include/std/functional ! d2b9b6f47bf0ff9c65becaac4c387c47 libstdc++-v3/include/std/future ! 5b5ed5e588d574370e630aa6f1a21944 libstdc++-v3/include/std/iomanip 0c0f52522245aad5244a12ae2e638253 libstdc++-v3/include/std/ios 565afcfbf5ba12b6327e4de4d1fd0d2a libstdc++-v3/include/std/iosfwd ! 1f149f33d005cdc244261d6cc211a73b libstdc++-v3/include/std/iostream d86206727695677690dd9b76890a4336 libstdc++-v3/include/std/istream ad8f7a1244f2cf5ed21c08d23c62637a libstdc++-v3/include/std/iterator cdf2ed2088596d3b05077f5394156082 libstdc++-v3/include/std/limits --- 77961,77972 ---- bdd91fa0453fe14cc18653b7dc6927f2 libstdc++-v3/include/std/deque 99ccf219bea076709ff5aa261b1e2d48 libstdc++-v3/include/std/forward_list 597cc52c077c63f1fdddbfa95c4bdf1f libstdc++-v3/include/std/fstream ! 7f133f2fc0f513033e8103e64ffbd5c3 libstdc++-v3/include/std/functional ! 434b825e2b9a95e812434660bc1b494a libstdc++-v3/include/std/future ! a38fecdc41069d0441185ed2f61289d3 libstdc++-v3/include/std/iomanip 0c0f52522245aad5244a12ae2e638253 libstdc++-v3/include/std/ios 565afcfbf5ba12b6327e4de4d1fd0d2a libstdc++-v3/include/std/iosfwd ! 50f28b6730969a973497fa9c1985ce0b libstdc++-v3/include/std/iostream d86206727695677690dd9b76890a4336 libstdc++-v3/include/std/istream ad8f7a1244f2cf5ed21c08d23c62637a libstdc++-v3/include/std/iterator cdf2ed2088596d3b05077f5394156082 libstdc++-v3/include/std/limits *************** fb28860f413b071d148f791cc4d8b916 libstd *** 77699,77706 **** d3b6f528148b5a63ee727c016366da87 libstdc++-v3/include/std/string cb7aa094ede5e41f12cda9a35a0cfb13 libstdc++-v3/include/std/system_error d72a138145b8c940cb7f3df7af9cb1b1 libstdc++-v3/include/std/thread ! 64697bcbc4f5426ee6ea2c644858dc8f libstdc++-v3/include/std/tuple ! ad757c964d01ac611f5409e023630869 libstdc++-v3/include/std/type_traits c4e55f5325a735f9af1b712745d9ef83 libstdc++-v3/include/std/typeindex fc58abad3b04bfec654e4e41b8f83040 libstdc++-v3/include/std/unordered_map 388660882b22dab09ead9c3d8311524c libstdc++-v3/include/std/unordered_set --- 77991,77998 ---- d3b6f528148b5a63ee727c016366da87 libstdc++-v3/include/std/string cb7aa094ede5e41f12cda9a35a0cfb13 libstdc++-v3/include/std/system_error d72a138145b8c940cb7f3df7af9cb1b1 libstdc++-v3/include/std/thread ! 309ae19457bcc8f8a4a30c85e59f5545 libstdc++-v3/include/std/tuple ! b3a20eeb9b198ec90ea8465b308a1af7 libstdc++-v3/include/std/type_traits c4e55f5325a735f9af1b712745d9ef83 libstdc++-v3/include/std/typeindex fc58abad3b04bfec654e4e41b8f83040 libstdc++-v3/include/std/unordered_map 388660882b22dab09ead9c3d8311524c libstdc++-v3/include/std/unordered_set *************** fb7c485aae5cefe5088421705eb30696 libstd *** 77769,77775 **** c0aa2ceab1b70d2d95ca2126121c204b libstdc++-v3/include/tr1/utility c813375cf6045e5a015c25ce62d4caed libstdc++-v3/include/tr1/wchar.h 5ac198e9b27c943cad3e58af9b6356c5 libstdc++-v3/include/tr1/wctype.h ! 409fc18729f44c0bcad2687e7fa61b70 libstdc++-v3/include/tr2/bool_set 826a3b0c14cb3b8a209ac0c4d45c292a libstdc++-v3/include/tr2/bool_set.tcc 03c8a563c7bd76f4bbb11938a00b733c libstdc++-v3/include/tr2/dynamic_bitset 2dfbc06ac68be638046909b28f216775 libstdc++-v3/include/tr2/dynamic_bitset.tcc --- 78061,78067 ---- c0aa2ceab1b70d2d95ca2126121c204b libstdc++-v3/include/tr1/utility c813375cf6045e5a015c25ce62d4caed libstdc++-v3/include/tr1/wchar.h 5ac198e9b27c943cad3e58af9b6356c5 libstdc++-v3/include/tr1/wctype.h ! 1863a97225679f2488dec3f2506f73b0 libstdc++-v3/include/tr2/bool_set 826a3b0c14cb3b8a209ac0c4d45c292a libstdc++-v3/include/tr2/bool_set.tcc 03c8a563c7bd76f4bbb11938a00b733c libstdc++-v3/include/tr2/dynamic_bitset 2dfbc06ac68be638046909b28f216775 libstdc++-v3/include/tr2/dynamic_bitset.tcc *************** ee6661c4f7afc49cc9f88c7592a47ffe libstd *** 77855,77861 **** 1f0d57eef092baee4784e63a2bd21719 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 95073c248e1254cc4b7c8b4ef8dceec7 libstdc++-v3/python/libstdcxx/v6/printers.py b1441422cec6381d9285b7681b666124 libstdc++-v3/scripts/check_compile 533e594add6e79910b0e557ba690fac6 libstdc++-v3/scripts/check_performance f480e111db2d50194a3e1f7014c9f422 libstdc++-v3/scripts/create_testsuite_files --- 78147,78153 ---- 1f0d57eef092baee4784e63a2bd21719 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 1b83b0b9896053a8206a076826e33de2 libstdc++-v3/python/libstdcxx/v6/printers.py b1441422cec6381d9285b7681b666124 libstdc++-v3/scripts/check_compile 533e594add6e79910b0e557ba690fac6 libstdc++-v3/scripts/check_performance f480e111db2d50194a3e1f7014c9f422 libstdc++-v3/scripts/create_testsuite_files *************** c3cb4399fe91e6cb0484984d02d4b4f0 libstd *** 77866,77872 **** f1a84a17158780aaa37927191db4463a libstdc++-v3/scripts/gen_includers2.pl 12339b6ead78d7ddd0044dfd0f9f4f92 libstdc++-v3/scripts/make_exports.pl 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py ! ccbed1ea82cba0214ede86aa0eeeccef libstdc++-v3/scripts/run_doxygen 884bb3241e8e27e818855184b2f4737f libstdc++-v3/scripts/testsuite_flags.in 90d7fef889bdbbc920e1e38d886660ca libstdc++-v3/src/Makefile.am b8f8c4f7127e3c67ca5118cc17870b43 libstdc++-v3/src/Makefile.in --- 78158,78164 ---- f1a84a17158780aaa37927191db4463a libstdc++-v3/scripts/gen_includers2.pl 12339b6ead78d7ddd0044dfd0f9f4f92 libstdc++-v3/scripts/make_exports.pl 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py ! 93834810d190d1876fdb446dc5857f2f libstdc++-v3/scripts/run_doxygen 884bb3241e8e27e818855184b2f4737f libstdc++-v3/scripts/testsuite_flags.in 90d7fef889bdbbc920e1e38d886660ca libstdc++-v3/src/Makefile.am b8f8c4f7127e3c67ca5118cc17870b43 libstdc++-v3/src/Makefile.in *************** c4cd8bac205ed47583ff3f1ecd35676b libstd *** 77917,77923 **** ba8260aee97ff53f868d21a956ace200 libstdc++-v3/src/c++98/ios-inst.cc f4cc74d469720509875160f74fff3aeb libstdc++-v3/src/c++98/ios.cc 33865b886a4fa91608c14b40d0e74673 libstdc++-v3/src/c++98/ios_failure.cc ! 566a4281292275362923b6277ad4e566 libstdc++-v3/src/c++98/ios_init.cc bf46baae6c5f1da47c22b2c072419379 libstdc++-v3/src/c++98/ios_locale.cc ac80c7ec5c0a615662b28990e1094eeb libstdc++-v3/src/c++98/iostream-inst.cc e057f7cce50ac3eba93348a0a06364fe libstdc++-v3/src/c++98/istream-inst.cc --- 78209,78215 ---- ba8260aee97ff53f868d21a956ace200 libstdc++-v3/src/c++98/ios-inst.cc f4cc74d469720509875160f74fff3aeb libstdc++-v3/src/c++98/ios.cc 33865b886a4fa91608c14b40d0e74673 libstdc++-v3/src/c++98/ios_failure.cc ! 1edbe2182283a26697c86fbe00cab5f2 libstdc++-v3/src/c++98/ios_init.cc bf46baae6c5f1da47c22b2c072419379 libstdc++-v3/src/c++98/ios_locale.cc ac80c7ec5c0a615662b28990e1094eeb libstdc++-v3/src/c++98/iostream-inst.cc e057f7cce50ac3eba93348a0a06364fe libstdc++-v3/src/c++98/istream-inst.cc *************** be0089c7c851866f53bec0fddbd0dc7f libstd *** 78195,78201 **** da58a1733a65d67b0138286442f488ce libstdc++-v3/testsuite/20_util/decay/requirements/typedefs-2.cc 1c461b2c7969a95c1981fe59a3c396d7 libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc 67675b70d7a9436cad86d77a166c6743 libstdc++-v3/testsuite/20_util/declval/requirements/1.cc ! 014f87188021138d3fca7da91195f25b libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc fad094d30df0973bbae4de357b71339f libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc 7595192fc239be876d23e6853d014bc6 libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc 88702bac0b1a9d40044560c70fcb3d64 libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc --- 78487,78493 ---- da58a1733a65d67b0138286442f488ce libstdc++-v3/testsuite/20_util/decay/requirements/typedefs-2.cc 1c461b2c7969a95c1981fe59a3c396d7 libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc 67675b70d7a9436cad86d77a166c6743 libstdc++-v3/testsuite/20_util/declval/requirements/1.cc ! 4e8590e176037588c370a2ae3125de83 libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc fad094d30df0973bbae4de357b71339f libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc 7595192fc239be876d23e6853d014bc6 libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc 88702bac0b1a9d40044560c70fcb3d64 libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc *************** cbe0b5843c9880cc627cabcfd14ad8b8 libstd *** 78255,78260 **** --- 78547,78553 ---- d9ab7a7f1b9b6b6acfc774735e8ae71d libstdc++-v3/testsuite/20_util/function/5.cc 5ff95a9327494e5fd5a7bb9548a8f4ed libstdc++-v3/testsuite/20_util/function/58569.cc 9e3c0cf22572df7b8cfad07710c111c9 libstdc++-v3/testsuite/20_util/function/6.cc + fabfe76dc30b13e696bbaf0d3da99caf libstdc++-v3/testsuite/20_util/function/60594.cc 0366f931515bb0f27522d8f32613581b libstdc++-v3/testsuite/20_util/function/7.cc 9ace4aecb05784929a870023e72fa190 libstdc++-v3/testsuite/20_util/function/8.cc 9a4341f79b42e1f66f3258b878bc6cd5 libstdc++-v3/testsuite/20_util/function/9.cc *************** a1833cdedf2e994ad5497051d4d99c1c libstd *** 78489,78503 **** 93f64ae5b11e2ef81b90d83ad6fa599d libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc 74dedb0d3fe0b7f74a64bcbb6c27687c libstdc++-v3/testsuite/20_util/is_volatile/value.cc 1a5b84229d8b958ab58228ec8aed383f libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc ! 67ad8c96d3340164fa61a11e3525d32a libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc ! 47ea48d675533175f5dd90261459f687 libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc 7c9fee49549fbd106a03c68f6bc2f535 libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc ! a4e5ca35f5d43b19cb9a556fe7d75858 libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc 101ce647b6cbe6cdb1e2470e3f2df996 libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc ! 552824da455eaf0fec634cb58888b9a8 libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc ! 3b59b2758f4c2c3e1f0415810f1921dd libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc c9ec1269f88911267709a4b143fb0cb9 libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc ! 56378cf510e8f72ec07c806ce1d4705c libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc d37a7bb283bf94ade6ce11e3e7f3efc2 libstdc++-v3/testsuite/20_util/move/1.cc 94459598aa0d15ed5349e0514011cbf4 libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc 8b6cc534bce6a36ed392ffa4bc840f2f libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc --- 78782,78797 ---- 93f64ae5b11e2ef81b90d83ad6fa599d libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc 74dedb0d3fe0b7f74a64bcbb6c27687c libstdc++-v3/testsuite/20_util/is_volatile/value.cc 1a5b84229d8b958ab58228ec8aed383f libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc ! 93a28511ca80a4ab934ab1ee75e8da26 libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc ! 453060e5a140ac4d00d0778f5563384d libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc 7c9fee49549fbd106a03c68f6bc2f535 libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc ! 858096e31333568b2fb89852b8d0548f libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-4.cc ! 12b329b0322d1a9a94cbb89dc2ee4a91 libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc 101ce647b6cbe6cdb1e2470e3f2df996 libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc ! 67019f2db5c8b8f0c0da6e6f1a21cc9d libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc ! 642a17c6cf8993d24dfbc054f50724ec libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc c9ec1269f88911267709a4b143fb0cb9 libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc ! b61109ad287ad3c78df29934e9941e02 libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc d37a7bb283bf94ade6ce11e3e7f3efc2 libstdc++-v3/testsuite/20_util/move/1.cc 94459598aa0d15ed5349e0514011cbf4 libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc 8b6cc534bce6a36ed392ffa4bc840f2f libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc *************** ad00ade7e7b678c031a00a6371c5120d libstd *** 78612,78617 **** --- 78906,78912 ---- 5d0781c37d398f45d346557df8346d0a libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc 72be9b573ae9730908ba49362a208f32 libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc e47350c38a5a123564392ac3d8070833 libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc + 18099d5eb630735b727ff66874b6b79a libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc 56294d2ef9d9d9fd6f7c992ac3c7abff libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc a07139730396a79913c3fc0485af03cc libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc 9ae93bfe04caf93a462c94cca031dfb6 libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc_min.cc *************** ea8970008dcfc507b732a77b6b6274e5 libstd *** 78687,78692 **** --- 78982,78988 ---- 27943d64279528f9141bfe71482464d4 libstdc++-v3/testsuite/20_util/tuple/48476.cc 04b82209ed6c0210db27506ad3187c7e libstdc++-v3/testsuite/20_util/tuple/51365.cc c54af389d65573764200bfb0b3597473 libstdc++-v3/testsuite/20_util/tuple/53648.cc + 073f9c2ec2806d897dd09a059663bb00 libstdc++-v3/testsuite/20_util/tuple/60497.cc ee9b755981731038f237341ae8a7dc3f libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc 87df08a010e0029b0c82f3c2bac6d87e libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc 9a077a11db7228f699befe4f0726869a libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc *************** ea83f02105f67cd2e534cf606978fa70 libstd *** 78717,78723 **** 2f22ce23afcfa03f328a20dc01644cef libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc 85e7acd70fe1e294191b94bf834edc71 libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc c546df3b4ba74ac64a0cb4ea57c630d6 libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc ! 47d52c21660355a1a72bdd9469f1a6e7 libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc fad4ad5ad40bf44ea48788d9a6dab764 libstdc++-v3/testsuite/20_util/tuple/moveable.cc 6eaa1af34a5882c3de54ba11243799e0 libstdc++-v3/testsuite/20_util/tuple/moveable2.cc 6d5abe1c79608785a6a722e8fdc802c5 libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc --- 79013,79019 ---- 2f22ce23afcfa03f328a20dc01644cef libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc 85e7acd70fe1e294191b94bf834edc71 libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc c546df3b4ba74ac64a0cb4ea57c630d6 libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc ! 3a1e22c8198a01dfad8bda84c438db27 libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc fad4ad5ad40bf44ea48788d9a6dab764 libstdc++-v3/testsuite/20_util/tuple/moveable.cc 6eaa1af34a5882c3de54ba11243799e0 libstdc++-v3/testsuite/20_util/tuple/moveable2.cc 6d5abe1c79608785a6a722e8fdc802c5 libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc *************** fad4ad5ad40bf44ea48788d9a6dab764 libstd *** 78725,78731 **** e1eea1c271af0bdfa12cc94693ef107b libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc 3f8ef4dac6a2e28913a495f5c2823e5f libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc 0fbf39466f47e927efc63b5fe8acf2d6 libstdc++-v3/testsuite/20_util/tuple/swap.cc ! 9b6ff386dab421e6c403a91cfcbcf2fc libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc f0e73cece5252f9d8ced5f133fe2f45a libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc 04d1024415682274ef59af1d5ba80f8f libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc 9b7c3ebe2b60022fc39b43722bfc2e27 libstdc++-v3/testsuite/20_util/typeindex/hash.cc --- 79021,79028 ---- e1eea1c271af0bdfa12cc94693ef107b libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc 3f8ef4dac6a2e28913a495f5c2823e5f libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc 0fbf39466f47e927efc63b5fe8acf2d6 libstdc++-v3/testsuite/20_util/tuple/swap.cc ! 2ddb2960845b7e1c69f2282968ca53aa libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc ! 8d5defa9ea9654930802511fbb97e9f1 libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc f0e73cece5252f9d8ced5f133fe2f45a libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc 04d1024415682274ef59af1d5ba80f8f libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc 9b7c3ebe2b60022fc39b43722bfc2e27 libstdc++-v3/testsuite/20_util/typeindex/hash.cc *************** bf5368a7b5646d5a76293b3e5092c1c1 libstd *** 80119,80124 **** --- 80416,80422 ---- eac021f82238b0e7f88b2f6f300962ca libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc 44177aa990428b2a07f4cad36608b16b libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc cdc1c5cbfb547b78c021908f817445fe libstdc++-v3/testsuite/23_containers/set/check_construct_destroy.cc + 479cc77c5e25439c4361e2f6436d46c2 libstdc++-v3/testsuite/23_containers/set/cons/61023.cc 2c40c028cc84603b5d0823e47d5d0fa6 libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc 8140074ed960ac4091fb63b0076ebc32 libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc a95e300c8c185b4d18f769fa8ffe8fdb libstdc++-v3/testsuite/23_containers/set/debug/60499.cc *************** f4a98dc075a673b463e843fd23afccf6 libstd *** 80389,80394 **** --- 80687,80693 ---- f355739fd5282b5e4cff2b750cc2b3f6 libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc 751a41d0c6826ff745486c3f3f0114b1 libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc 0c97f4ca00fc977c8df9f9f5e83a8425 libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc + f3eebd181caa96b0b79cab436f550bc5 libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc b3b8ace808ed88c6a64ae34b1c650a84 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc b0386447adbcdf3090a1b90341ef1d92 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc 10ede91f68fad662234a9b53b1c3d111 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc *************** f01cfa50f964ec5ff452d529d2b30362 libstd *** 80443,80448 **** --- 80742,80748 ---- fff6e388e4734b3c3d9dcf019bbacdf6 libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc 5377ed3668c63ebeb73c3ec8b1349715 libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc 4686a793393ae777cc39a9aa59354e50 libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/reserve.cc + d5b8c10b8ae6dc5045ac01bb72b91e8e libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc c0796bb1da03355f73b0328094814cef libstdc++-v3/testsuite/23_containers/unordered_set/observers.cc 471ddaa70ea98740aba436165883a83d libstdc++-v3/testsuite/23_containers/unordered_set/operations/count.cc 17a65bbd19b5fe478cf223e5b535da2a libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc *************** baf8b8fba1e021512d18674c803a5b85 libstd *** 80597,80607 **** 4f335d323864b5be5299555c2912e8ac libstdc++-v3/testsuite/23_containers/vector/range_access.cc 9174c8b0a88b51a0557c382440e6823d libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc 8606495410696a122546bcc697746c3c libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc ! 167bb655cddee4f8d02062168dd75224 libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc 97df37bb365cecef0333fd25b4e35c5c libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc ! 4f34ac09baa2df97864f0e72bee2849c libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc ! 5742effad2a53f90eef6f9d5d5217265 libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc ! 729c67193e8e356623b22cc821fec6da libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc 7b0f44a8fc2116e762a4e07fd3133016 libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc 941bc15e59f223786bada67caf743f9b libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc 39fe176070e9aa0d1fd59dfdb0878d89 libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc --- 80897,80907 ---- 4f335d323864b5be5299555c2912e8ac libstdc++-v3/testsuite/23_containers/vector/range_access.cc 9174c8b0a88b51a0557c382440e6823d libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc 8606495410696a122546bcc697746c3c libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc ! bb8b1982b6ef069f872670de22921d72 libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc 97df37bb365cecef0333fd25b4e35c5c libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc ! b6b83ff4d8d1a5673351a5b066713cc2 libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc ! 15dac0a181dd7f47fb11cfaf934e3a30 libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc ! 0009af600ea619b6d63bffcc4d8f9748 libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc 7b0f44a8fc2116e762a4e07fd3133016 libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc 941bc15e59f223786bada67caf743f9b libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc 39fe176070e9aa0d1fd59dfdb0878d89 libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc *************** a53cb989ccb2e946d384a88ea4d63638 libstd *** 82250,82258 **** --- 82550,82560 ---- 6ab7a2d201c7d619833ab350ce113bb1 libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc 0726e30b174aa3a887475a63dbe3df35 libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc 21fcc9ddfe2fe463b9b484d87a7e225d libstdc++-v3/testsuite/27_io/manipulators/standard/char/60270.cc + d594f3a267d4ac9ab043350e29831e75 libstdc++-v3/testsuite/27_io/manipulators/standard/char/dr2344.cc 8a9646bfe28fe9f78cd3787e9d650bc2 libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted.cc f643bb61586dbb7c5cc216ebc29fbf64 libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc b0ecb2cec0bcf82632ae8330788d5b61 libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc + f55dd343fe2fba114349521a12652ac1 libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc be4b141e6cdea93542fd9e4372e26f8f libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted.cc a2cf3b8be9bd7b5c38092c26e2d1e876 libstdc++-v3/testsuite/27_io/objects/char/1.cc fa16fa378e7cffe247d469d655fbb5b1 libstdc++-v3/testsuite/27_io/objects/char/10.cc *************** a61eee397025bf99c815aef958edce6b libstd *** 82358,82364 **** a8df08852135acfce31d7a69db7f20b3 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc 3934c0e8f097df26fe8421823b2952f0 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc f5caf57c85d0af0655b9e9c34cdd23bc libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc ! 5b401195d44d55aebac71bf80adc082f libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc 8a668015379b5d9e9c1374a53cbccaac libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc 34e54e012d1d79924b40cdb315a32794 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc c1ae504cc9233e3c0daa81baf286585e libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc --- 82660,82666 ---- a8df08852135acfce31d7a69db7f20b3 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc 3934c0e8f097df26fe8421823b2952f0 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc f5caf57c85d0af0655b9e9c34cdd23bc libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc ! cdd7e0324974a5d0d5116da659ed800b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc 8a668015379b5d9e9c1374a53cbccaac libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc 34e54e012d1d79924b40cdb315a32794 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc c1ae504cc9233e3c0daa81baf286585e libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc *************** e8cae9d8577e784f1798f7f21e13ff11 libstd *** 82417,82423 **** 01685e9c20e2ae406bafcdeeeefc5719 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc d824e53ce1939f8587cebbca54759720 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc 85f564a600e93544299a72e6944e3177 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc ! 464ecdda18418ae9b8eaf4f79127738b libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc 5548ee8b630713e272673e09354fd60b libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc f3879155319951e3adcbdfa05a6982c7 libstdc++-v3/testsuite/28_regex/constants/error_type.cc bcfe26ae804ab98295dcc5a24fda7d24 libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc --- 82719,82725 ---- 01685e9c20e2ae406bafcdeeeefc5719 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc d824e53ce1939f8587cebbca54759720 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc 85f564a600e93544299a72e6944e3177 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc ! 7bcf78193be501772a8c1c55956d6ca6 libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc 5548ee8b630713e272673e09354fd60b libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc f3879155319951e3adcbdfa05a6982c7 libstdc++-v3/testsuite/28_regex/constants/error_type.cc bcfe26ae804ab98295dcc5a24fda7d24 libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc *************** f8ed195967716cef39fba79a5f5d0aae libstd *** 82621,82626 **** --- 82923,82929 ---- c3336e722be06e779e372392b0ef468f libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc 01c9012beb48a8b5c0cc3a8928d9f3a2 libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc e95eb39d1d21934965a32f7de5b94c7c libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc + 223c704e5a1c2639ce17491cb9b88ae7 libstdc++-v3/testsuite/30_threads/promise/60966.cc 43042e64d6224c1400056bc87ef51eb3 libstdc++-v3/testsuite/30_threads/promise/cons/1.cc 5a723b6e74dc2bc01255b69e36bea825 libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc bf9566d4d69598700ae44d1f0c1e0a15 libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc *************** d4b43bda26dae604d284388b6730c29b libstd *** 82967,82978 **** bc6f0c361b3eb9651d818c2e0e645499 libstdc++-v3/testsuite/experimental/optional/observers/3.cc 51b90f804430db44b2dda8253d9b7692 libstdc++-v3/testsuite/experimental/optional/observers/4.cc a59061cab533dab4faf31c5c7ab1d6ad libstdc++-v3/testsuite/experimental/optional/observers/5.cc ! c5f9c364199476e9fa303488156af366 libstdc++-v3/testsuite/experimental/optional/relops/1.cc ! 4aacc81f47fb92960fb5faf60141e2e0 libstdc++-v3/testsuite/experimental/optional/relops/2.cc ! ceeeeac7654c3e1a806227ab531e3ee4 libstdc++-v3/testsuite/experimental/optional/relops/3.cc ! 0046058c67bcf8a3898a782d86c898ea libstdc++-v3/testsuite/experimental/optional/relops/4.cc ! 5ab41e00c91ba3b5f2983d83e072c294 libstdc++-v3/testsuite/experimental/optional/relops/5.cc ! e173488a7d91c6b92176cbe138566d23 libstdc++-v3/testsuite/experimental/optional/relops/6.cc ffca06999dc2f2773d1d0ba023ea0eb2 libstdc++-v3/testsuite/experimental/optional/requirements.cc 665098ee916ad79f901d0b111d04524b libstdc++-v3/testsuite/experimental/optional/swap/1.cc c5dc3eec5ce8007b0241cdcf55577dd5 libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc --- 83270,83281 ---- bc6f0c361b3eb9651d818c2e0e645499 libstdc++-v3/testsuite/experimental/optional/observers/3.cc 51b90f804430db44b2dda8253d9b7692 libstdc++-v3/testsuite/experimental/optional/observers/4.cc a59061cab533dab4faf31c5c7ab1d6ad libstdc++-v3/testsuite/experimental/optional/observers/5.cc ! 7607163a58c7bf235533be7ce1f017b4 libstdc++-v3/testsuite/experimental/optional/relops/1.cc ! af8d68158b6bfe925afefc615fb0930a libstdc++-v3/testsuite/experimental/optional/relops/2.cc ! 868ada806d159763660651740db597dd libstdc++-v3/testsuite/experimental/optional/relops/3.cc ! dc55fb894f1c03adba1041a6f273b249 libstdc++-v3/testsuite/experimental/optional/relops/4.cc ! 090cba6677d1fea9a9f85fe0893724f3 libstdc++-v3/testsuite/experimental/optional/relops/5.cc ! 8e69c348f95d204b190c6b1e1073912d libstdc++-v3/testsuite/experimental/optional/relops/6.cc ffca06999dc2f2773d1d0ba023ea0eb2 libstdc++-v3/testsuite/experimental/optional/requirements.cc 665098ee916ad79f901d0b111d04524b libstdc++-v3/testsuite/experimental/optional/swap/1.cc c5dc3eec5ce8007b0241cdcf55577dd5 libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc *************** a1dd9b857b40f69ff465fbb5d457440d libstd *** 83365,83371 **** 16ad995556bb1fb21842b84da10bc99c libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc b446ff0e9a95b28827a74d7cf33c1a2a libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp e5420a74cf55910e3f538d2b656fea8d libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc ! 13a710151699b2217a16079a0543a1e4 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc 8914aa851af0c6a50497c3ba1a6a450e libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc b7a630188c64c6cddbac76f48ceb3935 libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc ef0d22637757cfcc1ca687b6d57d9a29 libstdc++-v3/testsuite/performance/21_strings/append-1.cc --- 83668,83675 ---- 16ad995556bb1fb21842b84da10bc99c libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc b446ff0e9a95b28827a74d7cf33c1a2a libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp e5420a74cf55910e3f538d2b656fea8d libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc ! 256a25db337bc4a096a88295c99baaae libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc ! 544702e55c214c943e924806b911f7b9 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc 8914aa851af0c6a50497c3ba1a6a450e libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc b7a630188c64c6cddbac76f48ceb3935 libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc ef0d22637757cfcc1ca687b6d57d9a29 libstdc++-v3/testsuite/performance/21_strings/append-1.cc *************** c030349908fc0eb9b0c4612bb49a409f libstd *** 84161,84167 **** e10d3cdddd0f53096227a5beb8dcd757 libstdc++-v3/testsuite/util/thread/all.h 18097d974d6f6a830c12c42592f0006d libtool-ldflags 3bb1de19ee64b1073f3d23d9a410b743 libtool.m4 ! a81b8ec28f72325f391d24fa0122837b libvtv/ChangeLog eef62b8fb153928c0a2c4a0578c942c0 libvtv/Makefile.am 6450c2f34e817a27b51c21ac0bd1cb6f libvtv/Makefile.in 4ce86f8604e6c86211a4cb2025ffc53e libvtv/acinclude.m4 --- 84465,84471 ---- e10d3cdddd0f53096227a5beb8dcd757 libstdc++-v3/testsuite/util/thread/all.h 18097d974d6f6a830c12c42592f0006d libtool-ldflags 3bb1de19ee64b1073f3d23d9a410b743 libtool.m4 ! 0f8b7f26c46d05ed2b5f38d9fcd120c1 libvtv/ChangeLog eef62b8fb153928c0a2c4a0578c942c0 libvtv/Makefile.am 6450c2f34e817a27b51c21ac0bd1cb6f libvtv/Makefile.in 4ce86f8604e6c86211a4cb2025ffc53e libvtv/acinclude.m4 *************** add56677aeac69caba72b699b2b43f07 libvtv *** 84244,84263 **** 5ddbd6d7662cb8cab972934da6561160 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 4e65f2f6a05f5eca82ba79c6363aa3db ltmain.sh ! 1270d93c3036a8d13b29e645e3112cfa lto-plugin/ChangeLog 4c40915b9f88608e518913005264f8fa lto-plugin/Makefile.am e4afd16e3532d984448f0ca8ba8c3833 lto-plugin/Makefile.in e0b6c77fa2326a08aa2d7a69e87e0f8c lto-plugin/aclocal.m4 e8d8e3dc8d2e134b03f22c7c567d030c lto-plugin/config.h.in ! b3f728672dbcbbf1207e6726769c9e55 lto-plugin/configure ! 4b2d94ee477bdeb4963f60145713eb8a lto-plugin/configure.ac 5c23239009f0c6a206ed13799bd5f284 lto-plugin/lto-plugin.c 139179f8500d6f092a4f53d8f4da7f5c lto-plugin/lto-symtab.c dee72a6a60e99528b0d17bf3ff9a1e15 ltoptions.m4 bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 310996e85318ea77013088b4bd1ab21e maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README a3cc7e22d2016063d76bfc42361ab230 maintainer-scripts/crontab 6facef54b1f26f6ee5d58aef536e7c82 maintainer-scripts/gcc_release --- 84548,84567 ---- 5ddbd6d7662cb8cab972934da6561160 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 4e65f2f6a05f5eca82ba79c6363aa3db ltmain.sh ! 480a1e32fdbf26c9a90a8c5c24762161 lto-plugin/ChangeLog 4c40915b9f88608e518913005264f8fa lto-plugin/Makefile.am e4afd16e3532d984448f0ca8ba8c3833 lto-plugin/Makefile.in e0b6c77fa2326a08aa2d7a69e87e0f8c lto-plugin/aclocal.m4 e8d8e3dc8d2e134b03f22c7c567d030c lto-plugin/config.h.in ! 8a06a8b8a4ff79121337ebc6a7436458 lto-plugin/configure ! 3e586084a6038d0f1df6d9ed4f2c4ee2 lto-plugin/configure.ac 5c23239009f0c6a206ed13799bd5f284 lto-plugin/lto-plugin.c 139179f8500d6f092a4f53d8f4da7f5c lto-plugin/lto-symtab.c dee72a6a60e99528b0d17bf3ff9a1e15 ltoptions.m4 bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! d84ab836d266bd10145007e79ed5e6f8 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README a3cc7e22d2016063d76bfc42361ab230 maintainer-scripts/crontab 6facef54b1f26f6ee5d58aef536e7c82 maintainer-scripts/gcc_release *************** f1fff2ea196cbf6fe4634bc3edc5af4d move-i *** 84272,84278 **** cf2baa0854f564a7785307e79f155efc symlink-tree 69678e72941d681665c3731bfb3044ab ylwrap ed77bd1cb8611c7e07d54332abbbb44a zlib/CMakeLists.txt ! 00f7b875e62076d360ee8c76df3a143a zlib/ChangeLog e7a1201f311d2ce7a5fc5e7eb763fe07 zlib/ChangeLog.gcj b7a1991f01daea3efe108a215c5514a5 zlib/FAQ 3b6b6f9e88f2319b75e6ccb8c2823b13 zlib/INDEX --- 84576,84582 ---- cf2baa0854f564a7785307e79f155efc symlink-tree 69678e72941d681665c3731bfb3044ab ylwrap ed77bd1cb8611c7e07d54332abbbb44a zlib/CMakeLists.txt ! 9c4a0d1e3929379aaf51f841e669a980 zlib/ChangeLog e7a1201f311d2ce7a5fc5e7eb763fe07 zlib/ChangeLog.gcj b7a1991f01daea3efe108a215c5514a5 zlib/FAQ 3b6b6f9e88f2319b75e6ccb8c2823b13 zlib/INDEX diff -Nrcpad gcc-4.9.0/NEWS gcc-4.9.1/NEWS *** gcc-4.9.0/NEWS Tue Apr 22 09:45:26 2014 --- gcc-4.9.1/NEWS Wed Jul 16 10:06:54 2014 *************** see ONEWS. *** 8,25 **** http://gcc.gnu.org/gcc-4.9/index.html GCC 4.9 Release Series ! April 22, 2014 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 4.9.0. ! This release is a major release, containing new features (as well as ! many other improvements) relative to GCC 4.8.x. Release History GCC 4.9.0 ! April 22, 2014 ([2]changes, [3]documentation) References and Acknowledgements --- 8,28 ---- http://gcc.gnu.org/gcc-4.9/index.html GCC 4.9 Release Series ! July 16, 2014 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 4.9.1. ! This release is a bug-fix release, containing fixes for regressions in ! GCC 4.9.0 relative to previous releases of GCC. Release History + GCC 4.9.1 + July 16, 2014 ([2]changes, [3]documentation) + GCC 4.9.0 ! April 22, 2014 ([4]changes, [5]documentation) References and Acknowledgements *************** References and Acknowledgements *** 27,78 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [4]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [5]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [6]GCC project ! web site or contact the [7]GCC development mailing list. ! To obtain GCC please use [8]our mirror sites or [9]our SVN server. For questions related to the use of GCC, please consult these web ! pages and the [10]GCC manuals. If that fails, the ! [11]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [12]gcc@gcc.gnu.org. All of [13]our lists have public archives. ! Copyright (C) [14]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [15]maintained by the GCC team. Last modified ! 2014-04-22[16]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/4.9.0/ ! 4. http://gcc.gnu.org/gcc-4.9/buildstat.html ! 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 6. http://gcc.gnu.org/index.html ! 7. mailto:gcc@gcc.gnu.org ! 8. http://gcc.gnu.org/mirrors.html ! 9. http://gcc.gnu.org/svn.html ! 10. http://gcc.gnu.org/onlinedocs/ ! 11. mailto:gcc-help@gcc.gnu.org ! 12. mailto:gcc@gcc.gnu.org ! 13. http://gcc.gnu.org/lists.html ! 14. http://www.fsf.org/ ! 15. http://gcc.gnu.org/about.html ! 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/changes.html GCC 4.9 Release Series --- 30,83 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [6]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [7]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [8]GCC project ! web site or contact the [9]GCC development mailing list. ! To obtain GCC please use [10]our mirror sites or [11]our SVN server. For questions related to the use of GCC, please consult these web ! pages and the [12]GCC manuals. If that fails, the ! [13]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [14]gcc@gcc.gnu.org. All of [15]our lists have public archives. ! Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [17]maintained by the GCC team. Last modified ! 2014-07-16[18]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/4.9.1/ ! 4. http://gcc.gnu.org/gcc-4.9/changes.html ! 5. https://gcc.gnu.org/onlinedocs/4.9.0/ ! 6. http://gcc.gnu.org/gcc-4.9/buildstat.html ! 7. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 8. http://gcc.gnu.org/index.html ! 9. mailto:gcc@gcc.gnu.org ! 10. http://gcc.gnu.org/mirrors.html ! 11. http://gcc.gnu.org/svn.html ! 12. https://gcc.gnu.org/onlinedocs/ ! 13. mailto:gcc-help@gcc.gnu.org ! 14. mailto:gcc@gcc.gnu.org ! 15. https://gcc.gnu.org/lists.html ! 16. http://www.fsf.org/ ! 17. https://gcc.gnu.org/about.html ! 18. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/changes.html GCC 4.9 Release Series *************** Caveats *** 90,98 **** architectures have been obsoleted: + Solaris 9 (*-*-solaris2.9). Details can be found in the [1]announcement. More information on porting to GCC 4.9 from previous versions of GCC ! can be found in the [2]porting guide for this release. General Optimizer Improvements --- 95,114 ---- architectures have been obsoleted: + Solaris 9 (*-*-solaris2.9). Details can be found in the [1]announcement. + * On AArch64, the singleton vector types int64x1_t, uint64x1_t and + float64x1_t exported by arm_neon.h are defined to be the same as + their base types. This results in incorrect application of + parameter passing rules to arguments of types int64x1_t and + uint64x1_t, with respect to the AAPCS64 ABI specification. In + addition, names of C++ functions with parameters of these types + (including float64x1_t) are not mangled correctly. The current + typedef declarations also unintentionally allow implicit casting + between singleton vector types and their base types. These issues + will be resolved in a near future release. See [2]PR60825 for more + information. More information on porting to GCC 4.9 from previous versions of GCC ! can be found in the [3]porting guide for this release. General Optimizer Improvements *************** General Optimizer Improvements *** 114,126 **** improving overall memory usage at link time. + C++ hidden keyed methods can now be optimized out. + When using a linker plugin, compiling with the -flto option ! now generates slim objects files (.o) which only contain intermediate language representation for LTO. Use -ffat-lto-objects to create files which contain additionally the object code. To generate static libraries suitable for LTO processing, use gcc-ar and gcc-ranlib; to list symbols from a ! slim object file use gcc-nm. (Requires that ar, ranlib and nm ! have been compiled with plugin support.) Memory usage building Firefox with debug enabled was reduced from 15GB to 3.5GB; link time from 1700 seconds to 350 seconds. * Inter-procedural optimization improvements: --- 130,142 ---- improving overall memory usage at link time. + C++ hidden keyed methods can now be optimized out. + When using a linker plugin, compiling with the -flto option ! now generates slim object files (.o) which only contain intermediate language representation for LTO. Use -ffat-lto-objects to create files which contain additionally the object code. To generate static libraries suitable for LTO processing, use gcc-ar and gcc-ranlib; to list symbols from a ! slim object file use gcc-nm. (This requires that ar, ranlib ! and nm have been compiled with plugin support.) Memory usage building Firefox with debug enabled was reduced from 15GB to 3.5GB; link time from 1700 seconds to 350 seconds. * Inter-procedural optimization improvements: *************** General Optimizer Improvements *** 149,158 **** New Languages and Language specific improvements ! * Version 4.0 of the [3]OpenMP specification is now supported for the ! C and C++ compilers. The new -fopenmp-simd option can be used to enable OpenMP's SIMD directives, while ignoring other OpenMP ! directives. The new [4]-fsimd-cost-model= option permits to tune the vectorization cost model for loops annotated with OpenMP and Cilk Plus simd directives; -Wopenmp-simd warns when the current costmodel overrides simd directives set by the user. --- 165,175 ---- New Languages and Language specific improvements ! * Version 4.0 of the [4]OpenMP specification is now supported in the ! C and C++ compilers and starting with the 4.9.1 release also in the ! Fortran compiler. The new -fopenmp-simd option can be used to enable OpenMP's SIMD directives, while ignoring other OpenMP ! directives. The new [5]-fsimd-cost-model= option permits to tune the vectorization cost model for loops annotated with OpenMP and Cilk Plus simd directives; -Wopenmp-simd warns when the current costmodel overrides simd directives set by the user. *************** New Languages and Language specific impr *** 168,174 **** C family * Support for colorizing diagnostics emitted by GCC has been added. ! The [5]-fdiagnostics-color=auto will enable it when outputting to terminals, -fdiagnostics-color=always unconditionally. The GCC_COLORS environment variable can be used to customize the colors or disable coloring. If GCC_COLORS variable is present in the --- 185,191 ---- C family * Support for colorizing diagnostics emitted by GCC has been added. ! The [6]-fdiagnostics-color=auto will enable it when outputting to terminals, -fdiagnostics-color=always unconditionally. The GCC_COLORS environment variable can be used to customize the colors or disable coloring. If GCC_COLORS variable is present in the *************** late struct X<1000>; *** 192,202 **** test.C:2:46: error: incomplete type `X<100>' used in nested name specifier ! * With the new [6]#pragma GCC ivdep, the user can assert that there are no loop-carried dependencies which would prevent concurrent execution of consecutive iterations using SIMD (single instruction multiple data) instructions. ! * Support for [7]Cilk Plus has been added and can be enabled with the -fcilkplus option. Cilk Plus is an extension to the C and C++ languages to support data and task parallelism. The present implementation follows ABI version 1.2; all features but _Cilk_for --- 209,219 ---- test.C:2:46: error: incomplete type `X<100>' used in nested name specifier ! * With the new [7]#pragma GCC ivdep, the user can assert that there are no loop-carried dependencies which would prevent concurrent execution of consecutive iterations using SIMD (single instruction multiple data) instructions. ! * Support for [8]Cilk Plus has been added and can be enabled with the -fcilkplus option. Cilk Plus is an extension to the C and C++ languages to support data and task parallelism. The present implementation follows ABI version 1.2; all features but _Cilk_for *************** late struct X<1000>; *** 221,228 **** C++ ! * The G++ implementation of [8]C++1y return type deduction for normal ! functions has been updated to conform to [9]N3638, the proposal accepted into the working paper. Most notably, it adds decltype(auto) for getting decltype semantics rather than the template argument deduction semantics of plain auto: --- 238,245 ---- C++ ! * The G++ implementation of [9]C++1y return type deduction for normal ! functions has been updated to conform to [10]N3638, the proposal accepted into the working paper. Most notably, it adds decltype(auto) for getting decltype semantics rather than the template argument deduction semantics of plain auto: *************** int& f(); *** 231,244 **** auto i1 = f(); // int decltype(auto) i2 = f(); // int& ! * G++ supports [10]C++1y lambda capture initializers: [x = 42]{ ... }; Actually, they have been accepted since GCC 4.5, but now the compiler doesn't warn about them with -std=c++1y, and supports parenthesized and brace-enclosed initializers as well. ! * G++ supports [11]C++1y variable length arrays. G++ has supported GNU/C99-style VLAs for a long time, but now additionally supports initializers and lambda capture by reference. In C++1y mode G++ will complain about VLA uses that are not permitted by the draft --- 248,261 ---- auto i1 = f(); // int decltype(auto) i2 = f(); // int& ! * G++ supports [11]C++1y lambda capture initializers: [x = 42]{ ... }; Actually, they have been accepted since GCC 4.5, but now the compiler doesn't warn about them with -std=c++1y, and supports parenthesized and brace-enclosed initializers as well. ! * G++ supports [12]C++1y variable length arrays. G++ has supported GNU/C99-style VLAs for a long time, but now additionally supports initializers and lambda capture by reference. In C++1y mode G++ will complain about VLA uses that are not permitted by the draft *************** void f(int n) { *** 253,259 **** &a; // error, taking address of VLA } ! * G++ supports the [12]C++1y [[deprecated]] attribute modulo bugs in the underlying [[gnu::deprecated]] attribute. Classes and functions can be marked deprecated and a diagnostic message added: --- 270,276 ---- &a; // error, taking address of VLA } ! * G++ supports the [13]C++1y [[deprecated]] attribute modulo bugs in the underlying [[gnu::deprecated]] attribute. Classes and functions can be marked deprecated and a diagnostic message added: *************** A aa; // warning: 'A' is deprecated : A *** 271,277 **** int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use fo o() instead ! * G++ supports [13]C++1y digit separators. Long numeric literals can be subdivided with a single quote ' to enhance readability: int i = 1048576; --- 288,294 ---- int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use fo o() instead ! * G++ supports [14]C++1y digit separators. Long numeric literals can be subdivided with a single quote ' to enhance readability: int i = 1048576; *************** int n = 0b0001'0000'0000'0000'0000'0000; *** 283,302 **** double x = 1.602'176'565e-19; double y = 1.602'176'565e-1'9; ! * G++ supports [14]C++1y polymorphic lambdas. // a functional object that will increment any type auto incr = [](auto x) { return x++; }; Runtime Library (libstdc++) ! * [15]Improved support for C++11, including: + support for ; + The associative containers in and and the unordered associative containers in and meet the allocator-aware container requirements; ! * [16]Improved experimental support for the upcoming ISO C++ standard, C++14, including: + fixing constexpr member functions without const; + implementation of the std::exchange() utility function; --- 300,337 ---- double x = 1.602'176'565e-19; double y = 1.602'176'565e-1'9; ! * G++ supports [15]C++1y generic (polymorphic) lambdas. // a functional object that will increment any type auto incr = [](auto x) { return x++; }; + * As a GNU extension, G++ supports explicit template parameter syntax + for generic lambdas. This can be combined in the expected way with + the standard auto syntax. + + // a functional object that will add two like-type objects + auto add = [] (T a, T b) { return a + b; }; + + * G++ supports unconstrained generic functions as specified by + S:4.1.2 and S:5.1.1 of [16]N3889: Concepts Lite Specification. + Briefly, auto may be used as a type-specifier in a parameter + declaration of any function declarator in order to introduce an + implicit function template parameter, akin to generic lambdas. + + // the following two function declarations are equivalent + auto incr(auto x) { return x++; } + template + auto incr(T x) { return x++; } + Runtime Library (libstdc++) ! * [17]Improved support for C++11, including: + support for ; + The associative containers in and and the unordered associative containers in and meet the allocator-aware container requirements; ! * [18]Improved experimental support for the upcoming ISO C++ standard, C++14, including: + fixing constexpr member functions without const; + implementation of the std::exchange() utility function; *************** auto incr = [](auto x) { return x++; }; *** 328,352 **** + Module files: The version of the module files (.mod) has been incremented; additionally, module files are now compressed. Fortran MODULEs compiled by earlier GCC versions have to be ! recompiled, when they are USEd by files compiled with GCC 4.9, ! because GCC 4.9 is not able to read .mod files of earlier GCC versions; attempting to do so gives an error message. Note: The ABI of the produced assembler data itself has not changed: ! object files and libraries are fully compatible to older ! versions. (Except for the next items.) + ABI changes: ! o Note that the [17]argument passing ABI has changed for ! scalar dummy arguments of type INTEGER, REAL, COMPLEX and ! LOGICAL, which have both the VALUE and the OPTIONAL ! attribute. ! o Due to the support of finalization, the virtual table ! associated with polymorphic variables has changed. ! Therefore, code containing CLASS should be recompiled, ! including all files which define derived types involved ! in the type definition used by polymorphic variables. ! (Note: Due to the incremented module version, trying to ! mix old code with new code will usually give an error ! message.) + GNU Fortran no longer deallocates allocatable variables or allocatable components of variables declared in the main program. Since Fortran 2008, the standard explicitly states --- 363,385 ---- + Module files: The version of the module files (.mod) has been incremented; additionally, module files are now compressed. Fortran MODULEs compiled by earlier GCC versions have to be ! recompiled, when they are USEd by files compiled with GCC 4.9. ! GCC 4.9 is not able to read .mod files of earlier GCC versions; attempting to do so gives an error message. Note: The ABI of the produced assembler data itself has not changed: ! object files and libraries are fully compatible with older ! versions (except as stated below). + ABI changes: ! o The [19]argument passing ABI has changed for scalar dummy ! arguments of type INTEGER, REAL, COMPLEX and LOGICAL, ! which have both the VALUE and the OPTIONAL attributes. ! o To support finalization the virtual table associated with ! polymorphic variables has changed. Code containing CLASS ! should be recompiled, including all files which define ! derived types involved in the type definition used by ! polymorphic variables. (Note: Due to the incremented ! module version, trying to mix old code with new code will ! usually give an error message.) + GNU Fortran no longer deallocates allocatable variables or allocatable components of variables declared in the main program. Since Fortran 2008, the standard explicitly states *************** auto incr = [](auto x) { return x++; }; *** 365,371 **** * The compiler no longer unconditionally warns about DO loops with zero iterations. This warning is now controlled by the -Wzerotrips option, which is implied by -Wall. ! * The new NO_ARG_CHECK attribute of the [18]!GCC$ directive can be used to disable the type-kind-rank (TKR) argument check for a dummy argument. The feature is similar to ISO/IEC TS 29133:2012's TYPE(*), except that it additionally also disables the rank check. --- 398,404 ---- * The compiler no longer unconditionally warns about DO loops with zero iterations. This warning is now controlled by the -Wzerotrips option, which is implied by -Wall. ! * The new NO_ARG_CHECK attribute of the [20]!GCC$ directive can be used to disable the type-kind-rank (TKR) argument check for a dummy argument. The feature is similar to ISO/IEC TS 29133:2012's TYPE(*), except that it additionally also disables the rank check. *************** auto incr = [](auto x) { return x++; }; *** 381,400 **** contrary to NO_ARG_CHECK assumed-rank arguments pass an array descriptor which contains the array shape and stride of the argument. ! * [19]Fortran 2003: ! + Finalization is now supported. Note that finalization is ! currently only done for a subset of the situations in which it ! should occur. + Experimental support for scalar character components with deferred length (i.e. allocatable string length) in derived types has been added. (Deferred-length character variables are supported since GCC 4.6.) ! * [20]Fortran 2008: ! + When STOP or ERROR STOP is used to terminate the execution and ! any exception (but inexact) is signaling, a warning is printed ! to ERROR_UNIT, indicating which exceptions are signaling. The ! [21]-ffpe-summary= command-line option can be used to ! fine-tune for which exception the warning should be shown. + Rounding on input (READ) is now handled on systems where strtod honours the rounding mode. (For output, rounding is supported since GCC 4.5.) Note that for input, the compatible --- 414,433 ---- contrary to NO_ARG_CHECK assumed-rank arguments pass an array descriptor which contains the array shape and stride of the argument. ! * [21]Fortran 2003: ! + Finalization is now supported. It is currently only done for a ! subset of those situations in which it should occur. + Experimental support for scalar character components with deferred length (i.e. allocatable string length) in derived types has been added. (Deferred-length character variables are supported since GCC 4.6.) ! * [22]Fortran 2008: ! + When STOP or ERROR STOP are used to terminate the execution ! and any exception (but inexact) is signaling, a warning is ! printed to ERROR_UNIT, indicating which exceptions are ! signaling. The [23]-ffpe-summary= command-line option can be ! used to fine-tune for which exceptions the warning should be ! shown. + Rounding on input (READ) is now handled on systems where strtod honours the rounding mode. (For output, rounding is supported since GCC 4.5.) Note that for input, the compatible *************** New Targets and Target Specific Improvem *** 415,421 **** and are available through the -march=armv8-a+crc and -march=armv8-a+crypto options. * Initial support for ILP32 has now been added to the compiler. This ! is now available through the command line option -mabi=ilp32. Support for ILP32 is considered experimental as the ABI specification is still beta. * Coverage of more of the ISA including the SIMD extensions has been --- 448,454 ---- and are available through the -march=armv8-a+crc and -march=armv8-a+crypto options. * Initial support for ILP32 has now been added to the compiler. This ! is now available through the command-line option -mabi=ilp32. Support for ILP32 is considered experimental as the ABI specification is still beta. * Coverage of more of the ISA including the SIMD extensions has been *************** New Targets and Target Specific Improvem *** 431,436 **** --- 464,474 ---- * A number of structural changes have been made to both the ARM and AArch64 backends to facilitate improved code-generation. + ARC + + * A port for Synopsys Designware ARC has been contributed by Embecosm + and Synopsys Inc. + ARM * Use of Advanced SIMD (Neon) for 64-bit scalar computations has been *************** New Targets and Target Specific Improvem *** 449,456 **** intrinsics and are available through the -march=armv8-a+crc and mfpu=crypto-neon-fp-armv8 options. * LRA is now on by default for the ARM target. This can be turned off ! using the -mno-lra option. This option is purely transitionary ! command line option and will be removed in a future release. We are interested in any bug reports regarding functional and performance regressions with LRA. * A new option -mslow-flash-data to improve performance of programs --- 487,494 ---- intrinsics and are available through the -march=armv8-a+crc and mfpu=crypto-neon-fp-armv8 options. * LRA is now on by default for the ARM target. This can be turned off ! using the -mno-lra option. This option is a purely transitionary ! command-line option and will be removed in a future release. We are interested in any bug reports regarding functional and performance regressions with LRA. * A new option -mslow-flash-data to improve performance of programs *************** New Targets and Target Specific Improvem *** 490,496 **** a file that are tagged with the corresponding target attribute without having to compile the entire file with the -mxxx option. This improves the usability of x86 intrinsics and is particularly ! useful when doing [22]Function Multiversioning. * GCC now supports the new Intel microarchitecture named Silvermont through -march=silvermont. * GCC now supports the new Intel microarchitecture named Broadwell --- 528,534 ---- a file that are tagged with the corresponding target attribute without having to compile the entire file with the -mxxx option. This improves the usability of x86 intrinsics and is particularly ! useful when doing [24]Function Multiversioning. * GCC now supports the new Intel microarchitecture named Silvermont through -march=silvermont. * GCC now supports the new Intel microarchitecture named Broadwell *************** New Targets and Target Specific Improvem *** 563,570 **** A certain amount of bytes is reserved before the function entry label plus a NOP is inserted at its very beginning to implement a backward jump when applying a patch. The feature can either be ! enabled via command line option -mhotpatch for a compilation unit ! or can be enabled per function using the hotpatch attribute. * The shrink wrap optimization is now supported on S/390 and enabled by default. * A major rework of the routines to determine which registers need to --- 601,608 ---- A certain amount of bytes is reserved before the function entry label plus a NOP is inserted at its very beginning to implement a backward jump when applying a patch. The feature can either be ! enabled per compilation unit via the command-line option -mhotpatch ! or per function using the hotpatch attribute. * The shrink wrap optimization is now supported on S/390 and enabled by default. * A major rework of the routines to determine which registers need to *************** New Targets and Target Specific Improvem *** 576,582 **** RX * The port now allows to specify the RX100, RX200, and RX600 ! processors with the command line options -mcpu=rx100, -mcpu=rx200 and -mcpu=rx600. SH --- 614,620 ---- RX * The port now allows to specify the RX100, RX200, and RX600 ! processors with the command-line options -mcpu=rx100, -mcpu=rx200 and -mcpu=rx600. SH *************** New Targets and Target Specific Improvem *** 596,669 **** * The option -mcmpeqdi has been deprecated. Specifying it will result in a warning and will not influence code generation. For questions related to the use of GCC, please consult these web ! pages and the [23]GCC manuals. If that fails, the ! [24]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [25]gcc@gcc.gnu.org. All of [26]our lists have public archives. ! Copyright (C) [27]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [28]maintained by the GCC team. Last modified ! 2014-04-20[29]. References ! 1. http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00728.html ! 2. http://gcc.gnu.org/gcc-4.9/porting_to.html ! 3. http://openmp.org/wp/openmp-specifications/ ! 4. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fsimd-cost-model-908 ! 5. http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html#index-fdiagnostics-color-246 ! 6. http://gcc.gnu.org/onlinedocs/gcc/Loop-Specific-Pragmas.html ! 7. https://www.cilkplus.org/ ! 8. http://gcc.gnu.org/projects/cxx1y.html ! 9. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html ! 10. http://gcc.gnu.org/projects/cxx1y.html 11. http://gcc.gnu.org/projects/cxx1y.html 12. http://gcc.gnu.org/projects/cxx1y.html 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011 ! 16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 ! 17. http://gcc.gnu.org/onlinedocs/gfortran/Argument-passing-conventions.html ! 18. http://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html ! 19. http://gcc.gnu.org/wiki/Fortran2003Status ! 20. http://gcc.gnu.org/wiki/Fortran2008Status ! 21. http://gcc.gnu.org/onlinedocs/gfortran/Debugging-Options.html ! 22. http://gcc.gnu.org/onlinedocs/gcc/Function-Multiversioning.html ! 23. http://gcc.gnu.org/onlinedocs/ ! 24. mailto:gcc-help@gcc.gnu.org ! 25. mailto:gcc@gcc.gnu.org ! 26. http://gcc.gnu.org/lists.html ! 27. http://www.fsf.org/ ! 28. http://gcc.gnu.org/about.html ! 29. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/index.html GCC 4.8 Release Series ! October 16, 2013 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 4.8.2. This release is a bug-fix release, containing fixes for regressions in ! GCC 4.8.1 relative to previous releases of GCC. Release History GCC 4.8.2 ! October 16, 2013 ([2]changes, [3]documentation) GCC 4.8.1 ! May 31, 2013 ([4]changes, [5]documentation) GCC 4.8.0 ! March 22, 2013 ([6]changes, [7]documentation) References and Acknowledgements --- 634,724 ---- * The option -mcmpeqdi has been deprecated. Specifying it will result in a warning and will not influence code generation. + GCC 4.9.1 + + This is the [25]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 4.9.1 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + + Version 4.0 of the [26]OpenMP specification is supported even in + Fortran, not just C and C++. + For questions related to the use of GCC, please consult these web ! pages and the [27]GCC manuals. If that fails, the ! [28]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [29]gcc@gcc.gnu.org. All of [30]our lists have public archives. ! Copyright (C) [31]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [32]maintained by the GCC team. Last modified ! 2014-07-16[33]. References ! 1. https://gcc.gnu.org/ml/gcc-patches/2013-05/msg00728.html ! 2. https://gcc.gnu.org/PR60825 ! 3. https://gcc.gnu.org/gcc-4.9/porting_to.html ! 4. http://openmp.org/wp/openmp-specifications/ ! 5. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Optimize-Options.html#index-fsimd-cost-model-908 ! 6. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252 ! 7. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Loop-Specific-Pragmas.html ! 8. https://www.cilkplus.org/ ! 9. http://gcc.gnu.org/projects/cxx1y.html ! 10. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html 11. http://gcc.gnu.org/projects/cxx1y.html 12. http://gcc.gnu.org/projects/cxx1y.html 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. http://gcc.gnu.org/projects/cxx1y.html ! 16. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf ! 17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011 ! 18. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 ! 19. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gfortran/Argument-passing-conventions.html ! 20. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gfortran/GNU-Fortran-Compiler-Directives.html ! 21. https://gcc.gnu.org/wiki/Fortran2003Status ! 22. https://gcc.gnu.org/wiki/Fortran2008Status ! 23. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gfortran/Debugging-Options.html ! 24. https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Function-Multiversioning.html ! 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.9.1 ! 26. http://openmp.org/wp/openmp-specifications/ ! 27. https://gcc.gnu.org/onlinedocs/ ! 28. mailto:gcc-help@gcc.gnu.org ! 29. mailto:gcc@gcc.gnu.org ! 30. https://gcc.gnu.org/lists.html ! 31. http://www.fsf.org/ ! 32. https://gcc.gnu.org/about.html ! 33. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/index.html GCC 4.8 Release Series ! May 22, 2014 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 4.8.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 4.8.2 relative to previous releases of GCC. Release History + GCC 4.8.3 + May 22, 2014 ([2]changes, [3]documentation) + GCC 4.8.2 ! October 16, 2013 ([4]changes, [5]documentation) GCC 4.8.1 ! May 31, 2013 ([6]changes, [7]documentation) GCC 4.8.0 ! March 22, 2013 ([8]changes, [9]documentation) References and Acknowledgements *************** References and Acknowledgements *** 671,726 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [8]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [9]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [10]GCC ! project web site or contact the [11]GCC development mailing list. ! To obtain GCC please use [12]our mirror sites or [13]our SVN server. For questions related to the use of GCC, please consult these web ! pages and the [14]GCC manuals. If that fails, the ! [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [16]gcc@gcc.gnu.org. All of [17]our lists have public archives. ! Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [19]maintained by the GCC team. Last modified ! 2013-10-16[20]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.8/changes.html ! 3. http://gcc.gnu.org/onlinedocs/4.8.2/ 4. http://gcc.gnu.org/gcc-4.8/changes.html ! 5. http://gcc.gnu.org/onlinedocs/4.8.1/ 6. http://gcc.gnu.org/gcc-4.8/changes.html ! 7. http://gcc.gnu.org/onlinedocs/4.8.0/ ! 8. http://gcc.gnu.org/gcc-4.8/buildstat.html ! 9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 10. http://gcc.gnu.org/index.html ! 11. mailto:gcc@gcc.gnu.org ! 12. http://gcc.gnu.org/mirrors.html ! 13. http://gcc.gnu.org/svn.html ! 14. http://gcc.gnu.org/onlinedocs/ ! 15. mailto:gcc-help@gcc.gnu.org ! 16. mailto:gcc@gcc.gnu.org ! 17. http://gcc.gnu.org/lists.html ! 18. http://www.fsf.org/ ! 19. http://gcc.gnu.org/about.html ! 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/changes.html GCC 4.8 Release Series --- 726,783 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [10]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [11]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [12]GCC ! project web site or contact the [13]GCC development mailing list. ! To obtain GCC please use [14]our mirror sites or [15]our SVN server. For questions related to the use of GCC, please consult these web ! pages and the [16]GCC manuals. If that fails, the ! [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [18]gcc@gcc.gnu.org. All of [19]our lists have public archives. ! Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [21]maintained by the GCC team. Last modified ! 2014-06-11[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.8/changes.html ! 3. https://gcc.gnu.org/onlinedocs/4.8.3/ 4. http://gcc.gnu.org/gcc-4.8/changes.html ! 5. https://gcc.gnu.org/onlinedocs/4.8.2/ 6. http://gcc.gnu.org/gcc-4.8/changes.html ! 7. https://gcc.gnu.org/onlinedocs/4.8.1/ ! 8. http://gcc.gnu.org/gcc-4.8/changes.html ! 9. https://gcc.gnu.org/onlinedocs/4.8.0/ ! 10. http://gcc.gnu.org/gcc-4.8/buildstat.html ! 11. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/mirrors.html ! 15. http://gcc.gnu.org/svn.html ! 16. https://gcc.gnu.org/onlinedocs/ ! 17. mailto:gcc-help@gcc.gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html ! 20. http://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html ! 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/changes.html GCC 4.8 Release Series *************** GCC 4.8.2 *** 1399,1426 **** not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [35]GCC manuals. If that fails, the ! [36]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [37]gcc@gcc.gnu.org. All of [38]our lists have public archives. ! Copyright (C) [39]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [40]maintained by the GCC team. Last modified ! 2013-11-26[41]. References ! 1. http://gcc.gnu.org/wiki/cxx-conversion 2. ftp://gcc.gnu.org/pub/gcc/infrastructure/ 3. http://www.nongnu.org/avr-libc/ ! 4. http://gcc.gnu.org/PR54461 ! 5. http://gcc.gnu.org/gcc-4.8/porting_to.html 6. https://code.google.com/p/address-sanitizer/ 7. https://code.google.com/p/data-race-test/wiki/ThreadSanitizer 8. https://lkml.org/lkml/2006/11/28/239 --- 1456,1493 ---- not be complete (that is, it is possible that some PRs that have been fixed are not listed here). + GCC 4.8.3 + + This is the [35]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 4.8.3 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + + Support for the new powerpc64le-linux platform has been added. It + defaults to generating code that conforms to the ELFV2 ABI. + For questions related to the use of GCC, please consult these web ! pages and the [36]GCC manuals. If that fails, the ! [37]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [38]gcc@gcc.gnu.org. All of [39]our lists have public archives. ! Copyright (C) [40]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [41]maintained by the GCC team. Last modified ! 2014-06-11[42]. References ! 1. https://gcc.gnu.org/wiki/cxx-conversion 2. ftp://gcc.gnu.org/pub/gcc/infrastructure/ 3. http://www.nongnu.org/avr-libc/ ! 4. https://gcc.gnu.org/PR54461 ! 5. https://gcc.gnu.org/gcc-4.8/porting_to.html 6. https://code.google.com/p/address-sanitizer/ 7. https://code.google.com/p/data-race-test/wiki/ThreadSanitizer 8. https://lkml.org/lkml/2006/11/28/239 *************** References *** 1431,1487 **** 13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 14. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html 15. http://gcc.gnu.org/projects/cxx1y.html ! 16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011 ! 17. http://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html ! 18. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 19. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 20. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html ! 21. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 22. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 23. http://gcc.gnu.org/onlinedocs/gfortran/TMPDIR.html ! 24. http://gcc.gnu.org/wiki/Fortran2003Status ! 25. http://gcc.gnu.org/wiki/TS29113Status ! 26. http://gcc.gnu.org/viewcvs/trunk/libgfortran/libgfortran.h?content-type=text%2Fplain&view=co 27. http://chasm-interop.sourceforge.net/ ! 28. http://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support ! 29. http://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html ! 30. http://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html#X86-Built-in-Functions ! 31. http://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html#X86-Built-in-Functions ! 32. http://gcc.gnu.org/wiki/FunctionMultiVersioning ! 33. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.1 ! 34. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2 ! 35. http://gcc.gnu.org/onlinedocs/ ! 36. mailto:gcc-help@gcc.gnu.org ! 37. mailto:gcc@gcc.gnu.org ! 38. http://gcc.gnu.org/lists.html ! 39. http://www.fsf.org/ ! 40. http://gcc.gnu.org/about.html ! 41. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/index.html GCC 4.7 Release Series ! April 11, 2013 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 4.7.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 4.7.2 relative to previous releases of GCC. Release History GCC 4.7.3 ! April 11, 2013 ([2]changes, [3]documentation) GCC 4.7.2 ! September 20, 2012 ([4]changes, [5]documentation) GCC 4.7.1 ! June 14, 2012 ([6]changes, [7]documentation) GCC 4.7.0 ! March 22, 2012 ([8]changes, [9]documentation) References and Acknowledgements --- 1498,1558 ---- 13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 14. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html 15. http://gcc.gnu.org/projects/cxx1y.html ! 16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011 ! 17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html ! 18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 19. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 20. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html ! 21. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 22. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html ! 23. https://gcc.gnu.org/onlinedocs/gfortran/TMPDIR.html ! 24. https://gcc.gnu.org/wiki/Fortran2003Status ! 25. https://gcc.gnu.org/wiki/TS29113Status ! 26. https://gcc.gnu.org/viewcvs/trunk/libgfortran/libgfortran.h?content-type=text%2Fplain&view=co 27. http://chasm-interop.sourceforge.net/ ! 28. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support ! 29. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html ! 30. https://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html#X86-Built-in-Functions ! 31. https://gcc.gnu.org/onlinedocs/gcc/X86-Built-in-Functions.html#X86-Built-in-Functions ! 32. https://gcc.gnu.org/wiki/FunctionMultiVersioning ! 33. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.1 ! 34. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2 ! 35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.3 ! 36. https://gcc.gnu.org/onlinedocs/ ! 37. mailto:gcc-help@gcc.gnu.org ! 38. mailto:gcc@gcc.gnu.org ! 39. https://gcc.gnu.org/lists.html ! 40. http://www.fsf.org/ ! 41. https://gcc.gnu.org/about.html ! 42. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/index.html GCC 4.7 Release Series ! June 12, 2014 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 4.7.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 4.7.3 relative to previous releases of GCC. Release History + GCC 4.7.4 + June 12, 2014 ([2]changes, [3]documentation) + GCC 4.7.3 ! April 11, 2013 ([4]changes, [5]documentation) GCC 4.7.2 ! September 20, 2012 ([6]changes, [7]documentation) GCC 4.7.1 ! June 14, 2012 ([8]changes, [9]documentation) GCC 4.7.0 ! March 22, 2012 ([10]changes, [11]documentation) References and Acknowledgements *************** References and Acknowledgements *** 1489,1546 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [10]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [11]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [12]GCC ! project web site or contact the [13]GCC development mailing list. ! To obtain GCC please use [14]our mirror sites or [15]our SVN server. For questions related to the use of GCC, please consult these web ! pages and the [16]GCC manuals. If that fails, the ! [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [18]gcc@gcc.gnu.org. All of [19]our lists have public archives. ! Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [21]maintained by the GCC team. Last modified ! 2013-04-11[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.7/changes.html ! 3. http://gcc.gnu.org/onlinedocs/4.7.3/ 4. http://gcc.gnu.org/gcc-4.7/changes.html ! 5. http://gcc.gnu.org/onlinedocs/4.7.2/ 6. http://gcc.gnu.org/gcc-4.7/changes.html ! 7. http://gcc.gnu.org/onlinedocs/4.7.1/ 8. http://gcc.gnu.org/gcc-4.7/changes.html ! 9. http://gcc.gnu.org/onlinedocs/4.7.0/ ! 10. http://gcc.gnu.org/gcc-4.7/buildstat.html ! 11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/mirrors.html ! 15. http://gcc.gnu.org/svn.html ! 16. http://gcc.gnu.org/onlinedocs/ ! 17. mailto:gcc-help@gcc.gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. http://gcc.gnu.org/lists.html ! 20. http://www.fsf.org/ ! 21. http://gcc.gnu.org/about.html ! 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/changes.html GCC 4.7 Release Series --- 1560,1619 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [12]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [13]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [14]GCC ! project web site or contact the [15]GCC development mailing list. ! To obtain GCC please use [16]our mirror sites or [17]our SVN server. For questions related to the use of GCC, please consult these web ! pages and the [18]GCC manuals. If that fails, the ! [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [20]gcc@gcc.gnu.org. All of [21]our lists have public archives. ! Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [23]maintained by the GCC team. Last modified ! 2014-06-12[24]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.7/changes.html ! 3. https://gcc.gnu.org/onlinedocs/4.7.4/ 4. http://gcc.gnu.org/gcc-4.7/changes.html ! 5. https://gcc.gnu.org/onlinedocs/4.7.3/ 6. http://gcc.gnu.org/gcc-4.7/changes.html ! 7. https://gcc.gnu.org/onlinedocs/4.7.2/ 8. http://gcc.gnu.org/gcc-4.7/changes.html ! 9. https://gcc.gnu.org/onlinedocs/4.7.1/ ! 10. http://gcc.gnu.org/gcc-4.7/changes.html ! 11. https://gcc.gnu.org/onlinedocs/4.7.0/ ! 12. http://gcc.gnu.org/gcc-4.7/buildstat.html ! 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. http://gcc.gnu.org/index.html ! 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/mirrors.html ! 17. http://gcc.gnu.org/svn.html ! 18. https://gcc.gnu.org/onlinedocs/ ! 19. mailto:gcc-help@gcc.gnu.org ! 20. mailto:gcc@gcc.gnu.org ! 21. https://gcc.gnu.org/lists.html ! 22. http://www.fsf.org/ ! 23. https://gcc.gnu.org/about.html ! 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/changes.html GCC 4.7 Release Series *************** GCC 4.7.3 *** 2314,2391 **** not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [49]GCC manuals. If that fails, the ! [50]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [51]gcc@gcc.gnu.org. All of [52]our lists have public archives. ! Copyright (C) [53]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [54]maintained by the GCC team. Last modified ! 2013-04-11[55]. References ! 1. http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01263.html 2. http://savannah.nongnu.org/bugs/?35407 ! 3. http://gcc.gnu.org/PR18145 ! 4. http://gcc.gnu.org/gcc-4.7/porting_to.html 5. http://openmp.org/wp/openmp-specifications/ ! 6. http://gcc.gnu.org/wiki/TransactionalMemory ! 7. http://gcc.gnu.org/wiki/Atomic/GCCMM 8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 13. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 14. http://gcc.gnu.org/PR14258 ! 15. http://gcc.gnu.org/PR35688 ! 16. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/libstdc++/manual/manual/status.html#status.iso.2011 ! 17. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254 ! 18. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689 ! 19. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270 ! 20. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254 ! 21. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfrontend-optimize_007d-275 ! 22. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWfunction-elimination_007d-170 ! 23. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270 ! 24. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149 ! 25. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html 26. http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx ! 27. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183 ! 28. http://gcc.gnu.org/wiki/Fortran2003Status ! 29. http://gcc.gnu.org/wiki/OOP ! 30. http://gcc.gnu.org/wiki/Fortran2008Status ! 31. http://gcc.gnu.org/wiki/Coarray ! 32. http://gcc.gnu.org/wiki/CoarrayLib ! 33. http://gcc.gnu.org/wiki/TS29113Status ! 34. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53 35. http://weekly.golang.org/doc/go1.html ! 36. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html 37. http://nongnu.org/avr-libc/ ! 38. http://gcc.gnu.org/PR54461 ! 39. http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html 40. https://sites.google.com/site/x32abi/ 41. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1 42. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2 43. http://www.dwarfstd.org/doc/040408.1.html 44. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1 ! 45. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 46. http://weekly.golang.org/doc/go1.html ! 47. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 ! 48. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3 ! 49. http://gcc.gnu.org/onlinedocs/ ! 50. mailto:gcc-help@gcc.gnu.org ! 51. mailto:gcc@gcc.gnu.org ! 52. http://gcc.gnu.org/lists.html ! 53. http://www.fsf.org/ ! 54. http://gcc.gnu.org/about.html ! 55. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/index.html GCC 4.6 Release Series --- 2387,2472 ---- not be complete (that is, it is possible that some PRs that have been fixed are not listed here). + GCC 4.7.4 + + This is the [49]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 4.7.4 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + For questions related to the use of GCC, please consult these web ! pages and the [50]GCC manuals. If that fails, the ! [51]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [52]gcc@gcc.gnu.org. All of [53]our lists have public archives. ! Copyright (C) [54]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [55]maintained by the GCC team. Last modified ! 2014-06-12[56]. References ! 1. https://gcc.gnu.org/ml/gcc-patches/2011-03/msg01263.html 2. http://savannah.nongnu.org/bugs/?35407 ! 3. https://gcc.gnu.org/PR18145 ! 4. https://gcc.gnu.org/gcc-4.7/porting_to.html 5. http://openmp.org/wp/openmp-specifications/ ! 6. https://gcc.gnu.org/wiki/TransactionalMemory ! 7. https://gcc.gnu.org/wiki/Atomic/GCCMM 8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 13. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 14. https://gcc.gnu.org/PR14258 ! 15. https://gcc.gnu.org/PR35688 ! 16. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/libstdc++/manual/manual/status.html#status.iso.2011 ! 17. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254 ! 18. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689 ! 19. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270 ! 20. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254 ! 21. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfrontend-optimize_007d-275 ! 22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWfunction-elimination_007d-170 ! 23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270 ! 24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149 ! 25. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html 26. http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx ! 27. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183 ! 28. https://gcc.gnu.org/wiki/Fortran2003Status ! 29. https://gcc.gnu.org/wiki/OOP ! 30. https://gcc.gnu.org/wiki/Fortran2008Status ! 31. https://gcc.gnu.org/wiki/Coarray ! 32. https://gcc.gnu.org/wiki/CoarrayLib ! 33. https://gcc.gnu.org/wiki/TS29113Status ! 34. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53 35. http://weekly.golang.org/doc/go1.html ! 36. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html 37. http://nongnu.org/avr-libc/ ! 38. https://gcc.gnu.org/PR54461 ! 39. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html 40. https://sites.google.com/site/x32abi/ 41. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1 42. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2 43. http://www.dwarfstd.org/doc/040408.1.html 44. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1 ! 45. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 46. http://weekly.golang.org/doc/go1.html ! 47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 ! 48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3 ! 49. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4 ! 50. https://gcc.gnu.org/onlinedocs/ ! 51. mailto:gcc-help@gcc.gnu.org ! 52. mailto:gcc@gcc.gnu.org ! 53. https://gcc.gnu.org/lists.html ! 54. http://www.fsf.org/ ! 55. https://gcc.gnu.org/about.html ! 56. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/index.html GCC 4.6 Release Series *************** References and Acknowledgements *** 2447,2479 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2013-04-12[24]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.6/changes.html ! 3. http://gcc.gnu.org/onlinedocs/4.6.4/ 4. http://gcc.gnu.org/gcc-4.6/changes.html ! 5. http://gcc.gnu.org/onlinedocs/4.6.3/ 6. http://gcc.gnu.org/gcc-4.6/changes.html ! 7. http://gcc.gnu.org/onlinedocs/4.6.2/ 8. http://gcc.gnu.org/gcc-4.6/changes.html ! 9. http://gcc.gnu.org/onlinedocs/4.6.1/ 10. http://gcc.gnu.org/gcc-4.6/changes.html ! 11. http://gcc.gnu.org/onlinedocs/4.6.0/ 12. http://gcc.gnu.org/gcc-4.6/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 14. http://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org 16. http://gcc.gnu.org/mirrors.html 17. http://gcc.gnu.org/svn.html ! 18. http://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org ! 21. http://gcc.gnu.org/lists.html 22. http://www.fsf.org/ ! 23. http://gcc.gnu.org/about.html 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/changes.html --- 2528,2560 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2014-06-28[24]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.6/changes.html ! 3. https://gcc.gnu.org/onlinedocs/4.6.4/ 4. http://gcc.gnu.org/gcc-4.6/changes.html ! 5. https://gcc.gnu.org/onlinedocs/4.6.3/ 6. http://gcc.gnu.org/gcc-4.6/changes.html ! 7. https://gcc.gnu.org/onlinedocs/4.6.2/ 8. http://gcc.gnu.org/gcc-4.6/changes.html ! 9. https://gcc.gnu.org/onlinedocs/4.6.1/ 10. http://gcc.gnu.org/gcc-4.6/changes.html ! 11. https://gcc.gnu.org/onlinedocs/4.6.0/ 12. http://gcc.gnu.org/gcc-4.6/buildstat.html ! 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 14. http://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org 16. http://gcc.gnu.org/mirrors.html 17. http://gcc.gnu.org/svn.html ! 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org ! 21. https://gcc.gnu.org/lists.html 22. http://www.fsf.org/ ! 23. https://gcc.gnu.org/about.html 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/changes.html *************** GCC 4.6.4 *** 3371,3377 **** provided this notice is preserved. These pages are [29]maintained by the GCC team. Last modified ! 2013-04-12[30]. References --- 3452,3458 ---- provided this notice is preserved. These pages are [29]maintained by the GCC team. Last modified ! 2014-06-28[30]. References *************** References *** 3380,3409 **** 3. http://gcc.gnu.org/gcc-4.5/changes.html#obsoleted 4. http://gcc.gnu.org/gcc-4.6/porting_to.html 5. http://gcc.gnu.org/projects/lto/whopr.pdf ! 6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options 7. http://gcc.gnu.org/gcc-4.6/cxx0x_status.html ! 8. http://gcc.gnu.org/PR43145 ! 9. http://gcc.gnu.org/PR43680 ! 10. http://gcc.gnu.org/PR33558 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 ! 12. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x ! 13. http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html ! 14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races ! 15. http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html ! 16. http://gcc.gnu.org/wiki/OOP ! 17. http://gcc.gnu.org/wiki/Coarray ! 18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233 19. http://golang.org/ ! 20. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1 ! 21. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2 ! 22. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3 ! 23. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4 ! 24. http://gcc.gnu.org/onlinedocs/ 25. mailto:gcc-help@gcc.gnu.org 26. mailto:gcc@gcc.gnu.org ! 27. http://gcc.gnu.org/lists.html 28. http://www.fsf.org/ ! 29. http://gcc.gnu.org/about.html 30. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html --- 3461,3490 ---- 3. http://gcc.gnu.org/gcc-4.5/changes.html#obsoleted 4. http://gcc.gnu.org/gcc-4.6/porting_to.html 5. http://gcc.gnu.org/projects/lto/whopr.pdf ! 6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options 7. http://gcc.gnu.org/gcc-4.6/cxx0x_status.html ! 8. https://gcc.gnu.org/PR43145 ! 9. https://gcc.gnu.org/PR43680 ! 10. https://gcc.gnu.org/PR33558 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 ! 12. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x ! 13. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html ! 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races ! 15. https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html ! 16. https://gcc.gnu.org/wiki/OOP ! 17. https://gcc.gnu.org/wiki/Coarray ! 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233 19. http://golang.org/ ! 20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1 ! 21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2 ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3 ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4 ! 24. https://gcc.gnu.org/onlinedocs/ 25. mailto:gcc-help@gcc.gnu.org 26. mailto:gcc@gcc.gnu.org ! 27. https://gcc.gnu.org/lists.html 28. http://www.fsf.org/ ! 29. https://gcc.gnu.org/about.html 30. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html *************** References and Acknowledgements *** 3466,3472 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2012-11-02[19]. References --- 3547,3553 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2014-06-28[19]. References *************** References *** 3477,3493 **** 5. http://gcc.gnu.org/gcc-4.5/changes.html 6. http://gcc.gnu.org/gcc-4.5/changes.html 7. http://gcc.gnu.org/gcc-4.5/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/svn.html ! 13. http://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. http://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/changes.html --- 3558,3574 ---- 5. http://gcc.gnu.org/gcc-4.5/changes.html 6. http://gcc.gnu.org/gcc-4.5/changes.html 7. http://gcc.gnu.org/gcc-4.5/buildstat.html ! 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/svn.html ! 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. https://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/changes.html *************** GCC 4.5.4 *** 4137,4180 **** provided this notice is preserved. These pages are [34]maintained by the GCC team. Last modified ! 2012-11-02[35]. References 1. http://www.multiprecision.org/ ! 2. http://gcc.gnu.org/install/prerequisites.html ! 3. http://gcc.gnu.org/ml/gcc/2010-01/msg00510.html 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted 5. http://gcc.gnu.org/gcc-4.5/changes.html#x86 6. http://www.multiprecision.org/ ! 7. http://gcc.gnu.org/PR30789 ! 8. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801 ! 9. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802 ! 10. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800 ! 11. http://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html 12. http://gcc.gnu.org/gcc-4.5/cxx0x_status.html 13. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757 14. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176 ! 15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x ! 16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html ! 17. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733 18. http://sourceware.org/gdb/wiki/STLSupport 19. http://gcc.gnu.org/gcc-4.4/changes.html ! 20. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html ! 21. http://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html ! 22. http://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html ! 23. http://gcc.gnu.org/wiki/OOP ! 24. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1 ! 25. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801 ! 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2 ! 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3 ! 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4 ! 29. http://gcc.gnu.org/onlinedocs/ 30. mailto:gcc-help@gcc.gnu.org 31. mailto:gcc@gcc.gnu.org ! 32. http://gcc.gnu.org/lists.html 33. http://www.fsf.org/ ! 34. http://gcc.gnu.org/about.html 35. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/index.html --- 4218,4261 ---- provided this notice is preserved. These pages are [34]maintained by the GCC team. Last modified ! 2014-06-28[35]. References 1. http://www.multiprecision.org/ ! 2. https://gcc.gnu.org/install/prerequisites.html ! 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted 5. http://gcc.gnu.org/gcc-4.5/changes.html#x86 6. http://www.multiprecision.org/ ! 7. https://gcc.gnu.org/PR30789 ! 8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801 ! 9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802 ! 10. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800 ! 11. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html 12. http://gcc.gnu.org/gcc-4.5/cxx0x_status.html 13. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757 14. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176 ! 15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x ! 16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html ! 17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733 18. http://sourceware.org/gdb/wiki/STLSupport 19. http://gcc.gnu.org/gcc-4.4/changes.html ! 20. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html ! 21. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html ! 22. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html ! 23. https://gcc.gnu.org/wiki/OOP ! 24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1 ! 25. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801 ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2 ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3 ! 28. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4 ! 29. https://gcc.gnu.org/onlinedocs/ 30. mailto:gcc-help@gcc.gnu.org 31. mailto:gcc@gcc.gnu.org ! 32. https://gcc.gnu.org/lists.html 33. http://www.fsf.org/ ! 34. https://gcc.gnu.org/about.html 35. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/index.html *************** References and Acknowledgements *** 4246,4252 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2012-11-02[22]. References --- 4327,4333 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2014-06-28[22]. References *************** References *** 4260,4276 **** 8. http://gcc.gnu.org/gcc-4.4/changes.html 9. http://gcc.gnu.org/gcc-4.4/changes.html 10. http://gcc.gnu.org/gcc-4.4/buildstat.html ! 11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 12. http://gcc.gnu.org/index.html 13. mailto:gcc@gcc.gnu.org 14. http://gcc.gnu.org/mirrors.html 15. http://gcc.gnu.org/svn.html ! 16. http://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org ! 19. http://gcc.gnu.org/lists.html 20. http://www.fsf.org/ ! 21. http://gcc.gnu.org/about.html 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/changes.html --- 4341,4357 ---- 8. http://gcc.gnu.org/gcc-4.4/changes.html 9. http://gcc.gnu.org/gcc-4.4/changes.html 10. http://gcc.gnu.org/gcc-4.4/buildstat.html ! 11. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 12. http://gcc.gnu.org/index.html 13. mailto:gcc@gcc.gnu.org 14. http://gcc.gnu.org/mirrors.html 15. http://gcc.gnu.org/svn.html ! 16. https://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html 20. http://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/changes.html *************** GCC 4.4.7 *** 4876,4910 **** provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2012-11-02[26]. References 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted 3. http://gcc.gnu.org/gcc-4.4/porting_to.html ! 4. http://gcc.gnu.org/wiki/Graphite 5. http://openmp.org/wp/openmp-specifications/ 6. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf 7. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html ! 8. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#id476343 ! 9. http://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html ! 10. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 ! 11. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 ! 12. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34 ! 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1 ! 14. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2 ! 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3 ! 16. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4 ! 17. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5 ! 18. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6 ! 19. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7 ! 20. http://gcc.gnu.org/onlinedocs/ 21. mailto:gcc-help@gcc.gnu.org 22. mailto:gcc@gcc.gnu.org ! 23. http://gcc.gnu.org/lists.html 24. http://www.fsf.org/ ! 25. http://gcc.gnu.org/about.html 26. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/index.html --- 4957,4991 ---- provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2014-06-28[26]. References 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted 3. http://gcc.gnu.org/gcc-4.4/porting_to.html ! 4. https://gcc.gnu.org/wiki/Graphite 5. http://openmp.org/wp/openmp-specifications/ 6. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf 7. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html ! 8. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#id476343 ! 9. https://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html ! 10. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 ! 11. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 ! 12. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34 ! 13. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1 ! 14. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2 ! 15. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3 ! 16. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4 ! 17. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5 ! 18. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6 ! 19. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7 ! 20. https://gcc.gnu.org/onlinedocs/ 21. mailto:gcc-help@gcc.gnu.org 22. mailto:gcc@gcc.gnu.org ! 23. https://gcc.gnu.org/lists.html 24. http://www.fsf.org/ ! 25. https://gcc.gnu.org/about.html 26. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/index.html *************** References and Acknowledgements *** 4973,4979 **** provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2012-11-02[21]. References --- 5054,5060 ---- provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2014-06-28[21]. References *************** References *** 4986,5002 **** 7. http://gcc.gnu.org/gcc-4.3/changes.html 8. http://gcc.gnu.org/gcc-4.3/changes.html 9. http://gcc.gnu.org/gcc-4.3/buildstat.html ! 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 11. http://gcc.gnu.org/index.html 12. mailto:gcc@gcc.gnu.org 13. http://gcc.gnu.org/mirrors.html 14. http://gcc.gnu.org/svn.html ! 15. http://gcc.gnu.org/onlinedocs/ 16. mailto:gcc-help@gcc.gnu.org 17. mailto:gcc@gcc.gnu.org ! 18. http://gcc.gnu.org/lists.html 19. http://www.fsf.org/ ! 20. http://gcc.gnu.org/about.html 21. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/changes.html --- 5067,5083 ---- 7. http://gcc.gnu.org/gcc-4.3/changes.html 8. http://gcc.gnu.org/gcc-4.3/changes.html 9. http://gcc.gnu.org/gcc-4.3/buildstat.html ! 10. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 11. http://gcc.gnu.org/index.html 12. mailto:gcc@gcc.gnu.org 13. http://gcc.gnu.org/mirrors.html 14. http://gcc.gnu.org/svn.html ! 15. https://gcc.gnu.org/onlinedocs/ 16. mailto:gcc-help@gcc.gnu.org 17. mailto:gcc@gcc.gnu.org ! 18. https://gcc.gnu.org/lists.html 19. http://www.fsf.org/ ! 20. https://gcc.gnu.org/about.html 21. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/changes.html *************** GCC 4.3.6 *** 5778,5823 **** provided this notice is preserved. These pages are [36]maintained by the GCC team. Last modified ! 2012-11-02[37]. References 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.5 2. http://gmplib.org/ 3. http://www.mpfr.org/ ! 4. http://gcc.gnu.org/install/prerequisites.html ! 5. http://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html ! 6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options 7. http://gcc.gnu.org/gcc-4.3/porting_to.html 8. http://www.mpfr.org/ 9. http://www.mpfr.org/ 10. http://www.mpfr.org/ ! 11. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html 12. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html 13. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html ! 14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#m anual.intro.status.standard.tr1 ! 15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html 16. http://gmplib.org/ 17. http://www.mpfr.org/ ! 18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options ! 19. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 ! 20. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/GAMMA.html ! 21. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html ! 22. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html ! 23. http://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html ! 24. http://gcc.gnu.org/onlinedocs/libstdc++/ ! 25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1 ! 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2 ! 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3 ! 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4 ! 29. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5 ! 30. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6 ! 31. http://gcc.gnu.org/onlinedocs/ 32. mailto:gcc-help@gcc.gnu.org 33. mailto:gcc@gcc.gnu.org ! 34. http://gcc.gnu.org/lists.html 35. http://www.fsf.org/ ! 36. http://gcc.gnu.org/about.html 37. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html --- 5859,5904 ---- provided this notice is preserved. These pages are [36]maintained by the GCC team. Last modified ! 2014-06-28[37]. References 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.5 2. http://gmplib.org/ 3. http://www.mpfr.org/ ! 4. https://gcc.gnu.org/install/prerequisites.html ! 5. https://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html ! 6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options 7. http://gcc.gnu.org/gcc-4.3/porting_to.html 8. http://www.mpfr.org/ 9. http://www.mpfr.org/ 10. http://www.mpfr.org/ ! 11. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html 12. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html 13. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html ! 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#m anual.intro.status.standard.tr1 ! 15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html 16. http://gmplib.org/ 17. http://www.mpfr.org/ ! 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options ! 19. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 ! 20. https://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/GAMMA.html ! 21. https://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html ! 22. https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html ! 23. https://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html ! 24. https://gcc.gnu.org/onlinedocs/libstdc++/ ! 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1 ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2 ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3 ! 28. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4 ! 29. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5 ! 30. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6 ! 31. https://gcc.gnu.org/onlinedocs/ 32. mailto:gcc-help@gcc.gnu.org 33. mailto:gcc@gcc.gnu.org ! 34. https://gcc.gnu.org/lists.html 35. http://www.fsf.org/ ! 36. https://gcc.gnu.org/about.html 37. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html *************** References and Acknowledgements *** 5880,5886 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2012-11-02[19]. References --- 5961,5967 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2014-06-28[19]. References *************** References *** 5891,5907 **** 5. http://gcc.gnu.org/gcc-4.2/changes.html 6. http://gcc.gnu.org/gcc-4.2/changes.html 7. http://gcc.gnu.org/gcc-4.2/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/svn.html ! 13. http://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. http://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/changes.html --- 5972,5988 ---- 5. http://gcc.gnu.org/gcc-4.2/changes.html 6. http://gcc.gnu.org/gcc-4.2/changes.html 7. http://gcc.gnu.org/gcc-4.2/buildstat.html ! 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/svn.html ! 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. https://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/changes.html *************** New Languages and Language specific impr *** 6092,6098 **** memory than if the shared version of libgcj were used. However caution should be used as it can also cause essential parts of the library to be omitted. Some of these issues are discussed in: ! [6]http://gcc.gnu.org/wiki/Statically_linking_libgcj * fastjar is no longer bundled with GCC. To build libgcj, you will need either InfoZIP (both zip and unzip) or an external jar program. In the former case, the GCC build will install a jar shell --- 6173,6179 ---- memory than if the shared version of libgcj were used. However caution should be used as it can also cause essential parts of the library to be omitted. Some of these issues are discussed in: ! [6]https://gcc.gnu.org/wiki/Statically_linking_libgcj * fastjar is no longer bundled with GCC. To build libgcj, you will need either InfoZIP (both zip and unzip) or an external jar program. In the former case, the GCC build will install a jar shell *************** Other significant improvements *** 6209,6230 **** provided this notice is preserved. These pages are [12]maintained by the GCC team. Last modified ! 2012-11-02[13]. References 1. http://gcc.gnu.org/projects/gomp/ ! 2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html ! 3. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 ! 4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html ! 5. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html ! 6. http://gcc.gnu.org/wiki/Statically_linking_libgcj ! 7. http://gcc.gnu.org/onlinedocs/ 8. mailto:gcc-help@gcc.gnu.org 9. mailto:gcc@gcc.gnu.org ! 10. http://gcc.gnu.org/lists.html 11. http://www.fsf.org/ ! 12. http://gcc.gnu.org/about.html 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/index.html --- 6290,6311 ---- provided this notice is preserved. These pages are [12]maintained by the GCC team. Last modified ! 2014-06-28[13]. References 1. http://gcc.gnu.org/projects/gomp/ ! 2. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html ! 3. https://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 ! 4. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html ! 5. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html ! 6. https://gcc.gnu.org/wiki/Statically_linking_libgcj ! 7. https://gcc.gnu.org/onlinedocs/ 8. mailto:gcc-help@gcc.gnu.org 9. mailto:gcc@gcc.gnu.org ! 10. https://gcc.gnu.org/lists.html 11. http://www.fsf.org/ ! 12. https://gcc.gnu.org/about.html 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/index.html *************** References and Acknowledgements *** 6281,6287 **** provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2012-11-02[17]. References --- 6362,6368 ---- provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2014-06-28[17]. References *************** References *** 6290,6306 **** 3. http://gcc.gnu.org/gcc-4.1/changes.html 4. http://gcc.gnu.org/gcc-4.1/changes.html 5. http://gcc.gnu.org/gcc-4.1/buildstat.html ! 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 7. http://gcc.gnu.org/index.html 8. mailto:gcc@gcc.gnu.org 9. http://gcc.gnu.org/mirrors.html 10. http://gcc.gnu.org/svn.html ! 11. http://gcc.gnu.org/onlinedocs/ 12. mailto:gcc-help@gcc.gnu.org 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/lists.html 15. http://www.fsf.org/ ! 16. http://gcc.gnu.org/about.html 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/changes.html --- 6371,6387 ---- 3. http://gcc.gnu.org/gcc-4.1/changes.html 4. http://gcc.gnu.org/gcc-4.1/changes.html 5. http://gcc.gnu.org/gcc-4.1/buildstat.html ! 6. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 7. http://gcc.gnu.org/index.html 8. mailto:gcc@gcc.gnu.org 9. http://gcc.gnu.org/mirrors.html 10. http://gcc.gnu.org/svn.html ! 11. https://gcc.gnu.org/onlinedocs/ 12. mailto:gcc-help@gcc.gnu.org 13. mailto:gcc@gcc.gnu.org ! 14. https://gcc.gnu.org/lists.html 15. http://www.fsf.org/ ! 16. https://gcc.gnu.org/about.html 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/changes.html *************** New Languages and Language specific impr *** 6693,6699 **** most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: ! [3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html o QT4 AWT peers, enable by giving configure --enable-qt-peer. Included, but not ready for production yet. They are explicitly disabled and not supported. But --- 6774,6780 ---- most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: ! [3]https://gcc.gnu.org/ml/java/2005-05/msg00260.html o QT4 AWT peers, enable by giving configure --enable-qt-peer. Included, but not ready for production yet. They are explicitly disabled and not supported. But *************** GCC 4.1.2 *** 6844,6865 **** provided this notice is preserved. These pages are [12]maintained by the GCC team. Last modified ! 2012-11-02[13]. References 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText ! 3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html 4. http://developer.classpath.org/doc/ ! 5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html ! 6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 7. http://gcc.gnu.org/onlinedocs/ 8. mailto:gcc-help@gcc.gnu.org 9. mailto:gcc@gcc.gnu.org ! 10. http://gcc.gnu.org/lists.html 11. http://www.fsf.org/ ! 12. http://gcc.gnu.org/about.html 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html --- 6925,6946 ---- provided this notice is preserved. These pages are [12]maintained by the GCC team. Last modified ! 2014-06-28[13]. References 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText ! 3. https://gcc.gnu.org/ml/java/2005-05/msg00260.html 4. http://developer.classpath.org/doc/ ! 5. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html ! 6. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 7. https://gcc.gnu.org/onlinedocs/ 8. mailto:gcc-help@gcc.gnu.org 9. mailto:gcc@gcc.gnu.org ! 10. https://gcc.gnu.org/lists.html 11. http://www.fsf.org/ ! 12. https://gcc.gnu.org/about.html 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html *************** References and Acknowledgements *** 6922,6928 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2012-11-02[19]. References --- 7003,7009 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2014-06-28[19]. References *************** References *** 6933,6949 **** 5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 6. http://gcc.gnu.org/gcc-4.0/changes.html 7. http://gcc.gnu.org/gcc-4.0/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/svn.html ! 13. http://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. http://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/changes.html --- 7014,7030 ---- 5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 6. http://gcc.gnu.org/gcc-4.0/changes.html 7. http://gcc.gnu.org/gcc-4.0/buildstat.html ! 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/svn.html ! 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. https://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/changes.html *************** Other significant improvements *** 7391,7397 **** solving problems many projects such as python were forced to use RTLD_LOCAL for (with its resulting issues for C++ correctness). You can find more information about using these options at ! [11]http://gcc.gnu.org/wiki/Visibility. __________________________________________________________________ GCC 4.0.1 --- 7472,7478 ---- solving problems many projects such as python were forced to use RTLD_LOCAL for (with its resulting issues for C++ correctness). You can find more information about using these options at ! [11]https://gcc.gnu.org/wiki/Visibility. __________________________________________________________________ GCC 4.0.1 *************** GCC 4.0.4 *** 7448,7454 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2012-11-02[22]. References --- 7529,7535 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2014-06-28[22]. References *************** References *** 7461,7478 **** 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility 8. http://mentorembedded.github.com/cxx-abi/ 9. http://gcc.gnu.org/fortran/ ! 10. http://gcc.gnu.org/install/ ! 11. http://gcc.gnu.org/wiki/Visibility ! 12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 ! 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2 ! 14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html ! 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4 ! 16. http://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org ! 19. http://gcc.gnu.org/lists.html 20. http://www.fsf.org/ ! 21. http://gcc.gnu.org/about.html 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/index.html --- 7542,7559 ---- 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility 8. http://mentorembedded.github.com/cxx-abi/ 9. http://gcc.gnu.org/fortran/ ! 10. https://gcc.gnu.org/install/ ! 11. https://gcc.gnu.org/wiki/Visibility ! 12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 ! 13. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2 ! 14. https://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html ! 15. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4 ! 16. https://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html 20. http://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/index.html *************** References and Acknowledgements *** 7546,7558 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2012-11-02[23]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-3.4/changes.html ! 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 --- 7627,7639 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2014-06-28[23]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-3.4/changes.html ! 3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 *************** References *** 7561,7577 **** 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 10. http://gcc.gnu.org/gcc-3.4/changes.html 11. http://gcc.gnu.org/gcc-3.4/buildstat.html ! 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 13. http://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org 15. http://gcc.gnu.org/mirrors.html 16. http://gcc.gnu.org/svn.html ! 17. http://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org ! 20. http://gcc.gnu.org/lists.html 21. http://www.fsf.org/ ! 22. http://gcc.gnu.org/about.html 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html --- 7642,7658 ---- 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 10. http://gcc.gnu.org/gcc-3.4/changes.html 11. http://gcc.gnu.org/gcc-3.4/buildstat.html ! 12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 13. http://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org 15. http://gcc.gnu.org/mirrors.html 16. http://gcc.gnu.org/svn.html ! 17. https://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org ! 20. https://gcc.gnu.org/lists.html 21. http://www.fsf.org/ ! 22. https://gcc.gnu.org/about.html 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html *************** GCC 3.4.6 *** 9334,9340 **** provided this notice is preserved. These pages are [417]maintained by the GCC team. Last modified ! 2012-11-02[418]. References --- 9415,9421 ---- provided this notice is preserved. These pages are [417]maintained by the GCC team. Last modified ! 2014-06-28[418]. References *************** References *** 9345,9760 **** 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html 7. http://www.boost.org/ ! 8. http://gcc.gnu.org/PR11953 ! 9. http://gcc.gnu.org/PR8361 ! 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 12. http://gcc.gnu.org/bugs/#cxx_rvalbind ! 13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 16. http://www.gnu.org/software/classpath/ 17. http://www.eclipse.org/ ! 18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html ! 19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html 20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure ! 21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html ! 22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html ! 23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html 24. http://gcc.gnu.org/gcc-3.4/mips-abi.html 25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html 26. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 27. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED ! 28. http://gcc.gnu.org/PR10129 ! 29. http://gcc.gnu.org/PR14576 ! 30. http://gcc.gnu.org/PR14760 ! 31. http://gcc.gnu.org/PR14671 ! 32. http://gcc.gnu.org/PR15093 ! 33. http://gcc.gnu.org/PR15178 ! 34. http://gcc.gnu.org/PR12753 ! 35. http://gcc.gnu.org/PR13985 ! 36. http://gcc.gnu.org/PR14810 ! 37. http://gcc.gnu.org/PR14883 ! 38. http://gcc.gnu.org/PR15044 ! 39. http://gcc.gnu.org/PR15057 ! 40. http://gcc.gnu.org/PR15064 ! 41. http://gcc.gnu.org/PR15142 ! 42. http://gcc.gnu.org/PR15159 ! 43. http://gcc.gnu.org/PR15165 ! 44. http://gcc.gnu.org/PR15193 ! 45. http://gcc.gnu.org/PR15209 ! 46. http://gcc.gnu.org/PR15227 ! 47. http://gcc.gnu.org/PR15285 ! 48. http://gcc.gnu.org/PR15299 ! 49. http://gcc.gnu.org/PR15329 ! 50. http://gcc.gnu.org/PR15550 ! 51. http://gcc.gnu.org/PR15554 ! 52. http://gcc.gnu.org/PR15640 ! 53. http://gcc.gnu.org/PR15666 ! 54. http://gcc.gnu.org/PR15696 ! 55. http://gcc.gnu.org/PR15701 ! 56. http://gcc.gnu.org/PR15761 ! 57. http://gcc.gnu.org/PR15829 ! 58. http://gcc.gnu.org/PR14538 ! 59. http://gcc.gnu.org/PR12391 ! 60. http://gcc.gnu.org/PR14649 ! 61. http://gcc.gnu.org/PR15004 ! 62. http://gcc.gnu.org/PR15749 ! 63. http://gcc.gnu.org/PR10646 ! 64. http://gcc.gnu.org/PR12077 ! 65. http://gcc.gnu.org/PR13598 ! 66. http://gcc.gnu.org/PR14211 ! 67. http://gcc.gnu.org/PR14220 ! 68. http://gcc.gnu.org/PR14245 ! 69. http://gcc.gnu.org/PR14340 ! 70. http://gcc.gnu.org/PR14600 ! 71. http://gcc.gnu.org/PR14668 ! 72. http://gcc.gnu.org/PR14775 ! 73. http://gcc.gnu.org/PR14821 ! 74. http://gcc.gnu.org/PR14930 ! 75. http://gcc.gnu.org/PR14932 ! 76. http://gcc.gnu.org/PR14950 ! 77. http://gcc.gnu.org/PR14962 ! 78. http://gcc.gnu.org/PR14975 ! 79. http://gcc.gnu.org/PR15002 ! 80. http://gcc.gnu.org/PR15025 ! 81. http://gcc.gnu.org/PR15046 ! 82. http://gcc.gnu.org/PR15069 ! 83. http://gcc.gnu.org/PR15074 ! 84. http://gcc.gnu.org/PR15083 ! 85. http://gcc.gnu.org/PR15096 ! 86. http://gcc.gnu.org/PR15287 ! 87. http://gcc.gnu.org/PR15317 ! 88. http://gcc.gnu.org/PR15337 ! 89. http://gcc.gnu.org/PR15361 ! 90. http://gcc.gnu.org/PR15412 ! 91. http://gcc.gnu.org/PR15427 ! 92. http://gcc.gnu.org/PR15471 ! 93. http://gcc.gnu.org/PR15503 ! 94. http://gcc.gnu.org/PR15507 ! 95. http://gcc.gnu.org/PR15542 ! 96. http://gcc.gnu.org/PR15565 ! 97. http://gcc.gnu.org/PR15625 ! 98. http://gcc.gnu.org/PR15629 ! 99. http://gcc.gnu.org/PR15742 ! 100. http://gcc.gnu.org/PR15775 ! 101. http://gcc.gnu.org/PR15821 ! 102. http://gcc.gnu.org/PR15862 ! 103. http://gcc.gnu.org/PR15875 ! 104. http://gcc.gnu.org/PR15877 ! 105. http://gcc.gnu.org/PR15947 ! 106. http://gcc.gnu.org/PR16020 ! 107. http://gcc.gnu.org/PR16154 ! 108. http://gcc.gnu.org/PR16174 ! 109. http://gcc.gnu.org/PR14315 ! 110. http://gcc.gnu.org/PR15151 ! 111. http://gcc.gnu.org/PR7993 ! 112. http://gcc.gnu.org/PR15228 ! 113. http://gcc.gnu.org/PR15345 ! 114. http://gcc.gnu.org/PR15945 ! 115. http://gcc.gnu.org/PR15526 ! 116. http://gcc.gnu.org/PR14690 ! 117. http://gcc.gnu.org/PR15112 ! 118. http://gcc.gnu.org/PR15067 ! 119. http://gcc.gnu.org/PR1963 ! 120. http://gcc.gnu.org/PR15717 ! 121. http://gcc.gnu.org/PR14782 ! 122. http://gcc.gnu.org/PR14828 ! 123. http://gcc.gnu.org/PR15202 ! 124. http://gcc.gnu.org/PR14610 ! 125. http://gcc.gnu.org/PR14813 ! 126. http://gcc.gnu.org/PR14857 ! 127. http://gcc.gnu.org/PR15598 ! 128. http://gcc.gnu.org/PR15653 ! 129. http://gcc.gnu.org/PR15189 ! 130. http://gcc.gnu.org/PR15331 ! 131. http://gcc.gnu.org/PR16144 ! 132. http://gcc.gnu.org/PR16176 ! 133. http://gcc.gnu.org/PR11591 ! 134. http://gcc.gnu.org/PR12028 ! 135. http://gcc.gnu.org/PR14478 ! 136. http://gcc.gnu.org/PR14567 ! 137. http://gcc.gnu.org/PR14715 ! 138. http://gcc.gnu.org/PR14902 ! 139. http://gcc.gnu.org/PR14924 ! 140. http://gcc.gnu.org/PR14960 ! 141. http://gcc.gnu.org/PR15106 ! 142. http://gcc.gnu.org/PR16026 ! 143. http://gcc.gnu.org/PR15191 ! 144. http://gcc.gnu.org/PR15662 ! 145. http://gcc.gnu.org/PR15054 ! 146. http://gcc.gnu.org/PR15783 ! 147. http://gcc.gnu.org/PR15626 ! 148. http://gcc.gnu.org/PR14326 ! 149. http://gcc.gnu.org/PR14723 ! 150. http://gcc.gnu.org/PR15290 ! 151. http://gcc.gnu.org/PR15250 ! 152. http://gcc.gnu.org/PR15551 ! 153. http://gcc.gnu.org/PR8309 ! 154. http://gcc.gnu.org/PR13250 ! 155. http://gcc.gnu.org/PR13803 ! 156. http://gcc.gnu.org/PR14093 ! 157. http://gcc.gnu.org/PR14457 ! 158. http://gcc.gnu.org/PR14542 ! 159. http://gcc.gnu.org/PR15100 ! 160. http://gcc.gnu.org/PR15296 ! 161. http://gcc.gnu.org/PR15396 ! 162. http://gcc.gnu.org/PR15782 ! 163. http://gcc.gnu.org/PR11610 ! 164. http://gcc.gnu.org/PR15488 ! 165. http://gcc.gnu.org/PR15489 ! 166. http://gcc.gnu.org/PR13928 ! 167. http://gcc.gnu.org/PR14150 ! 168. http://gcc.gnu.org/PR14949 ! 169. http://gcc.gnu.org/PR15123 ! 170. http://gcc.gnu.org/PR16469 ! 171. http://gcc.gnu.org/PR16344 ! 172. http://gcc.gnu.org/PR16842 ! 173. http://gcc.gnu.org/PR12608 ! 174. http://gcc.gnu.org/PR14492 ! 175. http://gcc.gnu.org/PR15461 ! 176. http://gcc.gnu.org/PR15890 ! 177. http://gcc.gnu.org/PR16180 ! 178. http://gcc.gnu.org/PR16224 ! 179. http://gcc.gnu.org/PR16408 ! 180. http://gcc.gnu.org/PR16529 ! 181. http://gcc.gnu.org/PR16698 ! 182. http://gcc.gnu.org/PR16706 ! 183. http://gcc.gnu.org/PR16810 ! 184. http://gcc.gnu.org/PR16851 ! 185. http://gcc.gnu.org/PR16870 ! 186. http://gcc.gnu.org/PR16904 ! 187. http://gcc.gnu.org/PR16905 ! 188. http://gcc.gnu.org/PR16964 ! 189. http://gcc.gnu.org/PR17068 ! 190. http://gcc.gnu.org/PR16366 ! 191. http://gcc.gnu.org/PR15345 ! 192. http://gcc.gnu.org/PR16590 ! 193. http://gcc.gnu.org/PR16693 ! 194. http://gcc.gnu.org/PR17078 ! 195. http://gcc.gnu.org/PR13956 ! 196. http://gcc.gnu.org/PR16684 ! 197. http://gcc.gnu.org/PR12658 ! 198. http://gcc.gnu.org/PR13092 ! 199. http://gcc.gnu.org/PR15320 ! 200. http://gcc.gnu.org/PR16246 ! 201. http://gcc.gnu.org/PR16273 ! 202. http://gcc.gnu.org/PR16401 ! 203. http://gcc.gnu.org/PR16411 ! 204. http://gcc.gnu.org/PR16489 ! 205. http://gcc.gnu.org/PR16618 ! 206. http://gcc.gnu.org/PR16637 ! 207. http://gcc.gnu.org/PR16717 ! 208. http://gcc.gnu.org/PR16813 ! 209. http://gcc.gnu.org/PR16853 ! 210. http://gcc.gnu.org/PR16889 ! 211. http://gcc.gnu.org/PR16959 ! 212. http://gcc.gnu.org/PR7587 ! 213. http://gcc.gnu.org/PR16473 ! 214. http://gcc.gnu.org/PR16478 ! 215. http://gcc.gnu.org/PR10695 ! 216. http://gcc.gnu.org/PR16974 ! 217. http://gcc.gnu.org/PR16298 ! 218. http://gcc.gnu.org/PR17113 ! 219. http://gcc.gnu.org/PR14697 ! 220. http://gcc.gnu.org/PR15869 ! 221. http://gcc.gnu.org/PR16325 ! 222. http://gcc.gnu.org/PR16357 ! 223. http://gcc.gnu.org/PR16380 ! 224. http://gcc.gnu.org/PR16407 ! 225. http://gcc.gnu.org/PR16643 ! 226. http://gcc.gnu.org/PR15927 ! 227. http://gcc.gnu.org/PR15948 ! 228. http://gcc.gnu.org/PR17019 ! 229. http://gcc.gnu.org/PR16130 ! 230. http://gcc.gnu.org/PR16142 ! 231. http://gcc.gnu.org/PR16278 ! 232. http://gcc.gnu.org/PR16414 ! 233. http://gcc.gnu.org/PR16445 ! 234. http://gcc.gnu.org/PR16490 ! 235. http://gcc.gnu.org/PR16683 ! 236. http://gcc.gnu.org/PR16195 ! 237. http://gcc.gnu.org/PR16239 ! 238. http://gcc.gnu.org/PR16199 ! 239. http://gcc.gnu.org/PR16416 ! 240. http://gcc.gnu.org/PR16430 ! 241. http://gcc.gnu.org/PR16379 ! 242. http://gcc.gnu.org/PR17093 ! 243. http://gcc.gnu.org/PR17119 ! 244. http://gcc.gnu.org/PR15928 ! 245. http://gcc.gnu.org/PR16210 ! 246. http://gcc.gnu.org/PR15488 ! 247. http://gcc.gnu.org/PR16250 ! 248. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 ! 249. http://gcc.gnu.org/PR17369 ! 250. http://gcc.gnu.org/PR17850 ! 251. http://gcc.gnu.org/PR13948 ! 252. http://gcc.gnu.org/PR14492 ! 253. http://gcc.gnu.org/PR16301 ! 254. http://gcc.gnu.org/PR16566 ! 255. http://gcc.gnu.org/PR17023 ! 256. http://gcc.gnu.org/PR17027 ! 257. http://gcc.gnu.org/PR17524 ! 258. http://gcc.gnu.org/PR17826 ! 259. http://gcc.gnu.org/PR15526 ! 260. http://gcc.gnu.org/PR16999 ! 261. http://gcc.gnu.org/PR17503 ! 262. http://gcc.gnu.org/PR17581 ! 263. http://gcc.gnu.org/PR18129 ! 264. http://gcc.gnu.org/PR10975 ! 265. http://gcc.gnu.org/PR11722 ! 266. http://gcc.gnu.org/PR14534 ! 267. http://gcc.gnu.org/PR15172 ! 268. http://gcc.gnu.org/PR15786 ! 269. http://gcc.gnu.org/PR16162 ! 270. http://gcc.gnu.org/PR16612 ! 271. http://gcc.gnu.org/PR16715 ! 272. http://gcc.gnu.org/PR16848 ! 273. http://gcc.gnu.org/PR17132 ! 274. http://gcc.gnu.org/PR17259 ! 275. http://gcc.gnu.org/PR17327 ! 276. http://gcc.gnu.org/PR17393 ! 277. http://gcc.gnu.org/PR17501 ! 278. http://gcc.gnu.org/PR17537 ! 279. http://gcc.gnu.org/PR17585 ! 280. http://gcc.gnu.org/PR17821 ! 281. http://gcc.gnu.org/PR17829 ! 282. http://gcc.gnu.org/PR17851 ! 283. http://gcc.gnu.org/PR17976 ! 284. http://gcc.gnu.org/PR18020 ! 285. http://gcc.gnu.org/PR18093 ! 286. http://gcc.gnu.org/PR18140 ! 287. http://gcc.gnu.org/PR17541 ! 288. http://gcc.gnu.org/PR17853 ! 289. http://gcc.gnu.org/PR17245 ! 290. http://gcc.gnu.org/PR17167 ! 291. http://gcc.gnu.org/PR17277 ! 292. http://gcc.gnu.org/PR17505 ! 293. http://gcc.gnu.org/PR17684 ! 294. http://gcc.gnu.org/PR17384 ! 295. http://gcc.gnu.org/PR17770 ! 296. http://gcc.gnu.org/PR11476 ! 297. http://gcc.gnu.org/PR14064 ! 298. http://gcc.gnu.org/PR14678 ! 299. http://gcc.gnu.org/PR15583 ! 300. http://gcc.gnu.org/PR15790 ! 301. http://gcc.gnu.org/PR15886 ! 302. http://gcc.gnu.org/PR16884 ! 303. http://gcc.gnu.org/PR13841 ! 304. http://gcc.gnu.org/PR15860 ! 305. http://gcc.gnu.org/PR17465 ! 306. http://gcc.gnu.org/PR17469 ! 307. http://gcc.gnu.org/PR18138 ! 308. http://gcc.gnu.org/PR15498 ! 309. http://gcc.gnu.org/PR15747 ! 310. http://gcc.gnu.org/PR16406 ! 311. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4 ! 312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5 ! 313. http://gcc.gnu.org/PR24688 ! 314. http://gcc.gnu.org/PR17188 ! 315. http://gcc.gnu.org/PR20187 ! 316. http://gcc.gnu.org/PR21873 ! 317. http://gcc.gnu.org/PR21899 ! 318. http://gcc.gnu.org/PR22061 ! 319. http://gcc.gnu.org/PR22208 ! 320. http://gcc.gnu.org/PR22458 ! 321. http://gcc.gnu.org/PR22589 ! 322. http://gcc.gnu.org/PR24101 ! 323. http://gcc.gnu.org/PR10611 ! 324. http://gcc.gnu.org/PR13377 ! 325. http://gcc.gnu.org/PR16002 ! 326. http://gcc.gnu.org/PR17413 ! 327. http://gcc.gnu.org/PR17609 ! 328. http://gcc.gnu.org/PR17618 ! 329. http://gcc.gnu.org/PR18124 ! 330. http://gcc.gnu.org/PR18155 ! 331. http://gcc.gnu.org/PR18177 ! 332. http://gcc.gnu.org/PR18368 ! 333. http://gcc.gnu.org/PR18378 ! 334. http://gcc.gnu.org/PR18466 ! 335. http://gcc.gnu.org/PR18512 ! 336. http://gcc.gnu.org/PR18545 ! 337. http://gcc.gnu.org/PR18738 ! 338. http://gcc.gnu.org/PR18803 ! 339. http://gcc.gnu.org/PR19004 ! 340. http://gcc.gnu.org/PR19208 ! 341. http://gcc.gnu.org/PR19253 ! 342. http://gcc.gnu.org/PR19608 ! 343. http://gcc.gnu.org/PR19884 ! 344. http://gcc.gnu.org/PR20153 ! 345. http://gcc.gnu.org/PR20563 ! 346. http://gcc.gnu.org/PR20789 ! 347. http://gcc.gnu.org/PR21336 ! 348. http://gcc.gnu.org/PR21768 ! 349. http://gcc.gnu.org/PR21853 ! 350. http://gcc.gnu.org/PR21903 ! 351. http://gcc.gnu.org/PR21983 ! 352. http://gcc.gnu.org/PR21987 ! 353. http://gcc.gnu.org/PR22153 ! 354. http://gcc.gnu.org/PR22172 ! 355. http://gcc.gnu.org/PR21286 ! 356. http://gcc.gnu.org/PR22233 ! 357. http://gcc.gnu.org/PR22508 ! 358. http://gcc.gnu.org/PR22545 ! 359. http://gcc.gnu.org/PR23528 ! 360. http://gcc.gnu.org/PR23550 ! 361. http://gcc.gnu.org/PR23586 ! 362. http://gcc.gnu.org/PR23624 ! 363. http://gcc.gnu.org/PR23639 ! 364. http://gcc.gnu.org/PR23797 ! 365. http://gcc.gnu.org/PR23965 ! 366. http://gcc.gnu.org/PR24052 ! 367. http://gcc.gnu.org/PR24580 ! 368. http://gcc.gnu.org/PR24267 ! 369. http://gcc.gnu.org/PR17810 ! 370. http://gcc.gnu.org/PR17860 ! 371. http://gcc/gnu.org/PR21709 ! 372. http://gcc.gnu.org/PR21964 ! 373. http://gcc.gnu.org/PR22167 ! 374. http://gcc.gnu.org/PR22619 ! 375. http://gcc.gnu.org/PR23241 ! 376. http://gcc.gnu.org/PR23478 ! 377. http://gcc.gnu.org/PR24470 ! 378. http://gcc.gnu.org/PR24950 ! 379. http://gcc.gnu.org/PR14400 ! 380. http://gcc.gnu.org/PR14940 ! 381. http://gcc.gnu.org/PR20239 ! 382. http://gcc.gnu.org/PR15220 ! 383. http://gcc.gnu.org/PR19275 ! 384. http://gcc.gnu.org/PR21888 ! 385. http://gcc.gnu.org/PR15342 ! 386. http://gcc.gnu.org/PR23985 ! 387. http://gcc.gnu.org/PR16719 ! 388. http://gcc.gnu.org/PR21723 ! 389. http://gcc.gnu.org/PR21841 ! 390. http://gcc.gnu.org/PR23644 ! 391. http://gcc.gnu.org/PR24718 ! 392. http://gcc.gnu.org/PR18421 ! 393. http://gcc.gnu.org/PR20621 ! 394. http://gcc.gnu.org/PR18583 ! 395. http://gcc.gnu.org/PR20191 ! 396. http://gcc.gnu.org/PR22083 ! 397. http://gcc.gnu.org/PR23070 ! 398. http://gcc.gnu.org/PR23404 ! 399. http://gcc.gnu.org/PR23539 ! 400. http://gcc.gnu.org/PR24102 ! 401. http://gcc.gnu.org/PR24465 ! 402. http://gcc.gnu.org/PR19933 ! 403. http://gcc.gnu.org/PR21889 ! 404. http://gcc.gnu.org/PR19300 ! 405. http://gcc.gnu.org/PR20301 ! 406. http://gcc.gnu.org/PR20673 ! 407. http://gcc.gnu.org/PR18582 ! 408. http://gcc.gnu.org/PR19340 ! 409. http://gcc.gnu.org/PR21716 ! 410. http://gcc.gnu.org/PR24315 ! 411. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6 ! 412. http://gcc.gnu.org/onlinedocs/ 413. mailto:gcc-help@gcc.gnu.org 414. mailto:gcc@gcc.gnu.org ! 415. http://gcc.gnu.org/lists.html 416. http://www.fsf.org/ ! 417. http://gcc.gnu.org/about.html 418. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html --- 9426,9841 ---- 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html 7. http://www.boost.org/ ! 8. https://gcc.gnu.org/PR11953 ! 9. https://gcc.gnu.org/PR8361 ! 10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 12. http://gcc.gnu.org/bugs/#cxx_rvalbind ! 13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html ! 15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 16. http://www.gnu.org/software/classpath/ 17. http://www.eclipse.org/ ! 18. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html ! 19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html 20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure ! 21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html ! 22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html ! 23. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html 24. http://gcc.gnu.org/gcc-3.4/mips-abi.html 25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html 26. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED ! 28. https://gcc.gnu.org/PR10129 ! 29. https://gcc.gnu.org/PR14576 ! 30. https://gcc.gnu.org/PR14760 ! 31. https://gcc.gnu.org/PR14671 ! 32. https://gcc.gnu.org/PR15093 ! 33. https://gcc.gnu.org/PR15178 ! 34. https://gcc.gnu.org/PR12753 ! 35. https://gcc.gnu.org/PR13985 ! 36. https://gcc.gnu.org/PR14810 ! 37. https://gcc.gnu.org/PR14883 ! 38. https://gcc.gnu.org/PR15044 ! 39. https://gcc.gnu.org/PR15057 ! 40. https://gcc.gnu.org/PR15064 ! 41. https://gcc.gnu.org/PR15142 ! 42. https://gcc.gnu.org/PR15159 ! 43. https://gcc.gnu.org/PR15165 ! 44. https://gcc.gnu.org/PR15193 ! 45. https://gcc.gnu.org/PR15209 ! 46. https://gcc.gnu.org/PR15227 ! 47. https://gcc.gnu.org/PR15285 ! 48. https://gcc.gnu.org/PR15299 ! 49. https://gcc.gnu.org/PR15329 ! 50. https://gcc.gnu.org/PR15550 ! 51. https://gcc.gnu.org/PR15554 ! 52. https://gcc.gnu.org/PR15640 ! 53. https://gcc.gnu.org/PR15666 ! 54. https://gcc.gnu.org/PR15696 ! 55. https://gcc.gnu.org/PR15701 ! 56. https://gcc.gnu.org/PR15761 ! 57. https://gcc.gnu.org/PR15829 ! 58. https://gcc.gnu.org/PR14538 ! 59. https://gcc.gnu.org/PR12391 ! 60. https://gcc.gnu.org/PR14649 ! 61. https://gcc.gnu.org/PR15004 ! 62. https://gcc.gnu.org/PR15749 ! 63. https://gcc.gnu.org/PR10646 ! 64. https://gcc.gnu.org/PR12077 ! 65. https://gcc.gnu.org/PR13598 ! 66. https://gcc.gnu.org/PR14211 ! 67. https://gcc.gnu.org/PR14220 ! 68. https://gcc.gnu.org/PR14245 ! 69. https://gcc.gnu.org/PR14340 ! 70. https://gcc.gnu.org/PR14600 ! 71. https://gcc.gnu.org/PR14668 ! 72. https://gcc.gnu.org/PR14775 ! 73. https://gcc.gnu.org/PR14821 ! 74. https://gcc.gnu.org/PR14930 ! 75. https://gcc.gnu.org/PR14932 ! 76. https://gcc.gnu.org/PR14950 ! 77. https://gcc.gnu.org/PR14962 ! 78. https://gcc.gnu.org/PR14975 ! 79. https://gcc.gnu.org/PR15002 ! 80. https://gcc.gnu.org/PR15025 ! 81. https://gcc.gnu.org/PR15046 ! 82. https://gcc.gnu.org/PR15069 ! 83. https://gcc.gnu.org/PR15074 ! 84. https://gcc.gnu.org/PR15083 ! 85. https://gcc.gnu.org/PR15096 ! 86. https://gcc.gnu.org/PR15287 ! 87. https://gcc.gnu.org/PR15317 ! 88. https://gcc.gnu.org/PR15337 ! 89. https://gcc.gnu.org/PR15361 ! 90. https://gcc.gnu.org/PR15412 ! 91. https://gcc.gnu.org/PR15427 ! 92. https://gcc.gnu.org/PR15471 ! 93. https://gcc.gnu.org/PR15503 ! 94. https://gcc.gnu.org/PR15507 ! 95. https://gcc.gnu.org/PR15542 ! 96. https://gcc.gnu.org/PR15565 ! 97. https://gcc.gnu.org/PR15625 ! 98. https://gcc.gnu.org/PR15629 ! 99. https://gcc.gnu.org/PR15742 ! 100. https://gcc.gnu.org/PR15775 ! 101. https://gcc.gnu.org/PR15821 ! 102. https://gcc.gnu.org/PR15862 ! 103. https://gcc.gnu.org/PR15875 ! 104. https://gcc.gnu.org/PR15877 ! 105. https://gcc.gnu.org/PR15947 ! 106. https://gcc.gnu.org/PR16020 ! 107. https://gcc.gnu.org/PR16154 ! 108. https://gcc.gnu.org/PR16174 ! 109. https://gcc.gnu.org/PR14315 ! 110. https://gcc.gnu.org/PR15151 ! 111. https://gcc.gnu.org/PR7993 ! 112. https://gcc.gnu.org/PR15228 ! 113. https://gcc.gnu.org/PR15345 ! 114. https://gcc.gnu.org/PR15945 ! 115. https://gcc.gnu.org/PR15526 ! 116. https://gcc.gnu.org/PR14690 ! 117. https://gcc.gnu.org/PR15112 ! 118. https://gcc.gnu.org/PR15067 ! 119. https://gcc.gnu.org/PR1963 ! 120. https://gcc.gnu.org/PR15717 ! 121. https://gcc.gnu.org/PR14782 ! 122. https://gcc.gnu.org/PR14828 ! 123. https://gcc.gnu.org/PR15202 ! 124. https://gcc.gnu.org/PR14610 ! 125. https://gcc.gnu.org/PR14813 ! 126. https://gcc.gnu.org/PR14857 ! 127. https://gcc.gnu.org/PR15598 ! 128. https://gcc.gnu.org/PR15653 ! 129. https://gcc.gnu.org/PR15189 ! 130. https://gcc.gnu.org/PR15331 ! 131. https://gcc.gnu.org/PR16144 ! 132. https://gcc.gnu.org/PR16176 ! 133. https://gcc.gnu.org/PR11591 ! 134. https://gcc.gnu.org/PR12028 ! 135. https://gcc.gnu.org/PR14478 ! 136. https://gcc.gnu.org/PR14567 ! 137. https://gcc.gnu.org/PR14715 ! 138. https://gcc.gnu.org/PR14902 ! 139. https://gcc.gnu.org/PR14924 ! 140. https://gcc.gnu.org/PR14960 ! 141. https://gcc.gnu.org/PR15106 ! 142. https://gcc.gnu.org/PR16026 ! 143. https://gcc.gnu.org/PR15191 ! 144. https://gcc.gnu.org/PR15662 ! 145. https://gcc.gnu.org/PR15054 ! 146. https://gcc.gnu.org/PR15783 ! 147. https://gcc.gnu.org/PR15626 ! 148. https://gcc.gnu.org/PR14326 ! 149. https://gcc.gnu.org/PR14723 ! 150. https://gcc.gnu.org/PR15290 ! 151. https://gcc.gnu.org/PR15250 ! 152. https://gcc.gnu.org/PR15551 ! 153. https://gcc.gnu.org/PR8309 ! 154. https://gcc.gnu.org/PR13250 ! 155. https://gcc.gnu.org/PR13803 ! 156. https://gcc.gnu.org/PR14093 ! 157. https://gcc.gnu.org/PR14457 ! 158. https://gcc.gnu.org/PR14542 ! 159. https://gcc.gnu.org/PR15100 ! 160. https://gcc.gnu.org/PR15296 ! 161. https://gcc.gnu.org/PR15396 ! 162. https://gcc.gnu.org/PR15782 ! 163. https://gcc.gnu.org/PR11610 ! 164. https://gcc.gnu.org/PR15488 ! 165. https://gcc.gnu.org/PR15489 ! 166. https://gcc.gnu.org/PR13928 ! 167. https://gcc.gnu.org/PR14150 ! 168. https://gcc.gnu.org/PR14949 ! 169. https://gcc.gnu.org/PR15123 ! 170. https://gcc.gnu.org/PR16469 ! 171. https://gcc.gnu.org/PR16344 ! 172. https://gcc.gnu.org/PR16842 ! 173. https://gcc.gnu.org/PR12608 ! 174. https://gcc.gnu.org/PR14492 ! 175. https://gcc.gnu.org/PR15461 ! 176. https://gcc.gnu.org/PR15890 ! 177. https://gcc.gnu.org/PR16180 ! 178. https://gcc.gnu.org/PR16224 ! 179. https://gcc.gnu.org/PR16408 ! 180. https://gcc.gnu.org/PR16529 ! 181. https://gcc.gnu.org/PR16698 ! 182. https://gcc.gnu.org/PR16706 ! 183. https://gcc.gnu.org/PR16810 ! 184. https://gcc.gnu.org/PR16851 ! 185. https://gcc.gnu.org/PR16870 ! 186. https://gcc.gnu.org/PR16904 ! 187. https://gcc.gnu.org/PR16905 ! 188. https://gcc.gnu.org/PR16964 ! 189. https://gcc.gnu.org/PR17068 ! 190. https://gcc.gnu.org/PR16366 ! 191. https://gcc.gnu.org/PR15345 ! 192. https://gcc.gnu.org/PR16590 ! 193. https://gcc.gnu.org/PR16693 ! 194. https://gcc.gnu.org/PR17078 ! 195. https://gcc.gnu.org/PR13956 ! 196. https://gcc.gnu.org/PR16684 ! 197. https://gcc.gnu.org/PR12658 ! 198. https://gcc.gnu.org/PR13092 ! 199. https://gcc.gnu.org/PR15320 ! 200. https://gcc.gnu.org/PR16246 ! 201. https://gcc.gnu.org/PR16273 ! 202. https://gcc.gnu.org/PR16401 ! 203. https://gcc.gnu.org/PR16411 ! 204. https://gcc.gnu.org/PR16489 ! 205. https://gcc.gnu.org/PR16618 ! 206. https://gcc.gnu.org/PR16637 ! 207. https://gcc.gnu.org/PR16717 ! 208. https://gcc.gnu.org/PR16813 ! 209. https://gcc.gnu.org/PR16853 ! 210. https://gcc.gnu.org/PR16889 ! 211. https://gcc.gnu.org/PR16959 ! 212. https://gcc.gnu.org/PR7587 ! 213. https://gcc.gnu.org/PR16473 ! 214. https://gcc.gnu.org/PR16478 ! 215. https://gcc.gnu.org/PR10695 ! 216. https://gcc.gnu.org/PR16974 ! 217. https://gcc.gnu.org/PR16298 ! 218. https://gcc.gnu.org/PR17113 ! 219. https://gcc.gnu.org/PR14697 ! 220. https://gcc.gnu.org/PR15869 ! 221. https://gcc.gnu.org/PR16325 ! 222. https://gcc.gnu.org/PR16357 ! 223. https://gcc.gnu.org/PR16380 ! 224. https://gcc.gnu.org/PR16407 ! 225. https://gcc.gnu.org/PR16643 ! 226. https://gcc.gnu.org/PR15927 ! 227. https://gcc.gnu.org/PR15948 ! 228. https://gcc.gnu.org/PR17019 ! 229. https://gcc.gnu.org/PR16130 ! 230. https://gcc.gnu.org/PR16142 ! 231. https://gcc.gnu.org/PR16278 ! 232. https://gcc.gnu.org/PR16414 ! 233. https://gcc.gnu.org/PR16445 ! 234. https://gcc.gnu.org/PR16490 ! 235. https://gcc.gnu.org/PR16683 ! 236. https://gcc.gnu.org/PR16195 ! 237. https://gcc.gnu.org/PR16239 ! 238. https://gcc.gnu.org/PR16199 ! 239. https://gcc.gnu.org/PR16416 ! 240. https://gcc.gnu.org/PR16430 ! 241. https://gcc.gnu.org/PR16379 ! 242. https://gcc.gnu.org/PR17093 ! 243. https://gcc.gnu.org/PR17119 ! 244. https://gcc.gnu.org/PR15928 ! 245. https://gcc.gnu.org/PR16210 ! 246. https://gcc.gnu.org/PR15488 ! 247. https://gcc.gnu.org/PR16250 ! 248. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 ! 249. https://gcc.gnu.org/PR17369 ! 250. https://gcc.gnu.org/PR17850 ! 251. https://gcc.gnu.org/PR13948 ! 252. https://gcc.gnu.org/PR14492 ! 253. https://gcc.gnu.org/PR16301 ! 254. https://gcc.gnu.org/PR16566 ! 255. https://gcc.gnu.org/PR17023 ! 256. https://gcc.gnu.org/PR17027 ! 257. https://gcc.gnu.org/PR17524 ! 258. https://gcc.gnu.org/PR17826 ! 259. https://gcc.gnu.org/PR15526 ! 260. https://gcc.gnu.org/PR16999 ! 261. https://gcc.gnu.org/PR17503 ! 262. https://gcc.gnu.org/PR17581 ! 263. https://gcc.gnu.org/PR18129 ! 264. https://gcc.gnu.org/PR10975 ! 265. https://gcc.gnu.org/PR11722 ! 266. https://gcc.gnu.org/PR14534 ! 267. https://gcc.gnu.org/PR15172 ! 268. https://gcc.gnu.org/PR15786 ! 269. https://gcc.gnu.org/PR16162 ! 270. https://gcc.gnu.org/PR16612 ! 271. https://gcc.gnu.org/PR16715 ! 272. https://gcc.gnu.org/PR16848 ! 273. https://gcc.gnu.org/PR17132 ! 274. https://gcc.gnu.org/PR17259 ! 275. https://gcc.gnu.org/PR17327 ! 276. https://gcc.gnu.org/PR17393 ! 277. https://gcc.gnu.org/PR17501 ! 278. https://gcc.gnu.org/PR17537 ! 279. https://gcc.gnu.org/PR17585 ! 280. https://gcc.gnu.org/PR17821 ! 281. https://gcc.gnu.org/PR17829 ! 282. https://gcc.gnu.org/PR17851 ! 283. https://gcc.gnu.org/PR17976 ! 284. https://gcc.gnu.org/PR18020 ! 285. https://gcc.gnu.org/PR18093 ! 286. https://gcc.gnu.org/PR18140 ! 287. https://gcc.gnu.org/PR17541 ! 288. https://gcc.gnu.org/PR17853 ! 289. https://gcc.gnu.org/PR17245 ! 290. https://gcc.gnu.org/PR17167 ! 291. https://gcc.gnu.org/PR17277 ! 292. https://gcc.gnu.org/PR17505 ! 293. https://gcc.gnu.org/PR17684 ! 294. https://gcc.gnu.org/PR17384 ! 295. https://gcc.gnu.org/PR17770 ! 296. https://gcc.gnu.org/PR11476 ! 297. https://gcc.gnu.org/PR14064 ! 298. https://gcc.gnu.org/PR14678 ! 299. https://gcc.gnu.org/PR15583 ! 300. https://gcc.gnu.org/PR15790 ! 301. https://gcc.gnu.org/PR15886 ! 302. https://gcc.gnu.org/PR16884 ! 303. https://gcc.gnu.org/PR13841 ! 304. https://gcc.gnu.org/PR15860 ! 305. https://gcc.gnu.org/PR17465 ! 306. https://gcc.gnu.org/PR17469 ! 307. https://gcc.gnu.org/PR18138 ! 308. https://gcc.gnu.org/PR15498 ! 309. https://gcc.gnu.org/PR15747 ! 310. https://gcc.gnu.org/PR16406 ! 311. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4 ! 312. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5 ! 313. https://gcc.gnu.org/PR24688 ! 314. https://gcc.gnu.org/PR17188 ! 315. https://gcc.gnu.org/PR20187 ! 316. https://gcc.gnu.org/PR21873 ! 317. https://gcc.gnu.org/PR21899 ! 318. https://gcc.gnu.org/PR22061 ! 319. https://gcc.gnu.org/PR22208 ! 320. https://gcc.gnu.org/PR22458 ! 321. https://gcc.gnu.org/PR22589 ! 322. https://gcc.gnu.org/PR24101 ! 323. https://gcc.gnu.org/PR10611 ! 324. https://gcc.gnu.org/PR13377 ! 325. https://gcc.gnu.org/PR16002 ! 326. https://gcc.gnu.org/PR17413 ! 327. https://gcc.gnu.org/PR17609 ! 328. https://gcc.gnu.org/PR17618 ! 329. https://gcc.gnu.org/PR18124 ! 330. https://gcc.gnu.org/PR18155 ! 331. https://gcc.gnu.org/PR18177 ! 332. https://gcc.gnu.org/PR18368 ! 333. https://gcc.gnu.org/PR18378 ! 334. https://gcc.gnu.org/PR18466 ! 335. https://gcc.gnu.org/PR18512 ! 336. https://gcc.gnu.org/PR18545 ! 337. https://gcc.gnu.org/PR18738 ! 338. https://gcc.gnu.org/PR18803 ! 339. https://gcc.gnu.org/PR19004 ! 340. https://gcc.gnu.org/PR19208 ! 341. https://gcc.gnu.org/PR19253 ! 342. https://gcc.gnu.org/PR19608 ! 343. https://gcc.gnu.org/PR19884 ! 344. https://gcc.gnu.org/PR20153 ! 345. https://gcc.gnu.org/PR20563 ! 346. https://gcc.gnu.org/PR20789 ! 347. https://gcc.gnu.org/PR21336 ! 348. https://gcc.gnu.org/PR21768 ! 349. https://gcc.gnu.org/PR21853 ! 350. https://gcc.gnu.org/PR21903 ! 351. https://gcc.gnu.org/PR21983 ! 352. https://gcc.gnu.org/PR21987 ! 353. https://gcc.gnu.org/PR22153 ! 354. https://gcc.gnu.org/PR22172 ! 355. https://gcc.gnu.org/PR21286 ! 356. https://gcc.gnu.org/PR22233 ! 357. https://gcc.gnu.org/PR22508 ! 358. https://gcc.gnu.org/PR22545 ! 359. https://gcc.gnu.org/PR23528 ! 360. https://gcc.gnu.org/PR23550 ! 361. https://gcc.gnu.org/PR23586 ! 362. https://gcc.gnu.org/PR23624 ! 363. https://gcc.gnu.org/PR23639 ! 364. https://gcc.gnu.org/PR23797 ! 365. https://gcc.gnu.org/PR23965 ! 366. https://gcc.gnu.org/PR24052 ! 367. https://gcc.gnu.org/PR24580 ! 368. https://gcc.gnu.org/PR24267 ! 369. https://gcc.gnu.org/PR17810 ! 370. https://gcc.gnu.org/PR17860 ! 371. https://gcc.gnu.org/PR21709 ! 372. https://gcc.gnu.org/PR21964 ! 373. https://gcc.gnu.org/PR22167 ! 374. https://gcc.gnu.org/PR22619 ! 375. https://gcc.gnu.org/PR23241 ! 376. https://gcc.gnu.org/PR23478 ! 377. https://gcc.gnu.org/PR24470 ! 378. https://gcc.gnu.org/PR24950 ! 379. https://gcc.gnu.org/PR14400 ! 380. https://gcc.gnu.org/PR14940 ! 381. https://gcc.gnu.org/PR20239 ! 382. https://gcc.gnu.org/PR15220 ! 383. https://gcc.gnu.org/PR19275 ! 384. https://gcc.gnu.org/PR21888 ! 385. https://gcc.gnu.org/PR15342 ! 386. https://gcc.gnu.org/PR23985 ! 387. https://gcc.gnu.org/PR16719 ! 388. https://gcc.gnu.org/PR21723 ! 389. https://gcc.gnu.org/PR21841 ! 390. https://gcc.gnu.org/PR23644 ! 391. https://gcc.gnu.org/PR24718 ! 392. https://gcc.gnu.org/PR18421 ! 393. https://gcc.gnu.org/PR20621 ! 394. https://gcc.gnu.org/PR18583 ! 395. https://gcc.gnu.org/PR20191 ! 396. https://gcc.gnu.org/PR22083 ! 397. https://gcc.gnu.org/PR23070 ! 398. https://gcc.gnu.org/PR23404 ! 399. https://gcc.gnu.org/PR23539 ! 400. https://gcc.gnu.org/PR24102 ! 401. https://gcc.gnu.org/PR24465 ! 402. https://gcc.gnu.org/PR19933 ! 403. https://gcc.gnu.org/PR21889 ! 404. https://gcc.gnu.org/PR19300 ! 405. https://gcc.gnu.org/PR20301 ! 406. https://gcc.gnu.org/PR20673 ! 407. https://gcc.gnu.org/PR18582 ! 408. https://gcc.gnu.org/PR19340 ! 409. https://gcc.gnu.org/PR21716 ! 410. https://gcc.gnu.org/PR24315 ! 411. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6 ! 412. https://gcc.gnu.org/onlinedocs/ 413. mailto:gcc-help@gcc.gnu.org 414. mailto:gcc@gcc.gnu.org ! 415. https://gcc.gnu.org/lists.html 416. http://www.fsf.org/ ! 417. https://gcc.gnu.org/about.html 418. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html *************** References and Acknowledgements *** 9829,9841 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2012-11-02[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-3.3/changes.html ! 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 --- 9910,9922 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2014-06-28[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-3.3/changes.html ! 3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 *************** References *** 9844,9859 **** 9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 10. http://gcc.gnu.org/gcc-3.3/changes.html 11. http://gcc.gnu.org/gcc-3.3/buildstat.html ! 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 13. http://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org 15. http://gcc.gnu.org/mirrors.html ! 16. http://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org ! 19. http://gcc.gnu.org/lists.html 20. http://www.fsf.org/ ! 21. http://gcc.gnu.org/about.html 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/changes.html --- 9925,9940 ---- 9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 10. http://gcc.gnu.org/gcc-3.3/changes.html 11. http://gcc.gnu.org/gcc-3.3/buildstat.html ! 12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 13. http://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org 15. http://gcc.gnu.org/mirrors.html ! 16. https://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html 20. http://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/changes.html *************** GCC 3.3.2 *** 10746,10903 **** Bug Fixes ! This section lists the problem reports (PRs) from [335]GCC's bug ! tracking system that are known to be fixed in the 3.3.2 release. This ! list might not be complete (that is, it is possible that some PRs that ! have been fixed are not listed here). Bootstrap failures and problems ! * [336]8336 [SCO5] bootstrap config still tries to use COFF options ! * [337]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with --enable-threads=posix ! * [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap ! * [339]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare 7.1.1) ! * [340]11687 xstormy16-elf build fails in libf2c ! * [341]12263 [SGI IRIX] bootstrap fails during compile of libf2c/libI77/backspace.c ! * [342]12490 buffer overflow in scan-decls.c (during Solaris 9 fix-header processing) Internal compiler errors (multi-platform) ! * [343]7277 Casting integers to vector types causes ICE ! * [344]7939 (c++) ICE on invalid function template specialization ! * [345]11063 (c++) ICE on parsing initialization list of const array member ! * [346]11207 ICE with negative index in array element designator ! * [347]11522 (fortran) g77 dwarf-2 ICE in add_abstract_origin_attribute ! * [348]11595 (c++) ICE on duplicate label definition ! * [349]11646 (c++) ICE in commit_one_edge_insertion with -fnon-call-exceptions -fgcse -O ! * [350]11665 ICE in struct initializer when taking address ! * [351]11852 (c++) ICE with bad struct initializer. ! * [352]11878 (c++) ICE in cp_expr_size ! * [353]11883 ICE with any -O on mercury-generated C code ! * [354]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in cp/typeck2.c when applying typeid operator to template template parameter ! * [355]12146 ICE in lookup_template_function, in cp/pt.c ! * [356]12215 ICE in make_label_edge with -fnon-call-exceptions -fno-gcse -O2 ! * [357]12369 (c++) ICE with templates and friends ! * [358]12446 ICE in emit_move_insn on complicated array reference ! * [359]12510 ICE in final_scan_insn ! * [360]12544 ICE with large parameters used in nested functions C and optimization bugs ! * [361]9862 spurious warnings with -W -finline-functions ! * [362]10962 lookup_field is a linear search on a linked list (can be slow if large struct) ! * [363]11370 -Wunreachable-code gives false complaints ! * [364]11637 invalid assembly with -fnon-call-exceptions ! * [365]11885 Problem with bitfields in packed structs ! * [366]12082 Inappropriate unreachable code warnings ! * [367]12180 Inline optimization fails for variadic function ! * [368]12340 loop unroller + gcse produces wrong code C++ compiler and library ! * [369]3907 nested template parameter collides with member name ! * [370]5293 confusing message when binding a temporary to a reference ! * [371]5296 [DR115] Pointers to functions and to template functions behave differently in deduction ! * [372]7939 ICE on function template specialization ! * [373]8656 Unable to assign function with __attribute__ and pointer return type to an appropriate variable ! * [374]10147 Confusing error message for invalid template function argument ! * [375]11400 std::search_n() makes assumptions about Size parameter ! * [376]11409 issues with using declarations, overloading, and built-in functions ! * [377]11740 ctype::do_is(mask, wchar_t) doesn't handle multiple bits in mask ! * [378]11786 operator() call on variable in other namespace not recognized ! * [379]11867 static_cast ignores ambiguity ! * [380]11928 bug with conversion operators that are typedefs ! * [381]12114 Uninitialized memory accessed in dtor ! * [382]12163 static_cast + explicit constructor regression ! * [383]12181 Wrong code with comma operator and c++ ! * [384]12236 regparm and fastcall messes up parameters ! * [385]12266 incorrect instantiation of unneeded template during overload resolution ! * [386]12296 istream::peek() doesn't set eofbit ! * [387]12298 [sjlj exceptions] Stack unwind destroys not-yet-constructed object ! * [388]12369 ICE with templates and friends ! * [389]12337 apparently infinite loop in g++ ! * [390]12344 stdcall attribute ignored if function returns a pointer ! * [391]12451 missing(late) class forward declaration in cxxabi.h ! * [392]12486 g++ accepts invalid use of a qualified name x86 specific (Intel/AMD) ! * [393]8869 [x86 MMX] ICE with const variable optimization and MMX builtins ! * [394]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions -O2 ! * [395]11689 g++3.3 emits un-assembleable code for k6 architecture ! * [396]12116 [k6] Invalid assembly output values with X-MAME code ! * [397]12070 ICE converting between double and long double with -msoft-float ia64-specific ! * [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc ! * [399]11535 __builtin_return_address may not work on ia64 ! * [400]11693 [ia64] ICE in gen_nop_type ! * [401]12224 [ia64] Thread-local storage doesn't work PowerPC-specific ! * [402]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux kernel ! * [403]11319 loop miscompiled on ppc32 ! * [404]11949 ICE Compiler segfault with ffmpeg -maltivec code SPARC-specific ! * [405]11662 wrong code for expr. with cast to long long and exclusive or ! * [406]11965 invalid assembler code for a shift < 32 operation ! * [407]12301 (c++) stack corruption when a returned expression throws an exception Alpha-specific ! * [408]11717 [alpha-linux] unrecognizable insn compiling for.c of kernel 2.4.22-pre8 HPUX-specific ! * [409]11313 problem with #pragma weak and static inline functions ! * [410]11712 __STDC_EXT__ not defined for C++ by default anymore? Solaris specific ! * [411]12166 Profiled programs crash if PROFDIR is set Solaris-x86 specific ! * [412]12101 i386 Solaris no longer works with GNU as? Miscellaneous embedded target-specific bugs ! * [413]10988 [m32r-elf] wrong blockmove code with -O3 ! * [414]11805 [h8300-unknown-coff] [H8300] ICE for simple code with -O2 ! * [415]11902 [sh4] spec file improperly inserts rpath even when none needed ! * [416]11903 [sh4] -pthread fails to link due to error in spec file on sh4 __________________________________________________________________ --- 10827,10984 ---- Bug Fixes ! This section lists the problem reports (PRs) from GCC's bug tracker ! that are known to be fixed in the 3.3.2 release. This list might not be ! complete (that is, it is possible that some PRs that have been fixed ! are not listed here). Bootstrap failures and problems ! * [335]8336 [SCO5] bootstrap config still tries to use COFF options ! * [336]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with --enable-threads=posix ! * [337]9631 [hppa64-linux] gcc-3.3 fails to bootstrap ! * [338]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare 7.1.1) ! * [339]11687 xstormy16-elf build fails in libf2c ! * [340]12263 [SGI IRIX] bootstrap fails during compile of libf2c/libI77/backspace.c ! * [341]12490 buffer overflow in scan-decls.c (during Solaris 9 fix-header processing) Internal compiler errors (multi-platform) ! * [342]7277 Casting integers to vector types causes ICE ! * [343]7939 (c++) ICE on invalid function template specialization ! * [344]11063 (c++) ICE on parsing initialization list of const array member ! * [345]11207 ICE with negative index in array element designator ! * [346]11522 (fortran) g77 dwarf-2 ICE in add_abstract_origin_attribute ! * [347]11595 (c++) ICE on duplicate label definition ! * [348]11646 (c++) ICE in commit_one_edge_insertion with -fnon-call-exceptions -fgcse -O ! * [349]11665 ICE in struct initializer when taking address ! * [350]11852 (c++) ICE with bad struct initializer. ! * [351]11878 (c++) ICE in cp_expr_size ! * [352]11883 ICE with any -O on mercury-generated C code ! * [353]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in cp/typeck2.c when applying typeid operator to template template parameter ! * [354]12146 ICE in lookup_template_function, in cp/pt.c ! * [355]12215 ICE in make_label_edge with -fnon-call-exceptions -fno-gcse -O2 ! * [356]12369 (c++) ICE with templates and friends ! * [357]12446 ICE in emit_move_insn on complicated array reference ! * [358]12510 ICE in final_scan_insn ! * [359]12544 ICE with large parameters used in nested functions C and optimization bugs ! * [360]9862 spurious warnings with -W -finline-functions ! * [361]10962 lookup_field is a linear search on a linked list (can be slow if large struct) ! * [362]11370 -Wunreachable-code gives false complaints ! * [363]11637 invalid assembly with -fnon-call-exceptions ! * [364]11885 Problem with bitfields in packed structs ! * [365]12082 Inappropriate unreachable code warnings ! * [366]12180 Inline optimization fails for variadic function ! * [367]12340 loop unroller + gcse produces wrong code C++ compiler and library ! * [368]3907 nested template parameter collides with member name ! * [369]5293 confusing message when binding a temporary to a reference ! * [370]5296 [DR115] Pointers to functions and to template functions behave differently in deduction ! * [371]7939 ICE on function template specialization ! * [372]8656 Unable to assign function with __attribute__ and pointer return type to an appropriate variable ! * [373]10147 Confusing error message for invalid template function argument ! * [374]11400 std::search_n() makes assumptions about Size parameter ! * [375]11409 issues with using declarations, overloading, and built-in functions ! * [376]11740 ctype::do_is(mask, wchar_t) doesn't handle multiple bits in mask ! * [377]11786 operator() call on variable in other namespace not recognized ! * [378]11867 static_cast ignores ambiguity ! * [379]11928 bug with conversion operators that are typedefs ! * [380]12114 Uninitialized memory accessed in dtor ! * [381]12163 static_cast + explicit constructor regression ! * [382]12181 Wrong code with comma operator and c++ ! * [383]12236 regparm and fastcall messes up parameters ! * [384]12266 incorrect instantiation of unneeded template during overload resolution ! * [385]12296 istream::peek() doesn't set eofbit ! * [386]12298 [sjlj exceptions] Stack unwind destroys not-yet-constructed object ! * [387]12369 ICE with templates and friends ! * [388]12337 apparently infinite loop in g++ ! * [389]12344 stdcall attribute ignored if function returns a pointer ! * [390]12451 missing(late) class forward declaration in cxxabi.h ! * [391]12486 g++ accepts invalid use of a qualified name x86 specific (Intel/AMD) ! * [392]8869 [x86 MMX] ICE with const variable optimization and MMX builtins ! * [393]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions -O2 ! * [394]11689 g++3.3 emits un-assembleable code for k6 architecture ! * [395]12116 [k6] Invalid assembly output values with X-MAME code ! * [396]12070 ICE converting between double and long double with -msoft-float ia64-specific ! * [397]11184 [ia64 hpux] ICE on __builtin_apply building libobjc ! * [398]11535 __builtin_return_address may not work on ia64 ! * [399]11693 [ia64] ICE in gen_nop_type ! * [400]12224 [ia64] Thread-local storage doesn't work PowerPC-specific ! * [401]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux kernel ! * [402]11319 loop miscompiled on ppc32 ! * [403]11949 ICE Compiler segfault with ffmpeg -maltivec code SPARC-specific ! * [404]11662 wrong code for expr. with cast to long long and exclusive or ! * [405]11965 invalid assembler code for a shift < 32 operation ! * [406]12301 (c++) stack corruption when a returned expression throws an exception Alpha-specific ! * [407]11717 [alpha-linux] unrecognizable insn compiling for.c of kernel 2.4.22-pre8 HPUX-specific ! * [408]11313 problem with #pragma weak and static inline functions ! * [409]11712 __STDC_EXT__ not defined for C++ by default anymore? Solaris specific ! * [410]12166 Profiled programs crash if PROFDIR is set Solaris-x86 specific ! * [411]12101 i386 Solaris no longer works with GNU as? Miscellaneous embedded target-specific bugs ! * [412]10988 [m32r-elf] wrong blockmove code with -O3 ! * [413]11805 [h8300-unknown-coff] [H8300] ICE for simple code with -O2 ! * [414]11902 [sh4] spec file improperly inserts rpath even when none needed ! * [415]11903 [sh4] -pthread fails to link due to error in spec file on sh4 __________________________________________________________________ *************** GCC 3.3.3 *** 10914,10979 **** Bug Fixes ! This section lists the problem reports (PRs) from [417]GCC's bug ! tracking system that are known to be fixed in the 3.3.3 release. This ! list might not be complete (that is, it is possible that some PRs that ! have been fixed are not listed here). Bootstrap failures and issues ! * [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails ! * [419]12399 boehm-gc fails (when building a cross compiler): libtool unable to infer tagged configuration ! * [420]13068 mklibgcc.in doesn't handle multi-level multilib subdirectories properly Internal compiler errors (multi-platform) ! * [421]10060 ICE (stack overflow) on huge file (300k lines) due to recursive behaviour of copy_rtx_if_shared, in emit_rtl.c ! * [422]10555 (c++) ICE on undefined template argument ! * [423]10706 (c++) ICE in mangle_class_name_for_template ! * [424]11496 (fortran) error in flow_loops_find when -funroll-loops active ! * [425]11741 ICE in pre_insert_copy_insn, in gcse.c ! * [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0 ! * [427]12632 (fortran) -fbounds-check ICE ! * [428]12712 (c++) ICE on short legit C++ code fragment with gcc 3.3.2 ! * [429]12726 (c++) ICE (segfault) on trivial code ! * [430]12890 (c++) ICE on compilation of class with throwing method ! * [431]12900 (c++) ICE in rtl_verify_flow_info_1 ! * [432]13060 (fortran) ICE in fixup_var_refs_1, in function.c on correct code with -O2 -fno-force-mem ! * [433]13289 (c++) ICE in regenerate_decl_from_template on recursive template ! * [434]13318 ICE: floating point exception in the loop optimizer ! * [435]13392 (c++) ICE in convert_from_eh_region_ranges_1, in except.c ! * [436]13574 (c++) invalid array default initializer in class lets gcc consume all memory and die ! * [437]13475 ICE on SIMD variables with partial value initialization ! * [438]13797 (c++) ICE on invalid template parameter ! * [439]13824 (java) gcj SEGV with simple .java program C and optimization bugs ! * [440]8776 loop invariants are not removed (most likely) ! * [441]10339 [sparc,ppc,ppc64] Invalid optimization: replacing strncmp by memcmp ! * [442]11350 undefined labels with -Os -fPIC ! * [443]12826 Optimizer removes reference through volatile pointer ! * [444]12500 stabs debug info: void no longer a predefined / builtin type ! * [445]12941 builtin-bitops-1.c miscompilation (latent bug) ! * [446]12953 tree inliner bug (in inline_forbidden_p) and fix ! * [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled ! * [448]13507 spurious printf format warning ! * [449]13382 Type information for const pointer disappears during optimization. ! * [450]13394 noreturn attribute ignored on recursive invokation ! * [451]13400 Compiled code crashes storing to read-only location ! * [452]13521 Endless loop in calculate_global_regs_live C++ compiler and library --- 10995,11060 ---- Bug Fixes ! This section lists the problem reports (PRs) from GCC's bug tracker ! that are known to be fixed in the 3.3.3 release. This list might not be ! complete (that is, it is possible that some PRs that have been fixed ! are not listed here). Bootstrap failures and issues ! * [416]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails ! * [417]12399 boehm-gc fails (when building a cross compiler): libtool unable to infer tagged configuration ! * [418]13068 mklibgcc.in doesn't handle multi-level multilib subdirectories properly Internal compiler errors (multi-platform) ! * [419]10060 ICE (stack overflow) on huge file (300k lines) due to recursive behaviour of copy_rtx_if_shared, in emit_rtl.c ! * [420]10555 (c++) ICE on undefined template argument ! * [421]10706 (c++) ICE in mangle_class_name_for_template ! * [422]11496 (fortran) error in flow_loops_find when -funroll-loops active ! * [423]11741 ICE in pre_insert_copy_insn, in gcse.c ! * [424]12440 GCC crashes during compilation of quicktime4linux 2.0.0 ! * [425]12632 (fortran) -fbounds-check ICE ! * [426]12712 (c++) ICE on short legit C++ code fragment with gcc 3.3.2 ! * [427]12726 (c++) ICE (segfault) on trivial code ! * [428]12890 (c++) ICE on compilation of class with throwing method ! * [429]12900 (c++) ICE in rtl_verify_flow_info_1 ! * [430]13060 (fortran) ICE in fixup_var_refs_1, in function.c on correct code with -O2 -fno-force-mem ! * [431]13289 (c++) ICE in regenerate_decl_from_template on recursive template ! * [432]13318 ICE: floating point exception in the loop optimizer ! * [433]13392 (c++) ICE in convert_from_eh_region_ranges_1, in except.c ! * [434]13574 (c++) invalid array default initializer in class lets gcc consume all memory and die ! * [435]13475 ICE on SIMD variables with partial value initialization ! * [436]13797 (c++) ICE on invalid template parameter ! * [437]13824 (java) gcj SEGV with simple .java program C and optimization bugs ! * [438]8776 loop invariants are not removed (most likely) ! * [439]10339 [sparc,ppc,ppc64] Invalid optimization: replacing strncmp by memcmp ! * [440]11350 undefined labels with -Os -fPIC ! * [441]12826 Optimizer removes reference through volatile pointer ! * [442]12500 stabs debug info: void no longer a predefined / builtin type ! * [443]12941 builtin-bitops-1.c miscompilation (latent bug) ! * [444]12953 tree inliner bug (in inline_forbidden_p) and fix ! * [445]13041 linux-2.6/sound/core/oss/rate.c miscompiled ! * [446]13507 spurious printf format warning ! * [447]13382 Type information for const pointer disappears during optimization. ! * [448]13394 noreturn attribute ignored on recursive invokation ! * [449]13400 Compiled code crashes storing to read-only location ! * [450]13521 Endless loop in calculate_global_regs_live C++ compiler and library *************** GCC 3.3.3 *** 10981,11176 **** that the ISO C++ standards committee has made concerning several defect reports (DRs). Links in the list below point to detailed discussion of the relevant defect report. ! * [453]2094 unimplemented: use of `ptrmem_cst' in template type unification ! * [454]2294 using declaration confusion ! * [455]5050 template instantiation depth exceeds limit: recursion problem? ! * [456]9371 Bad exception handling in i/ostream::operator>>/<<(streambuf*) ! * [457]9546 bad exception handling in ostream members ! * [458]10081 basic_ios::_M_cache_locale leaves NULL members in the face of unknown locales ! * [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work ! * [461]10095 istream::operator>>(int&) sets ios::badbit when ios::failbit is set. ! * [462]11554 Warning about reordering of initializers doesn't mention location of constructor ! * [463]12297 istream::sentry::sentry() handles eof() incorrectly. ! * [464]12352 Exception safety problems in src/localename.cc ! * [465]12438 Memory leak in locale::combine() ! * [466]12540 Memory leak in locale::locale(const char*) ! * [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented ! * [470]12657 Resolution of [471]DR 292 (WP) still unimplemented ! * [472]12696 memory eating infinite loop in diagnostics (error recovery problem) ! * [473]12815 Code compiled with optimization behaves unexpectedly ! * [474]12862 Conflicts between typedefs/enums and namespace member declarations ! * [475]12926 Wrong value after assignment in initialize list using bit-fields ! * [476]12967 Resolution of [477]DR 300 [WP] still unimplemented ! * [478]12971 Resolution of [479]DR 328 [WP] still unimplemented ! * [480]13007 basic_streambuf::pubimbue, imbue wrong ! * [481]13009 Implicitly-defined assignment operator writes to wrong memory ! * [482]13057 regparm attribute not applied to destructor ! * [483]13070 -Wformat option ignored in g++ ! * [484]13081 forward template declarations in let inlining fail ! * [485]13239 Assertion does not seem to work correctly anymore ! * [486]13262 "xxx is private within this context" when initializing a self-contained template class ! * [487]13290 simple typo in concept checking for std::generate_n ! * [488]13323 Template code does not compile in presence of typedef ! * [489]13369 __verify_grouping (and __add_grouping?) not correct ! * [490]13371 infinite loop with packed struct and inlining ! * [491]13445 Template argument replacement "dereferences" a typedef ! * [492]13461 Fails to access protected-ctor from public constant ! * [493]13462 Non-standard-conforming type set::pointer ! * [494]13478 gcc uses wrong constructor to initialize a const reference ! * [495]13544 "conflicting types" for enums in different scopes ! * [496]13650 string::compare should not (always) use traits_type::length() ! * [497]13683 bogus warning about passing non-PODs through ellipsis ! * [498]13688 Derived class is denied access to protected base class member class ! * [499]13774 Member variable cleared in virtual multiple inheritance class ! * [500]13884 Protect sstream.tcc from extern template use Java compiler and library ! * [501]10746 [win32] garbage collection crash in GCJ Objective-C compiler and library ! * [502]11433 Crash due to dereferencing null pointer when querying protocol Fortran compiler and library ! * [503]12633 logical expression gives incorrect result with -fugly-logint option ! * [504]13037 [gcse-lm] g77 generates incorrect code ! * [505]13213 Hex constant problem when compiling with -fugly-logint and -ftypeless-boz x86-specific (Intel/AMD) ! * [506]4490 ICE with -m128bit-long-double ! * [507]12292 [x86_64] ICE: RTL check: expected code `const_int', have `reg' in make_field_assignment, in combine.c ! * [508]12441 ICE: can't find a register to spill ! * [509]12943 array static-init failure under -fpic, -fPIC ! * [510]13608 Incorrect code with -O3 -ffast-math PowerPC-specific ! * [511]11598 testcase gcc.dg/20020118-1.c fails runtime check of __attribute__((aligned(16))) ! * [512]11793 ICE in extract_insn, in recog.c (const_vector's) ! * [513]12467 vmsumubm emitted when vmsummbm appropriate (typo in altivec.md) ! * [514]12537 g++ generates writeable text sections SPARC-specific ! * [515]12496 wrong result for __atomic_add(&value, -1) when using -O0 -m64 ! * [516]12865 mprotect call to make trampoline executable may fail ! * [517]13354 ICE in sparc_emit_set_const32 ARM-specific ! * [518]10467 [arm] ICE in pre_insert_copy_insn, ia64-specific ! * [519]11226 ICE passing struct arg with two floats ! * [520]11227 ICE for _Complex float, _Complex long double args ! * [521]12644 GCC 3.3.2 fails to compile glibc on ia64 ! * [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn * Various fixes for libunwind Alpha-specific ! * [523]12654 Incorrect comparison code generated for Alpha ! * [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2 ! * [525]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2 HPPA-specific ! * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c ! * [527]12158 [hppa] compilation does not terminate at -O1 S390-specific ! * [528]11992 Wrong built-in code for memcmp with length 1<<24: only (1<<24)-1 possible for CLCL-Instruction SH-specific ! * [529]9365 segfault in gen_far_branch (config/sh/sh.c) ! * [530]10392 optimizer generates faulty array indexing ! * [531]11322 SH profiler outputs multiple definitions of symbol ! * [532]13069 gcc/config/sh/rtems.h broken ! * [533]13302 Putting a va_list in a struct causes seg fault ! * [534]13585 Incorrect optimization of call to sfunc * Fix inappropriately exported libgcc functions from the shared library Other embedded target specific ! * [535]8916 [mcore] unsigned char assign gets hosed. ! * [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c ! * [537]13122 [h8300] local variable gets corrupted by function call when -fomit-frame-pointer is given ! * [538]13256 [cris] strict_low_part mistreated in delay slots ! * [539]13373 [mcore] optimization with -frerun-cse-after-loop -fexpensive-optimizations produces wrong code on mcore GNU HURD-specific ! * [540]12561 gcc/config/t-gnu needs updating to work with --with-sysroot Tru64 Unix specific ! * [541]6243 testsuite fails almost all tests due to no libintl in LD_LIBRARY_PATH during test. ! * [542]11397 weak aliases broken on Tru64 UNIX AIX-specific ! * [543]12505 build failure due to defines of uchar in cpphash.h and sys/types.h ! * [544]13150 WEAK symbols not exported by collect2 IRIX-specific ! * [545]12666 fixincludes problem on IRIX 6.5.19m Solaris-specific ! * [546]12969 Including sys/byteorder.h breaks configure checks Testsuite problems (compiler is not affected) ! * [547]10819 testsuite creates CR+LF on compiler version lines in test summary files ! * [548]11612 abi_check not finding correct libgcc_s.so.1 Miscellaneous ! * [549]13211 using -###, incorrect warnings about unused linker file are produced __________________________________________________________________ GCC 3.3.4 ! This is the [550]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 3.3.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 11062,11257 ---- that the ISO C++ standards committee has made concerning several defect reports (DRs). Links in the list below point to detailed discussion of the relevant defect report. ! * [451]2094 unimplemented: use of `ptrmem_cst' in template type unification ! * [452]2294 using declaration confusion ! * [453]5050 template instantiation depth exceeds limit: recursion problem? ! * [454]9371 Bad exception handling in i/ostream::operator>>/<<(streambuf*) ! * [455]9546 bad exception handling in ostream members ! * [456]10081 basic_ios::_M_cache_locale leaves NULL members in the face of unknown locales ! * [457]10093 [458][DR 61] Setting failbit in exceptions doesn't work ! * [459]10095 istream::operator>>(int&) sets ios::badbit when ios::failbit is set. ! * [460]11554 Warning about reordering of initializers doesn't mention location of constructor ! * [461]12297 istream::sentry::sentry() handles eof() incorrectly. ! * [462]12352 Exception safety problems in src/localename.cc ! * [463]12438 Memory leak in locale::combine() ! * [464]12540 Memory leak in locale::locale(const char*) ! * [465]12594 DRs [466]60 [TC] and [467]63 [TC] not implemented ! * [468]12657 Resolution of [469]DR 292 (WP) still unimplemented ! * [470]12696 memory eating infinite loop in diagnostics (error recovery problem) ! * [471]12815 Code compiled with optimization behaves unexpectedly ! * [472]12862 Conflicts between typedefs/enums and namespace member declarations ! * [473]12926 Wrong value after assignment in initialize list using bit-fields ! * [474]12967 Resolution of [475]DR 300 [WP] still unimplemented ! * [476]12971 Resolution of [477]DR 328 [WP] still unimplemented ! * [478]13007 basic_streambuf::pubimbue, imbue wrong ! * [479]13009 Implicitly-defined assignment operator writes to wrong memory ! * [480]13057 regparm attribute not applied to destructor ! * [481]13070 -Wformat option ignored in g++ ! * [482]13081 forward template declarations in let inlining fail ! * [483]13239 Assertion does not seem to work correctly anymore ! * [484]13262 "xxx is private within this context" when initializing a self-contained template class ! * [485]13290 simple typo in concept checking for std::generate_n ! * [486]13323 Template code does not compile in presence of typedef ! * [487]13369 __verify_grouping (and __add_grouping?) not correct ! * [488]13371 infinite loop with packed struct and inlining ! * [489]13445 Template argument replacement "dereferences" a typedef ! * [490]13461 Fails to access protected-ctor from public constant ! * [491]13462 Non-standard-conforming type set::pointer ! * [492]13478 gcc uses wrong constructor to initialize a const reference ! * [493]13544 "conflicting types" for enums in different scopes ! * [494]13650 string::compare should not (always) use traits_type::length() ! * [495]13683 bogus warning about passing non-PODs through ellipsis ! * [496]13688 Derived class is denied access to protected base class member class ! * [497]13774 Member variable cleared in virtual multiple inheritance class ! * [498]13884 Protect sstream.tcc from extern template use Java compiler and library ! * [499]10746 [win32] garbage collection crash in GCJ Objective-C compiler and library ! * [500]11433 Crash due to dereferencing null pointer when querying protocol Fortran compiler and library ! * [501]12633 logical expression gives incorrect result with -fugly-logint option ! * [502]13037 [gcse-lm] g77 generates incorrect code ! * [503]13213 Hex constant problem when compiling with -fugly-logint and -ftypeless-boz x86-specific (Intel/AMD) ! * [504]4490 ICE with -m128bit-long-double ! * [505]12292 [x86_64] ICE: RTL check: expected code `const_int', have `reg' in make_field_assignment, in combine.c ! * [506]12441 ICE: can't find a register to spill ! * [507]12943 array static-init failure under -fpic, -fPIC ! * [508]13608 Incorrect code with -O3 -ffast-math PowerPC-specific ! * [509]11598 testcase gcc.dg/20020118-1.c fails runtime check of __attribute__((aligned(16))) ! * [510]11793 ICE in extract_insn, in recog.c (const_vector's) ! * [511]12467 vmsumubm emitted when vmsummbm appropriate (typo in altivec.md) ! * [512]12537 g++ generates writeable text sections SPARC-specific ! * [513]12496 wrong result for __atomic_add(&value, -1) when using -O0 -m64 ! * [514]12865 mprotect call to make trampoline executable may fail ! * [515]13354 ICE in sparc_emit_set_const32 ARM-specific ! * [516]10467 [arm] ICE in pre_insert_copy_insn, ia64-specific ! * [517]11226 ICE passing struct arg with two floats ! * [518]11227 ICE for _Complex float, _Complex long double args ! * [519]12644 GCC 3.3.2 fails to compile glibc on ia64 ! * [520]13149 build gcc-3.3.2 1305 error:unrecognizable insn * Various fixes for libunwind Alpha-specific ! * [521]12654 Incorrect comparison code generated for Alpha ! * [522]12965 SEGV+ICE in cc1plus on alpha-linux with -O2 ! * [523]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2 HPPA-specific ! * [524]11634 [hppa] ICE in verify_local_live_at_start, in flow.c ! * [525]12158 [hppa] compilation does not terminate at -O1 S390-specific ! * [526]11992 Wrong built-in code for memcmp with length 1<<24: only (1<<24)-1 possible for CLCL-Instruction SH-specific ! * [527]9365 segfault in gen_far_branch (config/sh/sh.c) ! * [528]10392 optimizer generates faulty array indexing ! * [529]11322 SH profiler outputs multiple definitions of symbol ! * [530]13069 gcc/config/sh/rtems.h broken ! * [531]13302 Putting a va_list in a struct causes seg fault ! * [532]13585 Incorrect optimization of call to sfunc * Fix inappropriately exported libgcc functions from the shared library Other embedded target specific ! * [533]8916 [mcore] unsigned char assign gets hosed. ! * [534]11576 [h8300] ICE in change_address_1, in emit-rtl.c ! * [535]13122 [h8300] local variable gets corrupted by function call when -fomit-frame-pointer is given ! * [536]13256 [cris] strict_low_part mistreated in delay slots ! * [537]13373 [mcore] optimization with -frerun-cse-after-loop -fexpensive-optimizations produces wrong code on mcore GNU HURD-specific ! * [538]12561 gcc/config/t-gnu needs updating to work with --with-sysroot Tru64 Unix specific ! * [539]6243 testsuite fails almost all tests due to no libintl in LD_LIBRARY_PATH during test. ! * [540]11397 weak aliases broken on Tru64 UNIX AIX-specific ! * [541]12505 build failure due to defines of uchar in cpphash.h and sys/types.h ! * [542]13150 WEAK symbols not exported by collect2 IRIX-specific ! * [543]12666 fixincludes problem on IRIX 6.5.19m Solaris-specific ! * [544]12969 Including sys/byteorder.h breaks configure checks Testsuite problems (compiler is not affected) ! * [545]10819 testsuite creates CR+LF on compiler version lines in test summary files ! * [546]11612 abi_check not finding correct libgcc_s.so.1 Miscellaneous ! * [547]13211 using -###, incorrect warnings about unused linker file are produced __________________________________________________________________ GCC 3.3.4 ! This is the [548]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 3.3.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 3.3.4 *** 11178,11184 **** GCC 3.3.5 ! This is the [551]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 3.3.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 11259,11265 ---- GCC 3.3.5 ! This is the [549]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 3.3.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 3.3.5 *** 11186,11210 **** GCC 3.3.6 ! This is the [552]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 3.3.6 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [553]GCC manuals. If that fails, the ! [554]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [555]gcc@gcc.gnu.org. All of [556]our lists have public archives. ! Copyright (C) [557]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [558]maintained by the GCC team. Last modified ! 2013-10-31[559]. References --- 11267,11291 ---- GCC 3.3.6 ! This is the [550]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 3.3.6 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [551]GCC manuals. If that fails, the ! [552]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [553]gcc@gcc.gnu.org. All of [554]our lists have public archives. ! Copyright (C) [555]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [556]maintained by the GCC team. Last modified ! 2014-06-28[557]. References *************** References *** 11214,11772 **** 4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute 5. http://gcc.gnu.org/news/dfa.html 6. http://gcc.gnu.org/c99status.html ! 7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html ! 8. http://gcc.gnu.org/PR10140 ! 9. http://gcc.gnu.org/PR10198 ! 10. http://gcc.gnu.org/PR10338 ! 11. http://gcc.gnu.org/PR3581 ! 12. http://gcc.gnu.org/PR4382 ! 13. http://gcc.gnu.org/PR5533 ! 14. http://gcc.gnu.org/PR6387 ! 15. http://gcc.gnu.org/PR6412 ! 16. http://gcc.gnu.org/PR6620 ! 17. http://gcc.gnu.org/PR6663 ! 18. http://gcc.gnu.org/PR7068 ! 19. http://gcc.gnu.org/PR7083 ! 20. http://gcc.gnu.org/PR7647 ! 21. http://gcc.gnu.org/PR7675 ! 22. http://gcc.gnu.org/PR7718 ! 23. http://gcc.gnu.org/PR8116 ! 24. http://gcc.gnu.org/PR8358 ! 25. http://gcc.gnu.org/PR8511 ! 26. http://gcc.gnu.org/PR8564 ! 27. http://gcc.gnu.org/PR8660 ! 28. http://gcc.gnu.org/PR8766 ! 29. http://gcc.gnu.org/PR8803 ! 30. http://gcc.gnu.org/PR8846 ! 31. http://gcc.gnu.org/PR8906 ! 32. http://gcc.gnu.org/PR9216 ! 33. http://gcc.gnu.org/PR9261 ! 34. http://gcc.gnu.org/PR9263 ! 35. http://gcc.gnu.org/PR9429 ! 36. http://gcc.gnu.org/PR9516 ! 37. http://gcc.gnu.org/PR9600 ! 38. http://gcc.gnu.org/PR9629 ! 39. http://gcc.gnu.org/PR9672 ! 40. http://gcc.gnu.org/PR9749 ! 41. http://gcc.gnu.org/PR9794 ! 42. http://gcc.gnu.org/PR9829 ! 43. http://gcc.gnu.org/PR9916 ! 44. http://gcc.gnu.org/PR9936 ! 45. http://gcc.gnu.org/PR10262 ! 46. http://gcc.gnu.org/PR10278 ! 47. http://gcc.gnu.org/PR10446 ! 48. http://gcc.gnu.org/PR10451 ! 49. http://gcc.gnu.org/PR10506 ! 50. http://gcc.gnu.org/PR10549 ! 51. http://gcc.gnu.org/PR2001 ! 52. http://gcc.gnu.org/PR2391 ! 53. http://gcc.gnu.org/PR2960 ! 54. http://gcc.gnu.org/PR4046 ! 55. http://gcc.gnu.org/PR6405 ! 56. http://gcc.gnu.org/PR6798 ! 57. http://gcc.gnu.org/PR6871 ! 58. http://gcc.gnu.org/PR6909 ! 59. http://gcc.gnu.org/PR7189 ! 60. http://gcc.gnu.org/PR7642 ! 61. http://gcc.gnu.org/PR8634 ! 62. http://gcc.gnu.org/PR8750 ! 63. http://gcc.gnu.org/PR2161 ! 64. http://gcc.gnu.org/PR4319 ! 65. http://gcc.gnu.org/PR8602 ! 66. http://gcc.gnu.org/PR9177 ! 67. http://gcc.gnu.org/PR9853 ! 68. http://gcc.gnu.org/PR45 ! 69. http://gcc.gnu.org/PR3784 ! 70. http://gcc.gnu.org/PR764 ! 71. http://gcc.gnu.org/PR5116 ! 72. http://gcc.gnu.org/PR2862 ! 73. http://gcc.gnu.org/PR3663 ! 74. http://gcc.gnu.org/PR3797 ! 75. http://gcc.gnu.org/PR3948 ! 76. http://gcc.gnu.org/PR4137 ! 77. http://gcc.gnu.org/PR4361 ! 78. http://gcc.gnu.org/PR4802 ! 79. http://gcc.gnu.org/PR5837 ! 80. http://gcc.gnu.org/PR4803 ! 81. http://gcc.gnu.org/PR5094 ! 82. http://gcc.gnu.org/PR5730 ! 83. http://gcc.gnu.org/PR6713 ! 84. http://gcc.gnu.org/PR7015 ! 85. http://gcc.gnu.org/PR7086 ! 86. http://gcc.gnu.org/PR7099 ! 87. http://gcc.gnu.org/PR7247 ! 88. http://gcc.gnu.org/PR7441 ! 89. http://gcc.gnu.org/PR7768 ! 90. http://gcc.gnu.org/PR7804 ! 91. http://gcc.gnu.org/PR8099 ! 92. http://gcc.gnu.org/PR8117 ! 93. http://gcc.gnu.org/PR8205 ! 94. http://gcc.gnu.org/PR8645 ! 95. http://gcc.gnu.org/PR8724 ! 96. http://gcc.gnu.org/PR8805 ! 97. http://gcc.gnu.org/PR8691 ! 98. http://gcc.gnu.org/PR8700 ! 99. http://gcc.gnu.org/PR8724 ! 100. http://gcc.gnu.org/PR8949 ! 101. http://gcc.gnu.org/PR9016 ! 102. http://gcc.gnu.org/PR9053 ! 103. http://gcc.gnu.org/PR9152 ! 104. http://gcc.gnu.org/PR9182 ! 105. http://gcc.gnu.org/PR9297 ! 106. http://gcc.gnu.org/PR9318 ! 107. http://gcc.gnu.org/PR9320 ! 108. http://gcc.gnu.org/PR9400 ! 109. http://gcc.gnu.org/PR9424 ! 110. http://gcc.gnu.org/PR9425 ! 111. http://gcc.gnu.org/PR9439 ! 112. http://gcc.gnu.org/PR9474 ! 113. http://gcc.gnu.org/PR9548 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 ! 115. http://gcc.gnu.org/PR9555 ! 116. http://gcc.gnu.org/PR9561 ! 117. http://gcc.gnu.org/PR9563 ! 118. http://gcc.gnu.org/PR9582 ! 119. http://gcc.gnu.org/PR9622 ! 120. http://gcc.gnu.org/PR9683 ! 121. http://gcc.gnu.org/PR9791 ! 122. http://gcc.gnu.org/PR9817 ! 123. http://gcc.gnu.org/PR9825 ! 124. http://gcc.gnu.org/PR9826 ! 125. http://gcc.gnu.org/PR9924 ! 126. http://gcc.gnu.org/PR9946 ! 127. http://gcc.gnu.org/PR9964 ! 128. http://gcc.gnu.org/PR9988 ! 129. http://gcc.gnu.org/PR10033 ! 130. http://gcc.gnu.org/PR10097 ! 131. http://gcc.gnu.org/PR10132 ! 132. http://gcc.gnu.org/PR10180 ! 133. http://gcc.gnu.org/PR10199 ! 134. http://gcc.gnu.org/PR10300 ! 135. http://gcc.gnu.org/PR10427 ! 136. http://gcc.gnu.org/PR10503 ! 137. http://gcc.gnu.org/PR5956 ! 138. http://gcc.gnu.org/PR1832 ! 139. http://gcc.gnu.org/PR3924 ! 140. http://gcc.gnu.org/PR5634 ! 141. http://gcc.gnu.org/PR6367 ! 142. http://gcc.gnu.org/PR6491 ! 143. http://gcc.gnu.org/PR6742 ! 144. http://gcc.gnu.org/PR7113 ! 145. http://gcc.gnu.org/PR7236 ! 146. http://gcc.gnu.org/PR7278 ! 147. http://gcc.gnu.org/PR7384 ! 148. http://gcc.gnu.org/PR7388 ! 149. http://gcc.gnu.org/PR8587 ! 150. http://gcc.gnu.org/PR9038 ! 151. http://gcc.gnu.org/PR10197 ! 152. http://gcc.gnu.org/PR6005 ! 153. http://gcc.gnu.org/PR6389 ! 154. http://gcc.gnu.org/PR6576 ! 155. http://gcc.gnu.org/PR6652 ! 156. http://gcc.gnu.org/PR7060 ! 157. http://gcc.gnu.org/PR7073 ! 158. http://gcc.gnu.org/PR7180 ! 159. http://gcc.gnu.org/PR7416 ! 160. http://gcc.gnu.org/PR7570 ! 161. http://gcc.gnu.org/PR7578 ! 162. http://gcc.gnu.org/PR7611 ! 163. http://gcc.gnu.org/PR7709 ! 164. http://gcc.gnu.org/PR7766 ! 165. http://gcc.gnu.org/PR7785 ! 166. http://gcc.gnu.org/PR7786 ! 167. http://gcc.gnu.org/PR8142 ! 168. http://gcc.gnu.org/PR8234 ! 169. http://gcc.gnu.org/PR8415 ! 170. http://gcc.gnu.org/PR8481 ! 171. http://gcc.gnu.org/PR8593 ! 172. http://gcc.gnu.org/PR8759 ! 173. http://gcc.gnu.org/PR8997 ! 174. http://gcc.gnu.org/PR9253 ! 175. http://gcc.gnu.org/PR9254 ! 176. http://gcc.gnu.org/PR9271 ! 177. http://gcc.gnu.org/PR6767 ! 178. http://gcc.gnu.org/PR9911 ! 179. http://gcc.gnu.org/PR10020 ! 180. http://gcc.gnu.org/PR10546 ! 181. http://gcc.gnu.org/PR7029 ! 182. http://gcc.gnu.org/PR2903 ! 183. http://gcc.gnu.org/PR7873 ! 184. http://gcc.gnu.org/PR7680 ! 185. http://gcc.gnu.org/PR8705 ! 186. http://gcc.gnu.org/PR9986 ! 187. http://gcc.gnu.org/PR10056 ! 188. http://gcc.gnu.org/PR6744 ! 189. http://gcc.gnu.org/PR7361 ! 190. http://gcc.gnu.org/PR9496 ! 191. http://gcc.gnu.org/PR7067 ! 192. http://gcc.gnu.org/PR8480 ! 193. http://gcc.gnu.org/PR8784 ! 194. http://gcc.gnu.org/PR10315 ! 195. http://gcc.gnu.org/PR10267 ! 196. http://gcc.gnu.org/PR7916 ! 197. http://gcc.gnu.org/PR7926 ! 198. http://gcc.gnu.org/PR8555 ! 199. http://gcc.gnu.org/PR8994 ! 200. http://gcc.gnu.org/PR9426 ! 201. http://gcc.gnu.org/PR9806 ! 202. http://gcc.gnu.org/PR10077 ! 203. http://gcc.gnu.org/PR10233 ! 204. http://gcc.gnu.org/PR10286 ! 205. http://gcc.gnu.org/PR10308 ! 206. http://gcc.gnu.org/PR11272 ! 207. http://gcc.gnu.org/PR5754 ! 208. http://gcc.gnu.org/PR6597 ! 209. http://gcc.gnu.org/PR6949 ! 210. http://gcc.gnu.org/PR7053 ! 211. http://gcc.gnu.org/PR8164 ! 212. http://gcc.gnu.org/PR8384 ! 213. http://gcc.gnu.org/PR9559 ! 214. http://gcc.gnu.org/PR9649 ! 215. http://gcc.gnu.org/PR9864 ! 216. http://gcc.gnu.org/PR10432 ! 217. http://gcc.gnu.org/PR10475 ! 218. http://gcc.gnu.org/PR10635 ! 219. http://gcc.gnu.org/PR10661 ! 220. http://gcc.gnu.org/PR10700 ! 221. http://gcc.gnu.org/PR10712 ! 222. http://gcc.gnu.org/PR10796 ! 223. http://gcc.gnu.org/PR10890 ! 224. http://gcc.gnu.org/PR10939 ! 225. http://gcc.gnu.org/PR10956 ! 226. http://gcc.gnu.org/PR11041 ! 227. http://gcc.gnu.org/PR11059 ! 228. http://gcc.gnu.org/PR11083 ! 229. http://gcc.gnu.org/PR11105 ! 230. http://gcc.gnu.org/PR11149 ! 231. http://gcc.gnu.org/PR11228 ! 232. http://gcc.gnu.org/PR11282 ! 233. http://gcc.gnu.org/PR11301 ! 234. http://gcc.gnu.org/PR11308 ! 235. http://gcc.gnu.org/PR11473 ! 236. http://gcc.gnu.org/PR11503 ! 237. http://gcc.gnu.org/PR11513 ! 238. http://gcc.gnu.org/PR11198 ! 239. http://gcc.gnu.org/PR11304 ! 240. http://gcc.gnu.org/PR11381 ! 241. http://gcc.gnu.org/PR11536 ! 242. http://gcc.gnu.org/PR11557 ! 243. http://gcc.gnu.org/PR5897 ! 244. http://gcc.gnu.org/PR11279 ! 245. http://gcc.gnu.org/PR11022 ! 246. http://gcc.gnu.org/PR2330 ! 247. http://gcc.gnu.org/PR5388 ! 248. http://gcc.gnu.org/PR5390 ! 249. http://gcc.gnu.org/PR7877 ! 250. http://gcc.gnu.org/PR9393 ! 251. http://gcc.gnu.org/PR10032 ! 252. http://gcc.gnu.org/PR10468 ! 253. http://gcc.gnu.org/PR10527 ! 254. http://gcc.gnu.org/PR10679 ! 255. http://gcc.gnu.org/PR10682 ! 256. http://gcc.gnu.org/PR10689 ! 257. http://gcc.gnu.org/PR10845 ! 258. http://gcc.gnu.org/PR10849 ! 259. http://gcc.gnu.org/PR10888 ! 260. http://gcc.gnu.org/PR10929 ! 261. http://gcc.gnu.org/PR10931 ! 262. http://gcc.gnu.org/PR10940 ! 263. http://gcc.gnu.org/PR10968 ! 264. http://gcc.gnu.org/PR10990 ! 265. http://gcc.gnu.org/PR11039 ! 266. http://gcc.gnu.org/PR11062 ! 267. http://gcc.gnu.org/PR11095 ! 268. http://gcc.gnu.org/PR11098 ! 269. http://gcc.gnu.org/PR11137 ! 270. http://gcc.gnu.org/PR11154 ! 271. http://gcc.gnu.org/PR11329 ! 272. http://gcc.gnu.org/PR11332 ! 273. http://gcc.gnu.org/PR11431 ! 274. http://gcc.gnu.org/PR11528 ! 275. http://gcc.gnu.org/PR11546 ! 276. http://gcc.gnu.org/PR11567 ! 277. http://gcc.gnu.org/PR11645 ! 278. http://gcc.gnu.org/PR5179 ! 279. http://gcc.gnu.org/PR8204 ! 280. http://gcc.gnu.org/PR10838 ! 281. http://gcc.gnu.org/PR10886 ! 282. http://gcc.gnu.org/PR11349 ! 283. http://gcc.gnu.org/PR4823 ! 284. http://gcc.gnu.org/PR8878 ! 285. http://gcc.gnu.org/PR9815 ! 286. http://gcc.gnu.org/PR10402 ! 287. http://gcc.gnu.org/PR10504 ! 288. http://gcc.gnu.org/PR10673 ! 289. http://gcc.gnu.org/PR11044 ! 290. http://gcc.gnu.org/PR11089 ! 291. http://gcc.gnu.org/PR11420 ! 292. http://gcc.gnu.org/PR9362 ! 293. http://gcc.gnu.org/PR10142 ! 294. http://gcc.gnu.org/PR10663 ! 295. http://gcc.gnu.org/PR10835 ! 296. http://gcc.gnu.org/PR10876 ! 297. http://gcc.gnu.org/PR10955 ! 298. http://gcc.gnu.org/PR11018 ! 299. http://gcc.gnu.org/PR11556 ! 300. http://gcc.gnu.org/PR10907 ! 301. http://gcc.gnu.org/PR11320 ! 302. http://gcc.gnu.org/PR11599 ! 303. http://gcc.gnu.org/PR9745 ! 304. http://gcc.gnu.org/PR10871 ! 305. http://gcc.gnu.org/PR11440 ! 306. http://gcc.gnu.org/PR7594 ! 307. http://gcc.gnu.org/PR10557 ! 308. http://gcc.gnu.org/PR11054 ! 309. http://gcc.gnu.org/PR10834 ! 310. http://gcc.gnu.org/PR10842 ! 311. http://gcc.gnu.org/PR11052 ! 312. http://gcc.gnu.org/PR11183 ! 313. http://gcc.gnu.org/PR11084 ! 314. http://gcc.gnu.org/PR10331 ! 315. http://gcc.gnu.org/PR10413 ! 316. http://gcc.gnu.org/PR11096 ! 317. http://gcc.gnu.org/PR2873 ! 318. http://gcc.gnu.org/PR3163 ! 319. http://gcc.gnu.org/PR5287 ! 320. http://gcc.gnu.org/PR10148 ! 321. http://gcc.gnu.org/PR8787 ! 322. http://gcc.gnu.org/PR10900 ! 323. http://gcc.gnu.org/PR1607 ! 324. http://gcc.gnu.org/PR4252 ! 325. http://gcc.gnu.org/PR4490 ! 326. http://gcc.gnu.org/PR10355 ! 327. http://gcc.gnu.org/PR10726 ! 328. http://gcc.gnu.org/PR10805 ! 329. http://gcc.gnu.org/PR10815 ! 330. http://gcc.gnu.org/PR10877 ! 331. http://gcc.gnu.org/PR11280 ! 332. http://gcc.gnu.org/PR11466 ! 333. http://gcc.gnu.org/PR10737 ! 334. http://gcc.gnu.org/PR10810 ! 335. http://gcc.gnu.org/bugzilla/ ! 336. http://gcc.gnu.org/PR8336 ! 337. http://gcc.gnu.org/PR9330 ! 338. http://gcc.gnu.org/PR9631 ! 339. http://gcc.gnu.org/PR9877 ! 340. http://gcc.gnu.org/PR11687 ! 341. http://gcc.gnu.org/PR12263 ! 342. http://gcc.gnu.org/PR12490 ! 343. http://gcc.gnu.org/PR7277 ! 344. http://gcc.gnu.org/PR7939 ! 345. http://gcc.gnu.org/PR11063 ! 346. http://gcc.gnu.org/PR11207 ! 347. http://gcc.gnu.org/PR11522 ! 348. http://gcc.gnu.org/PR11595 ! 349. http://gcc.gnu.org/PR11646 ! 350. http://gcc.gnu.org/PR11665 ! 351. http://gcc.gnu.org/PR11852 ! 352. http://gcc.gnu.org/PR11878 ! 353. http://gcc.gnu.org/PR11883 ! 354. http://gcc.gnu.org/PR11991 ! 355. http://gcc.gnu.org/PR12146 ! 356. http://gcc.gnu.org/PR12215 ! 357. http://gcc.gnu.org/PR12369 ! 358. http://gcc.gnu.org/PR12446 ! 359. http://gcc.gnu.org/PR12510 ! 360. http://gcc.gnu.org/PR12544 ! 361. http://gcc.gnu.org/PR9862 ! 362. http://gcc.gnu.org/PR10962 ! 363. http://gcc.gnu.org/PR11370 ! 364. http://gcc.gnu.org/PR11637 ! 365. http://gcc.gnu.org/PR11885 ! 366. http://gcc.gnu.org/PR12082 ! 367. http://gcc.gnu.org/PR12180 ! 368. http://gcc.gnu.org/PR12340 ! 369. http://gcc.gnu.org/PR3907 ! 370. http://gcc.gnu.org/PR5293 ! 371. http://gcc.gnu.org/PR5296 ! 372. http://gcc.gnu.org/PR7939 ! 373. http://gcc.gnu.org/PR8656 ! 374. http://gcc.gnu.org/PR10147 ! 375. http://gcc.gnu.org/PR11400 ! 376. http://gcc.gnu.org/PR11409 ! 377. http://gcc.gnu.org/PR11740 ! 378. http://gcc.gnu.org/PR11786 ! 379. http://gcc.gnu.org/PR11867 ! 380. http://gcc.gnu.org/PR11928 ! 381. http://gcc.gnu.org/PR12114 ! 382. http://gcc.gnu.org/PR12163 ! 383. http://gcc.gnu.org/PR12181 ! 384. http://gcc.gnu.org/PR12236 ! 385. http://gcc.gnu.org/PR12266 ! 386. http://gcc.gnu.org/PR12296 ! 387. http://gcc.gnu.org/PR12298 ! 388. http://gcc.gnu.org/PR12369 ! 389. http://gcc.gnu.org/PR12337 ! 390. http://gcc.gnu.org/PR12344 ! 391. http://gcc.gnu.org/PR12451 ! 392. http://gcc.gnu.org/PR12486 ! 393. http://gcc.gnu.org/PR8869 ! 394. http://gcc.gnu.org/PR9786 ! 395. http://gcc.gnu.org/PR11689 ! 396. http://gcc.gnu.org/PR12116 ! 397. http://gcc.gnu.org/PR12070 ! 398. http://gcc.gnu.org/PR11184 ! 399. http://gcc.gnu.org/PR11535 ! 400. http://gcc.gnu.org/PR11693 ! 401. http://gcc.gnu.org/PR12224 ! 402. http://gcc.gnu.org/PR11087 ! 403. http://gcc.gnu.org/PR11319 ! 404. http://gcc.gnu.org/PR11949 ! 405. http://gcc.gnu.org/PR11662 ! 406. http://gcc.gnu.org/PR11965 ! 407. http://gcc.gnu.org/PR12301 ! 408. http://gcc.gnu.org/PR11717 ! 409. http://gcc.gnu.org/PR11313 ! 410. http://gcc.gnu.org/PR11712 ! 411. http://gcc.gnu.org/PR12166 ! 412. http://gcc.gnu.org/PR12101 ! 413. http://gcc.gnu.org/PR10988 ! 414. http://gcc.gnu.org/PR11805 ! 415. http://gcc.gnu.org/PR11902 ! 416. http://gcc.gnu.org/PR11903 ! 417. http://gcc.gnu.org/bugzilla/ ! 418. http://gcc.gnu.org/PR11890 ! 419. http://gcc.gnu.org/PR12399 ! 420. http://gcc.gnu.org/PR13068 ! 421. http://gcc.gnu.org/PR10060 ! 422. http://gcc.gnu.org/PR10555 ! 423. http://gcc.gnu.org/PR10706 ! 424. http://gcc.gnu.org/PR11496 ! 425. http://gcc.gnu.org/PR11741 ! 426. http://gcc.gnu.org/PR12440 ! 427. http://gcc.gnu.org/PR12632 ! 428. http://gcc.gnu.org/PR12712 ! 429. http://gcc.gnu.org/PR12726 ! 430. http://gcc.gnu.org/PR12890 ! 431. http://gcc.gnu.org/PR12900 ! 432. http://gcc.gnu.org/PR13060 ! 433. http://gcc.gnu.org/PR13289 ! 434. http://gcc.gnu.org/PR13318 ! 435. http://gcc.gnu.org/PR13392 ! 436. http://gcc.gnu.org/PR13574 ! 437. http://gcc.gnu.org/PR13475 ! 438. http://gcc.gnu.org/PR13797 ! 439. http://gcc.gnu.org/PR13824 ! 440. http://gcc.gnu.org/PR8776 ! 441. http://gcc.gnu.org/PR10339 ! 442. http://gcc.gnu.org/PR11350 ! 443. http://gcc.gnu.org/PR12826 ! 444. http://gcc.gnu.org/PR12500 ! 445. http://gcc.gnu.org/PR12941 ! 446. http://gcc.gnu.org/PR12953 ! 447. http://gcc.gnu.org/PR13041 ! 448. http://gcc.gnu.org/PR13507 ! 449. http://gcc.gnu.org/PR13382 ! 450. http://gcc.gnu.org/PR13394 ! 451. http://gcc.gnu.org/PR13400 ! 452. http://gcc.gnu.org/PR13521 ! 453. http://gcc.gnu.org/PR2094 ! 454. http://gcc.gnu.org/PR2294 ! 455. http://gcc.gnu.org/PR5050 ! 456. http://gcc.gnu.org/PR9371 ! 457. http://gcc.gnu.org/PR9546 ! 458. http://gcc.gnu.org/PR10081 ! 459. http://gcc.gnu.org/PR10093 ! 460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 ! 461. http://gcc.gnu.org/PR10095 ! 462. http://gcc.gnu.org/PR11554 ! 463. http://gcc.gnu.org/PR12297 ! 464. http://gcc.gnu.org/PR12352 ! 465. http://gcc.gnu.org/PR12438 ! 466. http://gcc.gnu.org/PR12540 ! 467. http://gcc.gnu.org/PR12594 ! 468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 ! 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 ! 470. http://gcc.gnu.org/PR12657 ! 471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 ! 472. http://gcc.gnu.org/PR12696 ! 473. http://gcc.gnu.org/PR12815 ! 474. http://gcc.gnu.org/PR12862 ! 475. http://gcc.gnu.org/PR12926 ! 476. http://gcc.gnu.org/PR12967 ! 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html ! 478. http://gcc.gnu.org/PR12971 ! 479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 ! 480. http://gcc.gnu.org/PR13007 ! 481. http://gcc.gnu.org/PR13009 ! 482. http://gcc.gnu.org/PR13057 ! 483. http://gcc.gnu.org/PR13070 ! 484. http://gcc.gnu.org/PR13081 ! 485. http://gcc.gnu.org/PR13239 ! 486. http://gcc.gnu.org/PR13262 ! 487. http://gcc.gnu.org/PR13290 ! 488. http://gcc.gnu.org/PR13323 ! 489. http://gcc.gnu.org/PR13369 ! 490. http://gcc.gnu.org/PR13371 ! 491. http://gcc.gnu.org/PR13445 ! 492. http://gcc.gnu.org/PR13461 ! 493. http://gcc.gnu.org/PR13462 ! 494. http://gcc.gnu.org/PR13478 ! 495. http://gcc.gnu.org/PR13544 ! 496. http://gcc.gnu.org/PR13650 ! 497. http://gcc.gnu.org/PR13683 ! 498. http://gcc.gnu.org/PR13688 ! 499. http://gcc.gnu.org/PR13774 ! 500. http://gcc.gnu.org/PR13884 ! 501. http://gcc.gnu.org/PR10746 ! 502. http://gcc.gnu.org/PR11433 ! 503. http://gcc.gnu.org/PR12633 ! 504. http://gcc.gnu.org/PR13037 ! 505. http://gcc.gnu.org/PR13213 ! 506. http://gcc.gnu.org/PR4490 ! 507. http://gcc.gnu.org/PR12292 ! 508. http://gcc.gnu.org/PR12441 ! 509. http://gcc.gnu.org/PR12943 ! 510. http://gcc.gnu.org/PR13608 ! 511. http://gcc.gnu.org/PR11598 ! 512. http://gcc.gnu.org/PR11793 ! 513. http://gcc.gnu.org/PR12467 ! 514. http://gcc.gnu.org/PR12537 ! 515. http://gcc.gnu.org/PR12496 ! 516. http://gcc.gnu.org/PR12865 ! 517. http://gcc.gnu.org/PR13354 ! 518. http://gcc.gnu.org/PR10467 ! 519. http://gcc.gnu.org/PR11226 ! 520. http://gcc.gnu.org/PR11227 ! 521. http://gcc.gnu.org/PR12644 ! 522. http://gcc.gnu.org/PR13149 ! 523. http://gcc.gnu.org/PR12654 ! 524. http://gcc.gnu.org/PR12965 ! 525. http://gcc.gnu.org/PR13031 ! 526. http://gcc.gnu.org/PR11634 ! 527. http://gcc.gnu.org/PR12158 ! 528. http://gcc.gnu.org/PR11992 ! 529. http://gcc.gnu.org/PR9365 ! 530. http://gcc.gnu.org/PR10392 ! 531. http://gcc.gnu.org/PR11322 ! 532. http://gcc.gnu.org/PR13069 ! 533. http://gcc.gnu.org/PR13302 ! 534. http://gcc.gnu.org/PR13585 ! 535. http://gcc.gnu.org/PR8916 ! 536. http://gcc.gnu.org/PR11576 ! 537. http://gcc.gnu.org/PR13122 ! 538. http://gcc.gnu.org/PR13256 ! 539. http://gcc.gnu.org/PR13373 ! 540. http://gcc.gnu.org/PR12561 ! 541. http://gcc.gnu.org/PR6243 ! 542. http://gcc.gnu.org/PR11397 ! 543. http://gcc.gnu.org/PR12505 ! 544. http://gcc.gnu.org/PR13150 ! 545. http://gcc.gnu.org/PR12666 ! 546. http://gcc.gnu.org/PR12969 ! 547. http://gcc.gnu.org/PR10819 ! 548. http://gcc.gnu.org/PR11612 ! 549. http://gcc.gnu.org/PR13211 ! 550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4 ! 551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5 ! 552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6 ! 553. http://gcc.gnu.org/onlinedocs/ ! 554. mailto:gcc-help@gcc.gnu.org ! 555. mailto:gcc@gcc.gnu.org ! 556. http://gcc.gnu.org/lists.html ! 557. http://www.fsf.org/ ! 558. http://gcc.gnu.org/about.html ! 559. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/index.html GCC 3.2 Release Series --- 11295,11851 ---- 4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute 5. http://gcc.gnu.org/news/dfa.html 6. http://gcc.gnu.org/c99status.html ! 7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html ! 8. https://gcc.gnu.org/PR10140 ! 9. https://gcc.gnu.org/PR10198 ! 10. https://gcc.gnu.org/PR10338 ! 11. https://gcc.gnu.org/PR3581 ! 12. https://gcc.gnu.org/PR4382 ! 13. https://gcc.gnu.org/PR5533 ! 14. https://gcc.gnu.org/PR6387 ! 15. https://gcc.gnu.org/PR6412 ! 16. https://gcc.gnu.org/PR6620 ! 17. https://gcc.gnu.org/PR6663 ! 18. https://gcc.gnu.org/PR7068 ! 19. https://gcc.gnu.org/PR7083 ! 20. https://gcc.gnu.org/PR7647 ! 21. https://gcc.gnu.org/PR7675 ! 22. https://gcc.gnu.org/PR7718 ! 23. https://gcc.gnu.org/PR8116 ! 24. https://gcc.gnu.org/PR8358 ! 25. https://gcc.gnu.org/PR8511 ! 26. https://gcc.gnu.org/PR8564 ! 27. https://gcc.gnu.org/PR8660 ! 28. https://gcc.gnu.org/PR8766 ! 29. https://gcc.gnu.org/PR8803 ! 30. https://gcc.gnu.org/PR8846 ! 31. https://gcc.gnu.org/PR8906 ! 32. https://gcc.gnu.org/PR9216 ! 33. https://gcc.gnu.org/PR9261 ! 34. https://gcc.gnu.org/PR9263 ! 35. https://gcc.gnu.org/PR9429 ! 36. https://gcc.gnu.org/PR9516 ! 37. https://gcc.gnu.org/PR9600 ! 38. https://gcc.gnu.org/PR9629 ! 39. https://gcc.gnu.org/PR9672 ! 40. https://gcc.gnu.org/PR9749 ! 41. https://gcc.gnu.org/PR9794 ! 42. https://gcc.gnu.org/PR9829 ! 43. https://gcc.gnu.org/PR9916 ! 44. https://gcc.gnu.org/PR9936 ! 45. https://gcc.gnu.org/PR10262 ! 46. https://gcc.gnu.org/PR10278 ! 47. https://gcc.gnu.org/PR10446 ! 48. https://gcc.gnu.org/PR10451 ! 49. https://gcc.gnu.org/PR10506 ! 50. https://gcc.gnu.org/PR10549 ! 51. https://gcc.gnu.org/PR2001 ! 52. https://gcc.gnu.org/PR2391 ! 53. https://gcc.gnu.org/PR2960 ! 54. https://gcc.gnu.org/PR4046 ! 55. https://gcc.gnu.org/PR6405 ! 56. https://gcc.gnu.org/PR6798 ! 57. https://gcc.gnu.org/PR6871 ! 58. https://gcc.gnu.org/PR6909 ! 59. https://gcc.gnu.org/PR7189 ! 60. https://gcc.gnu.org/PR7642 ! 61. https://gcc.gnu.org/PR8634 ! 62. https://gcc.gnu.org/PR8750 ! 63. https://gcc.gnu.org/PR2161 ! 64. https://gcc.gnu.org/PR4319 ! 65. https://gcc.gnu.org/PR8602 ! 66. https://gcc.gnu.org/PR9177 ! 67. https://gcc.gnu.org/PR9853 ! 68. https://gcc.gnu.org/PR45 ! 69. https://gcc.gnu.org/PR3784 ! 70. https://gcc.gnu.org/PR764 ! 71. https://gcc.gnu.org/PR5116 ! 72. https://gcc.gnu.org/PR2862 ! 73. https://gcc.gnu.org/PR3663 ! 74. https://gcc.gnu.org/PR3797 ! 75. https://gcc.gnu.org/PR3948 ! 76. https://gcc.gnu.org/PR4137 ! 77. https://gcc.gnu.org/PR4361 ! 78. https://gcc.gnu.org/PR4802 ! 79. https://gcc.gnu.org/PR5837 ! 80. https://gcc.gnu.org/PR4803 ! 81. https://gcc.gnu.org/PR5094 ! 82. https://gcc.gnu.org/PR5730 ! 83. https://gcc.gnu.org/PR6713 ! 84. https://gcc.gnu.org/PR7015 ! 85. https://gcc.gnu.org/PR7086 ! 86. https://gcc.gnu.org/PR7099 ! 87. https://gcc.gnu.org/PR7247 ! 88. https://gcc.gnu.org/PR7441 ! 89. https://gcc.gnu.org/PR7768 ! 90. https://gcc.gnu.org/PR7804 ! 91. https://gcc.gnu.org/PR8099 ! 92. https://gcc.gnu.org/PR8117 ! 93. https://gcc.gnu.org/PR8205 ! 94. https://gcc.gnu.org/PR8645 ! 95. https://gcc.gnu.org/PR8724 ! 96. https://gcc.gnu.org/PR8805 ! 97. https://gcc.gnu.org/PR8691 ! 98. https://gcc.gnu.org/PR8700 ! 99. https://gcc.gnu.org/PR8724 ! 100. https://gcc.gnu.org/PR8949 ! 101. https://gcc.gnu.org/PR9016 ! 102. https://gcc.gnu.org/PR9053 ! 103. https://gcc.gnu.org/PR9152 ! 104. https://gcc.gnu.org/PR9182 ! 105. https://gcc.gnu.org/PR9297 ! 106. https://gcc.gnu.org/PR9318 ! 107. https://gcc.gnu.org/PR9320 ! 108. https://gcc.gnu.org/PR9400 ! 109. https://gcc.gnu.org/PR9424 ! 110. https://gcc.gnu.org/PR9425 ! 111. https://gcc.gnu.org/PR9439 ! 112. https://gcc.gnu.org/PR9474 ! 113. https://gcc.gnu.org/PR9548 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 ! 115. https://gcc.gnu.org/PR9555 ! 116. https://gcc.gnu.org/PR9561 ! 117. https://gcc.gnu.org/PR9563 ! 118. https://gcc.gnu.org/PR9582 ! 119. https://gcc.gnu.org/PR9622 ! 120. https://gcc.gnu.org/PR9683 ! 121. https://gcc.gnu.org/PR9791 ! 122. https://gcc.gnu.org/PR9817 ! 123. https://gcc.gnu.org/PR9825 ! 124. https://gcc.gnu.org/PR9826 ! 125. https://gcc.gnu.org/PR9924 ! 126. https://gcc.gnu.org/PR9946 ! 127. https://gcc.gnu.org/PR9964 ! 128. https://gcc.gnu.org/PR9988 ! 129. https://gcc.gnu.org/PR10033 ! 130. https://gcc.gnu.org/PR10097 ! 131. https://gcc.gnu.org/PR10132 ! 132. https://gcc.gnu.org/PR10180 ! 133. https://gcc.gnu.org/PR10199 ! 134. https://gcc.gnu.org/PR10300 ! 135. https://gcc.gnu.org/PR10427 ! 136. https://gcc.gnu.org/PR10503 ! 137. https://gcc.gnu.org/PR5956 ! 138. https://gcc.gnu.org/PR1832 ! 139. https://gcc.gnu.org/PR3924 ! 140. https://gcc.gnu.org/PR5634 ! 141. https://gcc.gnu.org/PR6367 ! 142. https://gcc.gnu.org/PR6491 ! 143. https://gcc.gnu.org/PR6742 ! 144. https://gcc.gnu.org/PR7113 ! 145. https://gcc.gnu.org/PR7236 ! 146. https://gcc.gnu.org/PR7278 ! 147. https://gcc.gnu.org/PR7384 ! 148. https://gcc.gnu.org/PR7388 ! 149. https://gcc.gnu.org/PR8587 ! 150. https://gcc.gnu.org/PR9038 ! 151. https://gcc.gnu.org/PR10197 ! 152. https://gcc.gnu.org/PR6005 ! 153. https://gcc.gnu.org/PR6389 ! 154. https://gcc.gnu.org/PR6576 ! 155. https://gcc.gnu.org/PR6652 ! 156. https://gcc.gnu.org/PR7060 ! 157. https://gcc.gnu.org/PR7073 ! 158. https://gcc.gnu.org/PR7180 ! 159. https://gcc.gnu.org/PR7416 ! 160. https://gcc.gnu.org/PR7570 ! 161. https://gcc.gnu.org/PR7578 ! 162. https://gcc.gnu.org/PR7611 ! 163. https://gcc.gnu.org/PR7709 ! 164. https://gcc.gnu.org/PR7766 ! 165. https://gcc.gnu.org/PR7785 ! 166. https://gcc.gnu.org/PR7786 ! 167. https://gcc.gnu.org/PR8142 ! 168. https://gcc.gnu.org/PR8234 ! 169. https://gcc.gnu.org/PR8415 ! 170. https://gcc.gnu.org/PR8481 ! 171. https://gcc.gnu.org/PR8593 ! 172. https://gcc.gnu.org/PR8759 ! 173. https://gcc.gnu.org/PR8997 ! 174. https://gcc.gnu.org/PR9253 ! 175. https://gcc.gnu.org/PR9254 ! 176. https://gcc.gnu.org/PR9271 ! 177. https://gcc.gnu.org/PR6767 ! 178. https://gcc.gnu.org/PR9911 ! 179. https://gcc.gnu.org/PR10020 ! 180. https://gcc.gnu.org/PR10546 ! 181. https://gcc.gnu.org/PR7029 ! 182. https://gcc.gnu.org/PR2903 ! 183. https://gcc.gnu.org/PR7873 ! 184. https://gcc.gnu.org/PR7680 ! 185. https://gcc.gnu.org/PR8705 ! 186. https://gcc.gnu.org/PR9986 ! 187. https://gcc.gnu.org/PR10056 ! 188. https://gcc.gnu.org/PR6744 ! 189. https://gcc.gnu.org/PR7361 ! 190. https://gcc.gnu.org/PR9496 ! 191. https://gcc.gnu.org/PR7067 ! 192. https://gcc.gnu.org/PR8480 ! 193. https://gcc.gnu.org/PR8784 ! 194. https://gcc.gnu.org/PR10315 ! 195. https://gcc.gnu.org/PR10267 ! 196. https://gcc.gnu.org/PR7916 ! 197. https://gcc.gnu.org/PR7926 ! 198. https://gcc.gnu.org/PR8555 ! 199. https://gcc.gnu.org/PR8994 ! 200. https://gcc.gnu.org/PR9426 ! 201. https://gcc.gnu.org/PR9806 ! 202. https://gcc.gnu.org/PR10077 ! 203. https://gcc.gnu.org/PR10233 ! 204. https://gcc.gnu.org/PR10286 ! 205. https://gcc.gnu.org/PR10308 ! 206. https://gcc.gnu.org/PR11272 ! 207. https://gcc.gnu.org/PR5754 ! 208. https://gcc.gnu.org/PR6597 ! 209. https://gcc.gnu.org/PR6949 ! 210. https://gcc.gnu.org/PR7053 ! 211. https://gcc.gnu.org/PR8164 ! 212. https://gcc.gnu.org/PR8384 ! 213. https://gcc.gnu.org/PR9559 ! 214. https://gcc.gnu.org/PR9649 ! 215. https://gcc.gnu.org/PR9864 ! 216. https://gcc.gnu.org/PR10432 ! 217. https://gcc.gnu.org/PR10475 ! 218. https://gcc.gnu.org/PR10635 ! 219. https://gcc.gnu.org/PR10661 ! 220. https://gcc.gnu.org/PR10700 ! 221. https://gcc.gnu.org/PR10712 ! 222. https://gcc.gnu.org/PR10796 ! 223. https://gcc.gnu.org/PR10890 ! 224. https://gcc.gnu.org/PR10939 ! 225. https://gcc.gnu.org/PR10956 ! 226. https://gcc.gnu.org/PR11041 ! 227. https://gcc.gnu.org/PR11059 ! 228. https://gcc.gnu.org/PR11083 ! 229. https://gcc.gnu.org/PR11105 ! 230. https://gcc.gnu.org/PR11149 ! 231. https://gcc.gnu.org/PR11228 ! 232. https://gcc.gnu.org/PR11282 ! 233. https://gcc.gnu.org/PR11301 ! 234. https://gcc.gnu.org/PR11308 ! 235. https://gcc.gnu.org/PR11473 ! 236. https://gcc.gnu.org/PR11503 ! 237. https://gcc.gnu.org/PR11513 ! 238. https://gcc.gnu.org/PR11198 ! 239. https://gcc.gnu.org/PR11304 ! 240. https://gcc.gnu.org/PR11381 ! 241. https://gcc.gnu.org/PR11536 ! 242. https://gcc.gnu.org/PR11557 ! 243. https://gcc.gnu.org/PR5897 ! 244. https://gcc.gnu.org/PR11279 ! 245. https://gcc.gnu.org/PR11022 ! 246. https://gcc.gnu.org/PR2330 ! 247. https://gcc.gnu.org/PR5388 ! 248. https://gcc.gnu.org/PR5390 ! 249. https://gcc.gnu.org/PR7877 ! 250. https://gcc.gnu.org/PR9393 ! 251. https://gcc.gnu.org/PR10032 ! 252. https://gcc.gnu.org/PR10468 ! 253. https://gcc.gnu.org/PR10527 ! 254. https://gcc.gnu.org/PR10679 ! 255. https://gcc.gnu.org/PR10682 ! 256. https://gcc.gnu.org/PR10689 ! 257. https://gcc.gnu.org/PR10845 ! 258. https://gcc.gnu.org/PR10849 ! 259. https://gcc.gnu.org/PR10888 ! 260. https://gcc.gnu.org/PR10929 ! 261. https://gcc.gnu.org/PR10931 ! 262. https://gcc.gnu.org/PR10940 ! 263. https://gcc.gnu.org/PR10968 ! 264. https://gcc.gnu.org/PR10990 ! 265. https://gcc.gnu.org/PR11039 ! 266. https://gcc.gnu.org/PR11062 ! 267. https://gcc.gnu.org/PR11095 ! 268. https://gcc.gnu.org/PR11098 ! 269. https://gcc.gnu.org/PR11137 ! 270. https://gcc.gnu.org/PR11154 ! 271. https://gcc.gnu.org/PR11329 ! 272. https://gcc.gnu.org/PR11332 ! 273. https://gcc.gnu.org/PR11431 ! 274. https://gcc.gnu.org/PR11528 ! 275. https://gcc.gnu.org/PR11546 ! 276. https://gcc.gnu.org/PR11567 ! 277. https://gcc.gnu.org/PR11645 ! 278. https://gcc.gnu.org/PR5179 ! 279. https://gcc.gnu.org/PR8204 ! 280. https://gcc.gnu.org/PR10838 ! 281. https://gcc.gnu.org/PR10886 ! 282. https://gcc.gnu.org/PR11349 ! 283. https://gcc.gnu.org/PR4823 ! 284. https://gcc.gnu.org/PR8878 ! 285. https://gcc.gnu.org/PR9815 ! 286. https://gcc.gnu.org/PR10402 ! 287. https://gcc.gnu.org/PR10504 ! 288. https://gcc.gnu.org/PR10673 ! 289. https://gcc.gnu.org/PR11044 ! 290. https://gcc.gnu.org/PR11089 ! 291. https://gcc.gnu.org/PR11420 ! 292. https://gcc.gnu.org/PR9362 ! 293. https://gcc.gnu.org/PR10142 ! 294. https://gcc.gnu.org/PR10663 ! 295. https://gcc.gnu.org/PR10835 ! 296. https://gcc.gnu.org/PR10876 ! 297. https://gcc.gnu.org/PR10955 ! 298. https://gcc.gnu.org/PR11018 ! 299. https://gcc.gnu.org/PR11556 ! 300. https://gcc.gnu.org/PR10907 ! 301. https://gcc.gnu.org/PR11320 ! 302. https://gcc.gnu.org/PR11599 ! 303. https://gcc.gnu.org/PR9745 ! 304. https://gcc.gnu.org/PR10871 ! 305. https://gcc.gnu.org/PR11440 ! 306. https://gcc.gnu.org/PR7594 ! 307. https://gcc.gnu.org/PR10557 ! 308. https://gcc.gnu.org/PR11054 ! 309. https://gcc.gnu.org/PR10834 ! 310. https://gcc.gnu.org/PR10842 ! 311. https://gcc.gnu.org/PR11052 ! 312. https://gcc.gnu.org/PR11183 ! 313. https://gcc.gnu.org/PR11084 ! 314. https://gcc.gnu.org/PR10331 ! 315. https://gcc.gnu.org/PR10413 ! 316. https://gcc.gnu.org/PR11096 ! 317. https://gcc.gnu.org/PR2873 ! 318. https://gcc.gnu.org/PR3163 ! 319. https://gcc.gnu.org/PR5287 ! 320. https://gcc.gnu.org/PR10148 ! 321. https://gcc.gnu.org/PR8787 ! 322. https://gcc.gnu.org/PR10900 ! 323. https://gcc.gnu.org/PR1607 ! 324. https://gcc.gnu.org/PR4252 ! 325. https://gcc.gnu.org/PR4490 ! 326. https://gcc.gnu.org/PR10355 ! 327. https://gcc.gnu.org/PR10726 ! 328. https://gcc.gnu.org/PR10805 ! 329. https://gcc.gnu.org/PR10815 ! 330. https://gcc.gnu.org/PR10877 ! 331. https://gcc.gnu.org/PR11280 ! 332. https://gcc.gnu.org/PR11466 ! 333. https://gcc.gnu.org/PR10737 ! 334. https://gcc.gnu.org/PR10810 ! 335. https://gcc.gnu.org/PR8336 ! 336. https://gcc.gnu.org/PR9330 ! 337. https://gcc.gnu.org/PR9631 ! 338. https://gcc.gnu.org/PR9877 ! 339. https://gcc.gnu.org/PR11687 ! 340. https://gcc.gnu.org/PR12263 ! 341. https://gcc.gnu.org/PR12490 ! 342. https://gcc.gnu.org/PR7277 ! 343. https://gcc.gnu.org/PR7939 ! 344. https://gcc.gnu.org/PR11063 ! 345. https://gcc.gnu.org/PR11207 ! 346. https://gcc.gnu.org/PR11522 ! 347. https://gcc.gnu.org/PR11595 ! 348. https://gcc.gnu.org/PR11646 ! 349. https://gcc.gnu.org/PR11665 ! 350. https://gcc.gnu.org/PR11852 ! 351. https://gcc.gnu.org/PR11878 ! 352. https://gcc.gnu.org/PR11883 ! 353. https://gcc.gnu.org/PR11991 ! 354. https://gcc.gnu.org/PR12146 ! 355. https://gcc.gnu.org/PR12215 ! 356. https://gcc.gnu.org/PR12369 ! 357. https://gcc.gnu.org/PR12446 ! 358. https://gcc.gnu.org/PR12510 ! 359. https://gcc.gnu.org/PR12544 ! 360. https://gcc.gnu.org/PR9862 ! 361. https://gcc.gnu.org/PR10962 ! 362. https://gcc.gnu.org/PR11370 ! 363. https://gcc.gnu.org/PR11637 ! 364. https://gcc.gnu.org/PR11885 ! 365. https://gcc.gnu.org/PR12082 ! 366. https://gcc.gnu.org/PR12180 ! 367. https://gcc.gnu.org/PR12340 ! 368. https://gcc.gnu.org/PR3907 ! 369. https://gcc.gnu.org/PR5293 ! 370. https://gcc.gnu.org/PR5296 ! 371. https://gcc.gnu.org/PR7939 ! 372. https://gcc.gnu.org/PR8656 ! 373. https://gcc.gnu.org/PR10147 ! 374. https://gcc.gnu.org/PR11400 ! 375. https://gcc.gnu.org/PR11409 ! 376. https://gcc.gnu.org/PR11740 ! 377. https://gcc.gnu.org/PR11786 ! 378. https://gcc.gnu.org/PR11867 ! 379. https://gcc.gnu.org/PR11928 ! 380. https://gcc.gnu.org/PR12114 ! 381. https://gcc.gnu.org/PR12163 ! 382. https://gcc.gnu.org/PR12181 ! 383. https://gcc.gnu.org/PR12236 ! 384. https://gcc.gnu.org/PR12266 ! 385. https://gcc.gnu.org/PR12296 ! 386. https://gcc.gnu.org/PR12298 ! 387. https://gcc.gnu.org/PR12369 ! 388. https://gcc.gnu.org/PR12337 ! 389. https://gcc.gnu.org/PR12344 ! 390. https://gcc.gnu.org/PR12451 ! 391. https://gcc.gnu.org/PR12486 ! 392. https://gcc.gnu.org/PR8869 ! 393. https://gcc.gnu.org/PR9786 ! 394. https://gcc.gnu.org/PR11689 ! 395. https://gcc.gnu.org/PR12116 ! 396. https://gcc.gnu.org/PR12070 ! 397. https://gcc.gnu.org/PR11184 ! 398. https://gcc.gnu.org/PR11535 ! 399. https://gcc.gnu.org/PR11693 ! 400. https://gcc.gnu.org/PR12224 ! 401. https://gcc.gnu.org/PR11087 ! 402. https://gcc.gnu.org/PR11319 ! 403. https://gcc.gnu.org/PR11949 ! 404. https://gcc.gnu.org/PR11662 ! 405. https://gcc.gnu.org/PR11965 ! 406. https://gcc.gnu.org/PR12301 ! 407. https://gcc.gnu.org/PR11717 ! 408. https://gcc.gnu.org/PR11313 ! 409. https://gcc.gnu.org/PR11712 ! 410. https://gcc.gnu.org/PR12166 ! 411. https://gcc.gnu.org/PR12101 ! 412. https://gcc.gnu.org/PR10988 ! 413. https://gcc.gnu.org/PR11805 ! 414. https://gcc.gnu.org/PR11902 ! 415. https://gcc.gnu.org/PR11903 ! 416. https://gcc.gnu.org/PR11890 ! 417. https://gcc.gnu.org/PR12399 ! 418. https://gcc.gnu.org/PR13068 ! 419. https://gcc.gnu.org/PR10060 ! 420. https://gcc.gnu.org/PR10555 ! 421. https://gcc.gnu.org/PR10706 ! 422. https://gcc.gnu.org/PR11496 ! 423. https://gcc.gnu.org/PR11741 ! 424. https://gcc.gnu.org/PR12440 ! 425. https://gcc.gnu.org/PR12632 ! 426. https://gcc.gnu.org/PR12712 ! 427. https://gcc.gnu.org/PR12726 ! 428. https://gcc.gnu.org/PR12890 ! 429. https://gcc.gnu.org/PR12900 ! 430. https://gcc.gnu.org/PR13060 ! 431. https://gcc.gnu.org/PR13289 ! 432. https://gcc.gnu.org/PR13318 ! 433. https://gcc.gnu.org/PR13392 ! 434. https://gcc.gnu.org/PR13574 ! 435. https://gcc.gnu.org/PR13475 ! 436. https://gcc.gnu.org/PR13797 ! 437. https://gcc.gnu.org/PR13824 ! 438. https://gcc.gnu.org/PR8776 ! 439. https://gcc.gnu.org/PR10339 ! 440. https://gcc.gnu.org/PR11350 ! 441. https://gcc.gnu.org/PR12826 ! 442. https://gcc.gnu.org/PR12500 ! 443. https://gcc.gnu.org/PR12941 ! 444. https://gcc.gnu.org/PR12953 ! 445. https://gcc.gnu.org/PR13041 ! 446. https://gcc.gnu.org/PR13507 ! 447. https://gcc.gnu.org/PR13382 ! 448. https://gcc.gnu.org/PR13394 ! 449. https://gcc.gnu.org/PR13400 ! 450. https://gcc.gnu.org/PR13521 ! 451. https://gcc.gnu.org/PR2094 ! 452. https://gcc.gnu.org/PR2294 ! 453. https://gcc.gnu.org/PR5050 ! 454. https://gcc.gnu.org/PR9371 ! 455. https://gcc.gnu.org/PR9546 ! 456. https://gcc.gnu.org/PR10081 ! 457. https://gcc.gnu.org/PR10093 ! 458. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 ! 459. https://gcc.gnu.org/PR10095 ! 460. https://gcc.gnu.org/PR11554 ! 461. https://gcc.gnu.org/PR12297 ! 462. https://gcc.gnu.org/PR12352 ! 463. https://gcc.gnu.org/PR12438 ! 464. https://gcc.gnu.org/PR12540 ! 465. https://gcc.gnu.org/PR12594 ! 466. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 ! 467. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 ! 468. https://gcc.gnu.org/PR12657 ! 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 ! 470. https://gcc.gnu.org/PR12696 ! 471. https://gcc.gnu.org/PR12815 ! 472. https://gcc.gnu.org/PR12862 ! 473. https://gcc.gnu.org/PR12926 ! 474. https://gcc.gnu.org/PR12967 ! 475. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html ! 476. https://gcc.gnu.org/PR12971 ! 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 ! 478. https://gcc.gnu.org/PR13007 ! 479. https://gcc.gnu.org/PR13009 ! 480. https://gcc.gnu.org/PR13057 ! 481. https://gcc.gnu.org/PR13070 ! 482. https://gcc.gnu.org/PR13081 ! 483. https://gcc.gnu.org/PR13239 ! 484. https://gcc.gnu.org/PR13262 ! 485. https://gcc.gnu.org/PR13290 ! 486. https://gcc.gnu.org/PR13323 ! 487. https://gcc.gnu.org/PR13369 ! 488. https://gcc.gnu.org/PR13371 ! 489. https://gcc.gnu.org/PR13445 ! 490. https://gcc.gnu.org/PR13461 ! 491. https://gcc.gnu.org/PR13462 ! 492. https://gcc.gnu.org/PR13478 ! 493. https://gcc.gnu.org/PR13544 ! 494. https://gcc.gnu.org/PR13650 ! 495. https://gcc.gnu.org/PR13683 ! 496. https://gcc.gnu.org/PR13688 ! 497. https://gcc.gnu.org/PR13774 ! 498. https://gcc.gnu.org/PR13884 ! 499. https://gcc.gnu.org/PR10746 ! 500. https://gcc.gnu.org/PR11433 ! 501. https://gcc.gnu.org/PR12633 ! 502. https://gcc.gnu.org/PR13037 ! 503. https://gcc.gnu.org/PR13213 ! 504. https://gcc.gnu.org/PR4490 ! 505. https://gcc.gnu.org/PR12292 ! 506. https://gcc.gnu.org/PR12441 ! 507. https://gcc.gnu.org/PR12943 ! 508. https://gcc.gnu.org/PR13608 ! 509. https://gcc.gnu.org/PR11598 ! 510. https://gcc.gnu.org/PR11793 ! 511. https://gcc.gnu.org/PR12467 ! 512. https://gcc.gnu.org/PR12537 ! 513. https://gcc.gnu.org/PR12496 ! 514. https://gcc.gnu.org/PR12865 ! 515. https://gcc.gnu.org/PR13354 ! 516. https://gcc.gnu.org/PR10467 ! 517. https://gcc.gnu.org/PR11226 ! 518. https://gcc.gnu.org/PR11227 ! 519. https://gcc.gnu.org/PR12644 ! 520. https://gcc.gnu.org/PR13149 ! 521. https://gcc.gnu.org/PR12654 ! 522. https://gcc.gnu.org/PR12965 ! 523. https://gcc.gnu.org/PR13031 ! 524. https://gcc.gnu.org/PR11634 ! 525. https://gcc.gnu.org/PR12158 ! 526. https://gcc.gnu.org/PR11992 ! 527. https://gcc.gnu.org/PR9365 ! 528. https://gcc.gnu.org/PR10392 ! 529. https://gcc.gnu.org/PR11322 ! 530. https://gcc.gnu.org/PR13069 ! 531. https://gcc.gnu.org/PR13302 ! 532. https://gcc.gnu.org/PR13585 ! 533. https://gcc.gnu.org/PR8916 ! 534. https://gcc.gnu.org/PR11576 ! 535. https://gcc.gnu.org/PR13122 ! 536. https://gcc.gnu.org/PR13256 ! 537. https://gcc.gnu.org/PR13373 ! 538. https://gcc.gnu.org/PR12561 ! 539. https://gcc.gnu.org/PR6243 ! 540. https://gcc.gnu.org/PR11397 ! 541. https://gcc.gnu.org/PR12505 ! 542. https://gcc.gnu.org/PR13150 ! 543. https://gcc.gnu.org/PR12666 ! 544. https://gcc.gnu.org/PR12969 ! 545. https://gcc.gnu.org/PR10819 ! 546. https://gcc.gnu.org/PR11612 ! 547. https://gcc.gnu.org/PR13211 ! 548. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4 ! 549. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5 ! 550. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6 ! 551. https://gcc.gnu.org/onlinedocs/ ! 552. mailto:gcc-help@gcc.gnu.org ! 553. mailto:gcc@gcc.gnu.org ! 554. https://gcc.gnu.org/lists.html ! 555. http://www.fsf.org/ ! 556. https://gcc.gnu.org/about.html ! 557. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/index.html GCC 3.2 Release Series *************** References and Acknowledgements *** 11834,11840 **** provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2012-11-02[18]. References --- 11913,11919 ---- provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2014-06-28[18]. References *************** References *** 11845,11860 **** 5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2 7. http://gcc.gnu.org/gcc-3.2/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html ! 12. http://gcc.gnu.org/onlinedocs/ 13. mailto:gcc-help@gcc.gnu.org 14. mailto:gcc@gcc.gnu.org ! 15. http://gcc.gnu.org/lists.html 16. http://www.fsf.org/ ! 17. http://gcc.gnu.org/about.html 18. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html --- 11924,11939 ---- 5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2 7. http://gcc.gnu.org/gcc-3.2/buildstat.html ! 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org 11. http://gcc.gnu.org/mirrors.html ! 12. https://gcc.gnu.org/onlinedocs/ 13. mailto:gcc-help@gcc.gnu.org 14. mailto:gcc@gcc.gnu.org ! 15. https://gcc.gnu.org/lists.html 16. http://www.fsf.org/ ! 17. https://gcc.gnu.org/about.html 18. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html *************** GCC 3.2 *** 12457,12717 **** provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2012-11-02[252]. References 1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 2. http://gcc.gnu.org/gcc-3.1/changes.html 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html ! 4. http://gcc.gnu.org/PR3782 ! 5. http://gcc.gnu.org/PR6440 ! 6. http://gcc.gnu.org/PR7050 ! 7. http://gcc.gnu.org/PR7741 ! 8. http://gcc.gnu.org/PR7982 ! 9. http://gcc.gnu.org/PR8068 ! 10. http://gcc.gnu.org/PR8178 ! 11. http://gcc.gnu.org/PR8396 ! 12. http://gcc.gnu.org/PR8674 ! 13. http://gcc.gnu.org/PR9768 ! 14. http://gcc.gnu.org/PR9798 ! 15. http://gcc.gnu.org/PR9799 ! 16. http://gcc.gnu.org/PR9928 ! 17. http://gcc.gnu.org/PR10114 ! 18. http://gcc.gnu.org/PR10352 ! 19. http://gcc.gnu.org/PR10336 ! 20. http://gcc.gnu.org/PR8224 ! 21. http://gcc.gnu.org/PR8613 ! 22. http://gcc.gnu.org/PR8828 ! 23. http://gcc.gnu.org/PR9226 ! 24. http://gcc.gnu.org/PR9853 ! 25. http://gcc.gnu.org/PR9797 ! 26. http://gcc.gnu.org/PR9967 ! 27. http://gcc.gnu.org/PR10116 ! 28. http://gcc.gnu.org/PR10171 ! 29. http://gcc.gnu.org/PR10175 ! 30. http://gcc.gnu.org/PR8316 ! 31. http://gcc.gnu.org/PR9169 ! 32. http://gcc.gnu.org/PR9420 ! 33. http://gcc.gnu.org/PR9459 ! 34. http://gcc.gnu.org/PR9507 ! 35. http://gcc.gnu.org/PR9538 ! 36. http://gcc.gnu.org/PR9602 ! 37. http://gcc.gnu.org/PR9993 ! 38. http://gcc.gnu.org/PR10167 ! 39. http://gcc.gnu.org/PR9652 ! 40. http://gcc.gnu.org/PR10144 ! 41. http://gcc.gnu.org/PR8746 ! 42. http://gcc.gnu.org/PR9888 ! 43. http://gcc.gnu.org/PR9638 ! 44. http://gcc.gnu.org/PR9954 ! 45. http://gcc.gnu.org/PR7784 ! 46. http://gcc.gnu.org/PR7796 ! 47. http://gcc.gnu.org/PR8281 ! 48. http://gcc.gnu.org/PR8366 ! 49. http://gcc.gnu.org/PR8726 ! 50. http://gcc.gnu.org/PR9414 ! 51. http://gcc.gnu.org/PR10067 ! 52. http://gcc.gnu.org/PR7248 ! 53. http://gcc.gnu.org/PR8343 ! 54. http://gcc.gnu.org/PR9732 ! 55. http://gcc.gnu.org/PR10073 ! 56. http://gcc.gnu.org/PR7702 ! 57. http://gcc.gnu.org/PR9671 ! 58. http://gcc.gnu.org/PR8694 ! 59. http://gcc.gnu.org/PR9953 ! 60. http://gcc.gnu.org/PR10271 ! 61. http://gcc.gnu.org/PR6362 ! 62. http://gcc.gnu.org/PR10377 ! 63. http://gcc.gnu.org/PR6955 ! 64. http://gcc.gnu.org/PR5919 ! 65. http://gcc.gnu.org/PR7129 ! 66. http://gcc.gnu.org/PR7507 ! 67. http://gcc.gnu.org/PR7622 ! 68. http://gcc.gnu.org/PR7681 ! 69. http://gcc.gnu.org/PR9528 ! 70. http://gcc.gnu.org/PR8031 ! 71. http://gcc.gnu.org/PR8275 ! 72. http://gcc.gnu.org/PR8332 ! 73. http://gcc.gnu.org/PR8372 ! 74. http://gcc.gnu.org/PR8439 ! 75. http://gcc.gnu.org/PR8442 ! 76. http://gcc.gnu.org/PR8518 ! 77. http://gcc.gnu.org/PR8615 ! 78. http://gcc.gnu.org/PR8663 ! 79. http://gcc.gnu.org/PR8799 ! 80. http://gcc.gnu.org/PR9328 ! 81. http://gcc.gnu.org/PR9465 ! 82. http://gcc.gnu.org/PR47 ! 83. http://gcc.gnu.org/PR6745 ! 84. http://gcc.gnu.org/PR8214 ! 85. http://gcc.gnu.org/PR8493 ! 86. http://gcc.gnu.org/PR8332 ! 87. http://gcc.gnu.org/PR8503 ! 88. http://gcc.gnu.org/PR8727 ! 89. http://gcc.gnu.org/PR7445 ! 90. http://gcc.gnu.org/PR8230 ! 91. http://gcc.gnu.org/PR8399 ! 92. http://gcc.gnu.org/PR8662 ! 93. http://gcc.gnu.org/PR8707 ! 94. http://gcc.gnu.org/PR8708 ! 95. http://gcc.gnu.org/PR8790 ! 96. http://gcc.gnu.org/PR8887 ! 97. http://gcc.gnu.org/PR9076 ! 98. http://gcc.gnu.org/PR9151 ! 99. http://gcc.gnu.org/PR9168 ! 100. http://gcc.gnu.org/PR9269 ! 101. http://gcc.gnu.org/PR9322 ! 102. http://gcc.gnu.org/PR9433 ! 103. http://gcc.gnu.org/PR8032 ! 104. http://gcc.gnu.org/PR8639 ! 105. http://gcc.gnu.org/PR8794 ! 106. http://gcc.gnu.org/PR8832 ! 107. http://gcc.gnu.org/PR8988 ! 108. http://gcc.gnu.org/PR9492 ! 109. http://gcc.gnu.org/PR9267 ! 110. http://gcc.gnu.org/PR8344 ! 111. http://gcc.gnu.org/PR8524 ! 112. http://gcc.gnu.org/PR8880 ! 113. http://gcc.gnu.org/PR9090 ! 114. http://gcc.gnu.org/PR8588 ! 115. http://gcc.gnu.org/PR8599 ! 116. http://gcc.gnu.org/PR9506 ! 117. http://gcc.gnu.org/PR9484 ! 118. http://gcc.gnu.org/PR9292 ! 119. http://gcc.gnu.org/PR9293 ! 120. http://gcc.gnu.org/PR9295 ! 121. http://gcc.gnu.org/PR9296 ! 122. http://gcc.gnu.org/PR9316 ! 123. http://gcc.gnu.org/PR9493 ! 124. http://gcc.gnu.org/PR7341 ! 125. http://gcc.gnu.org/PR8947 ! 126. http://gcc.gnu.org/PR7448 ! 127. http://gcc.gnu.org/PR8882 ! 128. http://gcc.gnu.org/PR7445 ! 129. http://gcc.gnu.org/PR2521 ! 130. http://gcc.gnu.org/PR5661 ! 131. http://gcc.gnu.org/PR6419 ! 132. http://gcc.gnu.org/PR6994 ! 133. http://gcc.gnu.org/PR7150 ! 134. http://gcc.gnu.org/PR7160 ! 135. http://gcc.gnu.org/PR7228 ! 136. http://gcc.gnu.org/PR7266 ! 137. http://gcc.gnu.org/PR7353 ! 138. http://gcc.gnu.org/PR7411 ! 139. http://gcc.gnu.org/PR7478 ! 140. http://gcc.gnu.org/PR7526 ! 141. http://gcc.gnu.org/PR7721 ! 142. http://gcc.gnu.org/PR7803 ! 143. http://gcc.gnu.org/PR7754 ! 144. http://gcc.gnu.org/PR7788 ! 145. http://gcc.gnu.org/PR8031 ! 146. http://gcc.gnu.org/PR8055 ! 147. http://gcc.gnu.org/PR8067 ! 148. http://gcc.gnu.org/PR8134 ! 149. http://gcc.gnu.org/PR8149 ! 150. http://gcc.gnu.org/PR8160 ! 151. http://gcc.gnu.org/PR5607 ! 152. http://gcc.gnu.org/PR6579 ! 153. http://gcc.gnu.org/PR6803 ! 154. http://gcc.gnu.org/PR7176 ! 155. http://gcc.gnu.org/PR7188 ! 156. http://gcc.gnu.org/PR7306 ! 157. http://gcc.gnu.org/PR7461 ! 158. http://gcc.gnu.org/PR7524 ! 159. http://gcc.gnu.org/PR7584 ! 160. http://gcc.gnu.org/PR7676 ! 161. http://gcc.gnu.org/PR7679 ! 162. http://gcc.gnu.org/PR7811 ! 163. http://gcc.gnu.org/PR7961 ! 164. http://gcc.gnu.org/PR8071 ! 165. http://gcc.gnu.org/PR8127 ! 166. http://gcc.gnu.org/PR6745 ! 167. http://gcc.gnu.org/PR8096 ! 168. http://gcc.gnu.org/PR8127 ! 169. http://gcc.gnu.org/PR8218 ! 170. http://gcc.gnu.org/PR8287 ! 171. http://gcc.gnu.org/PR8347 ! 172. http://gcc.gnu.org/PR8348 ! 173. http://gcc.gnu.org/PR8391 ! 174. http://gcc.gnu.org/PR6627 ! 175. http://gcc.gnu.org/PR6631 ! 176. http://gcc.gnu.org/PR7102 ! 177. http://gcc.gnu.org/PR7120 ! 178. http://gcc.gnu.org/PR7209 ! 179. http://gcc.gnu.org/PR7515 ! 180. http://gcc.gnu.org/PR7814 ! 181. http://gcc.gnu.org/PR8467 ! 182. http://gcc.gnu.org/PR4890 ! 183. http://gcc.gnu.org/PR7357 ! 184. http://gcc.gnu.org/PR7358 ! 185. http://gcc.gnu.org/PR7602 ! 186. http://gcc.gnu.org/PR7862 ! 187. http://gcc.gnu.org/PR8190 ! 188. http://gcc.gnu.org/PR8524 ! 189. http://gcc.gnu.org/PR5351 ! 190. http://gcc.gnu.org/PR7591 ! 191. http://gcc.gnu.org/PR6845 ! 192. http://gcc.gnu.org/PR7034 ! 193. http://gcc.gnu.org/PR7124 ! 194. http://gcc.gnu.org/PR7174 ! 195. http://gcc.gnu.org/PR7134 ! 196. http://gcc.gnu.org/PR7375 ! 197. http://gcc.gnu.org/PR7390 ! 198. http://gcc.gnu.org/PR6890 ! 199. http://gcc.gnu.org/PR6981 ! 200. http://gcc.gnu.org/PR7242 ! 201. http://gcc.gnu.org/PR7396 ! 202. http://gcc.gnu.org/PR7630 ! 203. http://gcc.gnu.org/PR7693 ! 204. http://gcc.gnu.org/PR7723 ! 205. http://gcc.gnu.org/PR7951 ! 206. http://gcc.gnu.org/PR8146 ! 207. http://gcc.gnu.org/PR5967 ! 208. http://gcc.gnu.org/PR6984 ! 209. http://gcc.gnu.org/PR7114 ! 210. http://gcc.gnu.org/PR7130 ! 211. http://gcc.gnu.org/PR7133 ! 212. http://gcc.gnu.org/PR7380 ! 213. http://gcc.gnu.org/PR8252 ! 214. http://gcc.gnu.org/PR8451 ! 215. http://gcc.gnu.org/PR7250 ! 216. http://gcc.gnu.org/PR6668 ! 217. http://gcc.gnu.org/PR7151 ! 218. http://gcc.gnu.org/PR7335 ! 219. http://gcc.gnu.org/PR7842 ! 220. http://gcc.gnu.org/PR7856 ! 221. http://gcc.gnu.org/PR7967 ! 222. http://gcc.gnu.org/PR7374 ! 223. http://gcc.gnu.org/PR7370 ! 224. http://gcc.gnu.org/PR7409 ! 225. http://gcc.gnu.org/PR8232 ! 226. http://gcc.gnu.org/PR7623 ! 227. http://gcc.gnu.org/PR8314 ! 228. http://gcc.gnu.org/PR761 ! 229. http://gcc.gnu.org/PR5610 ! 230. http://gcc.gnu.org/PR7484 ! 231. http://gcc.gnu.org/PR7531 ! 232. http://gcc.gnu.org/PR8120 ! 233. http://gcc.gnu.org/PR7320 ! 234. http://gcc.gnu.org/PR7470 ! 235. http://gcc.gnu.org/PR6410 ! 236. http://gcc.gnu.org/PR6503 ! 237. http://gcc.gnu.org/PR6642 ! 238. http://gcc.gnu.org/PR7186 ! 239. http://gcc.gnu.org/PR7216 ! 240. http://gcc.gnu.org/PR7220 ! 241. http://gcc.gnu.org/PR7222 ! 242. http://gcc.gnu.org/PR7286 ! 243. http://gcc.gnu.org/PR7442 ! 244. http://gcc.gnu.org/PR7445 ! 245. http://gcc.gnu.org/PR7291 ! 246. http://gcc.gnu.org/onlinedocs/ 247. mailto:gcc-help@gcc.gnu.org 248. mailto:gcc@gcc.gnu.org ! 249. http://gcc.gnu.org/lists.html 250. http://www.fsf.org/ ! 251. http://gcc.gnu.org/about.html 252. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html --- 12536,12796 ---- provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2014-06-27[252]. References 1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 2. http://gcc.gnu.org/gcc-3.1/changes.html 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html ! 4. https://gcc.gnu.org/PR3782 ! 5. https://gcc.gnu.org/PR6440 ! 6. https://gcc.gnu.org/PR7050 ! 7. https://gcc.gnu.org/PR7741 ! 8. https://gcc.gnu.org/PR7982 ! 9. https://gcc.gnu.org/PR8068 ! 10. https://gcc.gnu.org/PR8178 ! 11. https://gcc.gnu.org/PR8396 ! 12. https://gcc.gnu.org/PR8674 ! 13. https://gcc.gnu.org/PR9768 ! 14. https://gcc.gnu.org/PR9798 ! 15. https://gcc.gnu.org/PR9799 ! 16. https://gcc.gnu.org/PR9928 ! 17. https://gcc.gnu.org/PR10114 ! 18. https://gcc.gnu.org/PR10352 ! 19. https://gcc.gnu.org/PR10336 ! 20. https://gcc.gnu.org/PR8224 ! 21. https://gcc.gnu.org/PR8613 ! 22. https://gcc.gnu.org/PR8828 ! 23. https://gcc.gnu.org/PR9226 ! 24. https://gcc.gnu.org/PR9853 ! 25. https://gcc.gnu.org/PR9797 ! 26. https://gcc.gnu.org/PR9967 ! 27. https://gcc.gnu.org/PR10116 ! 28. https://gcc.gnu.org/PR10171 ! 29. https://gcc.gnu.org/PR10175 ! 30. https://gcc.gnu.org/PR8316 ! 31. https://gcc.gnu.org/PR9169 ! 32. https://gcc.gnu.org/PR9420 ! 33. https://gcc.gnu.org/PR9459 ! 34. https://gcc.gnu.org/PR9507 ! 35. https://gcc.gnu.org/PR9538 ! 36. https://gcc.gnu.org/PR9602 ! 37. https://gcc.gnu.org/PR9993 ! 38. https://gcc.gnu.org/PR10167 ! 39. https://gcc.gnu.org/PR9652 ! 40. https://gcc.gnu.org/PR10144 ! 41. https://gcc.gnu.org/PR8746 ! 42. https://gcc.gnu.org/PR9888 ! 43. https://gcc.gnu.org/PR9638 ! 44. https://gcc.gnu.org/PR9954 ! 45. https://gcc.gnu.org/PR7784 ! 46. https://gcc.gnu.org/PR7796 ! 47. https://gcc.gnu.org/PR8281 ! 48. https://gcc.gnu.org/PR8366 ! 49. https://gcc.gnu.org/PR8726 ! 50. https://gcc.gnu.org/PR9414 ! 51. https://gcc.gnu.org/PR10067 ! 52. https://gcc.gnu.org/PR7248 ! 53. https://gcc.gnu.org/PR8343 ! 54. https://gcc.gnu.org/PR9732 ! 55. https://gcc.gnu.org/PR10073 ! 56. https://gcc.gnu.org/PR7702 ! 57. https://gcc.gnu.org/PR9671 ! 58. https://gcc.gnu.org/PR8694 ! 59. https://gcc.gnu.org/PR9953 ! 60. https://gcc.gnu.org/PR10271 ! 61. https://gcc.gnu.org/PR6362 ! 62. https://gcc.gnu.org/PR10377 ! 63. https://gcc.gnu.org/PR6955 ! 64. https://gcc.gnu.org/PR5919 ! 65. https://gcc.gnu.org/PR7129 ! 66. https://gcc.gnu.org/PR7507 ! 67. https://gcc.gnu.org/PR7622 ! 68. https://gcc.gnu.org/PR7681 ! 69. https://gcc.gnu.org/PR9528 ! 70. https://gcc.gnu.org/PR8031 ! 71. https://gcc.gnu.org/PR8275 ! 72. https://gcc.gnu.org/PR8332 ! 73. https://gcc.gnu.org/PR8372 ! 74. https://gcc.gnu.org/PR8439 ! 75. https://gcc.gnu.org/PR8442 ! 76. https://gcc.gnu.org/PR8518 ! 77. https://gcc.gnu.org/PR8615 ! 78. https://gcc.gnu.org/PR8663 ! 79. https://gcc.gnu.org/PR8799 ! 80. https://gcc.gnu.org/PR9328 ! 81. https://gcc.gnu.org/PR9465 ! 82. https://gcc.gnu.org/PR47 ! 83. https://gcc.gnu.org/PR6745 ! 84. https://gcc.gnu.org/PR8214 ! 85. https://gcc.gnu.org/PR8493 ! 86. https://gcc.gnu.org/PR8332 ! 87. https://gcc.gnu.org/PR8503 ! 88. https://gcc.gnu.org/PR8727 ! 89. https://gcc.gnu.org/PR7445 ! 90. https://gcc.gnu.org/PR8230 ! 91. https://gcc.gnu.org/PR8399 ! 92. https://gcc.gnu.org/PR8662 ! 93. https://gcc.gnu.org/PR8707 ! 94. https://gcc.gnu.org/PR8708 ! 95. https://gcc.gnu.org/PR8790 ! 96. https://gcc.gnu.org/PR8887 ! 97. https://gcc.gnu.org/PR9076 ! 98. https://gcc.gnu.org/PR9151 ! 99. https://gcc.gnu.org/PR9168 ! 100. https://gcc.gnu.org/PR9269 ! 101. https://gcc.gnu.org/PR9322 ! 102. https://gcc.gnu.org/PR9433 ! 103. https://gcc.gnu.org/PR8032 ! 104. https://gcc.gnu.org/PR8639 ! 105. https://gcc.gnu.org/PR8794 ! 106. https://gcc.gnu.org/PR8832 ! 107. https://gcc.gnu.org/PR8988 ! 108. https://gcc.gnu.org/PR9492 ! 109. https://gcc.gnu.org/PR9267 ! 110. https://gcc.gnu.org/PR8344 ! 111. https://gcc.gnu.org/PR8524 ! 112. https://gcc.gnu.org/PR8880 ! 113. https://gcc.gnu.org/PR9090 ! 114. https://gcc.gnu.org/PR8588 ! 115. https://gcc.gnu.org/PR8599 ! 116. https://gcc.gnu.org/PR9506 ! 117. https://gcc.gnu.org/PR9484 ! 118. https://gcc.gnu.org/PR9292 ! 119. https://gcc.gnu.org/PR9293 ! 120. https://gcc.gnu.org/PR9295 ! 121. https://gcc.gnu.org/PR9296 ! 122. https://gcc.gnu.org/PR9316 ! 123. https://gcc.gnu.org/PR9493 ! 124. https://gcc.gnu.org/PR7341 ! 125. https://gcc.gnu.org/PR8947 ! 126. https://gcc.gnu.org/PR7448 ! 127. https://gcc.gnu.org/PR8882 ! 128. https://gcc.gnu.org/PR7445 ! 129. https://gcc.gnu.org/PR2521 ! 130. https://gcc.gnu.org/PR5661 ! 131. https://gcc.gnu.org/PR6419 ! 132. https://gcc.gnu.org/PR6994 ! 133. https://gcc.gnu.org/PR7150 ! 134. https://gcc.gnu.org/PR7160 ! 135. https://gcc.gnu.org/PR7228 ! 136. https://gcc.gnu.org/PR7266 ! 137. https://gcc.gnu.org/PR7353 ! 138. https://gcc.gnu.org/PR7411 ! 139. https://gcc.gnu.org/PR7478 ! 140. https://gcc.gnu.org/PR7526 ! 141. https://gcc.gnu.org/PR7721 ! 142. https://gcc.gnu.org/PR7803 ! 143. https://gcc.gnu.org/PR7754 ! 144. https://gcc.gnu.org/PR7788 ! 145. https://gcc.gnu.org/PR8031 ! 146. https://gcc.gnu.org/PR8055 ! 147. https://gcc.gnu.org/PR8067 ! 148. https://gcc.gnu.org/PR8134 ! 149. https://gcc.gnu.org/PR8149 ! 150. https://gcc.gnu.org/PR8160 ! 151. https://gcc.gnu.org/PR5607 ! 152. https://gcc.gnu.org/PR6579 ! 153. https://gcc.gnu.org/PR6803 ! 154. https://gcc.gnu.org/PR7176 ! 155. https://gcc.gnu.org/PR7188 ! 156. https://gcc.gnu.org/PR7306 ! 157. https://gcc.gnu.org/PR7461 ! 158. https://gcc.gnu.org/PR7524 ! 159. https://gcc.gnu.org/PR7584 ! 160. https://gcc.gnu.org/PR7676 ! 161. https://gcc.gnu.org/PR7679 ! 162. https://gcc.gnu.org/PR7811 ! 163. https://gcc.gnu.org/PR7961 ! 164. https://gcc.gnu.org/PR8071 ! 165. https://gcc.gnu.org/PR8127 ! 166. https://gcc.gnu.org/PR6745 ! 167. https://gcc.gnu.org/PR8096 ! 168. https://gcc.gnu.org/PR8127 ! 169. https://gcc.gnu.org/PR8218 ! 170. https://gcc.gnu.org/PR8287 ! 171. https://gcc.gnu.org/PR8347 ! 172. https://gcc.gnu.org/PR8348 ! 173. https://gcc.gnu.org/PR8391 ! 174. https://gcc.gnu.org/PR6627 ! 175. https://gcc.gnu.org/PR6631 ! 176. https://gcc.gnu.org/PR7102 ! 177. https://gcc.gnu.org/PR7120 ! 178. https://gcc.gnu.org/PR7209 ! 179. https://gcc.gnu.org/PR7515 ! 180. https://gcc.gnu.org/PR7814 ! 181. https://gcc.gnu.org/PR8467 ! 182. https://gcc.gnu.org/PR4890 ! 183. https://gcc.gnu.org/PR7357 ! 184. https://gcc.gnu.org/PR7358 ! 185. https://gcc.gnu.org/PR7602 ! 186. https://gcc.gnu.org/PR7862 ! 187. https://gcc.gnu.org/PR8190 ! 188. https://gcc.gnu.org/PR8524 ! 189. https://gcc.gnu.org/PR5351 ! 190. https://gcc.gnu.org/PR7591 ! 191. https://gcc.gnu.org/PR6845 ! 192. https://gcc.gnu.org/PR7034 ! 193. https://gcc.gnu.org/PR7124 ! 194. https://gcc.gnu.org/PR7174 ! 195. https://gcc.gnu.org/PR7134 ! 196. https://gcc.gnu.org/PR7375 ! 197. https://gcc.gnu.org/PR7390 ! 198. https://gcc.gnu.org/PR6890 ! 199. https://gcc.gnu.org/PR6981 ! 200. https://gcc.gnu.org/PR7242 ! 201. https://gcc.gnu.org/PR7396 ! 202. https://gcc.gnu.org/PR7630 ! 203. https://gcc.gnu.org/PR7693 ! 204. https://gcc.gnu.org/PR7723 ! 205. https://gcc.gnu.org/PR7951 ! 206. https://gcc.gnu.org/PR8146 ! 207. https://gcc.gnu.org/PR5967 ! 208. https://gcc.gnu.org/PR6984 ! 209. https://gcc.gnu.org/PR7114 ! 210. https://gcc.gnu.org/PR7130 ! 211. https://gcc.gnu.org/PR7133 ! 212. https://gcc.gnu.org/PR7380 ! 213. https://gcc.gnu.org/PR8252 ! 214. https://gcc.gnu.org/PR8451 ! 215. https://gcc.gnu.org/PR7250 ! 216. https://gcc.gnu.org/PR6668 ! 217. https://gcc.gnu.org/PR7151 ! 218. https://gcc.gnu.org/PR7335 ! 219. https://gcc.gnu.org/PR7842 ! 220. https://gcc.gnu.org/PR7856 ! 221. https://gcc.gnu.org/PR7967 ! 222. https://gcc.gnu.org/PR7374 ! 223. https://gcc.gnu.org/PR7370 ! 224. https://gcc.gnu.org/PR7409 ! 225. https://gcc.gnu.org/PR8232 ! 226. https://gcc.gnu.org/PR7623 ! 227. https://gcc.gnu.org/PR8314 ! 228. https://gcc.gnu.org/PR761 ! 229. https://gcc.gnu.org/PR5610 ! 230. https://gcc.gnu.org/PR7484 ! 231. https://gcc.gnu.org/PR7531 ! 232. https://gcc.gnu.org/PR8120 ! 233. https://gcc.gnu.org/PR7320 ! 234. https://gcc.gnu.org/PR7470 ! 235. https://gcc.gnu.org/PR6410 ! 236. https://gcc.gnu.org/PR6503 ! 237. https://gcc.gnu.org/PR6642 ! 238. https://gcc.gnu.org/PR7186 ! 239. https://gcc.gnu.org/PR7216 ! 240. https://gcc.gnu.org/PR7220 ! 241. https://gcc.gnu.org/PR7222 ! 242. https://gcc.gnu.org/PR7286 ! 243. https://gcc.gnu.org/PR7442 ! 244. https://gcc.gnu.org/PR7445 ! 245. https://gcc.gnu.org/PR7291 ! 246. https://gcc.gnu.org/onlinedocs/ 247. mailto:gcc-help@gcc.gnu.org 248. mailto:gcc@gcc.gnu.org ! 249. https://gcc.gnu.org/lists.html 250. http://www.fsf.org/ ! 251. https://gcc.gnu.org/about.html 252. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html *************** http://gcc.gnu.org/gcc-3.1/index.html *** 12760,12766 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2012-11-02[15]. References --- 12839,12845 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2014-06-28[15]. References *************** References *** 12768,12783 **** 2. http://www.gnu.org/ 3. http://gcc.gnu.org/gcc-3.1/buildstat.html 4. http://gcc.gnu.org/gcc-3.1/changes.html ! 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 6. http://gcc.gnu.org/index.html 7. mailto:gcc@gcc.gnu.org 8. http://gcc.gnu.org/mirrors.html ! 9. http://gcc.gnu.org/onlinedocs/ 10. mailto:gcc-help@gcc.gnu.org 11. mailto:gcc@gcc.gnu.org ! 12. http://gcc.gnu.org/lists.html 13. http://www.fsf.org/ ! 14. http://gcc.gnu.org/about.html 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/changes.html --- 12847,12862 ---- 2. http://www.gnu.org/ 3. http://gcc.gnu.org/gcc-3.1/buildstat.html 4. http://gcc.gnu.org/gcc-3.1/changes.html ! 5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 6. http://gcc.gnu.org/index.html 7. mailto:gcc@gcc.gnu.org 8. http://gcc.gnu.org/mirrors.html ! 9. https://gcc.gnu.org/onlinedocs/ 10. mailto:gcc-help@gcc.gnu.org 11. mailto:gcc@gcc.gnu.org ! 12. https://gcc.gnu.org/lists.html 13. http://www.fsf.org/ ! 14. https://gcc.gnu.org/about.html 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/changes.html *************** Documentation improvements *** 13115,13145 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2013-10-31[19]. References ! 1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html 2. http://gcc.gnu.org/news/profiledriven.html 3. http://gcc.gnu.org/benchmarks/ 4. http://gcc.gnu.org/c99status.html ! 5. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html ! 6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html 7. http://www.adacore.com/ 8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html 9. http://www.axis.com/ 10. http://developer.axis.com/ 11. http://www.superh.com/ 12. http://www.x86-64.org/ ! 13. http://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. http://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== ! http://gcc.gnu.org/gcc-3.0/gcc-3.0.html GCC 3.0.4 February 20, 2002 --- 13194,13224 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2014-06-28[19]. References ! 1. https://gcc.gnu.org/ml/gcc/2002-07/msg01208.html 2. http://gcc.gnu.org/news/profiledriven.html 3. http://gcc.gnu.org/benchmarks/ 4. http://gcc.gnu.org/c99status.html ! 5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html ! 6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html 7. http://www.adacore.com/ 8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html 9. http://www.axis.com/ 10. http://developer.axis.com/ 11. http://www.superh.com/ 12. http://www.x86-64.org/ ! 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/lists.html 17. http://www.fsf.org/ ! 18. https://gcc.gnu.org/about.html 19. http://validator.w3.org/check/referer ====================================================================== ! http://gcc.gnu.org/gcc-3.0/index.html GCC 3.0.4 February 20, 2002 *************** Previous 3.0.x Releases *** 13192,13215 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2012-11-02[15]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-3.0/features.html 3. http://gcc.gnu.org/gcc-3.0/buildstat.html ! 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html 5. http://gcc.gnu.org/gcc-3.0/caveats.html 6. http://gcc.gnu.org/index.html 7. mailto:gcc@gcc.gnu.org 8. http://gcc.gnu.org/mirrors.html ! 9. http://gcc.gnu.org/onlinedocs/ 10. mailto:gcc-help@gcc.gnu.org 11. mailto:gcc@gcc.gnu.org ! 12. http://gcc.gnu.org/lists.html 13. http://www.fsf.org/ ! 14. http://gcc.gnu.org/about.html 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html --- 13271,13294 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2014-06-28[15]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-3.0/features.html 3. http://gcc.gnu.org/gcc-3.0/buildstat.html ! 4. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html 5. http://gcc.gnu.org/gcc-3.0/caveats.html 6. http://gcc.gnu.org/index.html 7. mailto:gcc@gcc.gnu.org 8. http://gcc.gnu.org/mirrors.html ! 9. https://gcc.gnu.org/onlinedocs/ 10. mailto:gcc-help@gcc.gnu.org 11. mailto:gcc@gcc.gnu.org ! 12. https://gcc.gnu.org/lists.html 13. http://www.fsf.org/ ! 14. https://gcc.gnu.org/about.html 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html *************** Other significant improvements *** 13383,13389 **** provided this notice is preserved. These pages are [19]maintained by the GCC team. Last modified ! 2013-12-03[20]. References --- 13462,13468 ---- provided this notice is preserved. These pages are [19]maintained by the GCC team. Last modified ! 2014-06-28[20]. References *************** References *** 13397,13411 **** 8. http://gcc.gnu.org/news/inlining.html 9. http://gcc.gnu.org/news/dependencies.html 10. http://gcc.gnu.org/c99status.html ! 11. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html 12. http://gcc.gnu.org/gcc-3.0/libgcc.html 13. http://gcc.gnu.org/gcc-2.95/features.html ! 14. http://gcc.gnu.org/onlinedocs/ 15. mailto:gcc-help@gcc.gnu.org 16. mailto:gcc@gcc.gnu.org ! 17. http://gcc.gnu.org/lists.html 18. http://www.fsf.org/ ! 19. http://gcc.gnu.org/about.html 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html --- 13476,13490 ---- 8. http://gcc.gnu.org/news/inlining.html 9. http://gcc.gnu.org/news/dependencies.html 10. http://gcc.gnu.org/c99status.html ! 11. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html 12. http://gcc.gnu.org/gcc-3.0/libgcc.html 13. http://gcc.gnu.org/gcc-2.95/features.html ! 14. https://gcc.gnu.org/onlinedocs/ 15. mailto:gcc-help@gcc.gnu.org 16. mailto:gcc@gcc.gnu.org ! 17. https://gcc.gnu.org/lists.html 18. http://www.fsf.org/ ! 19. https://gcc.gnu.org/about.html 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 13441,13447 **** earlier versions. There is a problem setting breakpoints by line number, and other related issues that have been fixed in GCC 3.0 but not yet handled in GDB: ! [1]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html For questions related to the use of GCC, please consult these web --- 13520,13526 ---- earlier versions. There is a problem setting breakpoints by line number, and other related issues that have been fixed in GCC 3.0 but not yet handled in GDB: ! [1]https://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html For questions related to the use of GCC, please consult these web *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 13455,13471 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2012-11-02[8]. References ! 1. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html ! 2. http://gcc.gnu.org/onlinedocs/ 3. mailto:gcc-help@gcc.gnu.org 4. mailto:gcc@gcc.gnu.org ! 5. http://gcc.gnu.org/lists.html 6. http://www.fsf.org/ ! 7. http://gcc.gnu.org/about.html 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/index.html --- 13534,13550 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2014-06-27[8]. References ! 1. https://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html ! 2. https://gcc.gnu.org/onlinedocs/ 3. mailto:gcc-help@gcc.gnu.org 4. mailto:gcc@gcc.gnu.org ! 5. https://gcc.gnu.org/lists.html 6. http://www.fsf.org/ ! 7. https://gcc.gnu.org/about.html 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/index.html *************** References and Acknowledgements *** 13506,13561 **** The sources include installation instructions in both HTML and plaintext forms in the install directory in the distribution. However, ! the most up to date [4]installation instructions and [5]build/test ! status are on the web pages. We will update those pages as new ! information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, test results, bugfixes, etc to GCC. This ! [6]amazing group of volunteers is what makes GCC successful. And finally, we can't in good conscience fail to mention some ! [7]caveats to using GCC 2.95. ! Download GCC 2.95 from one of our many [8]mirror sites. ! For additional information about GCC please see the [9]GCC project web ! server or contact the [10]GCC development mailing list. For questions related to the use of GCC, please consult these web ! pages and the [11]GCC manuals. If that fails, the ! [12]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [13]gcc@gcc.gnu.org. All of [14]our lists have public archives. ! Copyright (C) [15]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [16]maintained by the GCC team. Last modified ! 2012-11-02[17]. References 1. http://gcc.gnu.org/gcc-2.95/regress.html 2. http://gcc.gnu.org/gcc-2.95/othertest.html 3. http://gcc.gnu.org/gcc-2.95/features.html ! 4. http://gcc.gnu.org/install/ ! 5. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 7. http://gcc.gnu.org/gcc-2.95/caveats.html ! 8. http://gcc.gnu.org/mirrors.html ! 9. http://gcc.gnu.org/index.html ! 10. mailto:gcc@gcc.gnu.org ! 11. http://gcc.gnu.org/onlinedocs/ ! 12. mailto:gcc-help@gcc.gnu.org ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/lists.html ! 15. http://www.fsf.org/ ! 16. http://gcc.gnu.org/about.html ! 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/features.html GCC 2.95 New Features --- 13585,13639 ---- The sources include installation instructions in both HTML and plaintext forms in the install directory in the distribution. However, ! the most up to date installation instructions and [4]build/test status ! are on the web pages. We will update those pages as new information ! becomes available. The GCC developers would like to thank the numerous people that have contributed new features, test results, bugfixes, etc to GCC. This ! [5]amazing group of volunteers is what makes GCC successful. And finally, we can't in good conscience fail to mention some ! [6]caveats to using GCC 2.95. ! Download GCC 2.95 from one of our many [7]mirror sites. ! For additional information about GCC please see the [8]GCC project web ! server or contact the [9]GCC development mailing list. For questions related to the use of GCC, please consult these web ! pages and the [10]GCC manuals. If that fails, the ! [11]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [12]gcc@gcc.gnu.org. All of [13]our lists have public archives. ! Copyright (C) [14]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [15]maintained by the GCC team. Last modified ! 2014-06-28[16]. References 1. http://gcc.gnu.org/gcc-2.95/regress.html 2. http://gcc.gnu.org/gcc-2.95/othertest.html 3. http://gcc.gnu.org/gcc-2.95/features.html ! 4. http://gcc.gnu.org/gcc-2.95/buildstat.html ! 5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 6. http://gcc.gnu.org/gcc-2.95/caveats.html ! 7. http://gcc.gnu.org/mirrors.html ! 8. http://gcc.gnu.org/index.html ! 9. mailto:gcc@gcc.gnu.org ! 10. https://gcc.gnu.org/onlinedocs/ ! 11. mailto:gcc-help@gcc.gnu.org ! 12. mailto:gcc@gcc.gnu.org ! 13. https://gcc.gnu.org/lists.html ! 14. http://www.fsf.org/ ! 15. https://gcc.gnu.org/about.html ! 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/features.html GCC 2.95 New Features *************** Additional Changes in GCC 2.95.3 *** 13801,13807 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2012-11-02[23]. References --- 13879,13885 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2014-06-28[23]. References *************** References *** 13813,13819 **** 6. http://gcc.gnu.org/news/hoist.html 7. http://gcc.gnu.org/news/alias.html 8. http://gcc.gnu.org/gcc-2.95/c++features.html ! 9. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html 10. http://gcc.gnu.org/java/gcj-announce.txt 11. http://gcc.gnu.org/news/javaannounce.html 12. http://gcc.gnu.org/c99status.html --- 13891,13897 ---- 6. http://gcc.gnu.org/news/hoist.html 7. http://gcc.gnu.org/news/alias.html 8. http://gcc.gnu.org/gcc-2.95/c++features.html ! 9. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html 10. http://gcc.gnu.org/java/gcj-announce.txt 11. http://gcc.gnu.org/news/javaannounce.html 12. http://gcc.gnu.org/c99status.html *************** References *** 13821,13832 **** 14. http://gcc.gnu.org/news/sparc.html 15. http://gcc.gnu.org/news/egcs-vcg.html 16. http://gcc.gnu.org/egcs-1.0/features-2.8.html ! 17. http://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org ! 20. http://gcc.gnu.org/lists.html 21. http://www.fsf.org/ ! 22. http://gcc.gnu.org/about.html 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/caveats.html --- 13899,13910 ---- 14. http://gcc.gnu.org/news/sparc.html 15. http://gcc.gnu.org/news/egcs-vcg.html 16. http://gcc.gnu.org/egcs-1.0/features-2.8.html ! 17. https://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org ! 20. https://gcc.gnu.org/lists.html 21. http://www.fsf.org/ ! 22. https://gcc.gnu.org/about.html 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/caveats.html *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 13884,13900 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2012-11-02[8]. References 1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz ! 2. http://gcc.gnu.org/onlinedocs/ 3. mailto:gcc-help@gcc.gnu.org 4. mailto:gcc@gcc.gnu.org ! 5. http://gcc.gnu.org/lists.html 6. http://www.fsf.org/ ! 7. http://gcc.gnu.org/about.html 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/index.html --- 13962,13978 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2014-06-12[8]. References 1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz ! 2. https://gcc.gnu.org/onlinedocs/ 3. mailto:gcc-help@gcc.gnu.org 4. mailto:gcc@gcc.gnu.org ! 5. https://gcc.gnu.org/lists.html 6. http://www.fsf.org/ ! 7. https://gcc.gnu.org/about.html 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/index.html *************** http://gcc.gnu.org/egcs-1.1/index.html *** 14077,14111 **** Each release includes installation instructions in both HTML and plaintext forms (see the INSTALL directory in the toplevel directory of the distribution). However, we also keep the most up to date ! [6]installation instructions and [7]build/test status on our web page. ! We will update those pages as new information becomes available. The EGCS project would like to thank the numerous people that have ! contributed new features, test results, bugfixes, etc. This [8]amazing group of volunteers is what makes EGCS successful. And finally, we can't in good conscience fail to mention some ! [9]caveats to using EGCS 1.1. Download EGCS from egcs.cygnus.com (USA California). The EGCS 1.1 release is also available on many mirror sites. ! [10]Goto mirror list to find a closer site. For questions related to the use of GCC, please consult these web ! pages and the [11]GCC manuals. If that fails, the ! [12]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [13]gcc@gcc.gnu.org. All of [14]our lists have public archives. ! Copyright (C) [15]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [16]maintained by the GCC team. Last modified ! 2012-11-02[17]. References --- 14155,14189 ---- Each release includes installation instructions in both HTML and plaintext forms (see the INSTALL directory in the toplevel directory of the distribution). However, we also keep the most up to date ! installation instructions and [6]build/test status on our web page. We ! will update those pages as new information becomes available. The EGCS project would like to thank the numerous people that have ! contributed new features, test results, bugfixes, etc. This [7]amazing group of volunteers is what makes EGCS successful. And finally, we can't in good conscience fail to mention some ! [8]caveats to using EGCS 1.1. Download EGCS from egcs.cygnus.com (USA California). The EGCS 1.1 release is also available on many mirror sites. ! [9]Goto mirror list to find a closer site. For questions related to the use of GCC, please consult these web ! pages and the [10]GCC manuals. If that fails, the ! [11]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [12]gcc@gcc.gnu.org. All of [13]our lists have public archives. ! Copyright (C) [14]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [15]maintained by the GCC team. Last modified ! 2014-06-28[16]. References *************** References *** 14114,14131 **** 3. http://gcc.gnu.org/news/alias.html 4. http://gcc.gnu.org/egcs-1.1/c++features.html 5. http://gcc.gnu.org/egcs-1.1/features.html ! 6. http://gcc.gnu.org/install/ ! 7. http://gcc.gnu.org/egcs-1.1/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 9. http://gcc.gnu.org/egcs-1.1/caveats.html ! 10. http://gcc.gnu.org/mirrors.html ! 11. http://gcc.gnu.org/onlinedocs/ ! 12. mailto:gcc-help@gcc.gnu.org ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/lists.html ! 15. http://www.fsf.org/ ! 16. http://gcc.gnu.org/about.html ! 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html EGCS 1.1 new features --- 14192,14208 ---- 3. http://gcc.gnu.org/news/alias.html 4. http://gcc.gnu.org/egcs-1.1/c++features.html 5. http://gcc.gnu.org/egcs-1.1/features.html ! 6. http://gcc.gnu.org/egcs-1.1/buildstat.html ! 7. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 8. http://gcc.gnu.org/egcs-1.1/caveats.html ! 9. http://gcc.gnu.org/mirrors.html ! 10. https://gcc.gnu.org/onlinedocs/ ! 11. mailto:gcc-help@gcc.gnu.org ! 12. mailto:gcc@gcc.gnu.org ! 13. https://gcc.gnu.org/lists.html ! 14. http://www.fsf.org/ ! 15. https://gcc.gnu.org/about.html ! 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html EGCS 1.1 new features *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 14205,14211 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2012-11-02[11]. References --- 14282,14288 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2014-06-12[11]. References *************** References *** 14213,14224 **** 2. http://gcc.gnu.org/news/gcse.html 3. http://gcc.gnu.org/news/alias.html 4. http://gcc.gnu.org/egcs-1.0/features-2.8.html ! 5. http://gcc.gnu.org/onlinedocs/ 6. mailto:gcc-help@gcc.gnu.org 7. mailto:gcc@gcc.gnu.org ! 8. http://gcc.gnu.org/lists.html 9. http://www.fsf.org/ ! 10. http://gcc.gnu.org/about.html 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html --- 14290,14301 ---- 2. http://gcc.gnu.org/news/gcse.html 3. http://gcc.gnu.org/news/alias.html 4. http://gcc.gnu.org/egcs-1.0/features-2.8.html ! 5. https://gcc.gnu.org/onlinedocs/ 6. mailto:gcc-help@gcc.gnu.org 7. mailto:gcc@gcc.gnu.org ! 8. https://gcc.gnu.org/lists.html 9. http://www.fsf.org/ ! 10. https://gcc.gnu.org/about.html 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 14259,14274 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2012-11-02[7]. References ! 1. http://gcc.gnu.org/onlinedocs/ 2. mailto:gcc-help@gcc.gnu.org 3. mailto:gcc@gcc.gnu.org ! 4. http://gcc.gnu.org/lists.html 5. http://www.fsf.org/ ! 6. http://gcc.gnu.org/about.html 7. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/index.html --- 14336,14351 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2014-06-12[7]. References ! 1. https://gcc.gnu.org/onlinedocs/ 2. mailto:gcc-help@gcc.gnu.org 3. mailto:gcc@gcc.gnu.org ! 4. https://gcc.gnu.org/lists.html 5. http://www.fsf.org/ ! 6. https://gcc.gnu.org/about.html 7. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/index.html *************** http://gcc.gnu.org/egcs-1.0/index.html *** 14424,14433 **** The EGCS 1.0 releases include installation instructions in both HTML and plaintext forms (see the INSTALL directory in the toplevel directory of the distribution). However, we also keep the most up to ! date [2]installation instructions and [3]build/test status on our web page. We will update those pages as new information becomes available. ! And, we can't in good conscience fail to mention some [4]caveats to using EGCS. Update: Big thanks to Stanford for providing a high speed link for --- 14501,14510 ---- The EGCS 1.0 releases include installation instructions in both HTML and plaintext forms (see the INSTALL directory in the toplevel directory of the distribution). However, we also keep the most up to ! date installation instructions and [2]build/test status on our web page. We will update those pages as new information becomes available. ! And, we can't in good conscience fail to mention some [3]caveats to using EGCS. Update: Big thanks to Stanford for providing a high speed link for *************** http://gcc.gnu.org/egcs-1.0/index.html *** 14437,14443 **** (USA California -- High speed link provided by Stanford). The EGCS 1.0 release is also available many mirror sites. ! [5]Goto mirror list to find a closer site We'd like to thank the numerous people that have contributed new features, test results, bugfixes, etc. Unfortunately, they're far too --- 14514,14520 ---- (USA California -- High speed link provided by Stanford). The EGCS 1.0 release is also available many mirror sites. ! [4]Goto mirror list to find a closer site We'd like to thank the numerous people that have contributed new features, test results, bugfixes, etc. Unfortunately, they're far too *************** http://gcc.gnu.org/egcs-1.0/index.html *** 14445,14476 **** For questions related to the use of GCC, please consult these web ! pages and the [6]GCC manuals. If that fails, the ! [7]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [8]gcc@gcc.gnu.org. All of [9]our lists have public archives. ! Copyright (C) [10]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [11]maintained by the GCC team. Last modified ! 2013-12-03[12]. References 1. http://gcc.gnu.org/egcs-1.0/features.html ! 2. http://gcc.gnu.org/install/ ! 3. http://gcc.gnu.org/egcs-1.0/buildstat.html ! 4. http://gcc.gnu.org/egcs-1.0/caveats.html ! 5. http://gcc.gnu.org/mirrors.html ! 6. http://gcc.gnu.org/onlinedocs/ ! 7. mailto:gcc-help@gcc.gnu.org ! 8. mailto:gcc@gcc.gnu.org ! 9. http://gcc.gnu.org/lists.html ! 10. http://www.fsf.org/ ! 11. http://gcc.gnu.org/about.html ! 12. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/features.html EGCS 1.0 features --- 14522,14552 ---- For questions related to the use of GCC, please consult these web ! pages and the [5]GCC manuals. If that fails, the ! [6]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [7]gcc@gcc.gnu.org. All of [8]our lists have public archives. ! Copyright (C) [9]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [10]maintained by the GCC team. Last modified ! 2014-06-28[11]. References 1. http://gcc.gnu.org/egcs-1.0/features.html ! 2. http://gcc.gnu.org/egcs-1.0/buildstat.html ! 3. http://gcc.gnu.org/egcs-1.0/caveats.html ! 4. http://gcc.gnu.org/mirrors.html ! 5. https://gcc.gnu.org/onlinedocs/ ! 6. mailto:gcc-help@gcc.gnu.org ! 7. mailto:gcc@gcc.gnu.org ! 8. https://gcc.gnu.org/lists.html ! 9. http://www.fsf.org/ ! 10. https://gcc.gnu.org/about.html ! 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/features.html EGCS 1.0 features *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 14522,14539 **** provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2012-11-02[9]. References 1. http://gcc.gnu.org/egcs-1.0/features-2.8.html 2. http://gcc.gnu.org/egcs-1.0/c++features.html ! 3. http://gcc.gnu.org/onlinedocs/ 4. mailto:gcc-help@gcc.gnu.org 5. mailto:gcc@gcc.gnu.org ! 6. http://gcc.gnu.org/lists.html 7. http://www.fsf.org/ ! 8. http://gcc.gnu.org/about.html 9. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html --- 14598,14615 ---- provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2014-06-12[9]. References 1. http://gcc.gnu.org/egcs-1.0/features-2.8.html 2. http://gcc.gnu.org/egcs-1.0/c++features.html ! 3. https://gcc.gnu.org/onlinedocs/ 4. mailto:gcc-help@gcc.gnu.org 5. mailto:gcc@gcc.gnu.org ! 6. https://gcc.gnu.org/lists.html 7. http://www.fsf.org/ ! 8. https://gcc.gnu.org/about.html 9. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 14575,14589 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2012-11-02[7]. References ! 1. http://gcc.gnu.org/onlinedocs/ 2. mailto:gcc-help@gcc.gnu.org 3. mailto:gcc@gcc.gnu.org ! 4. http://gcc.gnu.org/lists.html 5. http://www.fsf.org/ ! 6. http://gcc.gnu.org/about.html 7. http://validator.w3.org/check/referer ====================================================================== --- 14651,14665 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2014-06-12[7]. References ! 1. https://gcc.gnu.org/onlinedocs/ 2. mailto:gcc-help@gcc.gnu.org 3. mailto:gcc@gcc.gnu.org ! 4. https://gcc.gnu.org/lists.html 5. http://www.fsf.org/ ! 6. https://gcc.gnu.org/about.html 7. http://validator.w3.org/check/referer ====================================================================== diff -Nrcpad gcc-4.9.0/boehm-gc/ChangeLog gcc-4.9.1/boehm-gc/ChangeLog *** gcc-4.9.0/boehm-gc/ChangeLog Tue Apr 22 09:42:06 2014 --- gcc-4.9.1/boehm-gc/ChangeLog Wed Jul 16 10:02:39 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/config/ChangeLog gcc-4.9.1/config/ChangeLog *** gcc-4.9.0/config/ChangeLog Tue Apr 22 09:40:48 2014 --- gcc-4.9.1/config/ChangeLog Wed Jul 16 10:00:56 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/contrib/ChangeLog gcc-4.9.1/contrib/ChangeLog *** gcc-4.9.0/contrib/ChangeLog Tue Apr 22 09:42:24 2014 --- gcc-4.9.1/contrib/ChangeLog Wed Jul 16 10:03:03 2014 *************** *** 1,3 **** --- 1,11 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-06-29 Richard Biener + + * gennews: Use gcc-3.0/index.html. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/contrib/gennews gcc-4.9.1/contrib/gennews *** gcc-4.9.0/contrib/gennews Tue Apr 22 08:25:33 2014 --- gcc-4.9.1/contrib/gennews Sat Jun 28 22:26:19 2014 *************** files=" *** 37,43 **** gcc-3.3/index.html gcc-3.3/changes.html gcc-3.2/index.html gcc-3.2/changes.html gcc-3.1/index.html gcc-3.1/changes.html ! gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html egcs-1.0/index.html egcs-1.0/features.html egcs-1.0/caveats.html" --- 37,43 ---- gcc-3.3/index.html gcc-3.3/changes.html gcc-3.2/index.html gcc-3.2/changes.html gcc-3.1/index.html gcc-3.1/changes.html ! gcc-3.0/index.html gcc-3.0/features.html gcc-3.0/caveats.html gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html egcs-1.0/index.html egcs-1.0/features.html egcs-1.0/caveats.html" diff -Nrcpad gcc-4.9.0/contrib/reghunt/ChangeLog gcc-4.9.1/contrib/reghunt/ChangeLog *** gcc-4.9.0/contrib/reghunt/ChangeLog Tue Apr 22 09:42:20 2014 --- gcc-4.9.1/contrib/reghunt/ChangeLog Wed Jul 16 10:02:59 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/contrib/regression/ChangeLog gcc-4.9.1/contrib/regression/ChangeLog *** gcc-4.9.0/contrib/regression/ChangeLog Tue Apr 22 09:42:27 2014 --- gcc-4.9.1/contrib/regression/ChangeLog Wed Jul 16 10:03:09 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/fixincludes/ChangeLog gcc-4.9.1/fixincludes/ChangeLog *** gcc-4.9.0/fixincludes/ChangeLog Tue Apr 22 09:40:58 2014 --- gcc-4.9.1/fixincludes/ChangeLog Wed Jul 16 10:01:07 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/BASE-VER gcc-4.9.1/gcc/BASE-VER *** gcc-4.9.0/gcc/BASE-VER Sat Mar 16 07:09:59 2013 --- gcc-4.9.1/gcc/BASE-VER Tue Apr 22 11:30:40 2014 *************** *** 1 **** ! 4.9.0 --- 1 ---- ! 4.9.1 diff -Nrcpad gcc-4.9.0/gcc/ChangeLog gcc-4.9.1/gcc/ChangeLog *** gcc-4.9.0/gcc/ChangeLog Tue Apr 22 09:42:42 2014 --- gcc-4.9.1/gcc/ChangeLog Wed Jul 16 10:03:30 2014 *************** *** 1,3 **** --- 1,1652 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-07-10 Cary Coutant + + Backport from trunk at r212211. + + * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table + lookup. + (resolve_addr_in_expr): When replacing the rtx in a location list + entry, get a new address table entry. + (dwarf2out_finish): Call index_location_lists even if there are no + addr_index_table entries yet. + + 2014-07-10 Tom G. Christensen + + * doc/install.texi: Remove links to defunct package providers for + Solaris. + + 2014-07-10 Eric Botcazou + + PR middle-end/53590 + * function.c (allocate_struct_function): Revert r188667 change. + + * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant. + + 2014-07-09 Alan Lawrence + + Backport r211369 from trunk. + 2014-06-09 Alan Lawrence + + PR target/61062 + * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8, + vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32, + vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16, vzip_s8, + vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32, vzip_f32, + vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32, vzipq_u8, + vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16, vuzp_s32, + vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16, vuzpq_s8, + vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16, vuzpq_u32, + vuzpq_p8, vuzpq_p16): Correct mask for bigendian. + + + 2014-07-09 Alan Lawrence + + Backport r210219 from trunk. + 2014-05-08 Ramana Radhakrishnan + + * config/arm/arm_neon.h: Update comment. + * config/arm/neon-docgen.ml: Delete. + * config/arm/neon-gen.ml: Delete. + * doc/arm-neon-intrinsics.texi: Update comment. + + 2014-07-09 Zhenqiang Chen + + Backport r211775 from trunk. + 2014-06-18 Terry Guo + + PR target/61544 + * config/arm/arm.c (thumb1_reorg): Move to next basic block if we + reach the head. + + 2014-07-08 Jakub Jelinek + + PR rtl-optimization/61673 + * combine.c (simplify_comparison): Test just mode's sign bit + in tmode rather than the sign bit and any bits above it. + + 2014-07-08 James Greenhalgh + + Backport r212298 from trunk. + 2014-07-04 James Greenhalgh + + * config/aarch64/aarch64-simd.md (move_lo_quad_internal_): New. + (move_lo_quad_internal_be_): Likewise. + (move_lo_quad_): Convert to define_expand. + (aarch64_simd_move_hi_quad_): Gate on BYTES_BIG_ENDIAN. + (aarch64_simd_move_hi_quad_be_): New. + (move_hi_quad_): Use appropriate insn for BYTES_BIG_ENDIAN. + (aarch64_combinez): Gate on BYTES_BIG_ENDIAN. + (aarch64_combinez_be): New. + (aarch64_combine): Convert to define_expand. + (aarch64_combine_internal): New. + (aarch64_simd_combine): Remove bogus RTL description. + + 2014-07-08 Richard Biener + + PR tree-optimization/61680 + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Handle properly all read-write dependences with group accesses. + + PR tree-optimization/61681 + * tree-ssa-structalias.c (find_what_var_points_to): Expand + NONLOCAL inside ESCAPED. + + 2014-07-08 Alan Lawrence + + Backport r211502 from mainline. + 2014-06-10 Alan Lawrence + + PR target/59843 + * config/aarch64/aarch64-modes.def: Add V1DFmode. + * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): + Support V1DFmode. + + 2014-07-08 Jakub Jelinek + + PR tree-optimization/61725 + * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned + range, use range_includes_zerop_p instead of integer_zerop on + vr0->min, only use log2 of max if min is not negative. + + 2014-07-06 Gerald Pfeifer + + * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit. + + 2014-07-04 Jakub Jelinek + + PR middle-end/61654 + * cgraphunit.c (expand_thunk): Call free_dominance_info. + + PR tree-optimization/61684 + * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure + rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it. + + 2014-06-30 Jakub Jelinek + + Backported from mainline + 2014-06-27 Jakub Jelinek + + PR tree-optimization/57233 + PR tree-optimization/61299 + * tree-vect-generic.c (get_compute_type, count_type_subparts): New + functions. + (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR + would be lowered to scalar shifts, check if corresponding + shifts and vector BIT_IOR_EXPR are supported and don't lower + or lower just to narrower vector type in that case. + * expmed.c (expand_shift_1): Fix up handling of vector + shifts and rotates. + + 2014-06-25 Jakub Jelinek + + * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define. + (LANG_HOOKS_DECLS): Add it. + * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP + has correct type. + * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define. + * langhooks.h (struct lang_hooks_for_decls): Add + omp_clause_linear_ctor hook. + * omp-low.c (lower_rec_input_clauses): Set max_vf even if + OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert + OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in + combined simd loop use omp_clause_linear_ctor hook. + + 2014-06-24 Jakub Jelinek + + * gimplify.c (gimplify_scan_omp_clauses) : Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT. + (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is + non-NULL. + (gimplify_adjust_omp_clauses): Likewise. + * omp-low.c (lower_rec_simd_input_clauses, + lower_rec_input_clauses, expand_omp_simd): Handle non-constant + safelen the same as safelen(1). + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For + OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree. + (convert_nonlocal_reference_stmt, convert_local_reference_stmt): + Fixup handling of GIMPLE_OMP_TARGET. + (convert_tramp_reference_stmt, convert_gimple_call): Handle + GIMPLE_OMP_TARGET. + + 2014-06-18 Jakub Jelinek + + * gimplify.c (omp_notice_variable): If n is non-NULL + and no flags change in ORT_TARGET region, don't jump to + do_outer. + (struct gimplify_adjust_omp_clauses_data): New type. + (gimplify_adjust_omp_clauses_1): Adjust for data being + a struct gimplify_adjust_omp_clauses_data pointer instead + of tree *. Pass pre_p as a new argument to + lang_hooks.decls.omp_finish_clause hook. + (gimplify_adjust_omp_clauses): Add pre_p argument, adjust + splay_tree_foreach to pass both list_p and pre_p. + (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for, + gimplify_omp_workshare, gimplify_omp_target_update): Adjust + gimplify_adjust_omp_clauses callers. + * langhooks.c (lhd_omp_finish_clause): New function. + * langhooks-def.h (lhd_omp_finish_clause): New prototype. + (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause. + * langhooks.h (struct lang_hooks_for_decls): Add a new + gimple_seq * argument to omp_finish_clause hook. + * omp-low.c (scan_sharing_clauses): Call scan_omp_op on + non-DECL_P OMP_CLAUSE_DECL if ctx->outer. + (scan_omp_parallel, lower_omp_for): When adding + _LOOPTEMP_ clause var, add it to outer ctx's decl_map + as identity. + * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind. + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle various OpenMP 4.0 clauses. + * tree-pretty-print.c (dump_omp_clause): Handle + OMP_CLAUSE_MAP_TO_PSET. + + 2014-06-10 Jakub Jelinek + + PR fortran/60928 + * omp-low.c (lower_rec_input_clauses) : + Set lastprivate_firstprivate even if omp_private_outer_ref + langhook returns true. + : When calling omp_clause_default_ctor + langhook, call unshare_expr on new_var and call + build_outer_var_ref to get the last argument. + + 2014-05-11 Jakub Jelinek + + * tree.h (OMP_CLAUSE_LINEAR_STMT): Define. + * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR + number of operands to 3. + (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR. + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND. + * gimplify.c (gimplify_scan_omp_clauses): Handle + OMP_CLAUSE_LINEAR_STMT. + * omp-low.c (lower_rec_input_clauses): Fix typo. + (maybe_add_implicit_barrier_cancel, lower_omp_1): Add + cast between Fortran boolean_type_node and C _Bool if + needed. + + 2014-06-30 Jason Merrill + + PR c++/51253 + PR c++/61382 + * gimplify.c (gimplify_arg): Non-static. + * gimplify.h: Declare it. + + 2014-06-30 Marcus Shawcroft + + Backport from Mainline + 2014-06-30 Marcus Shawcroft + + PR target/61633 + * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_3): + Add alternative; make early clobber. Adjust both split patterns + to use operand 0 as the working register. + + 2014-06-30 Kyrylo Tkachov + + * config/aarch64/iterators.md (VCOND): Handle SI and HI modes. + Update comments. + (VCONQ): Make comment more helpful. + (VCON): Delete. + * config/aarch64/aarch64-simd.md + (aarch64_sqdmulh_lane): + Use VCOND for operands 2. Update lane checking and flipping logic. + (aarch64_sqrdmulh_lane): Likewise. + (aarch64_sqdmulh_lane_internal): Likewise. + (aarch64_sqdmull2): Remove VCON, use VQ_HSI mode iterator. + (aarch64_sqdmll_lane_internal, VD_HSI): Change mode + attribute of operand 3 to VCOND. + (aarch64_sqdmll_lane_internal, SD_HSI): Likewise. + (aarch64_sqdmll2_lane_internal): Likewise. + (aarch64_sqdmull_lane_internal, VD_HSI): Likewise. + (aarch64_sqdmull_lane_internal, SD_HSI): Likewise. + (aarch64_sqdmull2_lane_internal): Likewise. + (aarch64_sqdmll_laneq_internal, VD_HSI: New + define_insn. + (aarch64_sqdmll_laneq_internal, SD_HSI): Likewise. + (aarch64_sqdmll2_laneq_internal): Likewise. + (aarch64_sqdmull_laneq_internal, VD_HSI): Likewise. + (aarch64_sqdmull_laneq_internal, SD_HSI): Likewise. + (aarch64_sqdmull2_laneq_internal): Likewise. + (aarch64_sqdmlal_lane): Change mode attribute of penultimate + operand to VCOND. Update lane flipping and bounds checking logic. + (aarch64_sqdmlal2_lane): Likewise. + (aarch64_sqdmlsl_lane): Likewise. + (aarch64_sqdmull_lane): Likewise. + (aarch64_sqdmull2_lane): Likewise. + (aarch64_sqdmlal_laneq): + Replace VCON usage with VCONQ. + Emit aarch64_sqdmlal_laneq_internal insn. + (aarch64_sqdmlal2_laneq): Emit + aarch64_sqdmlal2_laneq_internal insn. + Replace VCON with VCONQ. + (aarch64_sqdmlsl2_lane): Replace VCON with VCONQ. + (aarch64_sqdmlsl2_laneq): Likewise. + (aarch64_sqdmull_laneq): Emit + aarch64_sqdmull_laneq_internal insn. + Replace VCON with VCONQ. + (aarch64_sqdmull2_laneq): Emit + aarch64_sqdmull2_laneq_internal insn. + (aarch64_sqdmlsl_laneq): Replace VCON usage with VCONQ. + * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type + of 3rd argument to int16x4_t. + (vqdmlalh_lane_s16): Likewise. + (vqdmlslh_lane_s16): Likewise. + (vqdmull_high_lane_s16): Likewise. + (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t. + (vqdmlal_lane_s16): Don't create temporary int16x8_t value. + (vqdmlsl_lane_s16): Likewise. + (vqdmull_lane_s16): Don't create temporary int16x8_t value. + (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t. + (vqdmlals_lane_s32): Likewise. + (vqdmlsls_lane_s32): Likewise. + (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t. + (vqdmulls_lane_s32): Likewise. + (vqdmlal_lane_s32): Don't create temporary int32x4_t value. + (vqdmlsl_lane_s32): Likewise. + (vqdmull_lane_s32): Don't create temporary int32x4_t value. + (vqdmulhh_lane_s16): Change type of second argument to int16x4_t. + (vqrdmulhh_lane_s16): Likewise. + (vqdmlsl_high_lane_s16): Likewise. + (vqdmulhs_lane_s32): Change type of second argument to int32x2_t. + (vqdmlsl_high_lane_s32): Likewise. + (vqrdmulhs_lane_s32): Likewise. + + 2014-06-30 Thomas Preud'homme + + Backport from Mainline + 2014-06-20 Jakub Jelinek + 2014-06-11 Thomas Preud'homme + + PR tree-optimization/61306 + * tree-ssa-math-opts.c (struct symbolic_number): Store type of + expression instead of its size. + (do_shift_rotate): Adapt to change in struct symbolic_number. Return + false to prevent optimization when the result is unpredictable due to + arithmetic right shift of signed type with highest byte is set. + (verify_symbolic_number_p): Adapt to change in struct symbolic_number. + (find_bswap_1): Likewise. Return NULL to prevent optimization when the + result is unpredictable due to sign extension. + (find_bswap): Adapt to change in struct symbolic_number. + + 2014-06-27 Martin Jambor + + PR ipa/61160 + * cgraphclones.c (duplicate_thunk_for_node): Removed parameter + args_to_skip, use those from node instead. Copy args_to_skip and + combined_args_to_skip from node to the new thunk. + (redirect_edge_duplicating_thunks): Removed parameter args_to_skip. + (cgraph_create_virtual_clone): Moved computation of + combined_args_to_skip... + (cgraph_clone_node): ...here, simplify it to bitmap_ior.. + + 2014-06-27 Uros Bizjak + + Backport from mainline + 2014-06-26 Uros Bizjak + + PR target/61586 + * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX. + + 2014-06-26 Bill Schmidt + + PR target/61542 + * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element + extraction other than index 3. + + 2014-06-26 Marc Glisse + + PR target/61503 + * config/i386/i386.md (x86_64_shrd, x86_shrd, + ix86_rotr3_doubleword): Replace ashiftrt with lshiftrt. + + 2014-06-26 Martin Jambor + + Backport from mainline + * ipa-prop.c (ipa_impossible_devirt_target): No longer static, + renamed to ipa_impossible_devirt_target. Fix typo. + * ipa-prop.h (ipa_impossible_devirt_target): Declare. + * ipa-cp.c (ipa_get_indirect_edge_target_1): Use + ipa_impossible_devirt_target. + + 2014-06-24 Jakub Jelinek + + PR target/61570 + * config/i386/driver-i386.c (host_detect_local_cpu): For unknown + model family 6 CPU with has_longmode never use a CPU without + 64-bit support. + + * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator + not mentioned in clauses use private clause if the iterator is + declared in #pragma omp for simd, and when adding lastprivate + instead, add it to the outer #pragma omp for too. Diagnose + if the variable is private in outer context. For simd collapse > 1 + loops, replace all iterators with temporaries. + * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the + same even in collapse > 1 loops. + + 2014-06-23 Alan Modra + + PR bootstrap/61583 + * tree-vrp.c (remove_range_assertions): Do not set is_unreachable + to zero on debug statements. + + 2014-06-10 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane): + New expander. + (aarch64_sqrdmulh_lane): Likewise. + (aarch64_sqdmulh_lane): Rename to... + (aarch64_sqdmulh_lane_interna): ...this. + (aarch64_sqdmulh_laneq): New expander. + (aarch64_sqrdmulh_laneq): Likewise. + (aarch64_sqdmulh_laneq): Rename to... + (aarch64_sqdmulh_laneq_internal): ...this. + (aarch64_sqdmulh_lane): New expander. + (aarch64_sqrdmulh_lane): Likewise. + (aarch64_sqdmulh_lane): Rename to... + (aarch64_sqdmulh_lane_internal): ...this. + (aarch64_sqdmlal_lane): Add lane flip for big-endian. + (aarch64_sqdmlal_laneq): Likewise. + (aarch64_sqdmlsl_lane): Likewise. + (aarch64_sqdmlsl_laneq): Likewise. + (aarch64_sqdmlal2_lane): Likewise. + (aarch64_sqdmlal2_laneq): Likewise. + (aarch64_sqdmlsl2_lane): Likewise. + (aarch64_sqdmlsl2_laneq): Likewise. + (aarch64_sqdmull_lane): Likewise. + (aarch64_sqdmull_laneq): Likewise. + (aarch64_sqdmull2_lane): Likewise. + (aarch64_sqdmull2_laneq): Likewise. + + 2014-06-20 Martin Jambor + + PR ipa/61540 + * ipa-prop.c (impossible_devirt_target): New function. + (try_make_edge_direct_virtual_call): Use it, also instead of + asserting. + + 2014-06-20 Martin Jambor + + PR ipa/61211 + * cgraph.c (clone_of_p): Allow skipped_branch to deal with + expanded clones. + + 2014-06-20 Chung-Lin Tang + + Backport from mainline + + 2014-06-20 Julian Brown + Chung-Lin Tang + + * config/arm/arm.c (arm_output_mi_thunk): Fix offset for + TARGET_THUMB1_ONLY. Add comments. + + 2014-06-18 Uros Bizjak + + Backport from mainline + 2014-06-16 Uros Bizjak + + * config/i386/i386.c (decide_alg): Correctly handle + maximum size of stringop algorithm. + + 2014-06-18 Richard Henderson + + PR target/61545 + * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM. + + 2014-06-17 Yufeng Zhang + + PR target/61483 + * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local + variable 'size'; calculate 'size' right in the front; use + 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and + pcum->aapcs_stack_words. + + 2014-06-17 Nick Clifton + + * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT. + (umulhi3, mulsidi3, umulsidi3): Likewise. + + 2014-06-17 Uros Bizjak + + Backport from mainline + 2014-06-06 Uros Bizjak + + PR target/61423 + * config/i386/i386.md (*floatunssi2_i387_with_xmm): New + define_insn_and_split pattern, merged from *floatunssi2_1 + and corresponding splitters. Zero extend general register + or memory input operand to XMM temporary. Enable for + TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only. + (floatunssi2): Update expander predicate. + + 2014-06-16 Vladimir Makarov + + PR rtl-optimization/61325 + * lra-constraints.c (valid_address_p): Add forward declaration. + (simplify_operand_subreg): Check address validity before and after + alter_reg of memory subreg. + + 2014-06-18 Jakub Jelinek + + PR plugins/45078 + * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file. + + 2014-06-13 Peter Bergner + + Backport from mainline + + 2014-06-13 Peter Bergner + PR target/61415 + * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete. + (BU_MISC_2): Rename to ... + (BU_LDBL128_2): ... this. + * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define. + (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128. + * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle + RS6000_BTM_LDBL128. + (rs6000_invalid_builtin): Add long double 128-bit builtin support. + (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128. + * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand. + (unpacktf_1): Likewise. + * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation. + (__builtin_longdouble_dw1): Likewise. + * doc/sourcebuild.texi (longdouble128): Document. + + 2014-06-13 Jeff Law + + Backports from mainline: + 2014-06-13 Jeff Law + + PR rtl-optimization/61094 + PR rtl-optimization/61446 + * ree.c (combine_reaching_defs): Get the mode for the copy from + the extension insn rather than the defining insn. + + 2014-06-02 Jeff Law + + PR rtl-optimization/61094 + * ree.c (combine_reaching_defs): Do not reextend an insn if it + was marked as do_no_reextend. If a copy is needed to eliminate + an extension, then mark it as do_not_reextend. + + 2014-06-13 Martin Jambor + + PR ipa/61186 + * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to + cache_token if returning early. + + 2014-06-12 Jakub Jelinek + + PR middle-end/61486 + * gimplify.c (struct gimplify_omp_ctx): Add distribute field. + (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE + if outer combined construct is distribute. + (gimplify_omp_for): For OMP_DISTRIBUTE set + gimplify_omp_ctxp->distribute. + * omp-low.c (scan_sharing_clauses) : For + GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record + mapping into decl map. + + 2014-06-12 Jeff Law + + Backports from mainline: + + 2014-06-12 Jeff Law + + PR tree-optimization/61009 + * tree-ssa-threadedge.c (thread_through_normal_block): Correct return + value when we stop processing a block due to problematic PHIs. + + 2014-06-05 Jeff Law + + PR tree-optimization/61289 + * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and + DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES + looking for those which match LHS. All callers changed. + (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP + parameters and code which manipulated them. All callers changed. + (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP + and DST_MAP parameters. Simplify invalidation code by just calling + invalidate_equivalences. All callers changed. + (thread_across_edge): Simplify now that we don't need to maintain + the map of equivalences to invalidate. + + 2014-06-12 Eric Botcazou + + * tree-core.h (DECL_NONALIASED): Use proper spelling in comment. + + 2014-06-12 Georg-Johann Lay + + Backport from 2014-05-14 trunk r210418 + * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for + shifted values to avoid build warning. + + 2014-06-12 Georg-Johann Lay + + Backport from 2014-05-09 trunk r210272 + + * config/avr/avr-fixed.md (round3): Use -1U instead of -1 in + unsigned int initializers for regno_in, regno_out. + + Backport from 2014-06-12 trunk r211491 + + PR target/61443 + * config/avr/avr.md (push1): Avoid (subreg(mem)) when + loading from address spaces. + + 2014-06-12 Alan Modra + + PR target/61300 + * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document. + * doc/tm.texi: Regenerate. + * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default. + Use throughout in place of REG_PARM_STACK_SPACE. + * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add + "incoming" param. Pass to rs6000_function_parms_need_stack. + (rs6000_function_parms_need_stack): Add "incoming" param, ignore + prototype_p when incoming. Use function decl when incoming + to handle K&R style functions. + * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust. + (INCOMING_REG_PARM_STACK_SPACE): Define. + + 2014-06-11 Richard Biener + + PR tree-optimization/61452 + * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of + expr and has_constants in case we found a leader. + (simplify_binary_expression): Always valueize operands first. + (simplify_unary_expression): Likewise. + + 2014-06-11 Richard Biener + + PR middle-end/61456 + * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): + Do not use the main variant for the type comparison. + + 2014-06-10 Kyrylo Tkachov + + * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are + available. + Simplify description of __crc32d and __crc32cd intrinsics. + * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32 + availability. + + 2014-06-07 Eric Botcazou + + * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a + call statement, if any. + (gimple_equal_p) : Compare the static chain of the call + statements, if any. Tidy up. + + 2014-06-06 Michael Meissner + + Back port from trunk + 2014-06-06 Michael Meissner + + PR target/61431 + * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate + iterators, VSX_D that handles 64-bit types, and VSX_LE that + handles swapping the two 64-bit double words on little endian + systems. Include V1TImode and optionally TImode in VSX_LE so that + these types are properly swapped. Change all of the insns and + splits that do the 64-bit swaps to use VSX_LE. + (vsx_le_perm_load_): Likewise. + (vsx_le_perm_store_): Likewise. + (splitters for little endian memory operations): Likewise. + (vsx_xxpermdi2_le_): Likewise. + (vsx_lxvd2x2_le_): Likewise. + (vsx_stxvd2x2_le_): Likewise. + + 2014-06-06 Vladimir Makarov + + PR rtl-optimization/61325 + * lra-constraints.c (process_address_1): Check scale equal to one + to prevent transformation: base + scale * index => base + new_reg. + + 2014-06-05 Martin Jambor + + PR ipa/61393 + * ipa-cp.c (determine_versionability): Pretend that tm_clones are + not versionable. + + 2014-06-04 Richard Biener + + PR tree-optimization/61383 + * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure + stmts can't trap. + + 2014-06-02 Jason Merrill + + PR c++/61020 + * varpool.c (ctor_for_folding): Handle uninitialized vtables. + + 2014-06-03 Martin Jambor + + PR ipa/61160 + * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to + thunks. + + 2014-06-03 Andrey Belevantsev + + Backport from mainline + 2014-05-14 Andrey Belevantsev + + PR rtl-optimization/60866 + * sel-sched-ir (sel_init_new_insn): New parameter old_seqno. + Default it to -1. Pass it down to init_simplejump_data. + (init_simplejump_data): New parameter old_seqno. Pass it down + to get_seqno_for_a_jump. + (get_seqno_for_a_jump): New parameter old_seqno. Use it for + initializing new jump seqno as a last resort. Add comment. + (sel_redirect_edge_and_branch): Save old seqno of the conditional + jump and pass it down to sel_init_new_insn. + (sel_redirect_edge_and_branch_force): Likewise. + + 2014-06-03 Andrey Belevantsev + + Backport from mainline + 2014-05-14 Andrey Belevantsev + + PR rtl-optimization/60901 + * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that + bb predecessor belongs to the same scheduling region. Adjust comment. + + 2014-06-03 Uros Bizjak + + Backport from mainline + 2014-06-02 Uros Bizjak + + PR target/61239 + * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use + GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant. + + 2014-05-29 Vladimir Makarov + + PR rtl-optimization/61325 + * lra-constraints.c (process_address): Rename to + process_address_1. + (process_address): New function. + + 2014-05-29 Uros Bizjak + + Backport from mainline + 2014-05-26 Uros Bizjak + + PR target/61271 + * config/i386/i386.c (ix86_rtx_costs) + : + Fix condition. + + 2014-05-28 Eric Botcazou + + Backport from mainline + 2014-05-27 Eric Botcazou + + * double-int.c (div_and_round_double) : Use the proper + predicate to detect a negative quotient. + + 2014-05-28 Richard Biener + + Backport from mainline + 2014-05-28 Richard Biener + + PR middle-end/61045 + * fold-const.c (fold_comparison): When folding + X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure + the sign of the remaining constant operand stays the same. + + 2014-05-05 Richard Biener + + PR middle-end/61010 + * fold-const.c (fold_binary_loc): Consistently avoid + canonicalizing X & CST away from a CST that is the mask + of a mode. + + 2014-04-28 Richard Biener + + PR tree-optimization/60979 + * graphite-scop-detection.c (scopdet_basic_block_info): Reject + SCOPs that end in a block with a successor with abnormal + predecessors. + + 2014-05-28 Rainer Orth + + * configure.ac ($gcc_cv_ld_clearcap): New test. + * configure: Regenerate. + * config.in: Regenerate. + * config/sol2.opt (mclear-hwcap): New option. + * config/sol2.h (LINK_CLEARCAP_SPEC): Define. + * config/sol2-clearcap.map: Moved here from + testsuite/gcc.target/i386/clearcap.map. + * config/sol2-clearcapv2.map: Move here from + gcc.target/i386/clearcapv2.map. + * config/t-sol2 (install): Depend on install-clearcap-map. + (install-clearcap-map): New target. + * doc/invoke.texi (Option Summary, Solaris 2 Options): Document + -mclear-hwcap. + + 2014-05-28 Georg-Johann Lay + + PR libgcc/61152 + * config/dbx.h (License): Add Runtime Library Exception. + * config/newlib-stdint.h (License): Same. + * config/rtems.h (License): Same + * config/initfini-array.h (License): Same + * config/v850/v850.h (License): Same. + * config/v850/v850-opts.h (License): Same + * config/v850/rtems.h (License): Same. + + 2014-05-28 Georg-Johann Lay + + PR target/61044 + * doc/extend.texi (Local Labels): Note that label differences are + not supported for AVR. + + 2014-05-27 Georg-Johann Lay + + Backport from 2014-05-12 mainline r210322. + Backport from 2014-05-27 mainline r210959, r210969. + + PR libgcc/61152 + * config/arm/arm.h (License): Add GCC Runtime Library Exception. + * config/arm/arm-cores.def (License): Same. + * config/arm/arm-opts.h (License): Same. + * config/arm/aout.h (License): Same. + * config/arm/bpabi.h (License): Same. + * config/arm/elf.h (License): Same. + * config/arm/linux-elf.h (License): Same. + * config/arm/linux-gas.h (License): Same. + * config/arm/netbsd-elf.h (License): Same. + * config/arm/uclinux-eabi.h (License): Same. + * config/arm/uclinux-elf.h (License): Same. + * config/arm/vxworks.h (License): Same. + + 2014-05-26 Michael Tautschnig + + PR target/61249 + * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of + __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256. + + 2014-05-22 Vladimir Makarov + + PR rtl-optimization/61215 + * lra-elelimination.c (lra_eliminate_regs_1): Don't use + simplify_gen_subreg until final substitution. + + 2014-05-23 Alan Modra + + PR target/61231 + * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode. + * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell): + Use "Y" constraint rather than "m". + + 2014-05-22 Vladimir Makarov + + PR rtl-optimization/60969 + * ira-costs.c (record_reg_classes): Process NO_REGS for matching + constraints. Set up mem cost for NO_REGS case. + + 2014-05-22 Peter Bergner + + * config/rs6000/htm.md (ttest): Use correct shift value to get CR0. + + 2014-05-22 Richard Earnshaw + + PR target/61208 + * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2. + + 2014-05-22 Nick Clifton + + * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options. + + 2014-05-22 Jakub Jelinek + + * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure + all padding bits in REAL_VALUE_TYPE are cleared. + + 2014-05-21 Guozhi Wei + + PR target/61202 + * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's + constraint. + (vqdmulhq_n_s16): Likewise. + + 2014-05-21 Martin Jambor + + * doc/invoke.texi (Optimize Options): Document parameters + ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and + ipa-cp-array-index-hint-bonus. + + 2014-05-21 Jakub Jelinek + + PR middle-end/61252 + * omp-low.c (handle_simd_reference): New function. + (lower_rec_input_clauses): Use it. Defer adding reference + initialization even for reduction without placeholder if in simd, + handle it properly later on. + + 2014-05-20 Jan Hubicka + + PR bootstrap/60984 + * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED + parameter. + * ipa-inline.c (inline_to_all_callers): If callee was removed; return. + (ipa_inline): Loop inline_to_all_callers until no more aliases + are removed. + + 2014-05-20 Jan Hubicka + + PR lto/60820 + * varpool.c (varpool_remove_node): Do not alter decls when streaming. + + 2014-05-20 DJ Delorie + + * config/msp430/msp430.md (split): Don't allow subregs when + splitting SImode adds. + (andneghi): Fix subtraction logic. + * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New. + + 2014-05-20 Nick Clifton + + * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + (msp430_gimplify_va_arg_expr): New function. + (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)). + + * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on + operand 0 in order to prevent confusion about the number of + registers involved. + + 2014-05-20 Kyrylo Tkachov + + * config/arm/arm.md (arith_shiftsi): Do not predicate for + arm_restrict_it. + + 2014-05-19 Richard Earnshaw + + * arm.c (thumb1_reorg): When scanning backwards skip anything + that's not a proper insn. + + 2014-05-17 Jan Hubicka + + * ipa.c (symtab_remove_unreachable_nodes): Remove + symbol from comdat group if its body was eliminated. + (comdat_can_be_unshared_p_1): Static symbols can always be privatized. + * symtab.c (symtab_remove_from_same_comdat_group): Break out from ... + (symtab_unregister_node): ... this one. + (verify_symtab_base): More strict checking of comdats. + * cgraph.h (symtab_remove_from_same_comdat_group): Declare. + + 2014-05-17 Jan Hubicka + + * opts.c (common_handle_option): Disable -fipa-reference coorectly + with -fuse-profile. + + 2014-05-17 Jan Hubicka + + PR ipa/60854 + * ipa.c (symtab_remove_unreachable_nodes): Mark targets of + external aliases alive, too. + + 2014-05-17 Uros Bizjak + + * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os. + + 2014-05-17 Uros Bizjak + + Backport from mainline + 2014-04-25 H.J. Lu + + PR target/60969 + * config/i386/i386.md (*movsf_internal): Set MODE to SI for + alternative 12. + + 2014-05-16 Vladimir Makarov + + PR rtl-optimization/60969 + * ira-costs.c (record_reg_classes): Allow only memory for pseudo. + Calculate costs for this case. + + 2014-05-15 Peter Bergner + + PR target/61193 + * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define. + (__TM_simple_begin): Use it. + (__TM_begin): Likewise. + + 2014-05-15 Martin Jambor + + PR ipa/61085 + * ipa-prop.c (update_indirect_edges_after_inlining): Check + type_preserved flag when the indirect edge is polymorphic. + + 2014-05-15 Martin Jambor + + PR ipa/60897 + * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC. + + 2014-05-15 Jakub Jelinek + + PR tree-optimization/61158 + * fold-const.c (fold_binary_loc): If X is zero-extended and + shiftc >= prec, make sure zerobits is all ones instead of + invoking undefined behavior. + + 2014-05-14 Cary Coutant + + PR debug/61013 + * opts.c (common_handle_option): Don't special-case "-g". + (set_debug_level): Default to at least level 2 with "-g". + + 2014-05-14 Eric Botcazou + + * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate): + Delete. + * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise. + * config/sparc/sparc.md (fptype_ut699): New attribute. + (in_branch_delay): Return false if -mfix-ut699 is specified and + fptype_ut699 is set to single. + (truncdfsf2): Add fptype_ut699 attribute. + (fix_truncdfsi2): Likewise. + (floatsisf2): Change fptype attribute. + (fix_truncsfsi2): Likewise. + (negtf2_notv9): Delete. + (negtf2_v9): Likewise. + (negtf2_hq): New instruction. + (negtf2): New instruction and splitter. + (negdf2_notv9): Rewrite. + (abstf2_notv9): Delete. + (abstf2_hq_v9): Likewise. + (abstf2_v9): Likewise. + (abstf2_hq): New instruction. + (abstf2): New instruction and splitter. + (absdf2_notv9): Rewrite. + + 2014-05-14 Matthias Klose + + Revert: + 2014-05-08 Manuel López-Ibáñez + Matthias Klose + + PR driver/61106 + * optc-gen.awk: Fix option handling for -Wunused-parameter. + + 2014-05-13 Peter Bergner + + * doc/sourcebuild.texi: (dfp_hw): Document. + (p8vector_hw): Likewise. + (powerpc_eabi_ok): Likewise. + (powerpc_elfv2): Likewise. + (powerpc_htm_ok): Likewise. + (ppc_recip_hw): Likewise. + (vsx_hw): Likewise. + + 2014-05-13 Jeff Law + + Backports fromm mainline: + + 2014-05-08 Jeff Law + + PR tree-optimization/61009 + * tree-ssa-threadedge.c (thread_through_normal_block): Return a + tri-state rather than a boolean. When a block is too big to + thread through, inform caller via negative return value. + (thread_across_edge): If a block was too big for normal threading, + then it's too big for a joiner too, so remove temporary equivalences + and return immediately. + + 2014-04-28 Jeff Law + + PR tree-optimization/60902 + * tree-ssa-threadedge.c + (record_temporary_equivalences_from_stmts_at_dest): Only iterate + over real defs when invalidating outputs from statements that do not + produce useful outputs for threading. + + 2014-04-23 Jeff Law + + PR tree-optimization/60902 + * tree-ssa-threadedge.c + (record_temporary_equivalences_from_stmts_at_dest): Make sure to + invalidate outputs from statements that do not produce useful + outputs for threading. + + 2014-05-13 Richard Biener + + PR ipa/60973 + * tree-inline.c (remap_gimple_stmt): Clear tail call flag, + it needs revisiting whether the call still may be tail-called. + + 2014-05-13 Jakub Jelinek + + PR target/61060 + * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp + is const0_rtx, return immediately. Don't test count == 0 when + it is always true. + + 2014-05-12 Senthil Kumar Selvaraj + + Backport from mainline + 2014-05-12 Senthil Kumar Selvaraj + + PR target/60991 + * config/avr/avr.c (avr_out_store_psi): Use correct constant + to restore Y. + + 2014-05-09 Uros Bizjak + + Backport from mainline + 2014-05-08 Uros Bizjak + + PR target/61092 + * config/alpha/alpha.c: Include gimple-iterator.h. + (alpha_gimple_fold_builtin): New function. Move + ALPHA_BUILTIN_UMULH folding from ... + (alpha_fold_builtin): ... here. + (TARGET_GIMPLE_FOLD_BUILTIN): New define. + + 2014-05-09 Pitchumani Sivanupandi + + Backport from 2014-04-16 trunk r209446 + 2014-04-16 Pitchumani Sivanupandi + + * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro. + + 2014-05-09 Georg-Johann Lay + + Backport from 2014-05-09 trunk r210267 + + PR target/61055 + * config/avr/avr.md (cc): Add new attribute set_vzn. + (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]: + Set cc insn attribute to set_vzn instead of set_zn for alternatives + with INC, DEC or NEG. + * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN. + (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN. + INC, DEC and ADD+ADC set cc0 to CC_CLOBBER. + + 2014-05-08 Manuel López-Ibáñez + Matthias Klose + + PR driver/61106 + * optc-gen.awk: Fix option handling for -Wunused-parameter. + + 2014-05-08 Uros Bizjak + + PR target/59952 + * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM. + + 2014-05-05 Marek Polacek + + Back port from mainline + 2014-05-05 Marek Polacek + + PR driver/61065 + * opts.c (common_handle_option): Call error_at instead of warning_at. + + 2014-05-04 Jan Hubicka + + PR ipa/60965 + * ipa-devirt.c (get_class_context): Allow POD to change to non-POD. + + 2014-05-04 Peter Bergner + + * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define. + (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT. + (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT. + * config/rs6000/rs6000-builtin.def (BU_MISC_1): + Use RS6000_BTM_HARD_FLOAT. + (BU_MISC_2): Likewise. + * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle + RS6000_BTM_HARD_FLOAT. + (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp + is explicitly used. + (rs6000_invalid_builtin): Add hard floating builtin support. + (rs6000_expand_builtin): Relax the gcc_assert to allow the new + hard float builtins. + (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT. + + 2014-05-03 Joey Ye + + Backport from mainline r209463 + 2014-04-17 Joey Ye + + * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og. + + 2014-05-03 Oleg Endo + + Back port from mainline + PR target/61026 + * config/sh/sh.c: Include stdlib headers before everything else. + + 2014-05-02 Bill Schmidt + + PR tree-optimization/60930 + * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject + creating a multiply candidate by folding two constant + multiplicands when the result overflows. + + 2014-05-02 Jakub Jelinek + + * gimplify.c (gimplify_adjust_omp_clauses_1): Handle + GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE. + (gimplify_adjust_omp_clauses): Simd region is never + directly nested in combined parallel. Instead, for linear + with copyin/copyout, if in combined for simd loop, make decl + firstprivate/lastprivate on OMP_FOR. + * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk, + expand_omp_for_static_chunk): When setting endvar, also set + fd->loop.v to the same value. + + 2014-05-02 Kyrylo Tkachov + + Back port from mainline + 2014-04-24 Kyrylo Tkachov + + * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check + TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY. + (TARGET_SIMD): Take AARCH64_ISA_SIMD into account. + (TARGET_FLOAT): Take AARCH64_ISA_FP into account. + (TARGET_CRYPTO): Take TARGET_SIMD into account. + + 2014-04-30 Michael Meissner + + Back port from mainline + 2014-04-24 Michael Meissner + + * doc/extend.texi (PowerPC Built-in Functions): Document new + powerpc extended divide, bcd, pack/unpack 128-bit, builtin + functions. + (PowerPC AltiVec/VSX Built-in Functions): Likewise. + + * config/rs6000/predicates.md (const_0_to_3_operand): New + predicate to match 0..3 integer constants. + + * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros + to support adding miscellaneous builtin functions. + (BU_DFP_MISC_2): Likewise. + (BU_P7_MISC_1): Likewise. + (BU_P7_MISC_2): Likewise. + (BU_P8V_MISC_3): Likewise. + (BU_MISC_1): Likewise. + (BU_MISC_2): Likewise. + (DIVWE): Add extended divide builtin functions. + (DIVWEO): Likewise. + (DIVWEU): Likewise. + (DIVWEUO): Likewise. + (DIVDE): Likewise. + (DIVDEO): Likewise. + (DIVDEU): Likewise. + (DIVDEUO): Likewise. + (DXEX): Add decimal floating-point builtin functions. + (DXEXQ): Likewise. + (DDEDPD): Likewise. + (DDEDPDQ): Likewise. + (DENBCD): Likewise. + (DENBCDQ): Likewise. + (DIEX): Likewise. + (DIEXQ): Likewise. + (DSCLI): Likewise. + (DSCLIQ): Likewise. + (DSCRI): Likewise. + (DSCRIQ): Likewise. + (CDTBCD): Add new BCD builtin functions. + (CBCDTD): Likewise. + (ADDG6S): Likewise. + (BCDADD): Likewise. + (BCDADD_LT): Likewise. + (BCDADD_EQ): Likewise. + (BCDADD_GT): Likewise. + (BCDADD_OV): Likewise. + (BCDSUB): Likewise. + (BCDSUB_LT): Likewise. + (BCDSUB_EQ): Likewise. + (BCDSUB_GT): Likewise. + (BCDSUB_OV): Likewise. + (PACK_TD): Add new pack/unpack 128-bit type builtin functions. + (UNPACK_TD): Likewise. + (PACK_TF): Likewise. + (UNPACK_TF): Likewise. + (UNPACK_TF_0): Likewise. + (UNPACK_TF_1): Likewise. + (PACK_V1TI): Likewise. + (UNPACK_V1TI): Likewise. + + * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add + support for decimal floating point builtin functions. + (rs6000_expand_ternop_builtin): Add checks for the new builtin + functions that take constant arguments. + (rs6000_invalid_builtin): Add decimal floating point builtin + support. + (rs6000_init_builtins): Setup long double, _Decimal64, and + _Decimal128 types for new builtin functions. + (builtin_function_type): Set the unsigned flags appropriately for + the new builtin functions. + (rs6000_opt_masks): Add support for decimal floating point builtin + functions. + + * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal + floating point builtin functions. + (RS6000_BTM_COMMON): Likewise. + (RS6000_BTI_long_double): Likewise. + (RS6000_BTI_dfloat64): Likewise. + (RS6000_BTI_dfloat128): Likewise. + (long_double_type_internal_node): Likewise. + (dfloat64_type_internal_node): Likewise. + (dfloat128_type_internal_node): Likewise. + + * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA + 2.07 bcd arithmetic instructions. + (UNSPEC_BCDSUB): Likewise. + (UNSPEC_BCD_OVERFLOW): Likewise. + (UNSPEC_BCD_ADD_SUB): Likewise. + (bcd_add_sub): Likewise. + (BCD_TEST): Likewise. + (bcd): Likewise. + (bcd_test): Likewise. + (bcd_test2): Likewise. + (bcd_): Likewise. + (peephole2 for combined bcd ops): Likewise. + + * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new + decimal floating point builtin functions. + (UNSPEC_DENBCD): Likewise. + (UNSPEC_DXEX): Likewise. + (UNSPEC_DIEX): Likewise. + (UNSPEC_DSCLI): Likewise. + (UNSPEC_DSCRI): Likewise. + (D64_D128): Likewise. + (dfp_suffix): Likewise. + (dfp_ddedpd_): Likewise. + (dfp_denbcd_): Likewise. + (dfp_dxex_): Likewise. + (dfp_diex_): Likewise. + (dfp_dscli_): Likewise. + (dfp_dscri_): Likewise. + + * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD + builtin functions. + (UNSPEC_CDTBCD): Likewise. + (UNSPEC_CBCDTD): Likewise. + (UNSPEC_DIVE): Add support for new extended divide builtin + functions. + (UNSPEC_DIVEO): Likewise. + (UNSPEC_DIVEU): Likewise. + (UNSPEC_DIVEUO): Likewise. + (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to + pack/unpack 128-bit types. + (UNSPEC_PACK_128BIT): Likewise. + (idiv_ldiv): New mode attribute to set the 32/64-bit divide type. + (udiv3): Use idiv_ldiv mode attribute. + (div3): Likewise. + (addg6s): Add new BCD builtin functions. + (cdtbcd): Likewise. + (cbcdtd): Likewise. + (UNSPEC_DIV_EXTEND): Add support for new extended divide + instructions. + (div_extend): Likewise. + (div_"): Likewise. + (FP128_64): Add support for new builtin functions to pack/unpack + 128-bit types. + (unpack): Likewise. + (unpacktf_0): Likewise. + (unpacktf_1): Likewise. + (unpack_dm): Likewise. + (unpack_nodm): Likewise. + (pack): Likewise. + (unpackv1ti): Likewise. + (packv1ti): Likewise. + + 2014-04-29 Pat Haugen + + Backport from mainline + 2014-04-17 Pat Haugen + + * config/rs6000/rs6000.md (addti3, subti3): New. + + 2014-04-29 Jakub Jelinek + + PR tree-optimization/60971 + * tree-tailcall.c (process_assignment): Reject conversions which + reduce precision. + + 2014-04-29 Nick Clifton + + * config/msp430/msp430.md (umulsidi): Fix typo. + (mulhisi3): Enable even inside interrupt handlers. + * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the + bigger return address pushed in large mode. + + 2014-04-28 Pat Haugen + + * config/rs6000/sync.md (AINT mode_iterator): Move definition. + (loadsync_): Change mode. + (load_quadpti, store_quadpti): New. + (atomic_load, atomic_store): Add support for TI mode. + * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. + + 2014-04-28 Eric Botcazou + + * configure.ac: Tweak GAS check for LEON instructions on SPARC. + * configure: Regenerate. + * config/sparc/sparc.opt (muser-mode): New option. + * config/sparc/sync.md (atomic_compare_and_swap_1): Do not enable + for LEON3. + (atomic_compare_and_swap_leon3_1): New instruction for LEON3. + * doc/invoke.texi (SPARC options): Document -muser-mode. + + 2014-04-26 Markus Trippelsdorf + + * doc/install.texi (Building with profile feedback): Remove + outdated sentence. + + 2014-04-26 Tom de Vries + + * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds + array accesses. + + 2014-04-25 Jakub Jelinek + + PR tree-optimization/60960 + * tree-vect-generic.c (expand_vector_operation): Only call + expand_vector_divmod if type's mode satisfies VECTOR_MODE_P. + + 2014-04-25 Eric Botcazou + + PR target/60941 + * config/sparc/sparc.md (ashlsi3_extend): Delete. + + 2014-04-25 Richard Biener + + PR ipa/60912 + * tree-ssa-structalias.c (ipa_pta_execute): Compute direct + call stmt use/clobber sets during stmt walk instead of + walking the possibly incomplete set of caller edges. + + 2014-04-25 Richard Biener + + PR ipa/60911 + * passes.c (apply_ipa_transforms): Inline into only caller ... + (execute_one_pass): ... here. Properly bring in function + bodies for nodes we want to apply IPA transforms to. + + 2014-04-24 Jakub Jelinek + + * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define. + * gimplify.c (omp_is_private): Change last argument's type to int. + Only diagnose lastprivate if the simd argument is 1, only diagnose + linear if the simd argument is 2. + (gimplify_omp_for): Adjust omp_is_private callers. When adding + lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass + GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1 + create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var. + If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl + increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ. + * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle + OMP_CLAUSE_LINEAR_GIMPLE_SEQ. + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR. + + 2014-04-23 Uros Bizjak + + Backport from mainline + 2014-04-21 Uros Bizjak + + PR target/60909 + * config/i386/i386.c (ix86_expand_builtin) + : Use temporary + register for target RTX. + : Ditto. + + 2014-04-23 Richard Biener + + PR tree-optimization/60903 + * tree-ssa-loop-im.c (analyze_memory_references): Remove + commented code block. + (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP + loop flags to newly created BBs and edges. + + 2014-04-23 Nick Clifton + + * config/msp430/msp430.c (msp430_handle_option): Move function + to msp430-common.c + (msp430_option_override): Simplify mcu and mcpu option handling. + (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add + support for -mhwmult command line option. + (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for + -mhwmult command line option. + (msp430_hwmult_enabled): Delete. + (msp43o_output_labelref): Add support for -mhwmult command line + option. + * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3) + (umulsidi3): Likewise. + * config/msp430/msp430.opt (mmcu): Add Report attribute. + (mcpu, mlarge, msmall): Likewise. + (mhwmult): New option. + * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove + prototype. + (msp430_is_f5_mcu): Remove prototype. + (msp430_use_f5_series_hwmult): Add prototype. + * config/msp430/msp430-opts.h: New file. + * common/config/msp430: New directory. + * common/config/msp430/msp430-common.c: New file. + * config.gcc (msp430): Remove target_has_targetm_common. + * doc/invoke.texi: Document -mhwmult command line option. + + 2014-04-23 Nick Clifton + + * config/i386/cygwin.h (ENDFILE_SPEC): Include + default-manifest.o if it can be found in the search path. + * config/i386/mingw32.h (ENDFILE_SPEC): Likewise. + + 2014-04-23 Richard Biener + + Backport from mainline + 2014-04-14 Richard Biener + + PR lto/60720 + * lto-streamer-out.c (wrap_refs): New function. + (lto_output): Wrap symbol references in global initializes in + type-preserving MEM_REFs. + + 2014-04-23 Richard Biener + + PR middle-end/60895 + * tree-inline.c (declare_return_variable): Use mark_addressable. + + 2014-04-23 Richard Biener + + PR middle-end/60891 + * loop-init.c (loop_optimizer_init): Make sure to apply + LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops. + + 2014-04-22 Michael Meissner + + Backport from mainline + 2014-04-21 Michael Meissner + + PR target/60735 + * config/rs6000/rs6000.md (mov_softfloat32, FMOVE64 case): + If mode is DDmode and TARGET_E500_DOUBLE allow move. + + * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some + more debug information for E500 if -mdebug=reg. + + 2014-04-22 H.J. Lu + + Backport from mainline + 2014-04-22 H.J. Lu + + PR target/60868 + * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode + on count_exp to get mode. + + 2014-04-22 Bill Schmidt + + * config/rs6000/vsx.md (vsx_xxmrghw_): Adjust for + little-endian. + (vsx_xxmrglw_): Likewise. + + 2014-04-22 Richard Biener + + Backport from mainline + 2014-04-14 Richard Biener + + PR middle-end/55022 + * fold-const.c (negate_expr_p): Don't negate directional rounding + division. + (fold_negate_expr): Likewise. + + 2014-04-22 Richard Biener + + Backport from mainline + 2014-04-17 Richard Biener + + PR middle-end/60849 + * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective + boolean results for comparisons. + + 2014-04-22 Richard Biener + + Backport from mainline + 2014-04-17 Richard Biener + + PR tree-optimization/60841 + * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts. + * tree-vect-loop.c (vect_analyze_loop_2): Pass down number + of stmts to SLP build. + * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise. + (vect_analyze_slp): Likewise. + (vect_analyze_slp_instance): Likewise. + (vect_build_slp_tree): Limit overall SLP tree growth. + * tree-vectorizer.h (vect_analyze_data_refs, + vect_analyze_slp): Adjust prototypes. + + 2014-04-22 Richard Biener + + Backport from mainline + 2014-04-17 Richard Biener + + PR tree-optimization/60836 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Force + initial PHI args to be gimple values. + + 2014-04-22 Richard Biener + + Backport from mainline + 2014-04-14 Richard Biener + + PR tree-optimization/59817 + PR tree-optimization/60453 + * graphite-scop-detection.c (graphite_can_represent_scev): Complete + recursion to catch all CHRECs in the scalar evolution and restrict + the predicate for the remains appropriately. + + 2014-04-22 Jakub Jelinek + + PR tree-optimization/60823 + * omp-low.c (ipa_simd_modify_function_body): Go through + all SSA_NAMEs and for those refering to vector arguments + which are going to be replaced adjust SSA_NAME_VAR and, + if it is a default definition, change it into a non-default + definition assigned at the beginning of function from new_decl. + (ipa_simd_modify_stmt_ops): Rewritten. + * tree-dfa.c (set_ssa_default_def): When removing default def, + check for NULL loc instead of NULL *loc. + + 2014-04-22 Lin Zuojian + + PR middle-end/60281 + * asan.c (asan_emit_stack_protection): Force the base to align to + appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to + appropriate bits if STRICT_ALIGNMENT. + * cfgexpand.c (expand_stack_vars): Set base_align appropriately + when asan is on. + (expand_used_vars): Leave a space in the stack frame for alignment + if STRICT_ALIGNMENT. + + 2014-04-22 Jakub Jelinek + + Backported from mainline + 2014-04-16 Jakub Jelinek + + PR tree-optimization/60844 + * tree-ssa-reassoc.c (reassoc_remove_stmt): New function. + (propagate_op_to_single_use, remove_visited_stmt_chain, + linearize_expr, repropagate_negates, reassociate_bb): Use it + instead of gsi_remove. + + 2014-04-22 Jakub Jelinek + + * BASE-VER: Set to 4.9.1. + * DEV-PHASE: Set to prerelease. + 2014-04-22 Release Manager * GCC 4.9.0 released. *************** *** 59,66 **** 2014-04-11 Tobias Burnus PR other/59055 ! * doc/bugreport.texi (Bugs): Remove nodes pointing to the ! nirvana. * doc/gcc.texi (Service): Update description in the @menu * doc/invoke.texi (Option Summary): Remove misplaced and duplicated @menu. --- 1708,1714 ---- 2014-04-11 Tobias Burnus PR other/59055 ! * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana. * doc/gcc.texi (Service): Update description in the @menu * doc/invoke.texi (Option Summary): Remove misplaced and duplicated @menu. *************** *** 86,100 **** 2014-04-11 Jakub Jelinek PR rtl-optimization/60663 ! * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in ! PARALLEL. 2014-04-10 Jan Hubicka Jakub Jelinek PR lto/60567 ! * ipa.c (function_and_variable_visibility): Copy forced_by_abi flag from ! decl_node to node. 2014-04-10 Ramana Radhakrishnan --- 1734,1747 ---- 2014-04-11 Jakub Jelinek PR rtl-optimization/60663 ! * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL. 2014-04-10 Jan Hubicka Jakub Jelinek PR lto/60567 ! * ipa.c (function_and_variable_visibility): Copy forced_by_abi ! flag from decl_node to node. 2014-04-10 Ramana Radhakrishnan *************** *** 212,220 **** 2014-04-05 Pitchumani Sivanupandi ! * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have device ! specific ISA/ feature information. Remove short_sp and errata_skip ds. ! Add avr_device_specific_features enum to have device specific info. * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available. * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for --- 1859,1868 ---- 2014-04-05 Pitchumani Sivanupandi ! * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have ! device specific ISA/ feature information. Remove short_sp and ! errata_skip ds. Add avr_device_specific_features enum to have device ! specific info. * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available. * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for *************** *** 282,302 **** 2014-04-04 Martin Jambor PR ipa/60640 ! * cgraph.h (cgraph_clone_node): New parameter added to declaration. ! Adjust all callers. * cgraph.c (clone_of_p): Also return true if thunks match. (verify_edge_corresponds_to_fndecl): Removed extraneous call to cgraph_function_or_thunk_node and an obsolete comment. ! * cgraphclones.c (build_function_type_skip_args): Moved upwards in the ! file. ! (build_function_decl_skip_args): Likewise. (set_new_clone_decl_and_node_flags): New function. ! (duplicate_thunk_for_node): Likewise. ! (redirect_edge_duplicating_thunks): Likewise. ! (cgraph_clone_node): New parameter args_to_skip, pass it to ! redirect_edge_duplicating_thunks which is called instead of ! cgraph_redirect_edge_callee. ! (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node, moved setting of a lot of flags to set_new_clone_decl_and_node_flags. 2014-04-04 Jeff Law --- 1930,1950 ---- 2014-04-04 Martin Jambor PR ipa/60640 ! * cgraph.h (cgraph_clone_node): New parameter added to declaration. ! Adjust all callers. * cgraph.c (clone_of_p): Also return true if thunks match. (verify_edge_corresponds_to_fndecl): Removed extraneous call to cgraph_function_or_thunk_node and an obsolete comment. ! * cgraphclones.c (build_function_type_skip_args): Moved upwards in the ! file. ! (build_function_decl_skip_args): Likewise. (set_new_clone_decl_and_node_flags): New function. ! (duplicate_thunk_for_node): Likewise. ! (redirect_edge_duplicating_thunks): Likewise. ! (cgraph_clone_node): New parameter args_to_skip, pass it to ! redirect_edge_duplicating_thunks which is called instead of ! cgraph_redirect_edge_callee. ! (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node, moved setting of a lot of flags to set_new_clone_decl_and_node_flags. 2014-04-04 Jeff Law *************** *** 334,341 **** PR tree-optimization/60505 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the ! threshold of number of iterations below which no vectorization will be ! done. * tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_COST_MODEL_THRESHOLD. * tree-vect-loop.c (vect_analyze_loop_operations): --- 1982,1989 ---- PR tree-optimization/60505 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the ! threshold of number of iterations below which no vectorization ! will be done. * tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_COST_MODEL_THRESHOLD. * tree-vect-loop.c (vect_analyze_loop_operations): *************** *** 347,354 **** 2014-04-03 Richard Biener ! * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx ! member. (streamer_tree_cache_create): Adjust. * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust to allow optional nodes array. --- 1995,2001 ---- 2014-04-03 Richard Biener ! * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member. (streamer_tree_cache_create): Adjust. * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust to allow optional nodes array. *************** *** 359,366 **** * lto-streamer-out.c (create_output_block): Avoid maintaining the node array in the writer cache. (DFS_write_tree): Remove assertion. ! (produce_asm_for_decls): Free the out decl state hash table ! early. * lto-streamer-in.c (lto_data_in_create): Adjust for streamer_tree_cache_create prototype change. --- 2006,2012 ---- * lto-streamer-out.c (create_output_block): Avoid maintaining the node array in the writer cache. (DFS_write_tree): Remove assertion. ! (produce_asm_for_decls): Free the out decl state hash table early. * lto-streamer-in.c (lto_data_in_create): Adjust for streamer_tree_cache_create prototype change. *************** *** 381,404 **** (Weffc++): Remove Scott's numbering, merge lists and reference Wnon-virtual-dtor. - c-family/ - - cp/ - * class.c (accessible_nvdtor_p): New. - (check_bases): Don't check base destructor here ... - (check_bases_and_members): ... check them here. Trigger on - Wnon-virtual-dtor flag. - (finish_struct_1): Use accessible_nvdtor_p. - - testsuite/ - * g++.dg/warn/Wnvdtor.C: Add non-polymorphic case. - * g++.dg/warn/Wnvdtor-2.C: New. - * g++.dg/warn/Wnvdtor-3.C: New. - * g++.dg/warn/Wnvdtor-4.C: New. - * g++.dg/warn/Weff1.C: Delete. - * g++.old-deja/g++.benjamin/15309-1.C: Delete. - * g++.old-deja/g++.benjamin/15309-2.C: Delete. - 2014-04-03 Nick Clifton * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF)) --- 2027,2032 ---- *************** *** 414,421 **** 2014-04-02 Jan Hubicka PR ipa/60659 ! * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type inconsistent ! code and instead mark the context inconsistent. (possible_polymorphic_call_targets): For inconsistent contexts return empty complete list. --- 2042,2049 ---- 2014-04-02 Jan Hubicka PR ipa/60659 ! * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type ! inconsistent code and instead mark the context inconsistent. (possible_polymorphic_call_targets): For inconsistent contexts return empty complete list. *************** *** 519,526 **** 2014-04-01 Richard Biener ! * gimple.h (struct gimple_statement_base): Align subcode to ! 16 bits. 2014-04-01 Sebastian Huber --- 2147,2153 ---- 2014-04-01 Richard Biener ! * gimple.h (struct gimple_statement_base): Align subcode to 16 bits. 2014-04-01 Sebastian Huber *************** *** 1031,1040 **** PR tree-optimization/60577 * tree-core.h (struct tree_base): Document nothrow_flag use ! in VAR_DECL_NONALIASED. ! * tree.h (VAR_DECL_NONALIASED): New. (may_be_aliased): Adjust. ! * coverage.c (build_var): Set VAR_DECL_NONALIASED. 2014-03-20 Eric Botcazou --- 2658,2667 ---- PR tree-optimization/60577 * tree-core.h (struct tree_base): Document nothrow_flag use ! in DECL_NONALIASED. ! * tree.h (DECL_NONALIASED): New. (may_be_aliased): Adjust. ! * coverage.c (build_var): Set DECL_NONALIASED. 2014-03-20 Eric Botcazou diff -Nrcpad gcc-4.9.0/gcc/DATESTAMP gcc-4.9.1/gcc/DATESTAMP *** gcc-4.9.0/gcc/DATESTAMP Tue Apr 22 00:16:24 2014 --- gcc-4.9.1/gcc/DATESTAMP Wed Jul 16 00:16:41 2014 *************** *** 1 **** ! 20140422 --- 1 ---- ! 20140716 diff -Nrcpad gcc-4.9.0/gcc/ada/ChangeLog gcc-4.9.1/gcc/ada/ChangeLog *** gcc-4.9.0/gcc/ada/ChangeLog Tue Apr 22 09:42:51 2014 --- gcc-4.9.1/gcc/ada/ChangeLog Wed Jul 16 10:03:44 2014 *************** *** 1,3 **** --- 1,63 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-05-19 Eric Botcazou + + Backport from mainline + 2014-04-22 Richard Henderson + + * init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define. + (__gnat_alternate_stack): Enable for all linux except ia64. + + 2014-05-18 Eric Botcazou + + * utils.c (gnat_write_global_declarations): Adjust the flags put on + dummy_global. + + 2014-05-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not + consider that regular packed arrays can never be superflat. + + 2014-05-17 Eric Botcazou + + Backport from mainline + 2014-04-28 Richard Henderson + + * gcc-interface/Makefile.in: Support aarch64-linux. + + 2014-04-28 Eric Botcazou + + * exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, + add 'Suffix' parameter and adjust comment. + (Get_External_Name_With_Suffix): Delete. + * exp_dbug.adb (Get_External_Name_With_Suffix): Merge into... + (Get_External_Name): ...here. Add 'False' default to Has_Suffix, add + 'Suffix' parameter. + (Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name. + Call Get_External_Name instead of Get_External_Name_With_Suffix. + (Get_Secondary_DT_External_Name): Likewise. + * exp_cg.adb (Write_Call_Info): Likewise. + * exp_disp.adb (Export_DT): Likewise. + (Import_DT): Likewise. + * comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC + parameter with False default. + * comperr.adb (Compiler_Abort): Likewise. Adjust accordingly. + * types.h (Fat_Pointer): Rename into... + (String_Pointer): ...this. Add comment on interfacing rules. + * fe.h (Compiler_Abort): Adjust for above renaming. + (Error_Msg_N): Likewise. + (Error_Msg_NE): Likewise. + (Get_External_Name): Likewise. Add third parameter. + (Get_External_Name_With_Suffix): Delete. + * gcc-interface/decl.c (STDCALL_PREFIX): Define. + (create_concat_name): Adjust call to Get_External_Name, remove call to + Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming. + * gcc-interface/trans.c (post_error): Likewise. + (post_error_ne): Likewise. + * gcc-interface/misc.c (internal_error_function): Likewise. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/ada/comperr.adb gcc-4.9.1/gcc/ada/comperr.adb *** gcc-4.9.0/gcc/ada/comperr.adb Wed Jan 29 15:53:48 2014 --- gcc-4.9.1/gcc/ada/comperr.adb Sat May 17 10:13:12 2014 *************** *** 6,12 **** -- -- -- B o d y -- -- -- ! -- Copyright (C) 1992-2013, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- --- 6,12 ---- -- -- -- B o d y -- -- -- ! -- Copyright (C) 1992-2014, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- *************** package body Comperr is *** 74,81 **** procedure Compiler_Abort (X : String; ! Code : Integer := 0; ! Fallback_Loc : String := "") is -- The procedures below output a "bug box" with information about -- the cause of the compiler abort and about the preferred method --- 74,81 ---- procedure Compiler_Abort (X : String; ! Fallback_Loc : String := ""; ! From_GCC : Boolean := False) is -- The procedures below output a "bug box" with information about -- the cause of the compiler abort and about the preferred method *************** package body Comperr is *** 206,212 **** Write_Str (") "); if X'Length + Column > 76 then ! if Code < 0 then Write_Str ("GCC error:"); end if; --- 206,212 ---- Write_Str (") "); if X'Length + Column > 76 then ! if From_GCC then Write_Str ("GCC error:"); end if; *************** package body Comperr is *** 235,245 **** Write_Str (X); end if; ! if Code > 0 then ! Write_Str (", Code="); ! Write_Int (Int (Code)); ! ! elsif Code = 0 then -- For exception case, get exception message from the TSD. Note -- that it would be neater and cleaner to pass the exception --- 235,241 ---- Write_Str (X); end if; ! if not From_GCC then -- For exception case, get exception message from the TSD. Note -- that it would be neater and cleaner to pass the exception diff -Nrcpad gcc-4.9.0/gcc/ada/comperr.ads gcc-4.9.1/gcc/ada/comperr.ads *** gcc-4.9.0/gcc/ada/comperr.ads Wed Feb 6 10:35:52 2013 --- gcc-4.9.1/gcc/ada/comperr.ads Sat May 17 10:13:12 2014 *************** *** 6,12 **** -- -- -- S p e c -- -- -- ! -- Copyright (C) 1992-2013, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- --- 6,12 ---- -- -- -- S p e c -- -- -- ! -- Copyright (C) 1992-2014, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- *************** package Comperr is *** 31,38 **** procedure Compiler_Abort (X : String; ! Code : Integer := 0; ! Fallback_Loc : String := ""); pragma No_Return (Compiler_Abort); -- Signals an internal compiler error. Never returns control. Depending on -- processing may end up raising Unrecoverable_Error, or exiting directly. --- 31,38 ---- procedure Compiler_Abort (X : String; ! Fallback_Loc : String := ""; ! From_GCC : Boolean := False); pragma No_Return (Compiler_Abort); -- Signals an internal compiler error. Never returns control. Depending on -- processing may end up raising Unrecoverable_Error, or exiting directly. *************** package Comperr is *** 46,55 **** -- Note that this is only used at the outer level (to handle constraint -- errors or assert errors etc.) In the normal logic of the compiler we -- always use pragma Assert to check for errors, and if necessary an ! -- explicit abort is achieved by pragma Assert (False). Code is positive ! -- for a gigi abort (giving the gigi abort code), zero for a front ! -- end exception (with possible message stored in TSD.Current_Excep, ! -- and negative (an unused value) for a GCC abort. procedure Delete_SCIL_Files; -- Delete SCIL files associated with the main unit --- 46,54 ---- -- Note that this is only used at the outer level (to handle constraint -- errors or assert errors etc.) In the normal logic of the compiler we -- always use pragma Assert to check for errors, and if necessary an ! -- explicit abort is achieved by pragma Assert (False). From_GCC is true ! -- for a GCC abort and false for a front end exception (with a possible ! -- message stored in TSD.Current_Excep). procedure Delete_SCIL_Files; -- Delete SCIL files associated with the main unit diff -Nrcpad gcc-4.9.0/gcc/ada/exp_cg.adb gcc-4.9.1/gcc/ada/exp_cg.adb *** gcc-4.9.0/gcc/ada/exp_cg.adb Fri Apr 12 13:41:03 2013 --- gcc-4.9.1/gcc/ada/exp_cg.adb Sat May 17 10:13:12 2014 *************** *** 6,12 **** -- -- -- B o d y -- -- -- ! -- Copyright (C) 2010-2013, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- --- 6,12 ---- -- -- -- B o d y -- -- -- ! -- Copyright (C) 2010-2014, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- *************** package body Exp_CG is *** 437,446 **** if Nkind (P) = N_Subprogram_Body and then not Acts_As_Spec (P) then ! Get_External_Name (Corresponding_Spec (P), Has_Suffix => False); else ! Get_External_Name (Defining_Entity (P), Has_Suffix => False); end if; Write_Str (Name_Buffer (1 .. Name_Len)); --- 437,446 ---- if Nkind (P) = N_Subprogram_Body and then not Acts_As_Spec (P) then ! Get_External_Name (Corresponding_Spec (P)); else ! Get_External_Name (Defining_Entity (P)); end if; Write_Str (Name_Buffer (1 .. Name_Len)); diff -Nrcpad gcc-4.9.0/gcc/ada/exp_dbug.adb gcc-4.9.1/gcc/ada/exp_dbug.adb *** gcc-4.9.0/gcc/ada/exp_dbug.adb Thu Feb 20 13:38:06 2014 --- gcc-4.9.1/gcc/ada/exp_dbug.adb Sat May 17 10:13:12 2014 *************** package body Exp_Dbug is *** 507,514 **** begin -- If not generating code, there is no need to create encoded names, and -- problems when the back-end is called to annotate types without full ! -- code generation. See comments in Get_External_Name_With_Suffix for ! -- additional details. -- However we do create encoded names if the back end is active, even -- if Operating_Mode got reset. Otherwise any serious error reported --- 507,514 ---- begin -- If not generating code, there is no need to create encoded names, and -- problems when the back-end is called to annotate types without full ! -- code generation. See comments in Get_External_Name for additional ! -- details. -- However we do create encoded names if the back end is active, even -- if Operating_Mode got reset. Otherwise any serious error reported *************** package body Exp_Dbug is *** 556,562 **** -- Fixed-point case if Is_Fixed_Point_Type (E) then ! Get_External_Name_With_Suffix (E, "XF_"); Add_Real_To_Buffer (Delta_Value (E)); if Small_Value (E) /= Delta_Value (E) then --- 556,562 ---- -- Fixed-point case if Is_Fixed_Point_Type (E) then ! Get_External_Name (E, True, "XF_"); Add_Real_To_Buffer (Delta_Value (E)); if Small_Value (E) /= Delta_Value (E) then *************** package body Exp_Dbug is *** 568,581 **** elsif Vax_Float (E) then if Digits_Value (Base_Type (E)) = 6 then ! Get_External_Name_With_Suffix (E, "XFF"); elsif Digits_Value (Base_Type (E)) = 9 then ! Get_External_Name_With_Suffix (E, "XFF"); else pragma Assert (Digits_Value (Base_Type (E)) = 15); ! Get_External_Name_With_Suffix (E, "XFG"); end if; -- Discrete case where bounds do not match size --- 568,581 ---- elsif Vax_Float (E) then if Digits_Value (Base_Type (E)) = 6 then ! Get_External_Name (E, True, "XFF"); elsif Digits_Value (Base_Type (E)) = 9 then ! Get_External_Name (E, True, "XFF"); else pragma Assert (Digits_Value (Base_Type (E)) = 15); ! Get_External_Name (E, True, "XFG"); end if; -- Discrete case where bounds do not match size *************** package body Exp_Dbug is *** 607,615 **** begin if Biased then ! Get_External_Name_With_Suffix (E, "XB"); else ! Get_External_Name_With_Suffix (E, "XD"); end if; if Lo_Encode or Hi_Encode then --- 607,615 ---- begin if Biased then ! Get_External_Name (E, True, "XB"); else ! Get_External_Name (E, True, "XD"); end if; if Lo_Encode or Hi_Encode then *************** package body Exp_Dbug is *** 649,655 **** else Has_Suffix := False; ! Get_External_Name (E, Has_Suffix); end if; if Debug_Flag_B and then Has_Suffix then --- 649,655 ---- else Has_Suffix := False; ! Get_External_Name (E); end if; if Debug_Flag_B and then Has_Suffix then *************** package body Exp_Dbug is *** 667,673 **** -- Get_External_Name -- ----------------------- ! procedure Get_External_Name (Entity : Entity_Id; Has_Suffix : Boolean) is E : Entity_Id := Entity; Kind : Entity_Kind; --- 667,677 ---- -- Get_External_Name -- ----------------------- ! procedure Get_External_Name ! (Entity : Entity_Id; ! Has_Suffix : Boolean := False; ! Suffix : String := "") ! is E : Entity_Id := Entity; Kind : Entity_Kind; *************** package body Exp_Dbug is *** 704,709 **** --- 708,727 ---- -- Start of processing for Get_External_Name begin + -- If we are not in code generation mode, this procedure may still be + -- called from Back_End (more specifically - from gigi for doing type + -- representation annotation or some representation-specific checks). + -- But in this mode there is no need to mess with external names. + + -- Furthermore, the call causes difficulties in this case because the + -- string representing the homonym number is not correctly reset as a + -- part of the call to Output_Homonym_Numbers_Suffix (which is not + -- called in gigi). + + if Operating_Mode /= Generate_Code then + return; + end if; + Reset_Buffers; -- If this is a child unit, we want the child *************** package body Exp_Dbug is *** 762,803 **** Get_Qualified_Name_And_Append (E); end if; - Name_Buffer (Name_Len + 1) := ASCII.NUL; - end Get_External_Name; - - ----------------------------------- - -- Get_External_Name_With_Suffix -- - ----------------------------------- - - procedure Get_External_Name_With_Suffix - (Entity : Entity_Id; - Suffix : String) - is - Has_Suffix : constant Boolean := (Suffix /= ""); - - begin - -- If we are not in code generation mode, this procedure may still be - -- called from Back_End (more specifically - from gigi for doing type - -- representation annotation or some representation-specific checks). - -- But in this mode there is no need to mess with external names. - - -- Furthermore, the call causes difficulties in this case because the - -- string representing the homonym number is not correctly reset as a - -- part of the call to Output_Homonym_Numbers_Suffix (which is not - -- called in gigi). - - if Operating_Mode /= Generate_Code then - return; - end if; - - Get_External_Name (Entity, Has_Suffix); - if Has_Suffix then Add_Str_To_Name_Buffer ("___"); Add_Str_To_Name_Buffer (Suffix); - Name_Buffer (Name_Len + 1) := ASCII.NUL; end if; ! end Get_External_Name_With_Suffix; -------------------------- -- Get_Variant_Encoding -- --- 780,792 ---- Get_Qualified_Name_And_Append (E); end if; if Has_Suffix then Add_Str_To_Name_Buffer ("___"); Add_Str_To_Name_Buffer (Suffix); end if; ! ! Name_Buffer (Name_Len + 1) := ASCII.NUL; ! end Get_External_Name; -------------------------- -- Get_Variant_Encoding -- *************** package body Exp_Dbug is *** 944,950 **** Suffix_Index : Int) is begin ! Get_External_Name (Typ, Has_Suffix => False); if Ancestor_Typ /= Typ then declare --- 933,939 ---- Suffix_Index : Int) is begin ! Get_External_Name (Typ); if Ancestor_Typ /= Typ then declare *************** package body Exp_Dbug is *** 952,958 **** Save_Str : constant String (1 .. Name_Len) := Name_Buffer (1 .. Name_Len); begin ! Get_External_Name (Ancestor_Typ, Has_Suffix => False); -- Append the extended name of the ancestor to the -- extended name of Typ --- 941,947 ---- Save_Str : constant String (1 .. Name_Len) := Name_Buffer (1 .. Name_Len); begin ! Get_External_Name (Ancestor_Typ); -- Append the extended name of the ancestor to the -- extended name of Typ diff -Nrcpad gcc-4.9.0/gcc/ada/exp_dbug.ads gcc-4.9.1/gcc/ada/exp_dbug.ads *** gcc-4.9.0/gcc/ada/exp_dbug.ads Mon Oct 29 10:41:40 2012 --- gcc-4.9.1/gcc/ada/exp_dbug.ads Sat May 17 10:13:12 2014 *************** package Exp_Dbug is *** 413,422 **** procedure Get_External_Name (Entity : Entity_Id; ! Has_Suffix : Boolean); ! -- Set Name_Buffer and Name_Len to the external name of entity E. The -- external name is the Interface_Name, if specified, unless the entity ! -- has an address clause or a suffix. -- -- If the Interface is not present, or not used, the external name is the -- concatenation of: --- 413,423 ---- procedure Get_External_Name (Entity : Entity_Id; ! Has_Suffix : Boolean := False; ! Suffix : String := ""); ! -- Set Name_Buffer and Name_Len to the external name of the entity. The -- external name is the Interface_Name, if specified, unless the entity ! -- has an address clause or Has_Suffix is true. -- -- If the Interface is not present, or not used, the external name is the -- concatenation of: *************** package Exp_Dbug is *** 428,453 **** -- - the string "$" (or "__" if target does not allow "$"), followed -- by homonym suffix, if the entity is an overloaded subprogram -- or is defined within an overloaded subprogram. ! ! procedure Get_External_Name_With_Suffix ! (Entity : Entity_Id; ! Suffix : String); ! -- Set Name_Buffer and Name_Len to the external name of entity E. If ! -- Suffix is the empty string the external name is as above, otherwise ! -- the external name is the concatenation of: ! -- ! -- - the string "_ada_", if the entity is a library subprogram, ! -- - the names of any enclosing scopes, each followed by "__", ! -- or "X_" if the next entity is a subunit) ! -- - the name of the entity ! -- - the string "$" (or "__" if target does not allow "$"), followed ! -- by homonym suffix, if the entity is an overloaded subprogram ! -- or is defined within an overloaded subprogram. ! -- - the string "___" followed by Suffix -- -- Note that a call to this procedure has no effect if we are not -- generating code, since the necessary information for computing the ! -- proper encoded name is not available in this case. -------------------------------------------- -- Subprograms for Handling Qualification -- --- 429,439 ---- -- - the string "$" (or "__" if target does not allow "$"), followed -- by homonym suffix, if the entity is an overloaded subprogram -- or is defined within an overloaded subprogram. ! -- - the string "___" followed by Suffix if Has_Suffix is true. -- -- Note that a call to this procedure has no effect if we are not -- generating code, since the necessary information for computing the ! -- proper external name is not available in this case. -------------------------------------------- -- Subprograms for Handling Qualification -- diff -Nrcpad gcc-4.9.0/gcc/ada/exp_disp.adb gcc-4.9.1/gcc/ada/exp_disp.adb *** gcc-4.9.0/gcc/ada/exp_disp.adb Thu Feb 20 13:38:06 2014 --- gcc-4.9.1/gcc/ada/exp_disp.adb Sat May 17 10:13:12 2014 *************** package body Exp_Disp is *** 3913,3922 **** pragma Assert (Related_Type (Node (Elmt)) = Typ); ! Get_External_Name ! (Entity => Node (Elmt), ! Has_Suffix => True); ! Set_Interface_Name (DT, Make_String_Literal (Loc, Strval => String_From_Name_Buffer)); --- 3913,3919 ---- pragma Assert (Related_Type (Node (Elmt)) = Typ); ! Get_External_Name (Node (Elmt)); Set_Interface_Name (DT, Make_String_Literal (Loc, Strval => String_From_Name_Buffer)); *************** package body Exp_Disp is *** 7088,7094 **** Set_Scope (DT, Current_Scope); ! Get_External_Name (DT, True); Set_Interface_Name (DT, Make_String_Literal (Loc, Strval => String_From_Name_Buffer)); --- 7085,7091 ---- Set_Scope (DT, Current_Scope); ! Get_External_Name (DT); Set_Interface_Name (DT, Make_String_Literal (Loc, Strval => String_From_Name_Buffer)); diff -Nrcpad gcc-4.9.0/gcc/ada/fe.h gcc-4.9.1/gcc/ada/fe.h *** gcc-4.9.0/gcc/ada/fe.h Wed Feb 19 10:55:33 2014 --- gcc-4.9.1/gcc/ada/fe.h Sat May 17 10:13:12 2014 *************** *** 29,45 **** * * ****************************************************************************/ ! /* This file contains definitions to access front-end functions and ! variables used by gigi. */ #ifdef __cplusplus extern "C" { #endif ! /* comperr: */ #define Compiler_Abort comperr__compiler_abort ! extern int Compiler_Abort (Fat_Pointer, int, Fat_Pointer) ATTRIBUTE_NORETURN; /* csets: */ --- 29,48 ---- * * ****************************************************************************/ ! /* This file contains declarations to access front-end functions and variables ! used by gigi. ! ! WARNING: functions taking String_Pointer parameters must abide by the rule ! documented alongside the definition of String_Pointer in types.h. */ #ifdef __cplusplus extern "C" { #endif ! /* comperr: */ #define Compiler_Abort comperr__compiler_abort ! extern int Compiler_Abort (String_Pointer, String_Pointer, Boolean) ATTRIBUTE_NORETURN; /* csets: */ *************** extern void Set_Mechanism (Entity_Id, M *** 72,79 **** extern void Set_RM_Size (Entity_Id, Uint); extern void Set_Present_Expr (Node_Id, Uint); - /* Test if the node N is the name of an entity (i.e. is an identifier, - expanded name, or an attribute reference that returns an entity). */ #define Is_Entity_Name einfo__is_entity_name extern Boolean Is_Entity_Name (Node_Id); --- 75,80 ---- *************** extern Node_Id Get_Attribute_Definition_ *** 90,97 **** #define Error_Msg_NE errout__error_msg_ne #define Set_Identifier_Casing errout__set_identifier_casing ! extern void Error_Msg_N (Fat_Pointer, Node_Id); ! extern void Error_Msg_NE (Fat_Pointer, Node_Id, Entity_Id); extern void Set_Identifier_Casing (Char *, const Char *); /* err_vars: */ --- 91,98 ---- #define Error_Msg_NE errout__error_msg_ne #define Set_Identifier_Casing errout__set_identifier_casing ! extern void Error_Msg_N (String_Pointer, Node_Id); ! extern void Error_Msg_NE (String_Pointer, Node_Id, Entity_Id); extern void Set_Identifier_Casing (Char *, const Char *); /* err_vars: */ *************** extern void Setup_Asm_Outputs (Node_Id) *** 147,157 **** #define Get_Encoded_Name exp_dbug__get_encoded_name #define Get_External_Name exp_dbug__get_external_name - #define Get_External_Name_With_Suffix exp_dbug__get_external_name_with_suffix ! extern void Get_Encoded_Name (Entity_Id); ! extern void Get_External_Name (Entity_Id, Boolean); ! extern void Get_External_Name_With_Suffix (Entity_Id, Fat_Pointer); /* exp_util: */ --- 148,156 ---- #define Get_Encoded_Name exp_dbug__get_encoded_name #define Get_External_Name exp_dbug__get_external_name ! extern void Get_Encoded_Name (Entity_Id); ! extern void Get_External_Name (Entity_Id, Boolean, String_Pointer); /* exp_util: */ diff -Nrcpad gcc-4.9.0/gcc/ada/gcc-interface/Makefile.in gcc-4.9.1/gcc/ada/gcc-interface/Makefile.in *** gcc-4.9.0/gcc/ada/gcc-interface/Makefile.in Wed Apr 9 14:54:29 2014 --- gcc-4.9.1/gcc/ada/gcc-interface/Makefile.in Sat May 17 10:13:12 2014 *************** ifeq ($(strip $(filter-out arm% linux-gn *** 1988,1993 **** --- 1988,2031 ---- LIBRARY_VERSION := $(LIB_VERSION) endif + # AArch64 Linux + ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),) + LIBGNAT_TARGET_PAIRS = \ + a-exetim.adbshow_column && s.column != 0) ! asprintf (&loc, "%s:%d:%d", s.file, s.line, s.column); else ! asprintf (&loc, "%s:%d", s.file, s.line); temp_loc.Low_Bound = 1; temp_loc.High_Bound = strlen (loc); ! fp_loc.Bounds = &temp_loc; ! fp_loc.Array = loc; Current_Error_Node = error_gnat_node; ! Compiler_Abort (fp, -1, fp_loc); } /* Perform all the initialization steps that are language-specific. */ --- 311,331 ---- temp.Low_Bound = 1; temp.High_Bound = p - buffer; ! sp.Bounds = &temp; ! sp.Array = buffer; ! xloc = expand_location (input_location); ! if (context->show_column && xloc.column != 0) ! asprintf (&loc, "%s:%d:%d", xloc.file, xloc.line, xloc.column); else ! asprintf (&loc, "%s:%d", xloc.file, xloc.line); temp_loc.Low_Bound = 1; temp_loc.High_Bound = strlen (loc); ! sp_loc.Bounds = &temp_loc; ! sp_loc.Array = loc; Current_Error_Node = error_gnat_node; ! Compiler_Abort (sp, sp_loc, true); } /* Perform all the initialization steps that are language-specific. */ diff -Nrcpad gcc-4.9.0/gcc/ada/gcc-interface/trans.c gcc-4.9.1/gcc/ada/gcc-interface/trans.c *** gcc-4.9.0/gcc/ada/gcc-interface/trans.c Tue Feb 25 16:14:58 2014 --- gcc-4.9.1/gcc/ada/gcc-interface/trans.c Sat May 17 10:13:12 2014 *************** void *** 9262,9277 **** post_error (const char *msg, Node_Id node) { String_Template temp; ! Fat_Pointer fp; if (No (node)) return; temp.Low_Bound = 1; temp.High_Bound = strlen (msg); ! fp.Bounds = &temp; ! fp.Array = msg; ! Error_Msg_N (fp, node); } /* Similar to post_error, but NODE is the node at which to post the error and --- 9262,9277 ---- post_error (const char *msg, Node_Id node) { String_Template temp; ! String_Pointer sp; if (No (node)) return; temp.Low_Bound = 1; temp.High_Bound = strlen (msg); ! sp.Bounds = &temp; ! sp.Array = msg; ! Error_Msg_N (sp, node); } /* Similar to post_error, but NODE is the node at which to post the error and *************** void *** 9281,9296 **** post_error_ne (const char *msg, Node_Id node, Entity_Id ent) { String_Template temp; ! Fat_Pointer fp; if (No (node)) return; temp.Low_Bound = 1; temp.High_Bound = strlen (msg); ! fp.Bounds = &temp; ! fp.Array = msg; ! Error_Msg_NE (fp, node, ent); } /* Similar to post_error_ne, but NUM is the number to use for the '^'. */ --- 9281,9296 ---- post_error_ne (const char *msg, Node_Id node, Entity_Id ent) { String_Template temp; ! String_Pointer sp; if (No (node)) return; temp.Low_Bound = 1; temp.High_Bound = strlen (msg); ! sp.Bounds = &temp; ! sp.Array = msg; ! Error_Msg_NE (sp, node, ent); } /* Similar to post_error_ne, but NUM is the number to use for the '^'. */ diff -Nrcpad gcc-4.9.0/gcc/ada/gcc-interface/utils.c gcc-4.9.1/gcc/ada/gcc-interface/utils.c *** gcc-4.9.0/gcc/ada/gcc-interface/utils.c Sat Jan 25 10:51:47 2014 --- gcc-4.9.1/gcc/ada/gcc-interface/utils.c Sun May 18 21:08:28 2014 *************** gnat_write_global_declarations (void) *** 5662,5670 **** dummy_global = build_decl (BUILTINS_LOCATION, VAR_DECL, get_identifier (label), void_type_node); TREE_STATIC (dummy_global) = 1; - TREE_ASM_WRITTEN (dummy_global) = 1; node = varpool_node_for_decl (dummy_global); node->force_output = 1; while (!types_used_by_cur_var_decl->is_empty ()) --- 5662,5671 ---- dummy_global = build_decl (BUILTINS_LOCATION, VAR_DECL, get_identifier (label), void_type_node); + DECL_HARD_REGISTER (dummy_global) = 1; TREE_STATIC (dummy_global) = 1; node = varpool_node_for_decl (dummy_global); + node->definition = 1; node->force_output = 1; while (!types_used_by_cur_var_decl->is_empty ()) diff -Nrcpad gcc-4.9.0/gcc/ada/init.c gcc-4.9.1/gcc/ada/init.c *** gcc-4.9.0/gcc/ada/init.c Tue Feb 25 15:30:10 2014 --- gcc-4.9.1/gcc/ada/init.c Mon May 19 17:41:08 2014 *************** __gnat_error_handler (int sig, siginfo_t *** 556,564 **** Raise_From_Signal_Handler (exception, msg); } ! #if defined (i386) || defined (__x86_64__) || defined (__powerpc__) ! /* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. */ ! char __gnat_alternate_stack[16 * 1024]; /* 2 * SIGSTKSZ */ #endif #ifdef __XENO__ --- 556,569 ---- Raise_From_Signal_Handler (exception, msg); } ! #ifndef __ia64__ ! #define HAVE_GNAT_ALTERNATE_STACK 1 ! /* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. ! It must be larger than MINSIGSTKSZ and hopefully near 2 * SIGSTKSZ. */ ! # if 16 * 1024 < MINSIGSTKSZ ! # error "__gnat_alternate_stack too small" ! # endif ! char __gnat_alternate_stack[16 * 1024]; #endif #ifdef __XENO__ *************** __gnat_install_handler (void) *** 612,618 **** sigaction (SIGBUS, &act, NULL); if (__gnat_get_interrupt_state (SIGSEGV) != 's') { ! #if defined (i386) || defined (__x86_64__) || defined (__powerpc__) /* Setup an alternate stack region for the handler execution so that stack overflows can be handled properly, avoiding a SEGV generation from stack usage by the handler itself. */ --- 617,623 ---- sigaction (SIGBUS, &act, NULL); if (__gnat_get_interrupt_state (SIGSEGV) != 's') { ! #ifdef HAVE_GNAT_ALTERNATE_STACK /* Setup an alternate stack region for the handler execution so that stack overflows can be handled properly, avoiding a SEGV generation from stack usage by the handler itself. */ diff -Nrcpad gcc-4.9.0/gcc/ada/types.h gcc-4.9.1/gcc/ada/types.h *** gcc-4.9.0/gcc/ada/types.h Fri Jul 5 09:04:59 2013 --- gcc-4.9.1/gcc/ada/types.h Sat May 17 10:13:12 2014 *************** typedef Char *Str; *** 76,86 **** /* Pointer to string of Chars */ typedef Char *Str_Ptr; ! /* Types for the fat pointer used for strings and the template it ! points to. */ ! typedef struct {int Low_Bound, High_Bound; } String_Template; ! typedef struct {const char *Array; String_Template *Bounds; } ! __attribute ((aligned (sizeof (char *) * 2))) Fat_Pointer; /* Types for Node/Entity Kinds: */ --- 76,94 ---- /* Pointer to string of Chars */ typedef Char *Str_Ptr; ! /* Types for the fat pointer used for strings and the template it points to. ! The fat pointer is conceptually a couple of pointers, but it is wrapped ! up in a special record type. On the Ada side, the record is naturally ! aligned (i.e. given pointer alignment) on regular platforms, but it is ! given twice this alignment on strict-alignment platforms for performance ! reasons. On the C side, for the sake of portability and simplicity, we ! overalign it on all platforms (so the machine mode is always the same as ! on the Ada side) but arrange to pass it in an even scalar position as a ! parameter to functions (so the scalar parameter alignment is always the ! same as on the Ada side). */ ! typedef struct { int Low_Bound, High_Bound; } String_Template; ! typedef struct { const char *Array; String_Template *Bounds; } ! __attribute ((aligned (sizeof (char *) * 2))) String_Pointer; /* Types for Node/Entity Kinds: */ diff -Nrcpad gcc-4.9.0/gcc/asan.c gcc-4.9.1/gcc/asan.c *** gcc-4.9.0/gcc/asan.c Thu Jan 9 07:31:05 2014 --- gcc-4.9.1/gcc/asan.c Tue Apr 22 13:15:24 2014 *************** asan_emit_stack_protection (rtx base, rt *** 1017,1024 **** --- 1017,1033 ---- base_align_bias = ((asan_frame_size + alignb - 1) & ~(alignb - HOST_WIDE_INT_1)) - asan_frame_size; } + /* Align base if target is STRICT_ALIGNMENT. */ + if (STRICT_ALIGNMENT) + base = expand_binop (Pmode, and_optab, base, + gen_int_mode (-((GET_MODE_ALIGNMENT (SImode) + << ASAN_SHADOW_SHIFT) + / BITS_PER_UNIT), Pmode), NULL_RTX, + 1, OPTAB_DIRECT); + if (use_after_return_class == -1 && pbase) emit_move_insn (pbase, base); + base = expand_binop (Pmode, add_optab, base, gen_int_mode (base_offset - base_align_bias, Pmode), NULL_RTX, 1, OPTAB_DIRECT); *************** asan_emit_stack_protection (rtx base, rt *** 1097,1102 **** --- 1106,1113 ---- && (ASAN_RED_ZONE_SIZE >> ASAN_SHADOW_SHIFT) == 4); shadow_mem = gen_rtx_MEM (SImode, shadow_base); set_mem_alias_set (shadow_mem, asan_shadow_set); + if (STRICT_ALIGNMENT) + set_mem_align (shadow_mem, (GET_MODE_ALIGNMENT (SImode))); prev_offset = base_offset; for (l = length; l; l -= 2) { *************** asan_emit_stack_protection (rtx base, rt *** 1186,1191 **** --- 1197,1206 ---- shadow_mem = gen_rtx_MEM (BLKmode, shadow_base); set_mem_alias_set (shadow_mem, asan_shadow_set); + + if (STRICT_ALIGNMENT) + set_mem_align (shadow_mem, (GET_MODE_ALIGNMENT (SImode))); + prev_offset = base_offset; last_offset = base_offset; last_size = 0; diff -Nrcpad gcc-4.9.0/gcc/c/ChangeLog gcc-4.9.1/gcc/c/ChangeLog *** gcc-4.9.0/gcc/c/ChangeLog Tue Apr 22 09:42:33 2014 --- gcc-4.9.1/gcc/c/ChangeLog Wed Jul 16 10:03:17 2014 *************** *** 1,3 **** --- 1,70 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-06-30 Jakub Jelinek + + Backported from mainline + 2014-06-25 Jakub Jelinek + + * c-typeck.c (c_finish_omp_clauses): Make sure + OMP_CLAUSE_LINEAR_STEP has correct type. + + 2014-06-30 Sebastian Huber + + * c-parser.c (c_parser_declaration_or_fndef): Discard all type + qualifiers in __auto_type for atomic types. + (c_parser_typeof_specifier): Discard all type qualifiers in + __typeof__ for atomic types. + + 2014-06-30 Igor Zamyatin + + PR middle-end/57541 + * c-array-notation.c (fix_builtin_array_notation_fn): + Check for 0 arguments in builtin call. Check that bultin argument is + correct. + * c-parser.c (c_parser_array_notation): Check for incorrect initial + index. + + 2014-06-24 Jakub Jelinek + + * c-parser.c (c_parser_omp_for_loop): For + #pragma omp parallel for simd move lastprivate clause from parallel + to for rather than simd. + + 2014-06-04 Igor Zamyatin + + PR c/58942 + * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case + with a pointer. + + 2014-06-04 Marek Polacek + + Backport from mainline + 2014-05-08 Marek Polacek + + PR c/61053 + * c-decl.c (grokdeclarator): Use min_align_of_type instead of + TYPE_ALIGN_UNIT. + + 2014-05-26 Igor Zamyatin + + PR c/61191 + * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid + function parameters. + + 2014-04-24 Jakub Jelinek + + * c-parser.c (c_parser_omp_atomic): Allow seq_cst before + atomic-clause, allow comma in between atomic-clause and + seq_cst. + + 2014-04-22 Jakub Jelinek + + PR c/59073 + * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for + fails, don't set OM_PARALLEL_COMBINED and return NULL. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/c/c-array-notation.c gcc-4.9.1/gcc/c/c-array-notation.c *** gcc-4.9.0/gcc/c/c-array-notation.c Tue Apr 15 06:27:07 2014 --- gcc-4.9.1/gcc/c/c-array-notation.c Mon Jun 30 08:22:43 2014 *************** fix_builtin_array_notation_fn (tree an_b *** 214,219 **** --- 214,226 ---- if (an_type == BUILT_IN_NONE) return NULL_TREE; + /* Builtin call should contain at least one argument. */ + if (call_expr_nargs (an_builtin_fn) == 0) + { + error_at (EXPR_LOCATION (an_builtin_fn), "Invalid builtin arguments"); + return error_mark_node; + } + if (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING) { *************** fix_builtin_array_notation_fn (tree an_b *** 229,234 **** --- 236,243 ---- /* Fully fold any EXCESSIVE_PRECISION EXPR that can occur in the function parameter. */ func_parm = c_fully_fold (func_parm, false, NULL); + if (func_parm == error_mark_node) + return error_mark_node; location = EXPR_LOCATION (an_builtin_fn); *************** fix_builtin_array_notation_fn (tree an_b *** 236,242 **** return error_mark_node; if (rank == 0) ! return an_builtin_fn; else if (rank > 1 && (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND)) --- 245,254 ---- return error_mark_node; if (rank == 0) ! { ! error_at (location, "Invalid builtin arguments"); ! return error_mark_node; ! } else if (rank > 1 && (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND)) *************** fix_builtin_array_notation_fn (tree an_b *** 308,314 **** || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND) array_ind_value = build_decl (location, VAR_DECL, NULL_TREE, TREE_TYPE (func_parm)); ! array_op0 = (*array_operand)[0]; switch (an_type) { case BUILT_IN_CILKPLUS_SEC_REDUCE_ADD: --- 320,328 ---- || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND) array_ind_value = build_decl (location, VAR_DECL, NULL_TREE, TREE_TYPE (func_parm)); ! array_op0 = (*array_operand)[0]; ! if (TREE_CODE (array_op0) == INDIRECT_REF) ! array_op0 = TREE_OPERAND (array_op0, 0); switch (an_type) { case BUILT_IN_CILKPLUS_SEC_REDUCE_ADD: diff -Nrcpad gcc-4.9.0/gcc/c/c-decl.c gcc-4.9.1/gcc/c/c-decl.c *** gcc-4.9.0/gcc/c/c-decl.c Fri Mar 28 18:16:32 2014 --- gcc-4.9.1/gcc/c/c-decl.c Wed Jun 4 08:22:22 2014 *************** grokdeclarator (const struct c_declarato *** 5911,5917 **** else if (declspecs->align_log != -1) { alignas_align = 1U << declspecs->align_log; ! if (alignas_align < TYPE_ALIGN_UNIT (type)) { if (name) error_at (loc, "%<_Alignas%> specifiers cannot reduce " --- 5911,5917 ---- else if (declspecs->align_log != -1) { alignas_align = 1U << declspecs->align_log; ! if (alignas_align < min_align_of_type (type)) { if (name) error_at (loc, "%<_Alignas%> specifiers cannot reduce " diff -Nrcpad gcc-4.9.0/gcc/c/c-parser.c gcc-4.9.1/gcc/c/c-parser.c *** gcc-4.9.0/gcc/c/c-parser.c Fri Mar 28 18:16:32 2014 --- gcc-4.9.1/gcc/c/c-parser.c Mon Jun 30 13:01:40 2014 *************** c_parser_declaration_or_fndef (c_parser *** 1707,1720 **** " initializer"); init = convert_lvalue_to_rvalue (init_loc, init, true, true); tree init_type = TREE_TYPE (init.value); ! /* As with typeof, remove _Atomic and const ! qualifiers from atomic types. */ if (init_type != error_mark_node && TYPE_ATOMIC (init_type)) init_type ! = c_build_qualified_type (init_type, ! (TYPE_QUALS (init_type) ! & ~(TYPE_QUAL_ATOMIC ! | TYPE_QUAL_CONST))); bool vm_type = variably_modified_type_p (init_type, NULL_TREE); if (vm_type) --- 1707,1716 ---- " initializer"); init = convert_lvalue_to_rvalue (init_loc, init, true, true); tree init_type = TREE_TYPE (init.value); ! /* As with typeof, remove all qualifiers from atomic types. */ if (init_type != error_mark_node && TYPE_ATOMIC (init_type)) init_type ! = c_build_qualified_type (init_type, TYPE_UNQUALIFIED); bool vm_type = variably_modified_type_p (init_type, NULL_TREE); if (vm_type) *************** c_parser_typeof_specifier (c_parser *par *** 3011,3026 **** if (was_vm) ret.expr = c_fully_fold (expr.value, false, &ret.expr_const_operands); pop_maybe_used (was_vm); ! /* For use in macros such as those in , remove ! _Atomic and const qualifiers from atomic types. (Possibly ! all qualifiers should be removed; const can be an issue for ! more macros using typeof than just the ! ones.) */ if (ret.spec != error_mark_node && TYPE_ATOMIC (ret.spec)) ! ret.spec = c_build_qualified_type (ret.spec, ! (TYPE_QUALS (ret.spec) ! & ~(TYPE_QUAL_ATOMIC ! | TYPE_QUAL_CONST))); } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return ret; --- 3007,3017 ---- if (was_vm) ret.expr = c_fully_fold (expr.value, false, &ret.expr_const_operands); pop_maybe_used (was_vm); ! /* For use in macros such as those in , remove all ! qualifiers from atomic types. (const can be an issue for more macros ! using typeof than just the ones.) */ if (ret.spec != error_mark_node && TYPE_ATOMIC (ret.spec)) ! ret.spec = c_build_qualified_type (ret.spec, TYPE_UNQUALIFIED); } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return ret; *************** c_parser_omp_atomic (location_t loc, c_p *** 11198,11203 **** --- 11189,11206 ---- if (c_parser_next_token_is (parser, CPP_NAME)) { const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); + if (!strcmp (p, "seq_cst")) + { + seq_cst = true; + c_parser_consume_token (parser); + if (c_parser_next_token_is (parser, CPP_COMMA) + && c_parser_peek_2nd_token (parser)->type == CPP_NAME) + c_parser_consume_token (parser); + } + } + if (c_parser_next_token_is (parser, CPP_NAME)) + { + const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); if (!strcmp (p, "read")) code = OMP_ATOMIC_READ; *************** c_parser_omp_atomic (location_t loc, c_p *** 11212,11224 **** if (p) c_parser_consume_token (parser); } ! if (c_parser_next_token_is (parser, CPP_NAME)) { ! const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); ! if (!strcmp (p, "seq_cst")) { ! seq_cst = true; ! c_parser_consume_token (parser); } } c_parser_skip_to_pragma_eol (parser); --- 11215,11235 ---- if (p) c_parser_consume_token (parser); } ! if (!seq_cst) { ! if (c_parser_next_token_is (parser, CPP_COMMA) ! && c_parser_peek_2nd_token (parser)->type == CPP_NAME) ! c_parser_consume_token (parser); ! ! if (c_parser_next_token_is (parser, CPP_NAME)) { ! const char *p ! = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value); ! if (!strcmp (p, "seq_cst")) ! { ! seq_cst = true; ! c_parser_consume_token (parser); ! } } } c_parser_skip_to_pragma_eol (parser); *************** c_parser_omp_for_loop (location_t loc, c *** 11861,11868 **** tree l = build_omp_clause (OMP_CLAUSE_LOCATION (*c), OMP_CLAUSE_LASTPRIVATE); OMP_CLAUSE_DECL (l) = OMP_CLAUSE_DECL (*c); ! OMP_CLAUSE_CHAIN (l) = clauses; ! clauses = l; OMP_CLAUSE_SET_CODE (*c, OMP_CLAUSE_SHARED); } } --- 11872,11888 ---- tree l = build_omp_clause (OMP_CLAUSE_LOCATION (*c), OMP_CLAUSE_LASTPRIVATE); OMP_CLAUSE_DECL (l) = OMP_CLAUSE_DECL (*c); ! if (code == OMP_SIMD) ! { ! OMP_CLAUSE_CHAIN (l) ! = cclauses[C_OMP_CLAUSE_SPLIT_FOR]; ! cclauses[C_OMP_CLAUSE_SPLIT_FOR] = l; ! } ! else ! { ! OMP_CLAUSE_CHAIN (l) = clauses; ! clauses = l; ! } OMP_CLAUSE_SET_CODE (*c, OMP_CLAUSE_SHARED); } } *************** c_parser_omp_parallel (location_t loc, c *** 12208,12217 **** if (!flag_openmp) /* flag_openmp_simd */ return c_parser_omp_for (loc, parser, p_name, mask, cclauses); block = c_begin_omp_parallel (); ! c_parser_omp_for (loc, parser, p_name, mask, cclauses); stmt = c_finish_omp_parallel (loc, cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL], block); OMP_PARALLEL_COMBINED (stmt) = 1; return stmt; } --- 12228,12239 ---- if (!flag_openmp) /* flag_openmp_simd */ return c_parser_omp_for (loc, parser, p_name, mask, cclauses); block = c_begin_omp_parallel (); ! tree ret = c_parser_omp_for (loc, parser, p_name, mask, cclauses); stmt = c_finish_omp_parallel (loc, cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL], block); + if (ret == NULL_TREE) + return ret; OMP_PARALLEL_COMBINED (stmt) = 1; return stmt; } *************** c_parser_array_notation (location_t loc, *** 14042,14048 **** tree value_tree = NULL_TREE, type = NULL_TREE, array_type = NULL_TREE; tree array_type_domain = NULL_TREE; ! if (array_value == error_mark_node) { /* No need to continue. If either of these 2 were true, then an error must be emitted already. Thus, no need to emit them twice. */ --- 14064,14070 ---- tree value_tree = NULL_TREE, type = NULL_TREE, array_type = NULL_TREE; tree array_type_domain = NULL_TREE; ! if (array_value == error_mark_node || initial_index == error_mark_node) { /* No need to continue. If either of these 2 were true, then an error must be emitted already. Thus, no need to emit them twice. */ diff -Nrcpad gcc-4.9.0/gcc/c/c-typeck.c gcc-4.9.1/gcc/c/c-typeck.c *** gcc-4.9.0/gcc/c/c-typeck.c Fri Mar 28 18:16:32 2014 --- gcc-4.9.1/gcc/c/c-typeck.c Mon Jun 30 16:35:48 2014 *************** c_finish_omp_clauses (tree clauses) *** 11925,11930 **** --- 11925,11933 ---- s = size_one_node; OMP_CLAUSE_LINEAR_STEP (c) = s; } + else + OMP_CLAUSE_LINEAR_STEP (c) + = fold_convert (TREE_TYPE (t), OMP_CLAUSE_LINEAR_STEP (c)); goto check_dup_generic; check_dup_generic: diff -Nrcpad gcc-4.9.0/gcc/c-family/ChangeLog gcc-4.9.1/gcc/c-family/ChangeLog *** gcc-4.9.0/gcc/c-family/ChangeLog Tue Apr 22 09:43:00 2014 --- gcc-4.9.1/gcc/c-family/ChangeLog Wed Jul 16 10:03:55 2014 *************** *** 1,3 **** --- 1,49 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-06-30 Jakub Jelinek + + Backported from mainline + 2014-06-10 Jakub Jelinek + + PR fortran/60928 + * c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK... + (omp_pragmas): ... back here. + + 2014-06-12 Jakub Jelinek + + PR middle-end/61486 + * c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in + #pragma omp target teams or + #pragma omp {,target }teams distribute simd. + + 2014-06-04 Marek Polacek + + Backport from mainline + 2014-05-08 Marek Polacek + + PR c/61053 + * c-common.c (min_align_of_type): New function factored out from... + (c_sizeof_or_alignof_type): ...here. + * c-common.h (min_align_of_type): Declare. + + 2014-05-06 Richard Biener + + * c-opts.c (c_common_post_options): For -freestanding, + -fno-hosted and -fno-builtin disable pattern recognition + if not enabled explicitely. + + 2014-04-22 Richard Biener + + Backport from mainline + 2014-04-14 Richard Biener + Marc Glisse + + PR c/60819 + * c-common.c (convert_vector_to_pointer_for_subscript): Properly + apply may-alias the scalar pointer type when applicable. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/c-family/c-common.c gcc-4.9.1/gcc/c-family/c-common.c *** gcc-4.9.0/gcc/c-family/c-common.c Fri Mar 28 18:16:32 2014 --- gcc-4.9.1/gcc/c-family/c-common.c Wed Jun 4 08:22:22 2014 *************** c_common_get_alias_set (tree t) *** 4927,4932 **** --- 4927,4952 ---- return -1; } + /* Return the least alignment required for type TYPE. */ + + unsigned int + min_align_of_type (tree type) + { + unsigned int align = TYPE_ALIGN (type); + align = MIN (align, BIGGEST_ALIGNMENT); + #ifdef BIGGEST_FIELD_ALIGNMENT + align = MIN (align, BIGGEST_FIELD_ALIGNMENT); + #endif + unsigned int field_align = align; + #ifdef ADJUST_FIELD_ALIGN + tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE, + type); + field_align = ADJUST_FIELD_ALIGN (field, field_align); + #endif + align = MIN (align, field_align); + return align / BITS_PER_UNIT; + } + /* Compute the value of 'sizeof (TYPE)' or '__alignof__ (TYPE)', where the IS_SIZEOF parameter indicates which operator is being applied. The COMPLAIN flag controls whether we should diagnose possibly *************** c_sizeof_or_alignof_type (location_t loc *** 5005,5025 **** size_int (TYPE_PRECISION (char_type_node) / BITS_PER_UNIT)); else if (min_alignof) ! { ! unsigned int align = TYPE_ALIGN (type); ! align = MIN (align, BIGGEST_ALIGNMENT); ! #ifdef BIGGEST_FIELD_ALIGNMENT ! align = MIN (align, BIGGEST_FIELD_ALIGNMENT); ! #endif ! unsigned int field_align = align; ! #ifdef ADJUST_FIELD_ALIGN ! tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE, ! type); ! field_align = ADJUST_FIELD_ALIGN (field, field_align); ! #endif ! align = MIN (align, field_align); ! value = size_int (align / BITS_PER_UNIT); ! } else value = size_int (TYPE_ALIGN_UNIT (type)); } --- 5025,5031 ---- size_int (TYPE_PRECISION (char_type_node) / BITS_PER_UNIT)); else if (min_alignof) ! value = size_int (min_align_of_type (type)); else value = size_int (TYPE_ALIGN_UNIT (type)); } *************** convert_vector_to_pointer_for_subscript *** 11770,11777 **** c_common_mark_addressable_vec (*vecp); type = build_qualified_type (TREE_TYPE (type), TYPE_QUALS (type)); - type = build_pointer_type (type); type1 = build_pointer_type (TREE_TYPE (*vecp)); *vecp = build1 (ADDR_EXPR, type1, *vecp); *vecp = convert (type, *vecp); } --- 11776,11796 ---- c_common_mark_addressable_vec (*vecp); type = build_qualified_type (TREE_TYPE (type), TYPE_QUALS (type)); type1 = build_pointer_type (TREE_TYPE (*vecp)); + bool ref_all = TYPE_REF_CAN_ALIAS_ALL (type1); + if (!ref_all + && !DECL_P (*vecp)) + { + /* If the original vector isn't declared may_alias and it + isn't a bare vector look if the subscripting would + alias the vector we subscript, and if not, force ref-all. */ + alias_set_type vecset = get_alias_set (*vecp); + alias_set_type sset = get_alias_set (type); + if (!alias_sets_must_conflict_p (sset, vecset) + && !alias_set_subset_of (sset, vecset)) + ref_all = true; + } + type = build_pointer_type_for_mode (type, ptr_mode, ref_all); *vecp = build1 (ADDR_EXPR, type1, *vecp); *vecp = convert (type, *vecp); } diff -Nrcpad gcc-4.9.0/gcc/c-family/c-common.h gcc-4.9.1/gcc/c-family/c-common.h *** gcc-4.9.0/gcc/c-family/c-common.h Wed Apr 2 10:53:41 2014 --- gcc-4.9.1/gcc/c-family/c-common.h Wed Jun 4 08:22:22 2014 *************** extern tree c_wrap_maybe_const (tree, bo *** 758,763 **** --- 758,764 ---- extern tree c_save_expr (tree); extern tree c_common_truthvalue_conversion (location_t, tree); extern void c_apply_type_quals_to_decl (int, tree); + extern unsigned int min_align_of_type (tree); extern tree c_sizeof_or_alignof_type (location_t, tree, bool, bool, int); extern tree c_alignof_expr (location_t, tree); /* Print an error message for invalid operands to arith operation CODE. diff -Nrcpad gcc-4.9.0/gcc/c-family/c-omp.c gcc-4.9.1/gcc/c-family/c-omp.c *** gcc-4.9.0/gcc/c-family/c-omp.c Wed Feb 5 21:06:56 2014 --- gcc-4.9.1/gcc/c-family/c-omp.c Thu Jun 12 21:14:15 2014 *************** c_omp_split_clauses (location_t loc, enu *** 789,796 **** else if ((mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NUM_TEAMS)) != 0) { ! /* This must be #pragma omp {,target }teams distribute. */ ! gcc_assert (code == OMP_DISTRIBUTE); s = C_OMP_CLAUSE_SPLIT_TEAMS; } else if ((mask & (OMP_CLAUSE_MASK_1 --- 789,801 ---- else if ((mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NUM_TEAMS)) != 0) { ! /* This must be one of ! #pragma omp {,target }teams distribute ! #pragma omp target teams ! #pragma omp {,target }teams distribute simd. */ ! gcc_assert (code == OMP_DISTRIBUTE ! || code == OMP_TEAMS ! || code == OMP_SIMD); s = C_OMP_CLAUSE_SPLIT_TEAMS; } else if ((mask & (OMP_CLAUSE_MASK_1 diff -Nrcpad gcc-4.9.0/gcc/c-family/c-opts.c gcc-4.9.1/gcc/c-family/c-opts.c *** gcc-4.9.0/gcc/c-family/c-opts.c Sat Mar 22 07:18:38 2014 --- gcc-4.9.1/gcc/c-family/c-opts.c Tue May 6 10:48:08 2014 *************** c_common_post_options (const char **pfil *** 851,856 **** --- 851,862 ---- if (flag_objc_exceptions && !flag_objc_sjlj_exceptions) flag_exceptions = 1; + /* If -ffreestanding, -fno-hosted or -fno-builtin then disable + pattern recognition. */ + if (!global_options_set.x_flag_tree_loop_distribute_patterns + && flag_no_builtin) + flag_tree_loop_distribute_patterns = 0; + /* -Woverlength-strings is off by default, but is enabled by -Wpedantic. It is never enabled in C++, as the minimum limit is not normative in that standard. */ diff -Nrcpad gcc-4.9.0/gcc/c-family/c-pragma.c gcc-4.9.1/gcc/c-family/c-pragma.c *** gcc-4.9.0/gcc/c-family/c-pragma.c Thu Mar 13 20:56:06 2014 --- gcc-4.9.1/gcc/c-family/c-pragma.c Mon Jun 30 16:35:48 2014 *************** static const struct omp_pragma_def omp_p *** 1188,1193 **** --- 1188,1194 ---- { "section", PRAGMA_OMP_SECTION }, { "sections", PRAGMA_OMP_SECTIONS }, { "single", PRAGMA_OMP_SINGLE }, + { "task", PRAGMA_OMP_TASK }, { "taskgroup", PRAGMA_OMP_TASKGROUP }, { "taskwait", PRAGMA_OMP_TASKWAIT }, { "taskyield", PRAGMA_OMP_TASKYIELD }, *************** static const struct omp_pragma_def omp_p *** 1200,1206 **** { "parallel", PRAGMA_OMP_PARALLEL }, { "simd", PRAGMA_OMP_SIMD }, { "target", PRAGMA_OMP_TARGET }, - { "task", PRAGMA_OMP_TASK }, { "teams", PRAGMA_OMP_TEAMS }, }; --- 1201,1206 ---- diff -Nrcpad gcc-4.9.0/gcc/cfgexpand.c gcc-4.9.1/gcc/cfgexpand.c *** gcc-4.9.0/gcc/cfgexpand.c Thu Mar 20 11:35:22 2014 --- gcc-4.9.1/gcc/cfgexpand.c Tue Apr 22 13:15:24 2014 *************** expand_stack_vars (bool (*pred) (size_t) *** 1013,1022 **** if (data->asan_base == NULL) data->asan_base = gen_reg_rtx (Pmode); base = data->asan_base; } else ! offset = alloc_stack_frame_space (stack_vars[i].size, alignb); ! base_align = crtl->max_used_stack_slot_alignment; } else { --- 1013,1031 ---- if (data->asan_base == NULL) data->asan_base = gen_reg_rtx (Pmode); base = data->asan_base; + + if (!STRICT_ALIGNMENT) + base_align = crtl->max_used_stack_slot_alignment; + else + base_align = MAX (crtl->max_used_stack_slot_alignment, + GET_MODE_ALIGNMENT (SImode) + << ASAN_SHADOW_SHIFT); } else ! { ! offset = alloc_stack_frame_space (stack_vars[i].size, alignb); ! base_align = crtl->max_used_stack_slot_alignment; ! } } else { *************** expand_used_vars (void) *** 1845,1850 **** --- 1854,1864 ---- = alloc_stack_frame_space (redzonesz, ASAN_RED_ZONE_SIZE); data.asan_vec.safe_push (prev_offset); data.asan_vec.safe_push (offset); + /* Leave space for alignment if STRICT_ALIGNMENT. */ + if (STRICT_ALIGNMENT) + alloc_stack_frame_space ((GET_MODE_ALIGNMENT (SImode) + << ASAN_SHADOW_SHIFT) + / BITS_PER_UNIT, 1); var_end_seq = asan_emit_stack_protection (virtual_stack_vars_rtx, diff -Nrcpad gcc-4.9.0/gcc/cgraph.c gcc-4.9.1/gcc/cgraph.c *** gcc-4.9.0/gcc/cgraph.c Fri Apr 4 14:11:06 2014 --- gcc-4.9.1/gcc/cgraph.c Fri Jun 20 09:57:53 2014 *************** clone_of_p (struct cgraph_node *node, st *** 2566,2576 **** skipped_thunk = true; } ! if (skipped_thunk ! && (!node2->clone_of ! || !node2->clone.args_to_skip ! || !bitmap_bit_p (node2->clone.args_to_skip, 0))) ! return false; while (node != node2 && node2) node2 = node2->clone_of; --- 2566,2581 ---- skipped_thunk = true; } ! if (skipped_thunk) ! { ! if (!node2->clone.args_to_skip ! || !bitmap_bit_p (node2->clone.args_to_skip, 0)) ! return false; ! if (node2->former_clone_of == node->decl) ! return true; ! else if (!node2->clone_of) ! return false; ! } while (node != node2 && node2) node2 = node2->clone_of; diff -Nrcpad gcc-4.9.0/gcc/cgraph.h gcc-4.9.1/gcc/cgraph.h *** gcc-4.9.0/gcc/cgraph.h Fri Apr 4 14:11:06 2014 --- gcc-4.9.1/gcc/cgraph.h Mon May 19 02:47:31 2014 *************** enum symbol_partitioning_class *** 723,728 **** --- 723,729 ---- /* In symtab.c */ void symtab_register_node (symtab_node *); void symtab_unregister_node (symtab_node *); + void symtab_remove_from_same_comdat_group (symtab_node *); void symtab_remove_node (symtab_node *); symtab_node *symtab_get_node (const_tree); symtab_node *symtab_node_for_asm (const_tree asmname); diff -Nrcpad gcc-4.9.0/gcc/cgraphclones.c gcc-4.9.1/gcc/cgraphclones.c *** gcc-4.9.0/gcc/cgraphclones.c Fri Apr 4 14:11:06 2014 --- gcc-4.9.1/gcc/cgraphclones.c Fri Jun 27 11:32:00 2014 *************** set_new_clone_decl_and_node_flags (cgrap *** 302,315 **** thunk is this_adjusting but we are removing this parameter. */ static cgraph_node * ! duplicate_thunk_for_node (cgraph_node *thunk, cgraph_node *node, ! bitmap args_to_skip) { cgraph_node *new_thunk, *thunk_of; thunk_of = cgraph_function_or_thunk_node (thunk->callees->callee); if (thunk_of->thunk.thunk_p) ! node = duplicate_thunk_for_node (thunk_of, node, args_to_skip); struct cgraph_edge *cs; for (cs = node->callers; cs; cs = cs->next_caller) --- 302,314 ---- thunk is this_adjusting but we are removing this parameter. */ static cgraph_node * ! duplicate_thunk_for_node (cgraph_node *thunk, cgraph_node *node) { cgraph_node *new_thunk, *thunk_of; thunk_of = cgraph_function_or_thunk_node (thunk->callees->callee); if (thunk_of->thunk.thunk_p) ! node = duplicate_thunk_for_node (thunk_of, node); struct cgraph_edge *cs; for (cs = node->callers; cs; cs = cs->next_caller) *************** duplicate_thunk_for_node (cgraph_node *t *** 321,337 **** return cs->caller; tree new_decl; ! if (!args_to_skip) new_decl = copy_node (thunk->decl); else { /* We do not need to duplicate this_adjusting thunks if we have removed this. */ if (thunk->thunk.this_adjusting ! && bitmap_bit_p (args_to_skip, 0)) return node; ! new_decl = build_function_decl_skip_args (thunk->decl, args_to_skip, false); } gcc_checking_assert (!DECL_STRUCT_FUNCTION (new_decl)); --- 320,337 ---- return cs->caller; tree new_decl; ! if (!node->clone.args_to_skip) new_decl = copy_node (thunk->decl); else { /* We do not need to duplicate this_adjusting thunks if we have removed this. */ if (thunk->thunk.this_adjusting ! && bitmap_bit_p (node->clone.args_to_skip, 0)) return node; ! new_decl = build_function_decl_skip_args (thunk->decl, ! node->clone.args_to_skip, false); } gcc_checking_assert (!DECL_STRUCT_FUNCTION (new_decl)); *************** duplicate_thunk_for_node (cgraph_node *t *** 349,354 **** --- 349,356 ---- new_thunk->thunk = thunk->thunk; new_thunk->unique_name = in_lto_p; new_thunk->former_clone_of = thunk->decl; + new_thunk->clone.args_to_skip = node->clone.args_to_skip; + new_thunk->clone.combined_args_to_skip = node->clone.combined_args_to_skip; struct cgraph_edge *e = cgraph_create_edge (new_thunk, node, NULL, 0, CGRAPH_FREQ_BASE); *************** duplicate_thunk_for_node (cgraph_node *t *** 365,376 **** chain. */ void ! redirect_edge_duplicating_thunks (struct cgraph_edge *e, struct cgraph_node *n, ! bitmap args_to_skip) { cgraph_node *orig_to = cgraph_function_or_thunk_node (e->callee); if (orig_to->thunk.thunk_p) ! n = duplicate_thunk_for_node (orig_to, n, args_to_skip); cgraph_redirect_edge_callee (e, n); } --- 367,377 ---- chain. */ void ! redirect_edge_duplicating_thunks (struct cgraph_edge *e, struct cgraph_node *n) { cgraph_node *orig_to = cgraph_function_or_thunk_node (e->callee); if (orig_to->thunk.thunk_p) ! n = duplicate_thunk_for_node (orig_to, n); cgraph_redirect_edge_callee (e, n); } *************** cgraph_clone_node (struct cgraph_node *n *** 423,431 **** new_node->rtl = n->rtl; new_node->count = count; new_node->frequency = n->frequency; - new_node->clone = n->clone; - new_node->clone.tree_map = NULL; new_node->tp_first_run = n->tp_first_run; if (n->count) { if (new_node->count > n->count) --- 424,444 ---- new_node->rtl = n->rtl; new_node->count = count; new_node->frequency = n->frequency; new_node->tp_first_run = n->tp_first_run; + + new_node->clone.tree_map = NULL; + new_node->clone.args_to_skip = args_to_skip; + if (!args_to_skip) + new_node->clone.combined_args_to_skip = n->clone.combined_args_to_skip; + else if (n->clone.combined_args_to_skip) + { + new_node->clone.combined_args_to_skip = BITMAP_GGC_ALLOC (); + bitmap_ior (new_node->clone.combined_args_to_skip, + n->clone.combined_args_to_skip, args_to_skip); + } + else + new_node->clone.combined_args_to_skip = args_to_skip; + if (n->count) { if (new_node->count > n->count) *************** cgraph_clone_node (struct cgraph_node *n *** 450,459 **** if (!e->callee || DECL_BUILT_IN_CLASS (e->callee->decl) != BUILT_IN_NORMAL || DECL_FUNCTION_CODE (e->callee->decl) != BUILT_IN_UNREACHABLE) ! redirect_edge_duplicating_thunks (e, new_node, args_to_skip); } - for (e = n->callees;e; e=e->next_callee) cgraph_clone_edge (e, new_node, e->call_stmt, e->lto_stmt_uid, count_scale, freq, update_original); --- 463,471 ---- if (!e->callee || DECL_BUILT_IN_CLASS (e->callee->decl) != BUILT_IN_NORMAL || DECL_FUNCTION_CODE (e->callee->decl) != BUILT_IN_UNREACHABLE) ! redirect_edge_duplicating_thunks (e, new_node); } for (e = n->callees;e; e=e->next_callee) cgraph_clone_edge (e, new_node, e->call_stmt, e->lto_stmt_uid, count_scale, freq, update_original); *************** cgraph_create_virtual_clone (struct cgra *** 562,568 **** DECL_SECTION_NAME (new_node->decl) = NULL; set_new_clone_decl_and_node_flags (new_node); new_node->clone.tree_map = tree_map; - new_node->clone.args_to_skip = args_to_skip; /* Clones of global symbols or symbols with unique names are unique. */ if ((TREE_PUBLIC (old_decl) --- 574,579 ---- *************** cgraph_create_virtual_clone (struct cgra *** 574,605 **** FOR_EACH_VEC_SAFE_ELT (tree_map, i, map) ipa_maybe_record_reference (new_node, map->new_tree, IPA_REF_ADDR, NULL); - if (!args_to_skip) - new_node->clone.combined_args_to_skip = old_node->clone.combined_args_to_skip; - else if (old_node->clone.combined_args_to_skip) - { - int newi = 0, oldi = 0; - tree arg; - bitmap new_args_to_skip = BITMAP_GGC_ALLOC (); - struct cgraph_node *orig_node; - for (orig_node = old_node; orig_node->clone_of; orig_node = orig_node->clone_of) - ; - for (arg = DECL_ARGUMENTS (orig_node->decl); - arg; arg = DECL_CHAIN (arg), oldi++) - { - if (bitmap_bit_p (old_node->clone.combined_args_to_skip, oldi)) - { - bitmap_set_bit (new_args_to_skip, oldi); - continue; - } - if (bitmap_bit_p (args_to_skip, newi)) - bitmap_set_bit (new_args_to_skip, oldi); - newi++; - } - new_node->clone.combined_args_to_skip = new_args_to_skip; - } - else - new_node->clone.combined_args_to_skip = args_to_skip; cgraph_call_node_duplication_hooks (old_node, new_node); --- 585,590 ---- diff -Nrcpad gcc-4.9.0/gcc/cgraphunit.c gcc-4.9.1/gcc/cgraphunit.c *** gcc-4.9.0/gcc/cgraphunit.c Thu Jan 30 14:18:15 2014 --- gcc-4.9.1/gcc/cgraphunit.c Fri Jul 4 08:39:31 2014 *************** expand_thunk (struct cgraph_node *node, *** 1680,1685 **** --- 1680,1686 ---- #ifdef ENABLE_CHECKING verify_flow_info (); #endif + free_dominance_info (CDI_DOMINATORS); /* Since we want to emit the thunk, we explicitly mark its name as referenced. */ diff -Nrcpad gcc-4.9.0/gcc/combine.c gcc-4.9.1/gcc/combine.c *** gcc-4.9.0/gcc/combine.c Tue Mar 25 09:28:33 2014 --- gcc-4.9.1/gcc/combine.c Tue Jul 8 15:43:39 2014 *************** simplify_comparison (enum rtx_code code, *** 11987,11993 **** = (unsigned HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (mode) - 1); op0 = simplify_gen_binary (AND, tmode, gen_lowpart (tmode, op0), ! gen_int_mode (sign, mode)); code = (code == LT) ? NE : EQ; break; } --- 11987,11993 ---- = (unsigned HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (mode) - 1); op0 = simplify_gen_binary (AND, tmode, gen_lowpart (tmode, op0), ! gen_int_mode (sign, tmode)); code = (code == LT) ? NE : EQ; break; } diff -Nrcpad gcc-4.9.0/gcc/common/config/msp430/msp430-common.c gcc-4.9.1/gcc/common/config/msp430/msp430-common.c *** gcc-4.9.0/gcc/common/config/msp430/msp430-common.c Thu Jan 1 00:00:00 1970 --- gcc-4.9.1/gcc/common/config/msp430/msp430-common.c Wed Apr 23 10:38:30 2014 *************** *** 0 **** --- 1,91 ---- + /* Common hooks for Texas Instruments MSP430. + Copyright (C) 2014 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + + #include "config.h" + #include "system.h" + #include "coretypes.h" + #include "diagnostic-core.h" + #include "tm.h" + #include "common/common-target.h" + #include "common/common-target-def.h" + #include "opts.h" + #include "flags.h" + + /* Handle -mcpu= and -mmcu= here. We want to ensure that only one + of these two options - the last specified on the command line - + is passed on to the msp430 backend. */ + + static bool + msp430_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED, + struct gcc_options *opts_set ATTRIBUTE_UNUSED, + const struct cl_decoded_option *decoded, + location_t loc ATTRIBUTE_UNUSED) + { + switch (decoded->opt_index) + { + case OPT_mcpu_: + if (strcasecmp (decoded->arg, "msp430x") == 0 + || strcasecmp (decoded->arg, "msp430xv2") == 0 + || strcasecmp (decoded->arg, "430x") == 0 + || strcasecmp (decoded->arg, "430xv2") == 0) + { + target_cpu = "msp430x"; + target_mcu = NULL; + } + else if (strcasecmp (decoded->arg, "msp430") == 0 + || strcasecmp (decoded->arg, "430") == 0) + { + target_cpu = "msp430"; + target_mcu = NULL; + } + else + { + error ("unrecognised argument of -mcpu: %s", decoded->arg); + return false; + } + break; + + case OPT_mmcu_: + /* For backwards compatibility we recognise two generic MCU + 430X names. However we want to be able to generate special C + preprocessor defines for them, which is why we set target_mcu + to NULL. */ + if (strcasecmp (decoded->arg, "msp430") == 0) + { + target_cpu = "msp430"; + target_mcu = NULL; + } + else if (strcasecmp (decoded->arg, "msp430x") == 0 + || strcasecmp (decoded->arg, "msp430xv2") == 0) + { + target_cpu = "msp430x"; + target_mcu = NULL; + } + else + target_cpu = NULL; + break; + } + + return true; + } + + #undef TARGET_HANDLE_OPTION + #define TARGET_HANDLE_OPTION msp430_handle_option + + struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/aarch64-modes.def gcc-4.9.1/gcc/config/aarch64/aarch64-modes.def *** gcc-4.9.0/gcc/config/aarch64/aarch64-modes.def Fri Jan 10 15:12:03 2014 --- gcc-4.9.1/gcc/config/aarch64/aarch64-modes.def Tue Jul 8 10:32:57 2014 *************** VECTOR_MODES (INT, 8); /* V *** 31,36 **** --- 31,37 ---- VECTOR_MODES (INT, 16); /* V16QI V8HI V4SI V2DI. */ VECTOR_MODES (FLOAT, 8); /* V2SF. */ VECTOR_MODES (FLOAT, 16); /* V4SF V2DF. */ + VECTOR_MODE (FLOAT, DF, 1); /* V1DF. */ /* Oct Int: 256-bit integer mode needed for 32-byte vector arguments. */ INT_MODE (OI, 32); diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/aarch64-simd.md gcc-4.9.1/gcc/config/aarch64/aarch64-simd.md *** gcc-4.9.0/gcc/config/aarch64/aarch64-simd.md Fri Mar 28 17:22:47 2014 --- gcc-4.9.1/gcc/config/aarch64/aarch64-simd.md Tue Jul 8 13:22:04 2014 *************** *** 934,947 **** [(set_attr "type" "neon_minmax")] ) ! ;; Move into low-half clearing high half to 0. ! (define_insn "move_lo_quad_" [(set (match_operand:VQ 0 "register_operand" "=w,w,w") (vec_concat:VQ (match_operand: 1 "register_operand" "w,r,r") (vec_duplicate: (const_int 0))))] ! "TARGET_SIMD" "@ dup\\t%d0, %1.d[0] fmov\\t%d0, %1 --- 934,955 ---- [(set_attr "type" "neon_minmax")] ) ! ;; vec_concat gives a new vector with the low elements from operand 1, and ! ;; the high elements from operand 2. That is to say, given op1 = { a, b } ! ;; op2 = { c, d }, vec_concat (op1, op2) = { a, b, c, d }. ! ;; What that means, is that the RTL descriptions of the below patterns ! ;; need to change depending on endianness. ! ;; Move to the low architectural bits of the register. ! ;; On little-endian this is { operand, zeroes } ! ;; On big-endian this is { zeroes, operand } ! ! (define_insn "move_lo_quad_internal_" [(set (match_operand:VQ 0 "register_operand" "=w,w,w") (vec_concat:VQ (match_operand: 1 "register_operand" "w,r,r") (vec_duplicate: (const_int 0))))] ! "TARGET_SIMD && !BYTES_BIG_ENDIAN" "@ dup\\t%d0, %1.d[0] fmov\\t%d0, %1 *************** *** 952,958 **** (set_attr "length" "4")] ) ! ;; Move into high-half. (define_insn "aarch64_simd_move_hi_quad_" [(set (match_operand:VQ 0 "register_operand" "+w,w") --- 960,998 ---- (set_attr "length" "4")] ) ! (define_insn "move_lo_quad_internal_be_" ! [(set (match_operand:VQ 0 "register_operand" "=w,w,w") ! (vec_concat:VQ ! (vec_duplicate: (const_int 0)) ! (match_operand: 1 "register_operand" "w,r,r")))] ! "TARGET_SIMD && BYTES_BIG_ENDIAN" ! "@ ! dup\\t%d0, %1.d[0] ! fmov\\t%d0, %1 ! dup\\t%d0, %1" ! [(set_attr "type" "neon_dup,f_mcr,neon_dup") ! (set_attr "simd" "yes,*,yes") ! (set_attr "fp" "*,yes,*") ! (set_attr "length" "4")] ! ) ! ! (define_expand "move_lo_quad_" ! [(match_operand:VQ 0 "register_operand") ! (match_operand:VQ 1 "register_operand")] ! "TARGET_SIMD" ! { ! if (BYTES_BIG_ENDIAN) ! emit_insn (gen_move_lo_quad_internal_be_ (operands[0], operands[1])); ! else ! emit_insn (gen_move_lo_quad_internal_ (operands[0], operands[1])); ! DONE; ! } ! ) ! ! ;; Move operand1 to the high architectural bits of the register, keeping ! ;; the low architectural bits of operand2. ! ;; For little-endian this is { operand2, operand1 } ! ;; For big-endian this is { operand1, operand2 } (define_insn "aarch64_simd_move_hi_quad_" [(set (match_operand:VQ 0 "register_operand" "+w,w") *************** *** 961,972 **** (match_dup 0) (match_operand:VQ 2 "vect_par_cnst_lo_half" "")) (match_operand: 1 "register_operand" "w,r")))] ! "TARGET_SIMD" "@ ins\\t%0.d[1], %1.d[0] ins\\t%0.d[1], %1" ! [(set_attr "type" "neon_ins") ! (set_attr "length" "4")] ) (define_expand "move_hi_quad_" --- 1001,1025 ---- (match_dup 0) (match_operand:VQ 2 "vect_par_cnst_lo_half" "")) (match_operand: 1 "register_operand" "w,r")))] ! "TARGET_SIMD && !BYTES_BIG_ENDIAN" "@ ins\\t%0.d[1], %1.d[0] ins\\t%0.d[1], %1" ! [(set_attr "type" "neon_ins")] ! ) ! ! (define_insn "aarch64_simd_move_hi_quad_be_" ! [(set (match_operand:VQ 0 "register_operand" "+w,w") ! (vec_concat:VQ ! (match_operand: 1 "register_operand" "w,r") ! (vec_select: ! (match_dup 0) ! (match_operand:VQ 2 "vect_par_cnst_hi_half" ""))))] ! "TARGET_SIMD && BYTES_BIG_ENDIAN" ! "@ ! ins\\t%0.d[1], %1.d[0] ! ins\\t%0.d[1], %1" ! [(set_attr "type" "neon_ins")] ) (define_expand "move_hi_quad_" *************** *** 974,982 **** (match_operand: 1 "register_operand" "")] "TARGET_SIMD" { ! rtx p = aarch64_simd_vect_par_cnst_half (mode, false); ! emit_insn (gen_aarch64_simd_move_hi_quad_ (operands[0], ! operands[1], p)); DONE; }) --- 1027,1039 ---- (match_operand: 1 "register_operand" "")] "TARGET_SIMD" { ! rtx p = aarch64_simd_vect_par_cnst_half (mode, BYTES_BIG_ENDIAN); ! if (BYTES_BIG_ENDIAN) ! emit_insn (gen_aarch64_simd_move_hi_quad_be_ (operands[0], ! operands[1], p)); ! else ! emit_insn (gen_aarch64_simd_move_hi_quad_ (operands[0], ! operands[1], p)); DONE; }) *************** *** 2321,2332 **** (vec_concat: (match_operand:VDIC 1 "register_operand" "w") (match_operand:VDIC 2 "aarch64_simd_imm_zero" "Dz")))] ! "TARGET_SIMD" "mov\\t%0.8b, %1.8b" [(set_attr "type" "neon_move")] ) ! (define_insn_and_split "aarch64_combine" [(set (match_operand: 0 "register_operand" "=&w") (vec_concat: (match_operand:VDC 1 "register_operand" "w") (match_operand:VDC 2 "register_operand" "w")))] --- 2378,2421 ---- (vec_concat: (match_operand:VDIC 1 "register_operand" "w") (match_operand:VDIC 2 "aarch64_simd_imm_zero" "Dz")))] ! "TARGET_SIMD && !BYTES_BIG_ENDIAN" "mov\\t%0.8b, %1.8b" [(set_attr "type" "neon_move")] ) ! (define_insn "*aarch64_combinez_be" ! [(set (match_operand: 0 "register_operand" "=&w") ! (vec_concat: ! (match_operand:VDIC 2 "aarch64_simd_imm_zero" "Dz") ! (match_operand:VDIC 1 "register_operand" "w")))] ! "TARGET_SIMD && BYTES_BIG_ENDIAN" ! "mov\\t%0.8b, %1.8b" ! [(set_attr "type" "neon_move")] ! ) ! ! (define_expand "aarch64_combine" ! [(match_operand: 0 "register_operand") ! (match_operand:VDC 1 "register_operand") ! (match_operand:VDC 2 "register_operand")] ! "TARGET_SIMD" ! { ! rtx op1, op2; ! if (BYTES_BIG_ENDIAN) ! { ! op1 = operands[2]; ! op2 = operands[1]; ! } ! else ! { ! op1 = operands[1]; ! op2 = operands[2]; ! } ! emit_insn (gen_aarch64_combine_internal (operands[0], op1, op2)); ! DONE; ! } ! ) ! ! (define_insn_and_split "aarch64_combine_internal" [(set (match_operand: 0 "register_operand" "=&w") (vec_concat: (match_operand:VDC 1 "register_operand" "w") (match_operand:VDC 2 "register_operand" "w")))] *************** *** 2335,2350 **** "&& reload_completed" [(const_int 0)] { ! aarch64_split_simd_combine (operands[0], operands[1], operands[2]); DONE; } [(set_attr "type" "multiple")] ) (define_expand "aarch64_simd_combine" ! [(set (match_operand: 0 "register_operand" "=&w") ! (vec_concat: (match_operand:VDC 1 "register_operand" "w") ! (match_operand:VDC 2 "register_operand" "w")))] "TARGET_SIMD" { emit_insn (gen_move_lo_quad_ (operands[0], operands[1])); --- 2424,2442 ---- "&& reload_completed" [(const_int 0)] { ! if (BYTES_BIG_ENDIAN) ! aarch64_split_simd_combine (operands[0], operands[2], operands[1]); ! else ! aarch64_split_simd_combine (operands[0], operands[1], operands[2]); DONE; } [(set_attr "type" "multiple")] ) (define_expand "aarch64_simd_combine" ! [(match_operand: 0 "register_operand") ! (match_operand:VDC 1 "register_operand") ! (match_operand:VDC 2 "register_operand")] "TARGET_SIMD" { emit_insn (gen_move_lo_quad_ (operands[0], operands[1])); *************** *** 2633,2639 **** ;; sqdmulh_lane ! (define_insn "aarch64_sqdmulh_lane" [(set (match_operand:VDQHS 0 "register_operand" "=w") (unspec:VDQHS [(match_operand:VDQHS 1 "register_operand" "w") --- 2725,2765 ---- ;; sqdmulh_lane ! (define_expand "aarch64_sqdmulh_lane" ! [(match_operand:VDQHS 0 "register_operand" "") ! (match_operand:VDQHS 1 "register_operand" "") ! (match_operand: 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")] ! "TARGET_SIMD" ! { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqdmulh_lane_internal (operands[0], ! operands[1], ! operands[2], ! operands[3])); ! DONE; ! } ! ) ! ! (define_expand "aarch64_sqrdmulh_lane" ! [(match_operand:VDQHS 0 "register_operand" "") ! (match_operand:VDQHS 1 "register_operand" "") ! (match_operand: 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")] ! "TARGET_SIMD" ! { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqrdmulh_lane_internal (operands[0], ! operands[1], ! operands[2], ! operands[3])); ! DONE; ! } ! ) ! ! (define_insn "aarch64_sqdmulh_lane_internal" [(set (match_operand:VDQHS 0 "register_operand" "=w") (unspec:VDQHS [(match_operand:VDQHS 1 "register_operand" "w") *************** *** 2649,2655 **** [(set_attr "type" "neon_sat_mul__scalar")] ) ! (define_insn "aarch64_sqdmulh_laneq" [(set (match_operand:VDQHS 0 "register_operand" "=w") (unspec:VDQHS [(match_operand:VDQHS 1 "register_operand" "w") --- 2775,2815 ---- [(set_attr "type" "neon_sat_mul__scalar")] ) ! (define_expand "aarch64_sqdmulh_laneq" ! [(match_operand:VDQHS 0 "register_operand" "") ! (match_operand:VDQHS 1 "register_operand" "") ! (match_operand: 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")] ! "TARGET_SIMD" ! { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqdmulh_laneq_internal (operands[0], ! operands[1], ! operands[2], ! operands[3])); ! DONE; ! } ! ) ! ! (define_expand "aarch64_sqrdmulh_laneq" ! [(match_operand:VDQHS 0 "register_operand" "") ! (match_operand:VDQHS 1 "register_operand" "") ! (match_operand: 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")] ! "TARGET_SIMD" ! { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqrdmulh_laneq_internal (operands[0], ! operands[1], ! operands[2], ! operands[3])); ! DONE; ! } ! ) ! ! (define_insn "aarch64_sqdmulh_laneq_internal" [(set (match_operand:VDQHS 0 "register_operand" "=w") (unspec:VDQHS [(match_operand:VDQHS 1 "register_operand" "w") *************** *** 2659,2682 **** VQDMULH))] "TARGET_SIMD" "* - aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); return \"sqdmulh\\t%0., %1., %2.[%3]\";" [(set_attr "type" "neon_sat_mul__scalar")] ) ! (define_insn "aarch64_sqdmulh_lane" [(set (match_operand:SD_HSI 0 "register_operand" "=w") (unspec:SD_HSI [(match_operand:SD_HSI 1 "register_operand" "w") (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")]))] VQDMULH))] "TARGET_SIMD" "* ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); return \"sqdmulh\\t%0, %1, %2.[%3]\";" [(set_attr "type" "neon_sat_mul__scalar")] ) --- 2819,2874 ---- VQDMULH))] "TARGET_SIMD" "* operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); return \"sqdmulh\\t%0., %1., %2.[%3]\";" [(set_attr "type" "neon_sat_mul__scalar")] ) ! (define_expand "aarch64_sqdmulh_lane" ! [(match_operand:SD_HSI 0 "register_operand" "") ! (match_operand:SD_HSI 1 "register_operand" "") ! (match_operand: 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")] ! "TARGET_SIMD" ! { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqdmulh_lane_internal (operands[0], ! operands[1], ! operands[2], ! operands[3])); ! DONE; ! } ! ) ! ! (define_expand "aarch64_sqrdmulh_lane" ! [(match_operand:SD_HSI 0 "register_operand" "") ! (match_operand:SD_HSI 1 "register_operand" "") ! (match_operand: 2 "register_operand" "") ! (match_operand:SI 3 "immediate_operand" "")] ! "TARGET_SIMD" ! { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqrdmulh_lane_internal (operands[0], ! operands[1], ! operands[2], ! operands[3])); ! DONE; ! } ! ) ! ! (define_insn "aarch64_sqdmulh_lane_internal" [(set (match_operand:SD_HSI 0 "register_operand" "=w") (unspec:SD_HSI [(match_operand:SD_HSI 1 "register_operand" "w") (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")]))] VQDMULH))] "TARGET_SIMD" "* ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); return \"sqdmulh\\t%0, %1, %2.[%3]\";" [(set_attr "type" "neon_sat_mul__scalar")] ) *************** *** 2712,2718 **** (sign_extend: (vec_duplicate:VD_HSI (vec_select: ! (match_operand: 3 "register_operand" "") (parallel [(match_operand:SI 4 "immediate_operand" "i")]))) )) (const_int 1))))] --- 2904,2934 ---- (sign_extend: (vec_duplicate:VD_HSI (vec_select: ! (match_operand: 3 "register_operand" "") ! (parallel [(match_operand:SI 4 "immediate_operand" "i")]))) ! )) ! (const_int 1))))] ! "TARGET_SIMD" ! { ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! return ! "sqdmll\\t%0, %2, %3.[%4]"; ! } ! [(set_attr "type" "neon_sat_mla__scalar_long")] ! ) ! ! (define_insn "aarch64_sqdmll_laneq_internal" ! [(set (match_operand: 0 "register_operand" "=w") ! (SBINQOPS: ! (match_operand: 1 "register_operand" "0") ! (ss_ashift: ! (mult: ! (sign_extend: ! (match_operand:VD_HSI 2 "register_operand" "w")) ! (sign_extend: ! (vec_duplicate:VD_HSI ! (vec_select: ! (match_operand: 3 "register_operand" "") (parallel [(match_operand:SI 4 "immediate_operand" "i")]))) )) (const_int 1))))] *************** *** 2735,2741 **** (match_operand:SD_HSI 2 "register_operand" "w")) (sign_extend: (vec_select: ! (match_operand: 3 "register_operand" "") (parallel [(match_operand:SI 4 "immediate_operand" "i")]))) ) (const_int 1))))] --- 2951,2980 ---- (match_operand:SD_HSI 2 "register_operand" "w")) (sign_extend: (vec_select: ! (match_operand: 3 "register_operand" "") ! (parallel [(match_operand:SI 4 "immediate_operand" "i")]))) ! ) ! (const_int 1))))] ! "TARGET_SIMD" ! { ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! return ! "sqdmll\\t%0, %2, %3.[%4]"; ! } ! [(set_attr "type" "neon_sat_mla__scalar_long")] ! ) ! ! (define_insn "aarch64_sqdmll_laneq_internal" ! [(set (match_operand: 0 "register_operand" "=w") ! (SBINQOPS: ! (match_operand: 1 "register_operand" "0") ! (ss_ashift: ! (mult: ! (sign_extend: ! (match_operand:SD_HSI 2 "register_operand" "w")) ! (sign_extend: ! (vec_select: ! (match_operand: 3 "register_operand" "") (parallel [(match_operand:SI 4 "immediate_operand" "i")]))) ) (const_int 1))))] *************** *** 2752,2762 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode) / 2); emit_insn (gen_aarch64_sqdmlal_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); --- 2991,3002 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); emit_insn (gen_aarch64_sqdmlal_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); *************** *** 2767,2778 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! emit_insn (gen_aarch64_sqdmlal_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); DONE; --- 3007,3019 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! emit_insn (gen_aarch64_sqdmlal_laneq_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); DONE; *************** *** 2782,2792 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode) / 2); emit_insn (gen_aarch64_sqdmlsl_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); --- 3023,3034 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); emit_insn (gen_aarch64_sqdmlsl_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); *************** *** 2797,2808 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! emit_insn (gen_aarch64_sqdmlsl_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); DONE; --- 3039,3051 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "0") (match_operand:VSD_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! emit_insn (gen_aarch64_sqdmlsl_laneq_internal (operands[0], operands[1], operands[2], operands[3], operands[4])); DONE; *************** *** 2890,2896 **** (sign_extend: (vec_duplicate: (vec_select: ! (match_operand: 3 "register_operand" "") (parallel [(match_operand:SI 4 "immediate_operand" "i")]) )))) (const_int 1))))] --- 3133,3165 ---- (sign_extend: (vec_duplicate: (vec_select: ! (match_operand: 3 "register_operand" "") ! (parallel [(match_operand:SI 4 "immediate_operand" "i")]) ! )))) ! (const_int 1))))] ! "TARGET_SIMD" ! { ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! return ! "sqdmll2\\t%0, %2, %3.[%4]"; ! } ! [(set_attr "type" "neon_sat_mla__scalar_long")] ! ) ! ! (define_insn "aarch64_sqdmll2_laneq_internal" ! [(set (match_operand: 0 "register_operand" "=w") ! (SBINQOPS: ! (match_operand: 1 "register_operand" "0") ! (ss_ashift: ! (mult: ! (sign_extend: ! (vec_select: ! (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand:VQ_HSI 5 "vect_par_cnst_hi_half" ""))) ! (sign_extend: ! (vec_duplicate: ! (vec_select: ! (match_operand: 3 "register_operand" "") (parallel [(match_operand:SI 4 "immediate_operand" "i")]) )))) (const_int 1))))] *************** *** 2907,2918 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode) / 2); emit_insn (gen_aarch64_sqdmlal2_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); --- 3176,3188 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); emit_insn (gen_aarch64_sqdmlal2_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); *************** *** 2923,2935 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! emit_insn (gen_aarch64_sqdmlal2_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); DONE; --- 3193,3206 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! emit_insn (gen_aarch64_sqdmlal2_laneq_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); DONE; *************** *** 2939,2950 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode) / 2); emit_insn (gen_aarch64_sqdmlsl2_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); --- 3210,3222 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); emit_insn (gen_aarch64_sqdmlsl2_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); *************** *** 2955,2967 **** [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! emit_insn (gen_aarch64_sqdmlsl2_lane_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); DONE; --- 3227,3240 ---- [(match_operand: 0 "register_operand" "=w") (match_operand: 1 "register_operand" "w") (match_operand:VQ_HSI 2 "register_operand" "w") ! (match_operand: 3 "register_operand" "") (match_operand:SI 4 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[4], 0, GET_MODE_NUNITS (mode)); ! operands[4] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[4]))); ! emit_insn (gen_aarch64_sqdmlsl2_laneq_internal (operands[0], operands[1], operands[2], operands[3], operands[4], p)); DONE; *************** *** 3041,3047 **** (sign_extend: (vec_duplicate:VD_HSI (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")]))) )) (const_int 1)))] --- 3314,3341 ---- (sign_extend: (vec_duplicate:VD_HSI (vec_select: ! (match_operand: 2 "register_operand" "") ! (parallel [(match_operand:SI 3 "immediate_operand" "i")]))) ! )) ! (const_int 1)))] ! "TARGET_SIMD" ! { ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! return "sqdmull\\t%0, %1, %2.[%3]"; ! } ! [(set_attr "type" "neon_sat_mul__scalar_long")] ! ) ! ! (define_insn "aarch64_sqdmull_laneq_internal" ! [(set (match_operand: 0 "register_operand" "=w") ! (ss_ashift: ! (mult: ! (sign_extend: ! (match_operand:VD_HSI 1 "register_operand" "w")) ! (sign_extend: ! (vec_duplicate:VD_HSI ! (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")]))) )) (const_int 1)))] *************** *** 3061,3067 **** (match_operand:SD_HSI 1 "register_operand" "w")) (sign_extend: (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")])) )) (const_int 1)))] --- 3355,3381 ---- (match_operand:SD_HSI 1 "register_operand" "w")) (sign_extend: (vec_select: ! (match_operand: 2 "register_operand" "") ! (parallel [(match_operand:SI 3 "immediate_operand" "i")])) ! )) ! (const_int 1)))] ! "TARGET_SIMD" ! { ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! return "sqdmull\\t%0, %1, %2.[%3]"; ! } ! [(set_attr "type" "neon_sat_mul__scalar_long")] ! ) ! ! (define_insn "aarch64_sqdmull_laneq_internal" ! [(set (match_operand: 0 "register_operand" "=w") ! (ss_ashift: ! (mult: ! (sign_extend: ! (match_operand:SD_HSI 1 "register_operand" "w")) ! (sign_extend: ! (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")])) )) (const_int 1)))] *************** *** 3076,3086 **** (define_expand "aarch64_sqdmull_lane" [(match_operand: 0 "register_operand" "=w") (match_operand:VSD_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode) / 2); emit_insn (gen_aarch64_sqdmull_lane_internal (operands[0], operands[1], operands[2], operands[3])); DONE; --- 3390,3401 ---- (define_expand "aarch64_sqdmull_lane" [(match_operand: 0 "register_operand" "=w") (match_operand:VSD_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); emit_insn (gen_aarch64_sqdmull_lane_internal (operands[0], operands[1], operands[2], operands[3])); DONE; *************** *** 3089,3100 **** (define_expand "aarch64_sqdmull_laneq" [(match_operand: 0 "register_operand" "=w") (match_operand:VD_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! emit_insn (gen_aarch64_sqdmull_lane_internal (operands[0], operands[1], operands[2], operands[3])); DONE; }) --- 3404,3416 ---- (define_expand "aarch64_sqdmull_laneq" [(match_operand: 0 "register_operand" "=w") (match_operand:VD_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqdmull_laneq_internal (operands[0], operands[1], operands[2], operands[3])); DONE; }) *************** *** 3143,3149 **** (define_expand "aarch64_sqdmull2" [(match_operand: 0 "register_operand" "=w") (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "w")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); --- 3459,3465 ---- (define_expand "aarch64_sqdmull2" [(match_operand: 0 "register_operand" "=w") (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand:VQ_HSI 2 "register_operand" "w")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); *************** *** 3165,3171 **** (sign_extend: (vec_duplicate: (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")]))) )) (const_int 1)))] --- 3481,3510 ---- (sign_extend: (vec_duplicate: (vec_select: ! (match_operand: 2 "register_operand" "") ! (parallel [(match_operand:SI 3 "immediate_operand" "i")]))) ! )) ! (const_int 1)))] ! "TARGET_SIMD" ! { ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! return "sqdmull2\\t%0, %1, %2.[%3]"; ! } ! [(set_attr "type" "neon_sat_mul__scalar_long")] ! ) ! ! (define_insn "aarch64_sqdmull2_laneq_internal" ! [(set (match_operand: 0 "register_operand" "=w") ! (ss_ashift: ! (mult: ! (sign_extend: ! (vec_select: ! (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand:VQ_HSI 4 "vect_par_cnst_hi_half" ""))) ! (sign_extend: ! (vec_duplicate: ! (vec_select: ! (match_operand: 2 "register_operand" "") (parallel [(match_operand:SI 3 "immediate_operand" "i")]))) )) (const_int 1)))] *************** *** 3180,3191 **** (define_expand "aarch64_sqdmull2_lane" [(match_operand: 0 "register_operand" "=w") (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode) / 2); emit_insn (gen_aarch64_sqdmull2_lane_internal (operands[0], operands[1], operands[2], operands[3], p)); --- 3519,3531 ---- (define_expand "aarch64_sqdmull2_lane" [(match_operand: 0 "register_operand" "=w") (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); emit_insn (gen_aarch64_sqdmull2_lane_internal (operands[0], operands[1], operands[2], operands[3], p)); *************** *** 3195,3207 **** (define_expand "aarch64_sqdmull2_laneq" [(match_operand: 0 "register_operand" "=w") (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! emit_insn (gen_aarch64_sqdmull2_lane_internal (operands[0], operands[1], operands[2], operands[3], p)); DONE; --- 3535,3548 ---- (define_expand "aarch64_sqdmull2_laneq" [(match_operand: 0 "register_operand" "=w") (match_operand:VQ_HSI 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "") (match_operand:SI 3 "immediate_operand" "i")] "TARGET_SIMD" { rtx p = aarch64_simd_vect_par_cnst_half (mode, true); ! aarch64_simd_lane_bounds (operands[3], 0, GET_MODE_NUNITS (mode)); ! operands[3] = GEN_INT (ENDIAN_LANE_N (mode, INTVAL (operands[3]))); ! emit_insn (gen_aarch64_sqdmull2_laneq_internal (operands[0], operands[1], operands[2], operands[3], p)); DONE; diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/aarch64.c gcc-4.9.1/gcc/config/aarch64/aarch64.c *** gcc-4.9.0/gcc/config/aarch64/aarch64.c Fri Apr 18 15:54:16 2014 --- gcc-4.9.1/gcc/config/aarch64/aarch64.c Tue Jul 8 10:32:57 2014 *************** aarch64_layout_arg (cumulative_args_t pc *** 1405,1410 **** --- 1405,1411 ---- CUMULATIVE_ARGS *pcum = get_cumulative_args (pcum_v); int ncrn, nvrn, nregs; bool allocate_ncrn, allocate_nvrn; + HOST_WIDE_INT size; /* We need to do this once per argument. */ if (pcum->aapcs_arg_processed) *************** aarch64_layout_arg (cumulative_args_t pc *** 1412,1417 **** --- 1413,1423 ---- pcum->aapcs_arg_processed = true; + /* Size in bytes, rounded to the nearest multiple of 8 bytes. */ + size + = AARCH64_ROUND_UP (type ? int_size_in_bytes (type) : GET_MODE_SIZE (mode), + UNITS_PER_WORD); + allocate_ncrn = (type) ? !(FLOAT_TYPE_P (type)) : !FLOAT_MODE_P (mode); allocate_nvrn = aarch64_vfp_is_call_candidate (pcum_v, mode, *************** aarch64_layout_arg (cumulative_args_t pc *** 1462,1470 **** } ncrn = pcum->aapcs_ncrn; ! nregs = ((type ? int_size_in_bytes (type) : GET_MODE_SIZE (mode)) ! + UNITS_PER_WORD - 1) / UNITS_PER_WORD; ! /* C6 - C9. though the sign and zero extension semantics are handled elsewhere. This is the case where the argument fits --- 1468,1474 ---- } ncrn = pcum->aapcs_ncrn; ! nregs = size / UNITS_PER_WORD; /* C6 - C9. though the sign and zero extension semantics are handled elsewhere. This is the case where the argument fits *************** aarch64_layout_arg (cumulative_args_t pc *** 1513,1525 **** pcum->aapcs_nextncrn = NUM_ARG_REGS; /* The argument is passed on stack; record the needed number of words for ! this argument (we can re-use NREGS) and align the total size if ! necessary. */ on_stack: ! pcum->aapcs_stack_words = nregs; if (aarch64_function_arg_alignment (mode, type) == 16 * BITS_PER_UNIT) pcum->aapcs_stack_size = AARCH64_ROUND_UP (pcum->aapcs_stack_size, ! 16 / UNITS_PER_WORD) + 1; return; } --- 1517,1528 ---- pcum->aapcs_nextncrn = NUM_ARG_REGS; /* The argument is passed on stack; record the needed number of words for ! this argument and align the total size if necessary. */ on_stack: ! pcum->aapcs_stack_words = size / UNITS_PER_WORD; if (aarch64_function_arg_alignment (mode, type) == 16 * BITS_PER_UNIT) pcum->aapcs_stack_size = AARCH64_ROUND_UP (pcum->aapcs_stack_size, ! 16 / UNITS_PER_WORD); return; } *************** aarch64_vector_mode_supported_p (enum ma *** 6304,6310 **** || mode == V16QImode || mode == V2DImode || mode == V2SImode || mode == V4HImode || mode == V8QImode || mode == V2SFmode ! || mode == V4SFmode || mode == V2DFmode)) return true; return false; --- 6307,6314 ---- || mode == V16QImode || mode == V2DImode || mode == V2SImode || mode == V4HImode || mode == V8QImode || mode == V2SFmode ! || mode == V4SFmode || mode == V2DFmode ! || mode == V1DFmode)) return true; return false; diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/aarch64.h gcc-4.9.1/gcc/config/aarch64/aarch64.h *** gcc-4.9.0/gcc/config/aarch64/aarch64.h Thu Mar 20 15:59:15 2014 --- gcc-4.9.1/gcc/config/aarch64/aarch64.h Fri May 2 08:55:07 2014 *************** *** 32,38 **** else \ builtin_define ("__AARCH64EL__"); \ \ ! if (!TARGET_GENERAL_REGS_ONLY) \ builtin_define ("__ARM_NEON"); \ \ switch (aarch64_cmodel) \ --- 32,38 ---- else \ builtin_define ("__AARCH64EL__"); \ \ ! if (TARGET_SIMD) \ builtin_define ("__ARM_NEON"); \ \ switch (aarch64_cmodel) \ *************** *** 83,91 **** #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN) /* AdvSIMD is supported in the default configuration, unless disabled by ! -mgeneral-regs-only. */ ! #define TARGET_SIMD !TARGET_GENERAL_REGS_ONLY ! #define TARGET_FLOAT !TARGET_GENERAL_REGS_ONLY #define UNITS_PER_WORD 8 --- 83,91 ---- #define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN) /* AdvSIMD is supported in the default configuration, unless disabled by ! -mgeneral-regs-only or by the +nosimd extension. */ ! #define TARGET_SIMD (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_SIMD) ! #define TARGET_FLOAT (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_FP) #define UNITS_PER_WORD 8 *************** extern unsigned long aarch64_isa_flags; *** 185,192 **** extern unsigned long aarch64_tune_flags; #define AARCH64_TUNE_SLOWMUL (aarch64_tune_flags & AARCH64_FL_SLOWMUL) ! /* Crypto is an optional feature. */ ! #define TARGET_CRYPTO AARCH64_ISA_CRYPTO /* Standard register usage. */ --- 185,192 ---- extern unsigned long aarch64_tune_flags; #define AARCH64_TUNE_SLOWMUL (aarch64_tune_flags & AARCH64_FL_SLOWMUL) ! /* Crypto is an optional extension to AdvSIMD. */ ! #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO) /* Standard register usage. */ diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/aarch64.md gcc-4.9.1/gcc/config/aarch64/aarch64.md *** gcc-4.9.0/gcc/config/aarch64/aarch64.md Mon Mar 24 12:05:38 2014 --- gcc-4.9.1/gcc/config/aarch64/aarch64.md Mon Jun 30 11:58:18 2014 *************** *** 2823,2839 **** ;; Arithmetic right shift using SISD or Integer instruction (define_insn "*aarch64_ashr_sisd_or_int_3" ! [(set (match_operand:GPI 0 "register_operand" "=w,w,r") (ashiftrt:GPI ! (match_operand:GPI 1 "register_operand" "w,w,r") ! (match_operand:QI 2 "aarch64_reg_or_shift_imm_di" "Us,w,rUs")))] "" "@ sshr\t%0, %1, %2 # asr\t%0, %1, %2" ! [(set_attr "simd" "yes,yes,no") ! (set_attr "type" "neon_shift_imm,neon_shift_reg,shift_reg")] ) (define_split --- 2823,2840 ---- ;; Arithmetic right shift using SISD or Integer instruction (define_insn "*aarch64_ashr_sisd_or_int_3" ! [(set (match_operand:GPI 0 "register_operand" "=w,&w,&w,r") (ashiftrt:GPI ! (match_operand:GPI 1 "register_operand" "w,w,w,r") ! (match_operand:QI 2 "aarch64_reg_or_shift_imm_di" "Us,w,0,rUs")))] "" "@ sshr\t%0, %1, %2 # + # asr\t%0, %1, %2" ! [(set_attr "simd" "yes,yes,yes,no") ! (set_attr "type" "neon_shift_imm,neon_shift_reg,neon_shift_reg,shift_reg")] ) (define_split *************** *** 2842,2852 **** (match_operand:DI 1 "aarch64_simd_register") (match_operand:QI 2 "aarch64_simd_register")))] "TARGET_SIMD && reload_completed" ! [(set (match_dup 2) (unspec:QI [(match_dup 2)] UNSPEC_SISD_NEG)) (set (match_dup 0) ! (unspec:DI [(match_dup 1) (match_dup 2)] UNSPEC_SISD_SSHL))] ! "" ) (define_split --- 2843,2855 ---- (match_operand:DI 1 "aarch64_simd_register") (match_operand:QI 2 "aarch64_simd_register")))] "TARGET_SIMD && reload_completed" ! [(set (match_dup 3) (unspec:QI [(match_dup 2)] UNSPEC_SISD_NEG)) (set (match_dup 0) ! (unspec:DI [(match_dup 1) (match_dup 3)] UNSPEC_SISD_SSHL))] ! { ! operands[3] = gen_lowpart (QImode, operands[0]); ! } ) (define_split *************** *** 2855,2865 **** (match_operand:SI 1 "aarch64_simd_register") (match_operand:QI 2 "aarch64_simd_register")))] "TARGET_SIMD && reload_completed" ! [(set (match_dup 2) (unspec:QI [(match_dup 2)] UNSPEC_SISD_NEG)) (set (match_dup 0) ! (unspec:SI [(match_dup 1) (match_dup 2)] UNSPEC_SSHL_2S))] ! "" ) (define_insn "*aarch64_sisd_ushl" --- 2858,2870 ---- (match_operand:SI 1 "aarch64_simd_register") (match_operand:QI 2 "aarch64_simd_register")))] "TARGET_SIMD && reload_completed" ! [(set (match_dup 3) (unspec:QI [(match_dup 2)] UNSPEC_SISD_NEG)) (set (match_dup 0) ! (unspec:SI [(match_dup 1) (match_dup 3)] UNSPEC_SSHL_2S))] ! { ! operands[3] = gen_lowpart (QImode, operands[0]); ! } ) (define_insn "*aarch64_sisd_ushl" *************** *** 3608,3613 **** --- 3613,3619 ---- (unspec:DI [(match_operand:DI 0 "aarch64_valid_symref" "S")] UNSPEC_TLSDESC)) (clobber (reg:DI LR_REGNUM)) + (clobber (reg:CC CC_REGNUM)) (clobber (match_scratch:DI 1 "=r"))] "TARGET_TLS_DESC" "adrp\\tx0, %A0\;ldr\\t%1, [x0, #%L0]\;add\\tx0, x0, %L0\;.tlsdesccall\\t%0\;blr\\t%1" diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/arm_neon.h gcc-4.9.1/gcc/config/aarch64/arm_neon.h *** gcc-4.9.0/gcc/config/aarch64/arm_neon.h Mon Mar 24 12:05:38 2014 --- gcc-4.9.1/gcc/config/aarch64/arm_neon.h Mon Jun 30 10:50:17 2014 *************** vqdmulh_n_s16 (int16x4_t a, int16_t b) *** 10111,10117 **** int16x4_t result; __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]" : "=w"(result) ! : "w"(a), "w"(b) : /* No clobbers */); return result; } --- 10111,10117 ---- int16x4_t result; __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]" : "=w"(result) ! : "w"(a), "x"(b) : /* No clobbers */); return result; } *************** vqdmulhq_n_s16 (int16x8_t a, int16_t b) *** 10133,10139 **** int16x8_t result; __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]" : "=w"(result) ! : "w"(a), "w"(b) : /* No clobbers */); return result; } --- 10133,10139 ---- int16x8_t result; __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]" : "=w"(result) ! : "w"(a), "x"(b) : /* No clobbers */); return result; } *************** vqdmlal_high_s16 (int32x4_t __a, int16x8 *** 21008,21014 **** } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) ! vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c, int const __d) { return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d); --- 21008,21014 ---- } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) ! vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c, int const __d) { return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d); *************** vqdmlal_high_n_s16 (int32x4_t __a, int16 *** 21030,21037 **** __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d) { ! int16x8_t __tmp = vcombine_s16 (__c, vcreate_s16 (__AARCH64_INT64_C (0))); ! return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __tmp, __d); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) --- 21030,21036 ---- __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d) { ! return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) *************** vqdmlal_high_s32 (int64x2_t __a, int32x4 *** 21059,21065 **** } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) ! vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c, int const __d) { return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d); --- 21058,21064 ---- } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) ! vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c, int const __d) { return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d); *************** vqdmlal_high_n_s32 (int64x2_t __a, int32 *** 21081,21088 **** __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d) { ! int32x4_t __tmp = vcombine_s32 (__c, vcreate_s32 (__AARCH64_INT64_C (0))); ! return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __tmp, __d); } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) --- 21080,21086 ---- __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d) { ! return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d); } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) *************** vqdmlalh_s16 (int32x1_t __a, int16x1_t _ *** 21104,21110 **** } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmlalh_lane_s16 (int32x1_t __a, int16x1_t __b, int16x8_t __c, const int __d) { return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d); } --- 21102,21108 ---- } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmlalh_lane_s16 (int32x1_t __a, int16x1_t __b, int16x4_t __c, const int __d) { return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d); } *************** vqdmlals_s32 (int64x1_t __a, int32x1_t _ *** 21116,21122 **** } __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) ! vqdmlals_lane_s32 (int64x1_t __a, int32x1_t __b, int32x4_t __c, const int __d) { return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d); } --- 21114,21120 ---- } __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) ! vqdmlals_lane_s32 (int64x1_t __a, int32x1_t __b, int32x2_t __c, const int __d) { return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d); } *************** vqdmlsl_high_s16 (int32x4_t __a, int16x8 *** 21136,21142 **** } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) ! vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c, int const __d) { return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d); --- 21134,21140 ---- } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) ! vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c, int const __d) { return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d); *************** vqdmlsl_high_n_s16 (int32x4_t __a, int16 *** 21158,21165 **** __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d) { ! int16x8_t __tmp = vcombine_s16 (__c, vcreate_s16 (__AARCH64_INT64_C (0))); ! return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __tmp, __d); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) --- 21156,21162 ---- __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d) { ! return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) *************** vqdmlsl_high_s32 (int64x2_t __a, int32x4 *** 21187,21193 **** } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) ! vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c, int const __d) { return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d); --- 21184,21190 ---- } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) ! vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c, int const __d) { return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d); *************** vqdmlsl_high_n_s32 (int64x2_t __a, int32 *** 21209,21216 **** __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d) { ! int32x4_t __tmp = vcombine_s32 (__c, vcreate_s32 (__AARCH64_INT64_C (0))); ! return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __tmp, __d); } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) --- 21206,21212 ---- __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d) { ! return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d); } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) *************** vqdmlslh_s16 (int32x1_t __a, int16x1_t _ *** 21232,21238 **** } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmlslh_lane_s16 (int32x1_t __a, int16x1_t __b, int16x8_t __c, const int __d) { return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d); } --- 21228,21234 ---- } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmlslh_lane_s16 (int32x1_t __a, int16x1_t __b, int16x4_t __c, const int __d) { return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d); } *************** vqdmlsls_s32 (int64x1_t __a, int32x1_t _ *** 21244,21250 **** } __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) ! vqdmlsls_lane_s32 (int64x1_t __a, int32x1_t __b, int32x4_t __c, const int __d) { return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d); } --- 21240,21246 ---- } __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) ! vqdmlsls_lane_s32 (int64x1_t __a, int32x1_t __b, int32x2_t __c, const int __d) { return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d); } *************** vqdmulhh_s16 (int16x1_t __a, int16x1_t _ *** 21282,21288 **** } __extension__ static __inline int16x1_t __attribute__ ((__always_inline__)) ! vqdmulhh_lane_s16 (int16x1_t __a, int16x8_t __b, const int __c) { return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c); } --- 21278,21284 ---- } __extension__ static __inline int16x1_t __attribute__ ((__always_inline__)) ! vqdmulhh_lane_s16 (int16x1_t __a, int16x4_t __b, const int __c) { return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c); } *************** vqdmulhs_s32 (int32x1_t __a, int32x1_t _ *** 21294,21300 **** } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmulhs_lane_s32 (int32x1_t __a, int32x4_t __b, const int __c) { return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c); } --- 21290,21296 ---- } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmulhs_lane_s32 (int32x1_t __a, int32x2_t __b, const int __c) { return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c); } *************** vqdmull_high_s16 (int16x8_t __a, int16x8 *** 21314,21320 **** } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) ! vqdmull_high_lane_s16 (int16x8_t __a, int16x8_t __b, int const __c) { return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c); } --- 21310,21316 ---- } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) ! vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c) { return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c); } *************** vqdmull_high_n_s16 (int16x8_t __a, int16 *** 21334,21341 **** __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c) { ! int16x8_t __tmp = vcombine_s16 (__b, vcreate_s16 (__AARCH64_INT64_C (0))); ! return __builtin_aarch64_sqdmull_lanev4hi (__a, __tmp, __c); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) --- 21330,21336 ---- __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c) { ! return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) *************** vqdmull_high_s32 (int32x4_t __a, int32x4 *** 21363,21369 **** } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) ! vqdmull_high_lane_s32 (int32x4_t __a, int32x4_t __b, int const __c) { return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c); } --- 21358,21364 ---- } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) ! vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c) { return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c); } *************** vqdmull_high_n_s32 (int32x4_t __a, int32 *** 21383,21390 **** __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c) { ! int32x4_t __tmp = vcombine_s32 (__b, vcreate_s32 (__AARCH64_INT64_C (0))); ! return __builtin_aarch64_sqdmull_lanev2si (__a, __tmp, __c); } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) --- 21378,21384 ---- __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c) { ! return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c); } __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) *************** vqdmullh_s16 (int16x1_t __a, int16x1_t _ *** 21406,21412 **** } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmullh_lane_s16 (int16x1_t __a, int16x8_t __b, const int __c) { return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c); } --- 21400,21406 ---- } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqdmullh_lane_s16 (int16x1_t __a, int16x4_t __b, const int __c) { return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c); } *************** vqdmulls_s32 (int32x1_t __a, int32x1_t _ *** 21418,21424 **** } __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) ! vqdmulls_lane_s32 (int32x1_t __a, int32x4_t __b, const int __c) { return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c); } --- 21412,21418 ---- } __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) ! vqdmulls_lane_s32 (int32x1_t __a, int32x2_t __b, const int __c) { return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c); } *************** vqrdmulhh_s16 (int16x1_t __a, int16x1_t *** 21594,21600 **** } __extension__ static __inline int16x1_t __attribute__ ((__always_inline__)) ! vqrdmulhh_lane_s16 (int16x1_t __a, int16x8_t __b, const int __c) { return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c); } --- 21588,21594 ---- } __extension__ static __inline int16x1_t __attribute__ ((__always_inline__)) ! vqrdmulhh_lane_s16 (int16x1_t __a, int16x4_t __b, const int __c) { return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c); } *************** vqrdmulhs_s32 (int32x1_t __a, int32x1_t *** 21606,21612 **** } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqrdmulhs_lane_s32 (int32x1_t __a, int32x4_t __b, const int __c) { return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c); } --- 21600,21606 ---- } __extension__ static __inline int32x1_t __attribute__ ((__always_inline__)) ! vqrdmulhs_lane_s32 (int32x1_t __a, int32x2_t __b, const int __c) { return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c); } diff -Nrcpad gcc-4.9.0/gcc/config/aarch64/iterators.md gcc-4.9.1/gcc/config/aarch64/iterators.md *** gcc-4.9.0/gcc/config/aarch64/iterators.md Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/aarch64/iterators.md Mon Jun 30 10:50:17 2014 *************** *** 396,409 **** (SI "SI") (HI "HI") (QI "QI")]) ! ;; Define container mode for lane selection. ! (define_mode_attr VCOND [(V4HI "V4HI") (V8HI "V4HI") (V2SI "V2SI") (V4SI "V2SI") (DI "DI") (V2DI "DI") (V2SF "V2SF") (V4SF "V2SF") (V2DF "DF")]) ! ;; Define container mode for lane selection. (define_mode_attr VCONQ [(V8QI "V16QI") (V16QI "V16QI") (V4HI "V8HI") (V8HI "V8HI") (V2SI "V4SI") (V4SI "V4SI") --- 396,410 ---- (SI "SI") (HI "HI") (QI "QI")]) ! ;; 64-bit container modes the inner or scalar source mode. ! (define_mode_attr VCOND [(HI "V4HI") (SI "V2SI") ! (V4HI "V4HI") (V8HI "V4HI") (V2SI "V2SI") (V4SI "V2SI") (DI "DI") (V2DI "DI") (V2SF "V2SF") (V4SF "V2SF") (V2DF "DF")]) ! ;; 128-bit container modes the inner or scalar source mode. (define_mode_attr VCONQ [(V8QI "V16QI") (V16QI "V16QI") (V4HI "V8HI") (V8HI "V8HI") (V2SI "V4SI") (V4SI "V4SI") *************** *** 412,426 **** (V2DF "V2DF") (SI "V4SI") (HI "V8HI") (QI "V16QI")]) - ;; Define container mode for lane selection. - (define_mode_attr VCON [(V8QI "V16QI") (V16QI "V16QI") - (V4HI "V8HI") (V8HI "V8HI") - (V2SI "V4SI") (V4SI "V4SI") - (DI "V2DI") (V2DI "V2DI") - (V2SF "V4SF") (V4SF "V4SF") - (V2DF "V2DF") (SI "V4SI") - (HI "V8HI") (QI "V16QI")]) - ;; Half modes of all vector modes. (define_mode_attr VHALF [(V8QI "V4QI") (V16QI "V8QI") (V4HI "V2HI") (V8HI "V4HI") --- 413,418 ---- diff -Nrcpad gcc-4.9.0/gcc/config/alpha/alpha.c gcc-4.9.1/gcc/config/alpha/alpha.c *** gcc-4.9.0/gcc/config/alpha/alpha.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/alpha/alpha.c Fri Jun 27 08:37:34 2014 *************** along with GCC; see the file COPYING3. *** 62,67 **** --- 62,68 ---- #include "gimple-expr.h" #include "is-a.h" #include "gimple.h" + #include "gimple-iterator.h" #include "gimplify.h" #include "gimple-ssa.h" #include "stringpool.h" *************** alpha_fold_builtin (tree fndecl, int n_a *** 7042,7050 **** case ALPHA_BUILTIN_MSKQH: return alpha_fold_builtin_mskxx (op, opint, op_const, 0xff, true); - case ALPHA_BUILTIN_UMULH: - return fold_build2 (MULT_HIGHPART_EXPR, alpha_dimode_u, op[0], op[1]); - case ALPHA_BUILTIN_ZAP: opint[1] ^= 0xff; /* FALLTHRU */ --- 7043,7048 ---- *************** alpha_fold_builtin (tree fndecl, int n_a *** 7094,7099 **** --- 7092,7140 ---- return NULL; } } + + bool + alpha_gimple_fold_builtin (gimple_stmt_iterator *gsi) + { + bool changed = false; + gimple stmt = gsi_stmt (*gsi); + tree call = gimple_call_fn (stmt); + gimple new_stmt = NULL; + + if (call) + { + tree fndecl = gimple_call_fndecl (stmt); + + if (fndecl) + { + tree arg0, arg1; + + switch (DECL_FUNCTION_CODE (fndecl)) + { + case ALPHA_BUILTIN_UMULH: + arg0 = gimple_call_arg (stmt, 0); + arg1 = gimple_call_arg (stmt, 1); + + new_stmt + = gimple_build_assign_with_ops (MULT_HIGHPART_EXPR, + gimple_call_lhs (stmt), + arg0, + arg1); + break; + default: + break; + } + } + } + + if (new_stmt) + { + gsi_replace (gsi, new_stmt, true); + changed = true; + } + + return changed; + } /* This page contains routines that are used to determine what the function prologue and epilogue code will do and write them out. */ *************** alpha_handle_trap_shadows (void) *** 8674,8679 **** --- 8715,8725 ---- } break; + case BARRIER: + /* __builtin_unreachable can expand to no code at all, + leaving (barrier) RTXes in the instruction stream. */ + goto close_shadow_notrapb; + case JUMP_INSN: case CALL_INSN: case CODE_LABEL: *************** alpha_handle_trap_shadows (void) *** 8689,8694 **** --- 8735,8741 ---- n = emit_insn_before (gen_trapb (), i); PUT_MODE (n, TImode); PUT_MODE (i, TImode); + close_shadow_notrapb: trap_pending = 0; shadow.used.i = 0; shadow.used.fp = 0; *************** alpha_canonicalize_comparison (int *code *** 9790,9795 **** --- 9837,9844 ---- #define TARGET_EXPAND_BUILTIN alpha_expand_builtin #undef TARGET_FOLD_BUILTIN #define TARGET_FOLD_BUILTIN alpha_fold_builtin + #undef TARGET_GIMPLE_FOLD_BUILTIN + #define TARGET_GIMPLE_FOLD_BUILTIN alpha_gimple_fold_builtin #undef TARGET_FUNCTION_OK_FOR_SIBCALL #define TARGET_FUNCTION_OK_FOR_SIBCALL alpha_function_ok_for_sibcall diff -Nrcpad gcc-4.9.0/gcc/config/arm/aout.h gcc-4.9.1/gcc/config/arm/aout.h *** gcc-4.9.0/gcc/config/arm/aout.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/aout.h Tue May 27 11:42:10 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifndef ASM_APP_ON --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef ASM_APP_ON diff -Nrcpad gcc-4.9.0/gcc/config/arm/arm-cores.def gcc-4.9.1/gcc/config/arm/arm-cores.def *** gcc-4.9.0/gcc/config/arm/arm-cores.def Thu Feb 6 16:51:03 2014 --- gcc-4.9.1/gcc/config/arm/arm-cores.def Tue May 27 11:42:10 2014 *************** *** 14,21 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* Before using #include to read this file, define a macro: --- 14,26 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* Before using #include to read this file, define a macro: diff -Nrcpad gcc-4.9.0/gcc/config/arm/arm-opts.h gcc-4.9.1/gcc/config/arm/arm-opts.h *** gcc-4.9.0/gcc/config/arm/arm-opts.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/arm-opts.h Tue May 27 11:42:10 2014 *************** *** 13,20 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifndef ARM_OPTS_H --- 13,25 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef ARM_OPTS_H diff -Nrcpad gcc-4.9.0/gcc/config/arm/arm.c gcc-4.9.1/gcc/config/arm/arm.c *** gcc-4.9.0/gcc/config/arm/arm.c Thu Apr 10 08:13:30 2014 --- gcc-4.9.1/gcc/config/arm/arm.c Wed Jul 9 05:27:16 2014 *************** thumb1_reorg (void) *** 16716,16726 **** rtx prev, insn = BB_END (bb); bool insn_clobbered = false; ! while (insn != BB_HEAD (bb) && DEBUG_INSN_P (insn)) insn = PREV_INSN (insn); /* Find the last cbranchsi4_insn in basic block BB. */ ! if (INSN_CODE (insn) != CODE_FOR_cbranchsi4_insn) continue; /* Get the register with which we are comparing. */ --- 16716,16727 ---- rtx prev, insn = BB_END (bb); bool insn_clobbered = false; ! while (insn != BB_HEAD (bb) && !NONDEBUG_INSN_P (insn)) insn = PREV_INSN (insn); /* Find the last cbranchsi4_insn in basic block BB. */ ! if (insn == BB_HEAD (bb) ! || INSN_CODE (insn) != CODE_FOR_cbranchsi4_insn) continue; /* Get the register with which we are comparing. */ *************** arm_output_mi_thunk (FILE *file, tree th *** 28183,28191 **** fputs (":\n", file); if (flag_pic) { ! /* Output ".word .LTHUNKn-7-.LTHUNKPCn". */ rtx tem = XEXP (DECL_RTL (function), 0); ! tem = plus_constant (GET_MODE (tem), tem, -7); tem = gen_rtx_MINUS (GET_MODE (tem), tem, gen_rtx_SYMBOL_REF (Pmode, --- 28184,28196 ---- fputs (":\n", file); if (flag_pic) { ! /* Output ".word .LTHUNKn-[3,7]-.LTHUNKPCn". */ rtx tem = XEXP (DECL_RTL (function), 0); ! /* For TARGET_THUMB1_ONLY the thunk is in Thumb mode, so the PC ! pipeline offset is four rather than eight. Adjust the offset ! accordingly. */ ! tem = plus_constant (GET_MODE (tem), tem, ! TARGET_THUMB1_ONLY ? -3 : -7); tem = gen_rtx_MINUS (GET_MODE (tem), tem, gen_rtx_SYMBOL_REF (Pmode, diff -Nrcpad gcc-4.9.0/gcc/config/arm/arm.h gcc-4.9.1/gcc/config/arm/arm.h *** gcc-4.9.0/gcc/config/arm/arm.h Mon Apr 7 21:31:29 2014 --- gcc-4.9.1/gcc/config/arm/arm.h Tue May 27 11:42:10 2014 *************** *** 17,24 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifndef GCC_ARM_H --- 17,29 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef GCC_ARM_H diff -Nrcpad gcc-4.9.0/gcc/config/arm/arm.md gcc-4.9.1/gcc/config/arm/arm.md *** gcc-4.9.0/gcc/config/arm/arm.md Fri Apr 4 13:13:20 2014 --- gcc-4.9.1/gcc/config/arm/arm.md Thu May 22 15:39:46 2014 *************** *** 8349,8356 **** (define_insn_and_split "*arm_cmpdi_unsigned" [(set (reg:CC_CZ CC_REGNUM) ! (compare:CC_CZ (match_operand:DI 0 "s_register_operand" "l,r,r") ! (match_operand:DI 1 "arm_di_operand" "Py,r,rDi")))] "TARGET_32BIT" "#" ; "cmp\\t%R0, %R1\;it eq\;cmpeq\\t%Q0, %Q1" --- 8349,8356 ---- (define_insn_and_split "*arm_cmpdi_unsigned" [(set (reg:CC_CZ CC_REGNUM) ! (compare:CC_CZ (match_operand:DI 0 "s_register_operand" "l,r,r,r") ! (match_operand:DI 1 "arm_di_operand" "Py,r,Di,rDi")))] "TARGET_32BIT" "#" ; "cmp\\t%R0, %R1\;it eq\;cmpeq\\t%Q0, %Q1" *************** *** 8370,8378 **** operands[1] = gen_lowpart (SImode, operands[1]); } [(set_attr "conds" "set") ! (set_attr "enabled_for_depr_it" "yes,yes,no") ! (set_attr "arch" "t2,t2,*") ! (set_attr "length" "6,6,8") (set_attr "type" "multiple")] ) --- 8370,8378 ---- operands[1] = gen_lowpart (SImode, operands[1]); } [(set_attr "conds" "set") ! (set_attr "enabled_for_depr_it" "yes,yes,no,*") ! (set_attr "arch" "t2,t2,t2,a") ! (set_attr "length" "6,6,10,8") (set_attr "type" "multiple")] ) *************** *** 9860,9865 **** --- 9860,9866 ---- "TARGET_32BIT" "%i1%?\\t%0, %2, %4%S3" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "shift" "4") (set_attr "arch" "a,t2,t2,a") ;; Thumb2 doesn't allow the stack pointer to be used for diff -Nrcpad gcc-4.9.0/gcc/config/arm/arm_neon.h gcc-4.9.1/gcc/config/arm/arm_neon.h *** gcc-4.9.0/gcc/config/arm/arm_neon.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/arm_neon.h Wed Jul 9 11:28:57 2014 *************** *** 1,5 **** ! /* ARM NEON intrinsics include file. This file is generated automatically ! using neon-gen.ml. Please do not edit manually. Copyright (C) 2006-2014 Free Software Foundation, Inc. Contributed by CodeSourcery. --- 1,4 ---- ! /* ARM NEON intrinsics include file. Copyright (C) 2006-2014 Free Software Foundation, Inc. Contributed by CodeSourcery. *************** vbslq_p16 (uint16x8_t __a, poly16x8_t __ *** 7707,7718 **** return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c); } __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) vtrn_s8 (int8x8_t __a, int8x8_t __b) { int8x8x2_t __rv; ! __rv.val[0] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 }); return __rv; } --- 7706,7737 ---- return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c); } + /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as + follows. (nelt = the number of elements within a vector.) + + Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector + extension's indexing scheme is reversed *within each vector* (relative to the + neon intrinsics view), but without changing which of the two vectors. + + Secondly, the elements within each mask are reversed, as the mask is itself a + vector, and will itself be loaded in reverse order (again, relative to the + neon intrinsics view, i.e. that would result from a "vld1" instruction). */ + __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) vtrn_s8 (int8x8_t __a, int8x8_t __b) { int8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 9, 1, 11, 3, 13, 5, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 0, 10, 2, 12, 4, 14, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 1, 9, 3, 11, 5, 13, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int16x4x2_ *** 7720,7727 **** vtrn_s16 (int16x4_t __a, int16x4_t __b) { int16x4x2_t __rv; ! __rv.val[0] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); return __rv; } --- 7739,7751 ---- vtrn_s16 (int16x4_t __a, int16x4_t __b) { int16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline uint8x8x2_ *** 7729,7736 **** vtrn_u8 (uint8x8_t __a, uint8x8_t __b) { uint8x8x2_t __rv; ! __rv.val[0] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 }); return __rv; } --- 7753,7769 ---- vtrn_u8 (uint8x8_t __a, uint8x8_t __b) { uint8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 9, 1, 11, 3, 13, 5, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 0, 10, 2, 12, 4, 14, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 1, 9, 3, 11, 5, 13, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline uint16x4x2 *** 7738,7745 **** vtrn_u16 (uint16x4_t __a, uint16x4_t __b) { uint16x4x2_t __rv; ! __rv.val[0] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); return __rv; } --- 7771,7783 ---- vtrn_u16 (uint16x4_t __a, uint16x4_t __b) { uint16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline poly8x8x2_ *** 7747,7754 **** vtrn_p8 (poly8x8_t __a, poly8x8_t __b) { poly8x8x2_t __rv; ! __rv.val[0] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 }); return __rv; } --- 7785,7801 ---- vtrn_p8 (poly8x8_t __a, poly8x8_t __b) { poly8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 9, 1, 11, 3, 13, 5, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 0, 10, 2, 12, 4, 14, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 1, 9, 3, 11, 5, 13, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline poly16x4x2 *** 7756,7763 **** vtrn_p16 (poly16x4_t __a, poly16x4_t __b) { poly16x4x2_t __rv; ! __rv.val[0] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); return __rv; } --- 7803,7815 ---- vtrn_p16 (poly16x4_t __a, poly16x4_t __b) { poly16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline int32x2x2_ *** 7765,7772 **** vtrn_s32 (int32x2_t __a, int32x2_t __b) { int32x2x2_t __rv; ! __rv.val[0] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 7817,7829 ---- vtrn_s32 (int32x2_t __a, int32x2_t __b) { int32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline float32x2x *** 7774,7781 **** vtrn_f32 (float32x2_t __a, float32x2_t __b) { float32x2x2_t __rv; ! __rv.val[0] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 7831,7843 ---- vtrn_f32 (float32x2_t __a, float32x2_t __b) { float32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline uint32x2x2 *** 7783,7790 **** vtrn_u32 (uint32x2_t __a, uint32x2_t __b) { uint32x2x2_t __rv; ! __rv.val[0] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 7845,7857 ---- vtrn_u32 (uint32x2_t __a, uint32x2_t __b) { uint32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline int8x16x2_ *** 7792,7799 **** vtrnq_s8 (int8x16_t __a, int8x16_t __b) { int8x16x2_t __rv; ! __rv.val[0] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); ! __rv.val[1] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); return __rv; } --- 7859,7875 ---- vtrnq_s8 (int8x16_t __a, int8x16_t __b) { int8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); ! #endif return __rv; } *************** __extension__ static __inline int16x8x2_ *** 7801,7808 **** vtrnq_s16 (int16x8_t __a, int16x8_t __b) { int16x8x2_t __rv; ! __rv.val[0] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 }); return __rv; } --- 7877,7893 ---- vtrnq_s16 (int16x8_t __a, int16x8_t __b) { int16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 9, 1, 11, 3, 13, 5, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 0, 10, 2, 12, 4, 14, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 1, 9, 3, 11, 5, 13, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int32x4x2_ *** 7810,7817 **** vtrnq_s32 (int32x4_t __a, int32x4_t __b) { int32x4x2_t __rv; ! __rv.val[0] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); return __rv; } --- 7895,7907 ---- vtrnq_s32 (int32x4_t __a, int32x4_t __b) { int32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline float32x4x *** 7819,7826 **** vtrnq_f32 (float32x4_t __a, float32x4_t __b) { float32x4x2_t __rv; ! __rv.val[0] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); return __rv; } --- 7909,7921 ---- vtrnq_f32 (float32x4_t __a, float32x4_t __b) { float32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline uint8x16x2 *** 7828,7835 **** vtrnq_u8 (uint8x16_t __a, uint8x16_t __b) { uint8x16x2_t __rv; ! __rv.val[0] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); ! __rv.val[1] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); return __rv; } --- 7923,7939 ---- vtrnq_u8 (uint8x16_t __a, uint8x16_t __b) { uint8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); ! #endif return __rv; } *************** __extension__ static __inline uint16x8x2 *** 7837,7844 **** vtrnq_u16 (uint16x8_t __a, uint16x8_t __b) { uint16x8x2_t __rv; ! __rv.val[0] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 }); return __rv; } --- 7941,7957 ---- vtrnq_u16 (uint16x8_t __a, uint16x8_t __b) { uint16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 9, 1, 11, 3, 13, 5, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 0, 10, 2, 12, 4, 14, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 1, 9, 3, 11, 5, 13, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline uint32x4x2 *** 7846,7853 **** vtrnq_u32 (uint32x4_t __a, uint32x4_t __b) { uint32x4x2_t __rv; ! __rv.val[0] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); return __rv; } --- 7959,7971 ---- vtrnq_u32 (uint32x4_t __a, uint32x4_t __b) { uint32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline poly8x16x2 *** 7855,7862 **** vtrnq_p8 (poly8x16_t __a, poly8x16_t __b) { poly8x16x2_t __rv; ! __rv.val[0] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); ! __rv.val[1] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); return __rv; } --- 7973,7989 ---- vtrnq_p8 (poly8x16_t __a, poly8x16_t __b) { poly8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); ! #endif return __rv; } *************** __extension__ static __inline poly16x8x2 *** 7864,7871 **** vtrnq_p16 (poly16x8_t __a, poly16x8_t __b) { poly16x8x2_t __rv; ! __rv.val[0] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 9, 3, 11, 5, 13, 7, 15 }); return __rv; } --- 7991,8007 ---- vtrnq_p16 (poly16x8_t __a, poly16x8_t __b) { poly16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 9, 1, 11, 3, 13, 5, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 0, 10, 2, 12, 4, 14, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 8, 2, 10, 4, 12, 6, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 1, 9, 3, 11, 5, 13, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int8x8x2_t *** 7873,7880 **** vzip_s8 (int8x8_t __a, int8x8_t __b) { int8x8x2_t __rv; ! __rv.val[0] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 }); return __rv; } --- 8009,8025 ---- vzip_s8 (int8x8_t __a, int8x8_t __b) { int8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 12, 4, 13, 5, 14, 6, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 0, 9, 1, 10, 2, 11, 3 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 4, 12, 5, 13, 6, 14, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int16x4x2_ *** 7882,7889 **** vzip_s16 (int16x4_t __a, int16x4_t __b) { int16x4x2_t __rv; ! __rv.val[0] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); return __rv; } --- 8027,8039 ---- vzip_s16 (int16x4_t __a, int16x4_t __b) { int16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline uint8x8x2_ *** 7891,7898 **** vzip_u8 (uint8x8_t __a, uint8x8_t __b) { uint8x8x2_t __rv; ! __rv.val[0] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 }); return __rv; } --- 8041,8057 ---- vzip_u8 (uint8x8_t __a, uint8x8_t __b) { uint8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 12, 4, 13, 5, 14, 6, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 0, 9, 1, 10, 2, 11, 3 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 4, 12, 5, 13, 6, 14, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline uint16x4x2 *** 7900,7907 **** vzip_u16 (uint16x4_t __a, uint16x4_t __b) { uint16x4x2_t __rv; ! __rv.val[0] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); return __rv; } --- 8059,8071 ---- vzip_u16 (uint16x4_t __a, uint16x4_t __b) { uint16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline poly8x8x2_ *** 7909,7916 **** vzip_p8 (poly8x8_t __a, poly8x8_t __b) { poly8x8x2_t __rv; ! __rv.val[0] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 }); return __rv; } --- 8073,8089 ---- vzip_p8 (poly8x8_t __a, poly8x8_t __b) { poly8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 12, 4, 13, 5, 14, 6, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 0, 9, 1, 10, 2, 11, 3 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 4, 12, 5, 13, 6, 14, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline poly16x4x2 *** 7918,7925 **** vzip_p16 (poly16x4_t __a, poly16x4_t __b) { poly16x4x2_t __rv; ! __rv.val[0] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); return __rv; } --- 8091,8103 ---- vzip_p16 (poly16x4_t __a, poly16x4_t __b) { poly16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline int32x2x2_ *** 7927,7934 **** vzip_s32 (int32x2_t __a, int32x2_t __b) { int32x2x2_t __rv; ! __rv.val[0] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 8105,8117 ---- vzip_s32 (int32x2_t __a, int32x2_t __b) { int32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline float32x2x *** 7936,7943 **** vzip_f32 (float32x2_t __a, float32x2_t __b) { float32x2x2_t __rv; ! __rv.val[0] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 8119,8131 ---- vzip_f32 (float32x2_t __a, float32x2_t __b) { float32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline uint32x2x2 *** 7945,7952 **** vzip_u32 (uint32x2_t __a, uint32x2_t __b) { uint32x2x2_t __rv; ! __rv.val[0] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 8133,8145 ---- vzip_u32 (uint32x2_t __a, uint32x2_t __b) { uint32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline int8x16x2_ *** 7954,7961 **** vzipq_s8 (int8x16_t __a, int8x16_t __b) { int8x16x2_t __rv; ! __rv.val[0] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); ! __rv.val[1] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); return __rv; } --- 8147,8163 ---- vzipq_s8 (int8x16_t __a, int8x16_t __b) { int8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); ! #endif return __rv; } *************** __extension__ static __inline int16x8x2_ *** 7963,7970 **** vzipq_s16 (int16x8_t __a, int16x8_t __b) { int16x8x2_t __rv; ! __rv.val[0] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 }); return __rv; } --- 8165,8181 ---- vzipq_s16 (int16x8_t __a, int16x8_t __b) { int16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 12, 4, 13, 5, 14, 6, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 0, 9, 1, 10, 2, 11, 3 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 4, 12, 5, 13, 6, 14, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int32x4x2_ *** 7972,7979 **** vzipq_s32 (int32x4_t __a, int32x4_t __b) { int32x4x2_t __rv; ! __rv.val[0] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); return __rv; } --- 8183,8195 ---- vzipq_s32 (int32x4_t __a, int32x4_t __b) { int32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline float32x4x *** 7981,7988 **** vzipq_f32 (float32x4_t __a, float32x4_t __b) { float32x4x2_t __rv; ! __rv.val[0] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); return __rv; } --- 8197,8209 ---- vzipq_f32 (float32x4_t __a, float32x4_t __b) { float32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline uint8x16x2 *** 7990,7997 **** vzipq_u8 (uint8x16_t __a, uint8x16_t __b) { uint8x16x2_t __rv; ! __rv.val[0] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); ! __rv.val[1] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); return __rv; } --- 8211,8227 ---- vzipq_u8 (uint8x16_t __a, uint8x16_t __b) { uint8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); ! #endif return __rv; } *************** __extension__ static __inline uint16x8x2 *** 7999,8006 **** vzipq_u16 (uint16x8_t __a, uint16x8_t __b) { uint16x8x2_t __rv; ! __rv.val[0] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 }); return __rv; } --- 8229,8245 ---- vzipq_u16 (uint16x8_t __a, uint16x8_t __b) { uint16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 12, 4, 13, 5, 14, 6, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 0, 9, 1, 10, 2, 11, 3 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 4, 12, 5, 13, 6, 14, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline uint32x4x2 *** 8008,8015 **** vzipq_u32 (uint32x4_t __a, uint32x4_t __b) { uint32x4x2_t __rv; ! __rv.val[0] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); return __rv; } --- 8247,8259 ---- vzipq_u32 (uint32x4_t __a, uint32x4_t __b) { uint32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); ! #endif return __rv; } *************** __extension__ static __inline poly8x16x2 *** 8017,8024 **** vzipq_p8 (poly8x16_t __a, poly8x16_t __b) { poly8x16x2_t __rv; ! __rv.val[0] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); ! __rv.val[1] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); return __rv; } --- 8261,8277 ---- vzipq_p8 (poly8x16_t __a, poly8x16_t __b) { poly8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); ! #endif return __rv; } *************** __extension__ static __inline poly16x8x2 *** 8026,8033 **** vzipq_p16 (poly16x8_t __a, poly16x8_t __b) { poly16x8x2_t __rv; ! __rv.val[0] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 4, 12, 5, 13, 6, 14, 7, 15 }); return __rv; } --- 8279,8295 ---- vzipq_p16 (poly16x8_t __a, poly16x8_t __b) { poly16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 12, 4, 13, 5, 14, 6, 15, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 0, 9, 1, 10, 2, 11, 3 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 8, 1, 9, 2, 10, 3, 11 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 4, 12, 5, 13, 6, 14, 7, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int8x8x2_t *** 8035,8042 **** vuzp_s8 (int8x8_t __a, int8x8_t __b) { int8x8x2_t __rv; ! __rv.val[0] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = (int8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 }); return __rv; } --- 8297,8313 ---- vuzp_s8 (int8x8_t __a, int8x8_t __b) { int8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 9, 11, 13, 15, 1, 3, 5, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 10, 12, 14, 0, 2, 4, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 1, 3, 5, 7, 9, 11, 13, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int16x4x2_ *** 8044,8051 **** vuzp_s16 (int16x4_t __a, int16x4_t __b) { int16x4x2_t __rv; ! __rv.val[0] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = (int16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); return __rv; } --- 8315,8327 ---- vuzp_s16 (int16x4_t __a, int16x4_t __b) { int16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); ! #endif return __rv; } *************** __extension__ static __inline int32x2x2_ *** 8053,8060 **** vuzp_s32 (int32x2_t __a, int32x2_t __b) { int32x2x2_t __rv; ! __rv.val[0] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (int32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 8329,8341 ---- vuzp_s32 (int32x2_t __a, int32x2_t __b) { int32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline float32x2x *** 8062,8069 **** vuzp_f32 (float32x2_t __a, float32x2_t __b) { float32x2x2_t __rv; ! __rv.val[0] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (float32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 8343,8355 ---- vuzp_f32 (float32x2_t __a, float32x2_t __b) { float32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline uint8x8x2_ *** 8071,8078 **** vuzp_u8 (uint8x8_t __a, uint8x8_t __b) { uint8x8x2_t __rv; ! __rv.val[0] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = (uint8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 }); return __rv; } --- 8357,8373 ---- vuzp_u8 (uint8x8_t __a, uint8x8_t __b) { uint8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 9, 11, 13, 15, 1, 3, 5, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 10, 12, 14, 0, 2, 4, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 1, 3, 5, 7, 9, 11, 13, 15 }); ! #endif return __rv; } *************** __extension__ static __inline uint16x4x2 *** 8080,8087 **** vuzp_u16 (uint16x4_t __a, uint16x4_t __b) { uint16x4x2_t __rv; ! __rv.val[0] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = (uint16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); return __rv; } --- 8375,8387 ---- vuzp_u16 (uint16x4_t __a, uint16x4_t __b) { uint16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); ! #endif return __rv; } *************** __extension__ static __inline uint32x2x2 *** 8089,8096 **** vuzp_u32 (uint32x2_t __a, uint32x2_t __b) { uint32x2x2_t __rv; ! __rv.val[0] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = (uint32x2_t) __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); return __rv; } --- 8389,8401 ---- vuzp_u32 (uint32x2_t __a, uint32x2_t __b) { uint32x2x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); ! #endif return __rv; } *************** __extension__ static __inline poly8x8x2_ *** 8098,8105 **** vuzp_p8 (poly8x8_t __a, poly8x8_t __b) { poly8x8x2_t __rv; ! __rv.val[0] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = (poly8x8_t) __builtin_shuffle (__a, __b, (uint8x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 }); return __rv; } --- 8403,8419 ---- vuzp_p8 (poly8x8_t __a, poly8x8_t __b) { poly8x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 9, 11, 13, 15, 1, 3, 5, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 8, 10, 12, 14, 0, 2, 4, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) ! { 1, 3, 5, 7, 9, 11, 13, 15 }); ! #endif return __rv; } *************** __extension__ static __inline poly16x4x2 *** 8107,8114 **** vuzp_p16 (poly16x4_t __a, poly16x4_t __b) { poly16x4x2_t __rv; ! __rv.val[0] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = (poly16x4_t) __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); return __rv; } --- 8421,8433 ---- vuzp_p16 (poly16x4_t __a, poly16x4_t __b) { poly16x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); ! #endif return __rv; } *************** __extension__ static __inline int8x16x2_ *** 8116,8123 **** vuzpq_s8 (int8x16_t __a, int8x16_t __b) { int8x16x2_t __rv; ! __rv.val[0] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); ! __rv.val[1] = (int8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); return __rv; } --- 8435,8451 ---- vuzpq_s8 (int8x16_t __a, int8x16_t __b) { int8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); ! #endif return __rv; } *************** __extension__ static __inline int16x8x2_ *** 8125,8132 **** vuzpq_s16 (int16x8_t __a, int16x8_t __b) { int16x8x2_t __rv; ! __rv.val[0] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = (int16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 }); return __rv; } --- 8453,8469 ---- vuzpq_s16 (int16x8_t __a, int16x8_t __b) { int16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 9, 11, 13, 15, 1, 3, 5, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 10, 12, 14, 0, 2, 4, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 1, 3, 5, 7, 9, 11, 13, 15 }); ! #endif return __rv; } *************** __extension__ static __inline int32x4x2_ *** 8134,8141 **** vuzpq_s32 (int32x4_t __a, int32x4_t __b) { int32x4x2_t __rv; ! __rv.val[0] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = (int32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); return __rv; } --- 8471,8483 ---- vuzpq_s32 (int32x4_t __a, int32x4_t __b) { int32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); ! #endif return __rv; } *************** __extension__ static __inline float32x4x *** 8143,8150 **** vuzpq_f32 (float32x4_t __a, float32x4_t __b) { float32x4x2_t __rv; ! __rv.val[0] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = (float32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); return __rv; } --- 8485,8497 ---- vuzpq_f32 (float32x4_t __a, float32x4_t __b) { float32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); ! #endif return __rv; } *************** __extension__ static __inline uint8x16x2 *** 8152,8159 **** vuzpq_u8 (uint8x16_t __a, uint8x16_t __b) { uint8x16x2_t __rv; ! __rv.val[0] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); ! __rv.val[1] = (uint8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); return __rv; } --- 8499,8515 ---- vuzpq_u8 (uint8x16_t __a, uint8x16_t __b) { uint8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); ! #endif return __rv; } *************** __extension__ static __inline uint16x8x2 *** 8161,8168 **** vuzpq_u16 (uint16x8_t __a, uint16x8_t __b) { uint16x8x2_t __rv; ! __rv.val[0] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = (uint16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 }); return __rv; } --- 8517,8533 ---- vuzpq_u16 (uint16x8_t __a, uint16x8_t __b) { uint16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 9, 11, 13, 15, 1, 3, 5, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 10, 12, 14, 0, 2, 4, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 1, 3, 5, 7, 9, 11, 13, 15 }); ! #endif return __rv; } *************** __extension__ static __inline uint32x4x2 *** 8170,8177 **** vuzpq_u32 (uint32x4_t __a, uint32x4_t __b) { uint32x4x2_t __rv; ! __rv.val[0] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = (uint32x4_t) __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); return __rv; } --- 8535,8547 ---- vuzpq_u32 (uint32x4_t __a, uint32x4_t __b) { uint32x4x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); ! #endif return __rv; } *************** __extension__ static __inline poly8x16x2 *** 8179,8186 **** vuzpq_p8 (poly8x16_t __a, poly8x16_t __b) { poly8x16x2_t __rv; ! __rv.val[0] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); ! __rv.val[1] = (poly8x16_t) __builtin_shuffle (__a, __b, (uint8x16_t) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); return __rv; } --- 8549,8565 ---- vuzpq_p8 (poly8x16_t __a, poly8x16_t __b) { poly8x16x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) ! { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); ! #endif return __rv; } *************** __extension__ static __inline poly16x8x2 *** 8188,8195 **** vuzpq_p16 (poly16x8_t __a, poly16x8_t __b) { poly16x8x2_t __rv; ! __rv.val[0] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = (poly16x8_t) __builtin_shuffle (__a, __b, (uint16x8_t) { 1, 3, 5, 7, 9, 11, 13, 15 }); return __rv; } --- 8567,8583 ---- vuzpq_p16 (poly16x8_t __a, poly16x8_t __b) { poly16x8x2_t __rv; ! #ifdef __ARM_BIG_ENDIAN ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 9, 11, 13, 15, 1, 3, 5, 7 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 8, 10, 12, 14, 0, 2, 4, 6 }); ! #else ! __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 0, 2, 4, 6, 8, 10, 12, 14 }); ! __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) ! { 1, 3, 5, 7, 9, 11, 13, 15 }); ! #endif return __rv; } diff -Nrcpad gcc-4.9.0/gcc/config/arm/bpabi.h gcc-4.9.1/gcc/config/arm/bpabi.h *** gcc-4.9.0/gcc/config/arm/bpabi.h Wed Jan 29 13:46:39 2014 --- gcc-4.9.1/gcc/config/arm/bpabi.h Tue May 27 11:42:10 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* Use the AAPCS ABI by default. */ --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* Use the AAPCS ABI by default. */ diff -Nrcpad gcc-4.9.0/gcc/config/arm/elf.h gcc-4.9.1/gcc/config/arm/elf.h *** gcc-4.9.0/gcc/config/arm/elf.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/elf.h Tue May 27 11:42:10 2014 *************** *** 16,23 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifndef OBJECT_FORMAT_ELF --- 16,28 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef OBJECT_FORMAT_ELF diff -Nrcpad gcc-4.9.0/gcc/config/arm/linux-elf.h gcc-4.9.1/gcc/config/arm/linux-elf.h *** gcc-4.9.0/gcc/config/arm/linux-elf.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/linux-elf.h Tue May 27 11:42:10 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* elfos.h should have already been included. Now just override --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* elfos.h should have already been included. Now just override diff -Nrcpad gcc-4.9.0/gcc/config/arm/linux-gas.h gcc-4.9.1/gcc/config/arm/linux-gas.h *** gcc-4.9.0/gcc/config/arm/linux-gas.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/linux-gas.h Tue May 27 11:42:10 2014 *************** *** 15,22 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* This is how we tell the assembler that a symbol is weak. --- 15,27 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* This is how we tell the assembler that a symbol is weak. diff -Nrcpad gcc-4.9.0/gcc/config/arm/neon-docgen.ml gcc-4.9.1/gcc/config/arm/neon-docgen.ml *** gcc-4.9.0/gcc/config/arm/neon-docgen.ml Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/neon-docgen.ml Thu Jan 1 00:00:00 1970 *************** *** 1,424 **** - (* ARM NEON documentation generator. - - Copyright (C) 2006-2014 Free Software Foundation, Inc. - Contributed by CodeSourcery. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 3, or (at your option) any later - version. - - GCC is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING3. If not see - . - - This is an O'Caml program. The O'Caml compiler is available from: - - http://caml.inria.fr/ - - Or from your favourite OS's friendly packaging system. Tested with version - 3.09.2, though other versions will probably work too. - - Compile with: - ocamlc -c neon.ml - ocamlc -o neon-docgen neon.cmo neon-docgen.ml - - Run with: - /path/to/neon-docgen /path/to/gcc/doc/arm-neon-intrinsics.texi - *) - - open Neon - - (* The combined "ops" and "reinterp" table. *) - let ops_reinterp = reinterp @ ops - - (* Helper functions for extracting things from the "ops" table. *) - let single_opcode desired_opcode () = - List.fold_left (fun got_so_far -> - fun row -> - match row with - (opcode, _, _, _, _, _) -> - if opcode = desired_opcode then row :: got_so_far - else got_so_far - ) [] ops_reinterp - - let multiple_opcodes desired_opcodes () = - List.fold_left (fun got_so_far -> - fun desired_opcode -> - (single_opcode desired_opcode ()) @ got_so_far) - [] desired_opcodes - - let ldx_opcode number () = - List.fold_left (fun got_so_far -> - fun row -> - match row with - (opcode, _, _, _, _, _) -> - match opcode with - Vldx n | Vldx_lane n | Vldx_dup n when n = number -> - row :: got_so_far - | _ -> got_so_far - ) [] ops_reinterp - - let stx_opcode number () = - List.fold_left (fun got_so_far -> - fun row -> - match row with - (opcode, _, _, _, _, _) -> - match opcode with - Vstx n | Vstx_lane n when n = number -> - row :: got_so_far - | _ -> got_so_far - ) [] ops_reinterp - - let tbl_opcode () = - List.fold_left (fun got_so_far -> - fun row -> - match row with - (opcode, _, _, _, _, _) -> - match opcode with - Vtbl _ -> row :: got_so_far - | _ -> got_so_far - ) [] ops_reinterp - - let tbx_opcode () = - List.fold_left (fun got_so_far -> - fun row -> - match row with - (opcode, _, _, _, _, _) -> - match opcode with - Vtbx _ -> row :: got_so_far - | _ -> got_so_far - ) [] ops_reinterp - - (* The groups of intrinsics. *) - let intrinsic_groups = - [ "Addition", single_opcode Vadd; - "Multiplication", single_opcode Vmul; - "Multiply-accumulate", single_opcode Vmla; - "Multiply-subtract", single_opcode Vmls; - "Fused-multiply-accumulate", single_opcode Vfma; - "Fused-multiply-subtract", single_opcode Vfms; - "Round to integral (to nearest, ties to even)", single_opcode Vrintn; - "Round to integral (to nearest, ties away from zero)", single_opcode Vrinta; - "Round to integral (towards +Inf)", single_opcode Vrintp; - "Round to integral (towards -Inf)", single_opcode Vrintm; - "Round to integral (towards 0)", single_opcode Vrintz; - "Subtraction", single_opcode Vsub; - "Comparison (equal-to)", single_opcode Vceq; - "Comparison (greater-than-or-equal-to)", single_opcode Vcge; - "Comparison (less-than-or-equal-to)", single_opcode Vcle; - "Comparison (greater-than)", single_opcode Vcgt; - "Comparison (less-than)", single_opcode Vclt; - "Comparison (absolute greater-than-or-equal-to)", single_opcode Vcage; - "Comparison (absolute less-than-or-equal-to)", single_opcode Vcale; - "Comparison (absolute greater-than)", single_opcode Vcagt; - "Comparison (absolute less-than)", single_opcode Vcalt; - "Test bits", single_opcode Vtst; - "Absolute difference", single_opcode Vabd; - "Absolute difference and accumulate", single_opcode Vaba; - "Maximum", single_opcode Vmax; - "Minimum", single_opcode Vmin; - "Pairwise add", single_opcode Vpadd; - "Pairwise add, single_opcode widen and accumulate", single_opcode Vpada; - "Folding maximum", single_opcode Vpmax; - "Folding minimum", single_opcode Vpmin; - "Reciprocal step", multiple_opcodes [Vrecps; Vrsqrts]; - "Vector shift left", single_opcode Vshl; - "Vector shift left by constant", single_opcode Vshl_n; - "Vector shift right by constant", single_opcode Vshr_n; - "Vector shift right by constant and accumulate", single_opcode Vsra_n; - "Vector shift right and insert", single_opcode Vsri; - "Vector shift left and insert", single_opcode Vsli; - "Absolute value", single_opcode Vabs; - "Negation", single_opcode Vneg; - "Bitwise not", single_opcode Vmvn; - "Count leading sign bits", single_opcode Vcls; - "Count leading zeros", single_opcode Vclz; - "Count number of set bits", single_opcode Vcnt; - "Reciprocal estimate", single_opcode Vrecpe; - "Reciprocal square-root estimate", single_opcode Vrsqrte; - "Get lanes from a vector", single_opcode Vget_lane; - "Set lanes in a vector", single_opcode Vset_lane; - "Create vector from literal bit pattern", single_opcode Vcreate; - "Set all lanes to the same value", - multiple_opcodes [Vdup_n; Vmov_n; Vdup_lane]; - "Combining vectors", single_opcode Vcombine; - "Splitting vectors", multiple_opcodes [Vget_high; Vget_low]; - "Conversions", multiple_opcodes [Vcvt; Vcvt_n]; - "Move, single_opcode narrowing", single_opcode Vmovn; - "Move, single_opcode long", single_opcode Vmovl; - "Table lookup", tbl_opcode; - "Extended table lookup", tbx_opcode; - "Multiply, lane", single_opcode Vmul_lane; - "Long multiply, lane", single_opcode Vmull_lane; - "Saturating doubling long multiply, lane", single_opcode Vqdmull_lane; - "Saturating doubling multiply high, lane", single_opcode Vqdmulh_lane; - "Multiply-accumulate, lane", single_opcode Vmla_lane; - "Multiply-subtract, lane", single_opcode Vmls_lane; - "Vector multiply by scalar", single_opcode Vmul_n; - "Vector long multiply by scalar", single_opcode Vmull_n; - "Vector saturating doubling long multiply by scalar", - single_opcode Vqdmull_n; - "Vector saturating doubling multiply high by scalar", - single_opcode Vqdmulh_n; - "Vector multiply-accumulate by scalar", single_opcode Vmla_n; - "Vector multiply-subtract by scalar", single_opcode Vmls_n; - "Vector extract", single_opcode Vext; - "Reverse elements", multiple_opcodes [Vrev64; Vrev32; Vrev16]; - "Bit selection", single_opcode Vbsl; - "Transpose elements", single_opcode Vtrn; - "Zip elements", single_opcode Vzip; - "Unzip elements", single_opcode Vuzp; - "Element/structure loads, VLD1 variants", ldx_opcode 1; - "Element/structure stores, VST1 variants", stx_opcode 1; - "Element/structure loads, VLD2 variants", ldx_opcode 2; - "Element/structure stores, VST2 variants", stx_opcode 2; - "Element/structure loads, VLD3 variants", ldx_opcode 3; - "Element/structure stores, VST3 variants", stx_opcode 3; - "Element/structure loads, VLD4 variants", ldx_opcode 4; - "Element/structure stores, VST4 variants", stx_opcode 4; - "Logical operations (AND)", single_opcode Vand; - "Logical operations (OR)", single_opcode Vorr; - "Logical operations (exclusive OR)", single_opcode Veor; - "Logical operations (AND-NOT)", single_opcode Vbic; - "Logical operations (OR-NOT)", single_opcode Vorn; - "Reinterpret casts", single_opcode Vreinterp ] - - (* Given an intrinsic shape, produce a string to document the corresponding - operand shapes. *) - let rec analyze_shape shape = - let rec n_things n thing = - match n with - 0 -> [] - | n -> thing :: (n_things (n - 1) thing) - in - let rec analyze_shape_elt reg_no elt = - match elt with - Dreg -> "@var{d" ^ (string_of_int reg_no) ^ "}" - | Qreg -> "@var{q" ^ (string_of_int reg_no) ^ "}" - | Corereg -> "@var{r" ^ (string_of_int reg_no) ^ "}" - | Immed -> "#@var{0}" - | VecArray (1, elt) -> - let elt_regexp = analyze_shape_elt 0 elt in - "@{" ^ elt_regexp ^ "@}" - | VecArray (n, elt) -> - let rec f m = - match m with - 0 -> [] - | m -> (analyze_shape_elt (m - 1) elt) :: (f (m - 1)) - in - let ops = List.rev (f n) in - "@{" ^ (commas (fun x -> x) ops "") ^ "@}" - | (PtrTo elt | CstPtrTo elt) -> - "[" ^ (analyze_shape_elt reg_no elt) ^ "]" - | Element_of_dreg -> (analyze_shape_elt reg_no Dreg) ^ "[@var{0}]" - | Element_of_qreg -> (analyze_shape_elt reg_no Qreg) ^ "[@var{0}]" - | All_elements_of_dreg -> (analyze_shape_elt reg_no Dreg) ^ "[]" - | Alternatives alts -> (analyze_shape_elt reg_no (List.hd alts)) - in - match shape with - All (n, elt) -> commas (analyze_shape_elt 0) (n_things n elt) "" - | Long -> (analyze_shape_elt 0 Qreg) ^ ", " ^ (analyze_shape_elt 0 Dreg) ^ - ", " ^ (analyze_shape_elt 0 Dreg) - | Long_noreg elt -> (analyze_shape_elt 0 elt) ^ ", " ^ - (analyze_shape_elt 0 elt) - | Wide -> (analyze_shape_elt 0 Qreg) ^ ", " ^ (analyze_shape_elt 0 Qreg) ^ - ", " ^ (analyze_shape_elt 0 Dreg) - | Wide_noreg elt -> analyze_shape (Long_noreg elt) - | Narrow -> (analyze_shape_elt 0 Dreg) ^ ", " ^ (analyze_shape_elt 0 Qreg) ^ - ", " ^ (analyze_shape_elt 0 Qreg) - | Use_operands elts -> commas (analyze_shape_elt 0) (Array.to_list elts) "" - | By_scalar Dreg -> - analyze_shape (Use_operands [| Dreg; Dreg; Element_of_dreg |]) - | By_scalar Qreg -> - analyze_shape (Use_operands [| Qreg; Qreg; Element_of_dreg |]) - | By_scalar _ -> assert false - | Wide_lane -> - analyze_shape (Use_operands [| Qreg; Dreg; Element_of_dreg |]) - | Wide_scalar -> - analyze_shape (Use_operands [| Qreg; Dreg; Element_of_dreg |]) - | Pair_result elt -> - let elt_regexp = analyze_shape_elt 0 elt in - let elt_regexp' = analyze_shape_elt 1 elt in - elt_regexp ^ ", " ^ elt_regexp' - | Unary_scalar _ -> "FIXME Unary_scalar" - | Binary_imm elt -> analyze_shape (Use_operands [| elt; elt; Immed |]) - | Narrow_imm -> analyze_shape (Use_operands [| Dreg; Qreg; Immed |]) - | Long_imm -> analyze_shape (Use_operands [| Qreg; Dreg; Immed |]) - - (* Document a single intrinsic. *) - let describe_intrinsic first chan - (elt_ty, (_, features, shape, name, munge, _)) = - let c_arity, new_elt_ty = munge shape elt_ty in - let c_types = strings_of_arity c_arity in - Printf.fprintf chan "@itemize @bullet\n"; - let item_code = if first then "@item" else "@itemx" in - Printf.fprintf chan "%s %s %s_%s (" item_code (List.hd c_types) - (intrinsic_name name) (string_of_elt elt_ty); - Printf.fprintf chan "%s)\n" (commas (fun ty -> ty) (List.tl c_types) ""); - if not (List.exists (fun feature -> feature = No_op) features) then - begin - let print_one_insn name = - Printf.fprintf chan "@code{"; - let no_suffix = (new_elt_ty = NoElts) in - let name_with_suffix = - if no_suffix then name - else name ^ "." ^ (string_of_elt_dots new_elt_ty) - in - let possible_operands = analyze_all_shapes features shape - analyze_shape - in - let rec print_one_possible_operand op = - Printf.fprintf chan "%s %s}" name_with_suffix op - in - (* If the intrinsic expands to multiple instructions, we assume - they are all of the same form. *) - print_one_possible_operand (List.hd possible_operands) - in - let rec print_insns names = - match names with - [] -> () - | [name] -> print_one_insn name - | name::names -> (print_one_insn name; - Printf.fprintf chan " @emph{or} "; - print_insns names) - in - let insn_names = get_insn_names features name in - Printf.fprintf chan "@*@emph{Form of expected instruction(s):} "; - print_insns insn_names; - Printf.fprintf chan "\n" - end; - Printf.fprintf chan "@end itemize\n"; - Printf.fprintf chan "\n\n" - - (* Document a group of intrinsics. *) - let document_group chan (group_title, group_extractor) = - (* Extract the rows in question from the ops table and then turn them - into a list of intrinsics. *) - let intrinsics = - List.fold_left (fun got_so_far -> - fun row -> - match row with - (_, _, _, _, _, elt_tys) -> - List.fold_left (fun got_so_far' -> - fun elt_ty -> - (elt_ty, row) :: got_so_far') - got_so_far elt_tys - ) [] (group_extractor ()) - in - (* Emit the title for this group. *) - Printf.fprintf chan "@subsubsection %s\n\n" group_title; - (* Emit a description of each intrinsic. *) - List.iter (describe_intrinsic true chan) intrinsics; - (* Close this group. *) - Printf.fprintf chan "\n\n" - - let gnu_header chan = - List.iter (fun s -> Printf.fprintf chan "%s\n" s) [ - "@c Copyright (C) 2006-2014 Free Software Foundation, Inc."; - "@c This is part of the GCC manual."; - "@c For copying conditions, see the file gcc.texi."; - ""; - "@c This file is generated automatically using gcc/config/arm/neon-docgen.ml"; - "@c Please do not edit manually."] - - let crypto_doc = - " - @itemize @bullet - @item poly128_t vldrq_p128(poly128_t const *) - @end itemize - - @itemize @bullet - @item void vstrq_p128(poly128_t *, poly128_t) - @end itemize - - @itemize @bullet - @item uint64x1_t vceq_p64 (poly64x1_t, poly64x1_t) - @end itemize - - @itemize @bullet - @item uint64x1_t vtst_p64 (poly64x1_t, poly64x1_t) - @end itemize - - @itemize @bullet - @item uint32_t vsha1h_u32 (uint32_t) - @*@emph{Form of expected instruction(s):} @code{sha1h.32 @var{q0}, @var{q1}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha1cq_u32 (uint32x4_t, uint32_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha1c.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha1pq_u32 (uint32x4_t, uint32_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha1p.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha1mq_u32 (uint32x4_t, uint32_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha1m.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha1su0q_u32 (uint32x4_t, uint32x4_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha1su0.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha1su1q_u32 (uint32x4_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha1su1.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha256hq_u32 (uint32x4_t, uint32x4_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha256h.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha256h2q_u32 (uint32x4_t, uint32x4_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha256h2.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha256su0q_u32 (uint32x4_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha256su0.32 @var{q0}, @var{q1}} - @end itemize - - @itemize @bullet - @item uint32x4_t vsha256su1q_u32 (uint32x4_t, uint32x4_t, uint32x4_t) - @*@emph{Form of expected instruction(s):} @code{sha256su1.32 @var{q0}, @var{q1}, @var{q2}} - @end itemize - - @itemize @bullet - @item poly128_t vmull_p64 (poly64_t a, poly64_t b) - @*@emph{Form of expected instruction(s):} @code{vmull.p64 @var{q0}, @var{d1}, @var{d2}} - @end itemize - - @itemize @bullet - @item poly128_t vmull_high_p64 (poly64x2_t a, poly64x2_t b) - @*@emph{Form of expected instruction(s):} @code{vmull.p64 @var{q0}, @var{d1}, @var{d2}} - @end itemize - " - - (* Program entry point. *) - let _ = - if Array.length Sys.argv <> 2 then - failwith "Usage: neon-docgen " - else - let file = Sys.argv.(1) in - try - let chan = open_out file in - gnu_header chan; - List.iter (document_group chan) intrinsic_groups; - Printf.fprintf chan "%s\n" crypto_doc; - close_out chan - with Sys_error sys -> - failwith ("Could not create output file " ^ file ^ ": " ^ sys) --- 0 ---- diff -Nrcpad gcc-4.9.0/gcc/config/arm/neon-gen.ml gcc-4.9.1/gcc/config/arm/neon-gen.ml *** gcc-4.9.0/gcc/config/arm/neon-gen.ml Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/neon-gen.ml Thu Jan 1 00:00:00 1970 *************** *** 1,520 **** - (* Auto-generate ARM Neon intrinsics header file. - Copyright (C) 2006-2014 Free Software Foundation, Inc. - Contributed by CodeSourcery. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 3, or (at your option) any later - version. - - GCC is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING3. If not see - . - - This is an O'Caml program. The O'Caml compiler is available from: - - http://caml.inria.fr/ - - Or from your favourite OS's friendly packaging system. Tested with version - 3.09.2, though other versions will probably work too. - - Compile with: - ocamlc -c neon.ml - ocamlc -o neon-gen neon.cmo neon-gen.ml - - Run with: - ./neon-gen > arm_neon.h - *) - - open Neon - - (* The format codes used in the following functions are documented at: - http://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html\ - #6_printflikefunctionsforprettyprinting - (one line, remove the backslash.) - *) - - (* Following functions can be used to approximate GNU indentation style. *) - let start_function () = - Format.printf "@["; - ref 0 - - let end_function nesting = - match !nesting with - 0 -> Format.printf "@;@;@]" - | _ -> failwith ("Bad nesting (ending function at level " - ^ (string_of_int !nesting) ^ ")") - - let open_braceblock nesting = - begin match !nesting with - 0 -> Format.printf "@,@<0>{@[@," - | _ -> Format.printf "@,@[ @<0>{@[@," - end; - incr nesting - - let close_braceblock nesting = - decr nesting; - match !nesting with - 0 -> Format.printf "@]@,@<0>}" - | _ -> Format.printf "@]@,@<0>}@]" - - let print_function arity fnname body = - let ffmt = start_function () in - Format.printf "__extension__ static __inline "; - let inl = "__attribute__ ((__always_inline__))" in - begin match arity with - Arity0 ret -> - Format.printf "%s %s@,%s (void)" (string_of_vectype ret) inl fnname - | Arity1 (ret, arg0) -> - Format.printf "%s %s@,%s (%s __a)" (string_of_vectype ret) inl fnname - (string_of_vectype arg0) - | Arity2 (ret, arg0, arg1) -> - Format.printf "%s %s@,%s (%s __a, %s __b)" - (string_of_vectype ret) inl fnname (string_of_vectype arg0) - (string_of_vectype arg1) - | Arity3 (ret, arg0, arg1, arg2) -> - Format.printf "%s %s@,%s (%s __a, %s __b, %s __c)" - (string_of_vectype ret) inl fnname (string_of_vectype arg0) - (string_of_vectype arg1) (string_of_vectype arg2) - | Arity4 (ret, arg0, arg1, arg2, arg3) -> - Format.printf "%s %s@,%s (%s __a, %s __b, %s __c, %s __d)" - (string_of_vectype ret) inl fnname (string_of_vectype arg0) - (string_of_vectype arg1) (string_of_vectype arg2) - (string_of_vectype arg3) - end; - open_braceblock ffmt; - let rec print_lines = function - [] -> () - | "" :: lines -> print_lines lines - | [line] -> Format.printf "%s" line - | line::lines -> Format.printf "%s@," line ; print_lines lines in - print_lines body; - close_braceblock ffmt; - end_function ffmt - - let union_string num elts base = - let itype = inttype_for_array num elts in - let iname = string_of_inttype itype - and sname = string_of_vectype (T_arrayof (num, elts)) in - Printf.sprintf "union { %s __i; %s __o; } %s" sname iname base - - let rec signed_ctype = function - T_uint8x8 | T_poly8x8 -> T_int8x8 - | T_uint8x16 | T_poly8x16 -> T_int8x16 - | T_uint16x4 | T_poly16x4 -> T_int16x4 - | T_uint16x8 | T_poly16x8 -> T_int16x8 - | T_uint32x2 -> T_int32x2 - | T_uint32x4 -> T_int32x4 - | T_uint64x1 -> T_int64x1 - | T_uint64x2 -> T_int64x2 - | T_poly64x2 -> T_int64x2 - (* Cast to types defined by mode in arm.c, not random types pulled in from - the header in use. This fixes incompatible pointer errors when - compiling with C++. *) - | T_uint8 | T_int8 -> T_intQI - | T_uint16 | T_int16 -> T_intHI - | T_uint32 | T_int32 -> T_intSI - | T_uint64 | T_int64 -> T_intDI - | T_float16 -> T_floatHF - | T_float32 -> T_floatSF - | T_poly8 -> T_intQI - | T_poly16 -> T_intHI - | T_poly64 -> T_intDI - | T_poly128 -> T_intTI - | T_arrayof (n, elt) -> T_arrayof (n, signed_ctype elt) - | T_ptrto elt -> T_ptrto (signed_ctype elt) - | T_const elt -> T_const (signed_ctype elt) - | x -> x - - let add_cast ctype cval = - let stype = signed_ctype ctype in - if ctype <> stype then - Printf.sprintf "(%s) %s" (string_of_vectype stype) cval - else - cval - - let cast_for_return to_ty = "(" ^ (string_of_vectype to_ty) ^ ")" - - (* Return a tuple of a list of declarations to go at the start of the function, - and a list of statements needed to return THING. *) - let return arity thing = - match arity with - Arity0 (ret) | Arity1 (ret, _) | Arity2 (ret, _, _) | Arity3 (ret, _, _, _) - | Arity4 (ret, _, _, _, _) -> - begin match ret with - T_arrayof (num, vec) -> - let uname = union_string num vec "__rv" in - [uname ^ ";"], ["__rv.__o = " ^ thing ^ ";"; "return __rv.__i;"] - | T_void -> - [], [thing ^ ";"] - | _ -> - [], ["return " ^ (cast_for_return ret) ^ thing ^ ";"] - end - - let mask_shape_for_shuffle = function - All (num, reg) -> All (num, reg) - | Pair_result reg -> All (2, reg) - | _ -> failwith "mask_for_shuffle" - - let mask_elems shuffle shape elttype part = - let elem_size = elt_width elttype in - let num_elems = - match regmap shape 0 with - Dreg -> 64 / elem_size - | Qreg -> 128 / elem_size - | _ -> failwith "mask_elems" in - shuffle elem_size num_elems part - - (* Return a tuple of a list of declarations 0and a list of statements needed - to implement an intrinsic using __builtin_shuffle. SHUFFLE is a function - which returns a list of elements suitable for using as a mask. *) - - let shuffle_fn shuffle shape arity elttype = - let mshape = mask_shape_for_shuffle shape in - let masktype = type_for_elt mshape (unsigned_of_elt elttype) 0 in - let masktype_str = string_of_vectype masktype in - let shuffle_res = type_for_elt mshape elttype 0 in - let shuffle_res_str = string_of_vectype shuffle_res in - match arity with - Arity0 (ret) | Arity1 (ret, _) | Arity2 (ret, _, _) | Arity3 (ret, _, _, _) - | Arity4 (ret, _, _, _, _) -> - begin match ret with - T_arrayof (num, vec) -> - let elems1 = mask_elems shuffle mshape elttype `lo - and elems2 = mask_elems shuffle mshape elttype `hi in - let mask1 = (String.concat ", " (List.map string_of_int elems1)) - and mask2 = (String.concat ", " (List.map string_of_int elems2)) in - let shuf1 = Printf.sprintf - "__rv.val[0] = (%s) __builtin_shuffle (__a, __b, (%s) { %s });" - shuffle_res_str masktype_str mask1 - and shuf2 = Printf.sprintf - "__rv.val[1] = (%s) __builtin_shuffle (__a, __b, (%s) { %s });" - shuffle_res_str masktype_str mask2 in - [Printf.sprintf "%s __rv;" (string_of_vectype ret);], - [shuf1; shuf2; "return __rv;"] - | _ -> - let elems = mask_elems shuffle mshape elttype `lo in - let mask = (String.concat ", " (List.map string_of_int elems)) in - let shuf = Printf.sprintf - "return (%s) __builtin_shuffle (__a, (%s) { %s });" shuffle_res_str masktype_str mask in - [""], - [shuf] - end - - let rec element_type ctype = - match ctype with - T_arrayof (_, v) -> element_type v - | _ -> ctype - - let params ps = - let pdecls = ref [] in - let ptype t p = - match t with - T_arrayof (num, elts) -> - let uname = union_string num elts (p ^ "u") in - let decl = Printf.sprintf "%s = { %s };" uname p in - pdecls := decl :: !pdecls; - p ^ "u.__o" - | _ -> add_cast t p in - let plist = match ps with - Arity0 _ -> [] - | Arity1 (_, t1) -> [ptype t1 "__a"] - | Arity2 (_, t1, t2) -> [ptype t1 "__a"; ptype t2 "__b"] - | Arity3 (_, t1, t2, t3) -> [ptype t1 "__a"; ptype t2 "__b"; ptype t3 "__c"] - | Arity4 (_, t1, t2, t3, t4) -> - [ptype t1 "__a"; ptype t2 "__b"; ptype t3 "__c"; ptype t4 "__d"] in - !pdecls, plist - - let modify_params features plist = - let is_flipped = - List.exists (function Flipped _ -> true | _ -> false) features in - if is_flipped then - match plist with - [ a; b ] -> [ b; a ] - | _ -> - failwith ("Don't know how to flip args " ^ (String.concat ", " plist)) - else - plist - - (* !!! Decide whether to add an extra information word based on the shape - form. *) - let extra_word shape features paramlist bits = - let use_word = - match shape with - All _ | Long | Long_noreg _ | Wide | Wide_noreg _ | Narrow - | By_scalar _ | Wide_scalar | Wide_lane | Binary_imm _ | Long_imm - | Narrow_imm -> true - | _ -> List.mem InfoWord features - in - if use_word then - paramlist @ [string_of_int bits] - else - paramlist - - (* Bit 0 represents signed (1) vs unsigned (0), or float (1) vs poly (0). - Bit 1 represents floats & polynomials (1), or ordinary integers (0). - Bit 2 represents rounding (1) vs none (0). *) - let infoword_value elttype features = - let bits01 = - match elt_class elttype with - Signed | ConvClass (Signed, _) | ConvClass (_, Signed) -> 0b001 - | Poly -> 0b010 - | Float -> 0b011 - | _ -> 0b000 - and rounding_bit = if List.mem Rounding features then 0b100 else 0b000 in - bits01 lor rounding_bit - - (* "Cast" type operations will throw an exception in mode_of_elt (actually in - elt_width, called from there). Deal with that here, and generate a suffix - with multiple modes (). *) - let rec mode_suffix elttype shape = - try - let mode = mode_of_elt elttype shape in - string_of_mode mode - with MixedMode (dst, src) -> - let dstmode = mode_of_elt ~argpos:0 dst shape - and srcmode = mode_of_elt ~argpos:1 src shape in - string_of_mode dstmode ^ string_of_mode srcmode - - let get_shuffle features = - try - match List.find (function Use_shuffle _ -> true | _ -> false) features with - Use_shuffle fn -> Some fn - | _ -> None - with Not_found -> None - - let print_feature_test_start features = - try - match List.find (fun feature -> - match feature with Requires_feature _ -> true - | Requires_arch _ -> true - | Requires_FP_bit _ -> true - | _ -> false) - features with - Requires_feature feature -> - Format.printf "#ifdef __ARM_FEATURE_%s@\n" feature - | Requires_arch arch -> - Format.printf "#if __ARM_ARCH >= %d@\n" arch - | Requires_FP_bit bit -> - Format.printf "#if ((__ARM_FP & 0x%X) != 0)@\n" - (1 lsl bit) - | _ -> assert false - with Not_found -> assert true - - let print_feature_test_end features = - let feature = - List.exists (function Requires_feature _ -> true - | Requires_arch _ -> true - | Requires_FP_bit _ -> true - | _ -> false) features in - if feature then Format.printf "#endif@\n" - - - let print_variant opcode features shape name (ctype, asmtype, elttype) = - let bits = infoword_value elttype features in - let modesuf = mode_suffix elttype shape in - let pdecls, paramlist = params ctype in - let rdecls, stmts = - match get_shuffle features with - Some shuffle -> shuffle_fn shuffle shape ctype elttype - | None -> - let paramlist' = modify_params features paramlist in - let paramlist'' = extra_word shape features paramlist' bits in - let parstr = String.concat ", " paramlist'' in - let builtin = Printf.sprintf "__builtin_neon_%s%s (%s)" - (builtin_name features name) modesuf parstr in - return ctype builtin in - let body = pdecls @ rdecls @ stmts - and fnname = (intrinsic_name name) ^ "_" ^ (string_of_elt elttype) in - begin - print_feature_test_start features; - print_function ctype fnname body; - print_feature_test_end features; - end - - (* When this function processes the element types in the ops table, it rewrites - them in a list of tuples (a,b,c): - a : C type as an "arity", e.g. Arity1 (T_poly8x8, T_poly8x8) - b : Asm type : a single, processed element type, e.g. P16. This is the - type which should be attached to the asm opcode. - c : Variant type : the unprocessed type for this variant (e.g. in add - instructions which don't care about the sign, b might be i16 and c - might be s16.) - *) - - let print_op (opcode, features, shape, name, munge, types) = - let sorted_types = List.sort compare types in - let munged_types = List.map - (fun elt -> let c, asm = munge shape elt in c, asm, elt) sorted_types in - List.iter - (fun variant -> print_variant opcode features shape name variant) - munged_types - - let print_ops ops = - List.iter print_op ops - - (* Output type definitions. Table entries are: - cbase : "C" name for the type. - abase : "ARM" base name for the type (i.e. int in int8x8_t). - esize : element size. - enum : element count. - alevel: architecture level at which available. - *) - - type fpulevel = CRYPTO | ALL - - let deftypes () = - let typeinfo = [ - (* Doubleword vector types. *) - "__builtin_neon_qi", "int", 8, 8, ALL; - "__builtin_neon_hi", "int", 16, 4, ALL; - "__builtin_neon_si", "int", 32, 2, ALL; - "__builtin_neon_di", "int", 64, 1, ALL; - "__builtin_neon_hf", "float", 16, 4, ALL; - "__builtin_neon_sf", "float", 32, 2, ALL; - "__builtin_neon_poly8", "poly", 8, 8, ALL; - "__builtin_neon_poly16", "poly", 16, 4, ALL; - "__builtin_neon_poly64", "poly", 64, 1, CRYPTO; - "__builtin_neon_uqi", "uint", 8, 8, ALL; - "__builtin_neon_uhi", "uint", 16, 4, ALL; - "__builtin_neon_usi", "uint", 32, 2, ALL; - "__builtin_neon_udi", "uint", 64, 1, ALL; - - (* Quadword vector types. *) - "__builtin_neon_qi", "int", 8, 16, ALL; - "__builtin_neon_hi", "int", 16, 8, ALL; - "__builtin_neon_si", "int", 32, 4, ALL; - "__builtin_neon_di", "int", 64, 2, ALL; - "__builtin_neon_sf", "float", 32, 4, ALL; - "__builtin_neon_poly8", "poly", 8, 16, ALL; - "__builtin_neon_poly16", "poly", 16, 8, ALL; - "__builtin_neon_poly64", "poly", 64, 2, CRYPTO; - "__builtin_neon_uqi", "uint", 8, 16, ALL; - "__builtin_neon_uhi", "uint", 16, 8, ALL; - "__builtin_neon_usi", "uint", 32, 4, ALL; - "__builtin_neon_udi", "uint", 64, 2, ALL - ] in - List.iter - (fun (cbase, abase, esize, enum, fpulevel) -> - let attr = - match enum with - 1 -> "" - | _ -> Printf.sprintf "\t__attribute__ ((__vector_size__ (%d)))" - (esize * enum / 8) in - if fpulevel == CRYPTO then - Format.printf "#ifdef __ARM_FEATURE_CRYPTO\n"; - Format.printf "typedef %s %s%dx%d_t%s;@\n" cbase abase esize enum attr; - if fpulevel == CRYPTO then - Format.printf "#endif\n";) - typeinfo; - Format.print_newline (); - (* Extra types not in . *) - Format.printf "typedef float float32_t;\n"; - Format.printf "typedef __builtin_neon_poly8 poly8_t;\n"; - Format.printf "typedef __builtin_neon_poly16 poly16_t;\n"; - Format.printf "#ifdef __ARM_FEATURE_CRYPTO\n"; - Format.printf "typedef __builtin_neon_poly64 poly64_t;\n"; - Format.printf "typedef __builtin_neon_poly128 poly128_t;\n"; - Format.printf "#endif\n" - - (* Output structs containing arrays, for load & store instructions etc. - poly128_t is deliberately not included here because it has no array types - defined for it. *) - - let arrtypes () = - let typeinfo = [ - "int", 8, ALL; "int", 16, ALL; - "int", 32, ALL; "int", 64, ALL; - "uint", 8, ALL; "uint", 16, ALL; - "uint", 32, ALL; "uint", 64, ALL; - "float", 32, ALL; "poly", 8, ALL; - "poly", 16, ALL; "poly", 64, CRYPTO - ] in - let writestruct elname elsize regsize arrsize fpulevel = - let elnum = regsize / elsize in - let structname = - Printf.sprintf "%s%dx%dx%d_t" elname elsize elnum arrsize in - let sfmt = start_function () in - Format.printf "%stypedef struct %s" - (if fpulevel == CRYPTO then "#ifdef __ARM_FEATURE_CRYPTO\n" else "") structname; - open_braceblock sfmt; - Format.printf "%s%dx%d_t val[%d];" elname elsize elnum arrsize; - close_braceblock sfmt; - Format.printf " %s;%s" structname (if fpulevel == CRYPTO then "\n#endif\n" else ""); - end_function sfmt; - in - for n = 2 to 4 do - List.iter - (fun (elname, elsize, alevel) -> - writestruct elname elsize 64 n alevel; - writestruct elname elsize 128 n alevel) - typeinfo - done - - let print_lines = List.iter (fun s -> Format.printf "%s@\n" s) - - (* Do it. *) - - let _ = - print_lines [ - "/* ARM NEON intrinsics include file. This file is generated automatically"; - " using neon-gen.ml. Please do not edit manually."; - ""; - " Copyright (C) 2006-2014 Free Software Foundation, Inc."; - " Contributed by CodeSourcery."; - ""; - " This file is part of GCC."; - ""; - " GCC is free software; you can redistribute it and/or modify it"; - " under the terms of the GNU General Public License as published"; - " by the Free Software Foundation; either version 3, or (at your"; - " option) any later version."; - ""; - " GCC is distributed in the hope that it will be useful, but WITHOUT"; - " ANY WARRANTY; without even the implied warranty of MERCHANTABILITY"; - " or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public"; - " License for more details."; - ""; - " Under Section 7 of GPL version 3, you are granted additional"; - " permissions described in the GCC Runtime Library Exception, version"; - " 3.1, as published by the Free Software Foundation."; - ""; - " You should have received a copy of the GNU General Public License and"; - " a copy of the GCC Runtime Library Exception along with this program;"; - " see the files COPYING3 and COPYING.RUNTIME respectively. If not, see"; - " . */"; - ""; - "#ifndef _GCC_ARM_NEON_H"; - "#define _GCC_ARM_NEON_H 1"; - ""; - "#ifndef __ARM_NEON__"; - "#error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h"; - "#else"; - ""; - "#ifdef __cplusplus"; - "extern \"C\" {"; - "#endif"; - ""; - "#include "; - ""]; - deftypes (); - arrtypes (); - Format.print_newline (); - print_ops ops; - Format.print_newline (); - print_ops reinterp; - print_ops reinterpq; - Format.printf "%s" crypto_intrinsics; - print_lines [ - "#ifdef __cplusplus"; - "}"; - "#endif"; - "#endif"; - "#endif"] --- 0 ---- diff -Nrcpad gcc-4.9.0/gcc/config/arm/netbsd-elf.h gcc-4.9.1/gcc/config/arm/netbsd-elf.h *** gcc-4.9.0/gcc/config/arm/netbsd-elf.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/netbsd-elf.h Tue May 27 11:42:10 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* Run-time Target Specification. */ --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* Run-time Target Specification. */ diff -Nrcpad gcc-4.9.0/gcc/config/arm/uclinux-eabi.h gcc-4.9.1/gcc/config/arm/uclinux-eabi.h *** gcc-4.9.0/gcc/config/arm/uclinux-eabi.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/uclinux-eabi.h Tue May 27 11:42:10 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* Override settings that are different to the uclinux-elf or --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* Override settings that are different to the uclinux-elf or diff -Nrcpad gcc-4.9.0/gcc/config/arm/uclinux-elf.h gcc-4.9.1/gcc/config/arm/uclinux-elf.h *** gcc-4.9.0/gcc/config/arm/uclinux-elf.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/uclinux-elf.h Tue May 27 11:42:10 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* We don't want a PLT. */ --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* We don't want a PLT. */ diff -Nrcpad gcc-4.9.0/gcc/config/arm/vxworks.h gcc-4.9.1/gcc/config/arm/vxworks.h *** gcc-4.9.0/gcc/config/arm/vxworks.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/arm/vxworks.h Tue May 27 11:42:10 2014 *************** but WITHOUT ANY WARRANTY; without even t *** 17,24 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ --- 17,29 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ diff -Nrcpad gcc-4.9.0/gcc/config/avr/avr-fixed.md gcc-4.9.1/gcc/config/avr/avr-fixed.md *** gcc-4.9.0/gcc/config/avr/avr-fixed.md Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/avr/avr-fixed.md Thu Jun 12 08:34:42 2014 *************** *** 430,437 **** } // Input and output of the libgcc function ! const unsigned int regno_in[] = { -1, 22, 22, -1, 18 }; ! const unsigned int regno_out[] = { -1, 24, 24, -1, 22 }; operands[3] = gen_rtx_REG (mode, regno_out[(size_t) GET_MODE_SIZE (mode)]); operands[4] = gen_rtx_REG (mode, regno_in[(size_t) GET_MODE_SIZE (mode)]); --- 430,437 ---- } // Input and output of the libgcc function ! const unsigned int regno_in[] = { -1U, 22, 22, -1U, 18 }; ! const unsigned int regno_out[] = { -1U, 24, 24, -1U, 22 }; operands[3] = gen_rtx_REG (mode, regno_out[(size_t) GET_MODE_SIZE (mode)]); operands[4] = gen_rtx_REG (mode, regno_in[(size_t) GET_MODE_SIZE (mode)]); diff -Nrcpad gcc-4.9.0/gcc/config/avr/avr-mcus.def gcc-4.9.1/gcc/config/avr/avr-mcus.def *** gcc-4.9.0/gcc/config/avr/avr-mcus.def Sat Apr 5 05:51:59 2014 --- gcc-4.9.1/gcc/config/avr/avr-mcus.def Fri May 9 11:52:20 2014 *************** AVR_MCU ("atxmega192a3", ARCH_AVRXME *** 291,297 **** AVR_MCU ("atxmega192d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega192D3__", 0x2000, 4, "x192d3") AVR_MCU ("atxmega256a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3__", 0x2000, 5, "x256a3") AVR_MCU ("atxmega256a3b", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3B__", 0x2000, 5, "x256a3b") ! AVR_MCU ("atxmega256a3bu", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega258A3BU__", 0x2000, 5, "x256a3bu") AVR_MCU ("atxmega256d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256D3__", 0x2000, 5, "x256d3") AVR_MCU ("atxmega128a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128A3U__", 0x2000, 3, "x128a3u") AVR_MCU ("atxmega128b1", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128B1__", 0x2000, 3, "x128b1") --- 291,297 ---- AVR_MCU ("atxmega192d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega192D3__", 0x2000, 4, "x192d3") AVR_MCU ("atxmega256a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3__", 0x2000, 5, "x256a3") AVR_MCU ("atxmega256a3b", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3B__", 0x2000, 5, "x256a3b") ! AVR_MCU ("atxmega256a3bu", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3BU__", 0x2000, 5, "x256a3bu") AVR_MCU ("atxmega256d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256D3__", 0x2000, 5, "x256d3") AVR_MCU ("atxmega128a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128A3U__", 0x2000, 3, "x128a3u") AVR_MCU ("atxmega128b1", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128B1__", 0x2000, 3, "x128b1") diff -Nrcpad gcc-4.9.0/gcc/config/avr/avr.c gcc-4.9.1/gcc/config/avr/avr.c *** gcc-4.9.0/gcc/config/avr/avr.c Sat Apr 5 05:51:59 2014 --- gcc-4.9.1/gcc/config/avr/avr.c Mon May 12 15:57:52 2014 *************** avr_notice_update_cc (rtx body ATTRIBUTE *** 2353,2358 **** --- 2353,2364 ---- } break; + case CC_SET_VZN: + /* Insn like INC, DEC, NEG that set Z,N,V. We currently don't make use + of this combination, cf. also PR61055. */ + CC_STATUS_INIT; + break; + case CC_SET_CZN: /* Insn sets the Z,N,C flags of CC to recog_operand[0]. The V flag may or may not be known but that's ok because *************** avr_out_store_psi (rtx insn, rtx *op, in *** 3987,3993 **** "std Y+61,%A1" CR_TAB "std Y+62,%B1" CR_TAB "std Y+63,%C1" CR_TAB ! "sbiw r28,%o0-60", op, plen, -5); return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB "sbci r29,hi8(-%o0)" CR_TAB --- 3993,3999 ---- "std Y+61,%A1" CR_TAB "std Y+62,%B1" CR_TAB "std Y+63,%C1" CR_TAB ! "sbiw r28,%o0-61", op, plen, -5); return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB "sbci r29,hi8(-%o0)" CR_TAB *************** avr_out_plus_1 (rtx *xop, int *plen, enu *** 6284,6290 **** if (REG_P (xop[2])) { ! *pcc = MINUS == code ? (int) CC_SET_CZN : (int) CC_SET_N; for (i = 0; i < n_bytes; i++) { --- 6290,6296 ---- if (REG_P (xop[2])) { ! *pcc = MINUS == code ? (int) CC_SET_CZN : (int) CC_CLOBBER; for (i = 0; i < n_bytes; i++) { *************** avr_out_plus_1 (rtx *xop, int *plen, enu *** 6393,6399 **** op, plen, 1); if (n_bytes == 2 && PLUS == code) ! *pcc = CC_SET_ZN; } i++; --- 6399,6405 ---- op, plen, 1); if (n_bytes == 2 && PLUS == code) ! *pcc = CC_SET_CZN; } i++; *************** avr_out_plus_1 (rtx *xop, int *plen, enu *** 6416,6421 **** --- 6422,6428 ---- { avr_asm_len ((code == PLUS) ^ (val8 == 1) ? "dec %0" : "inc %0", op, plen, 1); + *pcc = CC_CLOBBER; break; } diff -Nrcpad gcc-4.9.0/gcc/config/avr/avr.h gcc-4.9.1/gcc/config/avr/avr.h *** gcc-4.9.0/gcc/config/avr/avr.h Sat Apr 5 05:51:59 2014 --- gcc-4.9.1/gcc/config/avr/avr.h Thu Jun 12 09:02:07 2014 *************** enum reg_class { *** 251,268 **** #define REG_CLASS_CONTENTS { \ {0x00000000,0x00000000}, /* NO_REGS */ \ {0x00000001,0x00000000}, /* R0_REG */ \ ! {3 << REG_X,0x00000000}, /* POINTER_X_REGS, r26 - r27 */ \ ! {3 << REG_Y,0x00000000}, /* POINTER_Y_REGS, r28 - r29 */ \ ! {3 << REG_Z,0x00000000}, /* POINTER_Z_REGS, r30 - r31 */ \ {0x00000000,0x00000003}, /* STACK_REG, STACK */ \ ! {(3 << REG_Y) | (3 << REG_Z), \ 0x00000000}, /* BASE_POINTER_REGS, r28 - r31 */ \ ! {(3 << REG_X) | (3 << REG_Y) | (3 << REG_Z), \ 0x00000000}, /* POINTER_REGS, r26 - r31 */ \ ! {(3 << REG_X) | (3 << REG_Y) | (3 << REG_Z) | (3 << REG_W), \ 0x00000000}, /* ADDW_REGS, r24 - r31 */ \ {0x00ff0000,0x00000000}, /* SIMPLE_LD_REGS r16 - r23 */ \ ! {(3 << REG_X)|(3 << REG_Y)|(3 << REG_Z)|(3 << REG_W)|(0xff << 16), \ 0x00000000}, /* LD_REGS, r16 - r31 */ \ {0x0000ffff,0x00000000}, /* NO_LD_REGS r0 - r15 */ \ {0xffffffff,0x00000000}, /* GENERAL_REGS, r0 - r31 */ \ --- 251,268 ---- #define REG_CLASS_CONTENTS { \ {0x00000000,0x00000000}, /* NO_REGS */ \ {0x00000001,0x00000000}, /* R0_REG */ \ ! {3u << REG_X,0x00000000}, /* POINTER_X_REGS, r26 - r27 */ \ ! {3u << REG_Y,0x00000000}, /* POINTER_Y_REGS, r28 - r29 */ \ ! {3u << REG_Z,0x00000000}, /* POINTER_Z_REGS, r30 - r31 */ \ {0x00000000,0x00000003}, /* STACK_REG, STACK */ \ ! {(3u << REG_Y) | (3u << REG_Z), \ 0x00000000}, /* BASE_POINTER_REGS, r28 - r31 */ \ ! {(3u << REG_X) | (3u << REG_Y) | (3u << REG_Z), \ 0x00000000}, /* POINTER_REGS, r26 - r31 */ \ ! {(3u << REG_X) | (3u << REG_Y) | (3u << REG_Z) | (3u << REG_W), \ 0x00000000}, /* ADDW_REGS, r24 - r31 */ \ {0x00ff0000,0x00000000}, /* SIMPLE_LD_REGS r16 - r23 */ \ ! {(3u << REG_X)|(3u << REG_Y)|(3u << REG_Z)|(3u << REG_W)|(0xffu << 16),\ 0x00000000}, /* LD_REGS, r16 - r31 */ \ {0x0000ffff,0x00000000}, /* NO_LD_REGS r0 - r15 */ \ {0xffffffff,0x00000000}, /* GENERAL_REGS, r0 - r31 */ \ diff -Nrcpad gcc-4.9.0/gcc/config/avr/avr.md gcc-4.9.1/gcc/config/avr/avr.md *** gcc-4.9.0/gcc/config/avr/avr.md Sat Apr 5 05:51:59 2014 --- gcc-4.9.1/gcc/config/avr/avr.md Thu Jun 12 08:34:42 2014 *************** *** 90,96 **** (include "constraints.md") ;; Condition code settings. ! (define_attr "cc" "none,set_czn,set_zn,set_n,compare,clobber, plus,ldi" (const_string "none")) --- 90,96 ---- (include "constraints.md") ;; Condition code settings. ! (define_attr "cc" "none,set_czn,set_zn,set_vzn,set_n,compare,clobber, plus,ldi" (const_string "none")) *************** *** 368,373 **** --- 368,382 ---- "" { int i; + + // Avoid (subreg (mem)) for non-generic address spaces below. Because + // of the poor addressing capabilities of these spaces it's better to + // load them in one chunk. And it avoids PR61443. + + if (MEM_P (operands[0]) + && !ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (operands[0]))) + operands[0] = copy_to_mode_reg (mode, operands[0]); + for (i = GET_MODE_SIZE (mode) - 1; i >= 0; --i) { rtx part = simplify_gen_subreg (QImode, operands[0], mode, i); *************** *** 1098,1104 **** inc %0\;inc %0 dec %0\;dec %0" [(set_attr "length" "1,1,1,1,2,2") ! (set_attr "cc" "set_czn,set_czn,set_zn,set_zn,set_zn,set_zn")]) ;; "addhi3" ;; "addhq3" "adduhq3" --- 1107,1113 ---- inc %0\;inc %0 dec %0\;dec %0" [(set_attr "length" "1,1,1,1,2,2") ! (set_attr "cc" "set_czn,set_czn,set_vzn,set_vzn,set_vzn,set_vzn")]) ;; "addhi3" ;; "addhq3" "adduhq3" *************** *** 1369,1375 **** dec %0\;dec %0 inc %0\;inc %0" [(set_attr "length" "1,1,1,1,2,2") ! (set_attr "cc" "set_czn,set_czn,set_zn,set_zn,set_zn,set_zn")]) ;; "subhi3" ;; "subhq3" "subuhq3" --- 1378,1384 ---- dec %0\;dec %0 inc %0\;inc %0" [(set_attr "length" "1,1,1,1,2,2") ! (set_attr "cc" "set_czn,set_czn,set_vzn,set_vzn,set_vzn,set_vzn")]) ;; "subhi3" ;; "subhq3" "subuhq3" *************** *** 3992,3998 **** "" "neg %0" [(set_attr "length" "1") ! (set_attr "cc" "set_zn")]) (define_insn "*negqihi2" [(set (match_operand:HI 0 "register_operand" "=r") --- 4001,4007 ---- "" "neg %0" [(set_attr "length" "1") ! (set_attr "cc" "set_vzn")]) (define_insn "*negqihi2" [(set (match_operand:HI 0 "register_operand" "=r") diff -Nrcpad gcc-4.9.0/gcc/config/dbx.h gcc-4.9.1/gcc/config/dbx.h *** gcc-4.9.0/gcc/config/dbx.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/dbx.h Wed May 28 09:35:19 2014 *************** but WITHOUT ANY WARRANTY; without even t *** 13,20 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* This file causes gcc to prefer using DBX (stabs) debugging --- 13,25 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* This file causes gcc to prefer using DBX (stabs) debugging diff -Nrcpad gcc-4.9.0/gcc/config/i386/cygwin.h gcc-4.9.1/gcc/config/i386/cygwin.h *** gcc-4.9.0/gcc/config/i386/cygwin.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/i386/cygwin.h Wed Apr 23 09:46:13 2014 *************** along with GCC; see the file COPYING3. *** 45,50 **** --- 45,51 ---- #undef ENDFILE_SPEC #define ENDFILE_SPEC \ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}\ + %{!shared:%:if-exists(default-manifest.o%s)}\ crtend.o%s" /* Normally, -lgcc is not needed since everything in it is in the DLL, but we diff -Nrcpad gcc-4.9.0/gcc/config/i386/driver-i386.c gcc-4.9.1/gcc/config/i386/driver-i386.c *** gcc-4.9.0/gcc/config/i386/driver-i386.c Tue Feb 25 09:52:53 2014 --- gcc-4.9.1/gcc/config/i386/driver-i386.c Tue Jun 24 15:06:40 2014 *************** const char *host_detect_local_cpu (int a *** 739,744 **** --- 739,749 ---- /* Assume Core 2. */ cpu = "core2"; } + else if (has_longmode) + /* Perhaps some emulator? Assume x86-64, otherwise gcc + -march=native would be unusable for 64-bit compilations, + as all the CPUs below are 32-bit only. */ + cpu = "x86-64"; else if (has_sse3) /* It is Core Duo. */ cpu = "pentium-m"; diff -Nrcpad gcc-4.9.0/gcc/config/i386/i386.c gcc-4.9.1/gcc/config/i386/i386.c *** gcc-4.9.0/gcc/config/i386/i386.c Fri Mar 28 22:02:32 2014 --- gcc-4.9.1/gcc/config/i386/i386.c Wed Jun 18 18:51:09 2014 *************** ix86_option_override_internal (bool main *** 3128,3134 **** (PTA_SANDYBRIDGE | PTA_FSGSBASE | PTA_RDRND | PTA_F16C) #define PTA_HASWELL \ (PTA_IVYBRIDGE | PTA_AVX2 | PTA_BMI | PTA_BMI2 | PTA_LZCNT \ ! | PTA_FMA | PTA_MOVBE | PTA_RTM | PTA_HLE) #define PTA_BROADWELL \ (PTA_HASWELL | PTA_ADX | PTA_PRFCHW | PTA_RDSEED) #define PTA_BONNELL \ --- 3128,3134 ---- (PTA_SANDYBRIDGE | PTA_FSGSBASE | PTA_RDRND | PTA_F16C) #define PTA_HASWELL \ (PTA_IVYBRIDGE | PTA_AVX2 | PTA_BMI | PTA_BMI2 | PTA_LZCNT \ ! | PTA_FMA | PTA_MOVBE | PTA_HLE) #define PTA_BROADWELL \ (PTA_HASWELL | PTA_ADX | PTA_PRFCHW | PTA_RDSEED) #define PTA_BONNELL \ *************** ix86_expand_vec_perm (rtx operands[]) *** 21507,21513 **** t1 = gen_reg_rtx (V32QImode); t2 = gen_reg_rtx (V32QImode); t3 = gen_reg_rtx (V32QImode); ! vt2 = GEN_INT (128); for (i = 0; i < 32; i++) vec[i] = vt2; vt = gen_rtx_CONST_VECTOR (V32QImode, gen_rtvec_v (32, vec)); --- 21507,21513 ---- t1 = gen_reg_rtx (V32QImode); t2 = gen_reg_rtx (V32QImode); t3 = gen_reg_rtx (V32QImode); ! vt2 = GEN_INT (-128); for (i = 0; i < 32; i++) vec[i] = vt2; vt = gen_rtx_CONST_VECTOR (V32QImode, gen_rtvec_v (32, vec)); *************** decide_alg (HOST_WIDE_INT count, HOST_WI *** 23794,23800 **** { const struct stringop_algs * algs; bool optimize_for_speed; ! int max = -1; const struct processor_costs *cost; int i; bool any_alg_usable_p = false; --- 23794,23800 ---- { const struct stringop_algs * algs; bool optimize_for_speed; ! int max = 0; const struct processor_costs *cost; int i; bool any_alg_usable_p = false; *************** decide_alg (HOST_WIDE_INT count, HOST_WI *** 23832,23838 **** /* If expected size is not known but max size is small enough so inline version is a win, set expected size into the range. */ ! if (max > 1 && (unsigned HOST_WIDE_INT) max >= max_size && expected_size == -1) expected_size = min_size / 2 + max_size / 2; --- 23832,23838 ---- /* If expected size is not known but max size is small enough so inline version is a win, set expected size into the range. */ ! if (((max > 1 && (unsigned HOST_WIDE_INT) max >= max_size) || max == -1) && expected_size == -1) expected_size = min_size / 2 + max_size / 2; *************** decide_alg (HOST_WIDE_INT count, HOST_WI *** 23921,23927 **** *dynamic_check = 128; return loop_1_byte; } ! if (max == -1) max = 4096; alg = decide_alg (count, max / 2, min_size, max_size, memset, zero_memset, dynamic_check, noalign); --- 23921,23927 ---- *dynamic_check = 128; return loop_1_byte; } ! if (max <= 0) max = 4096; alg = decide_alg (count, max / 2, min_size, max_size, memset, zero_memset, dynamic_check, noalign); *************** ix86_expand_set_or_movmem (rtx dst, rtx *** 24151,24158 **** align = MEM_ALIGN (dst) / BITS_PER_UNIT; if (CONST_INT_P (count_exp)) ! min_size = max_size = probable_max_size = count = expected_size ! = INTVAL (count_exp); else { if (min_size_exp) --- 24151,24163 ---- align = MEM_ALIGN (dst) / BITS_PER_UNIT; if (CONST_INT_P (count_exp)) ! { ! min_size = max_size = probable_max_size = count = expected_size ! = INTVAL (count_exp); ! /* When COUNT is 0, there is nothing to do. */ ! if (!count) ! return true; ! } else { if (min_size_exp) *************** ix86_expand_set_or_movmem (rtx dst, rtx *** 24161,24167 **** max_size = INTVAL (max_size_exp); if (probable_max_size_exp) probable_max_size = INTVAL (probable_max_size_exp); ! if (CONST_INT_P (expected_size_exp) && count == 0) expected_size = INTVAL (expected_size_exp); } --- 24166,24172 ---- max_size = INTVAL (max_size_exp); if (probable_max_size_exp) probable_max_size = INTVAL (probable_max_size_exp); ! if (CONST_INT_P (expected_size_exp)) expected_size = INTVAL (expected_size_exp); } *************** ix86_expand_set_or_movmem (rtx dst, rtx *** 24390,24396 **** if (jump_around_label == NULL_RTX) jump_around_label = gen_label_rtx (); emit_cmp_and_jump_insns (count_exp, GEN_INT (dynamic_check - 1), ! LEU, 0, GET_MODE (count_exp), 1, hot_label); predict_jump (REG_BR_PROB_BASE * 90 / 100); if (issetmem) set_storage_via_libcall (dst, count_exp, val_exp, false); --- 24395,24402 ---- if (jump_around_label == NULL_RTX) jump_around_label = gen_label_rtx (); emit_cmp_and_jump_insns (count_exp, GEN_INT (dynamic_check - 1), ! LEU, 0, counter_mode (count_exp), ! 1, hot_label); predict_jump (REG_BR_PROB_BASE * 90 / 100); if (issetmem) set_storage_via_libcall (dst, count_exp, val_exp, false); *************** ix86_dependencies_evaluation_hook (rtx h *** 26232,26244 **** { edge e; edge_iterator ei; ! /* Assume that region is SCC, i.e. all immediate predecessors ! of non-head block are in the same region. */ FOR_EACH_EDGE (e, ei, bb->preds) { /* Avoid creating of loop-carried dependencies through ! using topological odering in region. */ ! if (BLOCK_TO_BB (bb->index) > BLOCK_TO_BB (e->src->index)) add_dependee_for_func_arg (first_arg, e->src); } } --- 26238,26254 ---- { edge e; edge_iterator ei; ! ! /* Regions are SCCs with the exception of selective ! scheduling with pipelining of outer blocks enabled. ! So also check that immediate predecessors of a non-head ! block are in the same region. */ FOR_EACH_EDGE (e, ei, bb->preds) { /* Avoid creating of loop-carried dependencies through ! using topological ordering in the region. */ ! if (rgn == CONTAINING_RGN (e->src->index) ! && BLOCK_TO_BB (bb->index) > BLOCK_TO_BB (e->src->index)) add_dependee_for_func_arg (first_arg, e->src); } } *************** rdrand_step: *** 35406,35412 **** else op2 = gen_rtx_SUBREG (SImode, op0, 0); ! if (target == 0) target = gen_reg_rtx (SImode); pat = gen_rtx_GEU (VOIDmode, gen_rtx_REG (CCCmode, FLAGS_REG), --- 35416,35423 ---- else op2 = gen_rtx_SUBREG (SImode, op0, 0); ! if (target == 0 ! || !register_operand (target, SImode)) target = gen_reg_rtx (SImode); pat = gen_rtx_GEU (VOIDmode, gen_rtx_REG (CCCmode, FLAGS_REG), *************** rdseed_step: *** 35448,35454 **** const0_rtx); emit_insn (gen_rtx_SET (VOIDmode, op2, pat)); ! if (target == 0) target = gen_reg_rtx (SImode); emit_insn (gen_zero_extendqisi2 (target, op2)); --- 35459,35466 ---- const0_rtx); emit_insn (gen_rtx_SET (VOIDmode, op2, pat)); ! if (target == 0 ! || !register_operand (target, SImode)) target = gen_reg_rtx (SImode); emit_insn (gen_zero_extendqisi2 (target, op2)); *************** ix86_rtx_costs (rtx x, int code_i, int o *** 37794,37803 **** else if (TARGET_64BIT && !x86_64_zext_immediate_operand (x, VOIDmode)) *total = 2; else if (flag_pic && SYMBOLIC_CONST (x) ! && (!TARGET_64BIT ! || (!GET_CODE (x) != LABEL_REF ! && (GET_CODE (x) != SYMBOL_REF ! || !SYMBOL_REF_LOCAL_P (x))))) *total = 1; else *total = 0; --- 37806,37815 ---- else if (TARGET_64BIT && !x86_64_zext_immediate_operand (x, VOIDmode)) *total = 2; else if (flag_pic && SYMBOLIC_CONST (x) ! && !(TARGET_64BIT ! && (GET_CODE (x) == LABEL_REF ! || (GET_CODE (x) == SYMBOL_REF ! && SYMBOL_REF_LOCAL_P (x))))) *total = 1; else *total = 0; diff -Nrcpad gcc-4.9.0/gcc/config/i386/i386.md gcc-4.9.1/gcc/config/i386/i386.md *** gcc-4.9.0/gcc/config/i386/i386.md Tue Apr 1 14:40:27 2014 --- gcc-4.9.1/gcc/config/i386/i386.md Thu Jun 26 15:27:52 2014 *************** *** 3201,3207 **** (const_string "1") (const_string "*"))) (set (attr "mode") ! (cond [(eq_attr "alternative" "3,4,9,10,13,14,15") (const_string "SI") (eq_attr "alternative" "11") (const_string "DI") --- 3201,3207 ---- (const_string "1") (const_string "*"))) (set (attr "mode") ! (cond [(eq_attr "alternative" "3,4,9,10,12,13,14,15") (const_string "SI") (eq_attr "alternative" "11") (const_string "DI") *************** *** 4933,4998 **** ;; Avoid store forwarding (partial memory) stall penalty by extending ;; SImode value to DImode through XMM register instead of pushing two ! ;; SImode values to stack. Note that even !TARGET_INTER_UNIT_MOVES_TO_VEC ! ;; targets benefit from this optimization. Also note that fild ! ;; loads from memory only. ! (define_insn "*floatunssi2_1" ! [(set (match_operand:X87MODEF 0 "register_operand" "=f,f") (unsigned_float:X87MODEF ! (match_operand:SI 1 "nonimmediate_operand" "x,m"))) ! (clobber (match_operand:DI 2 "memory_operand" "=m,m")) ! (clobber (match_scratch:SI 3 "=X,x"))] "!TARGET_64BIT && TARGET_80387 && X87_ENABLE_FLOAT (mode, DImode) ! && TARGET_SSE" "#" ! [(set_attr "type" "multi") ! (set_attr "mode" "")]) ! ! (define_split ! [(set (match_operand:X87MODEF 0 "register_operand") ! (unsigned_float:X87MODEF ! (match_operand:SI 1 "register_operand"))) ! (clobber (match_operand:DI 2 "memory_operand")) ! (clobber (match_scratch:SI 3))] ! "!TARGET_64BIT ! && TARGET_80387 && X87_ENABLE_FLOAT (mode, DImode) ! && TARGET_SSE ! && reload_completed" ! [(set (match_dup 2) (match_dup 1)) ! (set (match_dup 0) ! (float:X87MODEF (match_dup 2)))] ! "operands[1] = simplify_gen_subreg (DImode, operands[1], SImode, 0);") ! ! (define_split ! [(set (match_operand:X87MODEF 0 "register_operand") ! (unsigned_float:X87MODEF ! (match_operand:SI 1 "memory_operand"))) ! (clobber (match_operand:DI 2 "memory_operand")) ! (clobber (match_scratch:SI 3))] ! "!TARGET_64BIT ! && TARGET_80387 && X87_ENABLE_FLOAT (mode, DImode) ! && TARGET_SSE ! && reload_completed" ! [(set (match_dup 2) (match_dup 3)) (set (match_dup 0) (float:X87MODEF (match_dup 2)))] ! { ! emit_move_insn (operands[3], operands[1]); ! operands[3] = simplify_gen_subreg (DImode, operands[3], SImode, 0); ! }) (define_expand "floatunssi2" [(parallel [(set (match_operand:X87MODEF 0 "register_operand") (unsigned_float:X87MODEF (match_operand:SI 1 "nonimmediate_operand"))) ! (clobber (match_dup 2)) ! (clobber (match_scratch:SI 3))])] "!TARGET_64BIT && ((TARGET_80387 && X87_ENABLE_FLOAT (mode, DImode) ! && TARGET_SSE) || (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH))" { if (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) --- 4933,4969 ---- ;; Avoid store forwarding (partial memory) stall penalty by extending ;; SImode value to DImode through XMM register instead of pushing two ! ;; SImode values to stack. Also note that fild loads from memory only. ! (define_insn_and_split "*floatunssi2_i387_with_xmm" ! [(set (match_operand:X87MODEF 0 "register_operand" "=f") (unsigned_float:X87MODEF ! (match_operand:SI 1 "nonimmediate_operand" "rm"))) ! (clobber (match_scratch:DI 3 "=x")) ! (clobber (match_operand:DI 2 "memory_operand" "=m"))] "!TARGET_64BIT && TARGET_80387 && X87_ENABLE_FLOAT (mode, DImode) ! && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC" "#" ! "&& reload_completed" ! [(set (match_dup 3) (zero_extend:DI (match_dup 1))) ! (set (match_dup 2) (match_dup 3)) (set (match_dup 0) (float:X87MODEF (match_dup 2)))] ! "" ! [(set_attr "type" "multi") ! (set_attr "mode" "")]) (define_expand "floatunssi2" [(parallel [(set (match_operand:X87MODEF 0 "register_operand") (unsigned_float:X87MODEF (match_operand:SI 1 "nonimmediate_operand"))) ! (clobber (match_scratch:DI 3)) ! (clobber (match_dup 2))])] "!TARGET_64BIT && ((TARGET_80387 && X87_ENABLE_FLOAT (mode, DImode) ! && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) || (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH))" { if (SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) *************** *** 9627,9633 **** (define_insn "x86_64_shrd" [(set (match_operand:DI 0 "nonimmediate_operand" "+r*m") ! (ior:DI (ashiftrt:DI (match_dup 0) (match_operand:QI 2 "nonmemory_operand" "Jc")) (ashift:DI (match_operand:DI 1 "register_operand" "r") (minus:QI (const_int 64) (match_dup 2))))) --- 9598,9604 ---- (define_insn "x86_64_shrd" [(set (match_operand:DI 0 "nonimmediate_operand" "+r*m") ! (ior:DI (lshiftrt:DI (match_dup 0) (match_operand:QI 2 "nonmemory_operand" "Jc")) (ashift:DI (match_operand:DI 1 "register_operand" "r") (minus:QI (const_int 64) (match_dup 2))))) *************** *** 9643,9649 **** (define_insn "x86_shrd" [(set (match_operand:SI 0 "nonimmediate_operand" "+r*m") ! (ior:SI (ashiftrt:SI (match_dup 0) (match_operand:QI 2 "nonmemory_operand" "Ic")) (ashift:SI (match_operand:SI 1 "register_operand" "r") (minus:QI (const_int 32) (match_dup 2))))) --- 9614,9620 ---- (define_insn "x86_shrd" [(set (match_operand:SI 0 "nonimmediate_operand" "+r*m") ! (ior:SI (lshiftrt:SI (match_dup 0) (match_operand:QI 2 "nonmemory_operand" "Ic")) (ashift:SI (match_operand:SI 1 "register_operand" "r") (minus:QI (const_int 32) (match_dup 2))))) *************** *** 10095,10107 **** [(set (match_dup 3) (match_dup 4)) (parallel [(set (match_dup 4) ! (ior:DWIH (ashiftrt:DWIH (match_dup 4) (match_dup 2)) (ashift:DWIH (match_dup 5) (minus:QI (match_dup 6) (match_dup 2))))) (clobber (reg:CC FLAGS_REG))]) (parallel [(set (match_dup 5) ! (ior:DWIH (ashiftrt:DWIH (match_dup 5) (match_dup 2)) (ashift:DWIH (match_dup 3) (minus:QI (match_dup 6) (match_dup 2))))) (clobber (reg:CC FLAGS_REG))])] --- 10066,10078 ---- [(set (match_dup 3) (match_dup 4)) (parallel [(set (match_dup 4) ! (ior:DWIH (lshiftrt:DWIH (match_dup 4) (match_dup 2)) (ashift:DWIH (match_dup 5) (minus:QI (match_dup 6) (match_dup 2))))) (clobber (reg:CC FLAGS_REG))]) (parallel [(set (match_dup 5) ! (ior:DWIH (lshiftrt:DWIH (match_dup 5) (match_dup 2)) (ashift:DWIH (match_dup 3) (minus:QI (match_dup 6) (match_dup 2))))) (clobber (reg:CC FLAGS_REG))])] *************** *** 14427,14441 **** "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" { if (optimize_insn_for_size_p ()) FAIL; ! operands[3] = gen_reg_rtx (XFmode); ! operands[4] = gen_reg_rtx (XFmode); ! emit_insn (gen_floatsixf2 (operands[3], operands[2])); ! emit_insn (gen_fscalexf4_i387 (operands[0], operands[4], ! operands[1], operands[3])); DONE; }) --- 14398,14413 ---- "TARGET_USE_FANCY_MATH_387 && flag_unsafe_math_optimizations" { + rtx tmp1, tmp2; if (optimize_insn_for_size_p ()) FAIL; ! tmp1 = gen_reg_rtx (XFmode); ! tmp2 = gen_reg_rtx (XFmode); ! emit_insn (gen_floatsixf2 (tmp1, operands[2])); ! emit_insn (gen_fscalexf4_i387 (operands[0], tmp2, ! operands[1], tmp1)); DONE; }) diff -Nrcpad gcc-4.9.0/gcc/config/i386/mingw32.h gcc-4.9.1/gcc/config/i386/mingw32.h *** gcc-4.9.0/gcc/config/i386/mingw32.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/i386/mingw32.h Wed Apr 23 09:46:13 2014 *************** along with GCC; see the file COPYING3. *** 148,153 **** --- 148,154 ---- #undef ENDFILE_SPEC #define ENDFILE_SPEC \ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ + %{!shared:%:if-exists(default-manifest.o%s)}\ crtend.o%s" /* Override startfile prefix defaults. */ diff -Nrcpad gcc-4.9.0/gcc/config/initfini-array.h gcc-4.9.1/gcc/config/initfini-array.h *** gcc-4.9.0/gcc/config/initfini-array.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/initfini-array.h Wed May 28 09:35:19 2014 *************** *** 14,21 **** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifdef HAVE_INITFINI_ARRAY_SUPPORT --- 14,26 ---- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifdef HAVE_INITFINI_ARRAY_SUPPORT diff -Nrcpad gcc-4.9.0/gcc/config/msp430/msp430-opts.h gcc-4.9.1/gcc/config/msp430/msp430-opts.h *** gcc-4.9.0/gcc/config/msp430/msp430-opts.h Thu Jan 1 00:00:00 1970 --- gcc-4.9.1/gcc/config/msp430/msp430-opts.h Wed Apr 23 10:38:30 2014 *************** *** 0 **** --- 1,32 ---- + /* GCC option-handling definitions for the TI MSP430 + Copyright (C) 2014 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + + #ifndef MSP430_OPTS_H + #define MSP430_OPTS_H + + enum msp430_hwmult_types + { + NONE, + AUTO, + SMALL, + LARGE, + F5SERIES + }; + + #endif diff -Nrcpad gcc-4.9.0/gcc/config/msp430/msp430-protos.h gcc-4.9.1/gcc/config/msp430/msp430-protos.h *** gcc-4.9.0/gcc/config/msp430/msp430-protos.h Mon Mar 3 17:17:49 2014 --- gcc-4.9.1/gcc/config/msp430/msp430-protos.h Wed Apr 23 10:38:30 2014 *************** const char * msp430x_extendhisi (rtx *); *** 30,40 **** void msp430_fixup_compare_operands (enum machine_mode, rtx *); int msp430_hard_regno_mode_ok (int, enum machine_mode); int msp430_hard_regno_nregs (int, enum machine_mode); - bool msp430_hwmult_enabled (void); rtx msp430_incoming_return_addr_rtx (void); void msp430_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int); int msp430_initial_elimination_offset (int, int); - bool msp430_is_f5_mcu (void); bool msp430_is_interrupt_func (void); const char * msp430x_logical_shift_right (rtx); const char * msp430_mcu_name (void); --- 30,38 ---- *************** rtx msp430_return_addr_rtx (int); *** 45,49 **** --- 43,48 ---- void msp430_split_movsi (rtx *); void msp430_start_function (FILE *, const char *, tree); rtx msp430_subreg (enum machine_mode, rtx, enum machine_mode, int); + bool msp430_use_f5_series_hwmult (void); #endif /* GCC_MSP430_PROTOS_H */ diff -Nrcpad gcc-4.9.0/gcc/config/msp430/msp430.c gcc-4.9.1/gcc/config/msp430/msp430.c *** gcc-4.9.0/gcc/config/msp430/msp430.c Mon Mar 3 17:17:49 2014 --- gcc-4.9.1/gcc/config/msp430/msp430.c Tue May 20 16:49:40 2014 *************** msp430_init_machine_status (void) *** 95,112 **** return m; } - #undef TARGET_HANDLE_OPTION - #define TARGET_HANDLE_OPTION msp430_handle_option - - bool - msp430_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED, - struct gcc_options *opts_set ATTRIBUTE_UNUSED, - const struct cl_decoded_option *decoded ATTRIBUTE_UNUSED, - location_t loc ATTRIBUTE_UNUSED) - { - return true; - } - #undef TARGET_OPTION_OVERRIDE #define TARGET_OPTION_OVERRIDE msp430_option_override --- 95,100 ---- *************** msp430_option_override (void) *** 196,214 **** if (target_cpu) { ! if (strcasecmp (target_cpu, "msp430x") == 0 ! || strcasecmp (target_cpu, "msp430xv2") == 0 ! || strcasecmp (target_cpu, "430x") == 0 ! || strcasecmp (target_cpu, "430xv2") == 0) msp430x = true; ! else if (strcasecmp (target_cpu, "msp430") == 0 ! || strcasecmp (target_cpu, "430") == 0) msp430x = false; - else - error ("unrecognised argument of -mcpu: %s", target_cpu); } ! ! if (target_mcu) { int i; --- 184,197 ---- if (target_cpu) { ! if (strcasecmp (target_cpu, "msp430x") == 0) msp430x = true; ! else /* target_cpu == "msp430" - already handled by the front end. */ msp430x = false; } ! /* Note - the front end has already ensured at most ! one of target_cpu and target_mcu will be set. */ ! else if (target_mcu) { int i; *************** msp430_option_override (void) *** 217,241 **** supports 430. */ msp430x = true; ! /* For backwards compatibility we recognise two generic MCU ! 430X names. However we want to be able to generate special C ! preprocessor defines for them, which is why we set target_mcu ! to NULL. */ ! if (strcasecmp (target_mcu, "msp430") == 0) ! { ! msp430x = false; ! target_mcu = NULL; ! } ! else if (strcasecmp (target_mcu, "msp430x") == 0 ! || strcasecmp (target_mcu, "msp430xv2") == 0) ! target_mcu = NULL; ! else ! for (i = ARRAY_SIZE (msp430_mcu_names); i--;) ! if (strcasecmp (msp430_mcu_names[i], target_mcu) == 0) ! { ! msp430x = false; ! break; ! } /* It is not an error if we do not match the MCU name. There are hundreds of them. */ } --- 200,211 ---- supports 430. */ msp430x = true; ! for (i = ARRAY_SIZE (msp430_mcu_names); i--;) ! if (strcasecmp (msp430_mcu_names[i], target_mcu) == 0) ! { ! msp430x = false; ! break; ! } /* It is not an error if we do not match the MCU name. There are hundreds of them. */ } *************** msp430_get_raw_result_mode (int regno AT *** 760,765 **** --- 730,826 ---- { return Pmode; } + + #undef TARGET_GIMPLIFY_VA_ARG_EXPR + #define TARGET_GIMPLIFY_VA_ARG_EXPR msp430_gimplify_va_arg_expr + + #include "gimplify.h" + #include "gimple-expr.h" + + static tree + msp430_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, + gimple_seq *post_p) + { + tree addr, t, type_size, rounded_size, valist_tmp; + unsigned HOST_WIDE_INT align, boundary; + bool indirect; + + indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false); + if (indirect) + type = build_pointer_type (type); + + align = PARM_BOUNDARY / BITS_PER_UNIT; + boundary = targetm.calls.function_arg_boundary (TYPE_MODE (type), type); + + /* When we align parameter on stack for caller, if the parameter + alignment is beyond MAX_SUPPORTED_STACK_ALIGNMENT, it will be + aligned at MAX_SUPPORTED_STACK_ALIGNMENT. We will match callee + here with caller. */ + if (boundary > MAX_SUPPORTED_STACK_ALIGNMENT) + boundary = MAX_SUPPORTED_STACK_ALIGNMENT; + + boundary /= BITS_PER_UNIT; + + /* Hoist the valist value into a temporary for the moment. */ + valist_tmp = get_initialized_tmp_var (valist, pre_p, NULL); + + /* va_list pointer is aligned to PARM_BOUNDARY. If argument actually + requires greater alignment, we must perform dynamic alignment. */ + if (boundary > align + && !integer_zerop (TYPE_SIZE (type))) + { + /* FIXME: This is where this function diverts from targhooks.c: + std_gimplify_va_arg_expr(). It works, but I do not know why... */ + if (! POINTER_TYPE_P (type)) + { + t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist_tmp, + fold_build_pointer_plus_hwi (valist_tmp, boundary - 1)); + gimplify_and_add (t, pre_p); + + t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist_tmp, + fold_build2 (BIT_AND_EXPR, TREE_TYPE (valist), + valist_tmp, + build_int_cst (TREE_TYPE (valist), -boundary))); + gimplify_and_add (t, pre_p); + } + } + else + boundary = align; + + /* If the actual alignment is less than the alignment of the type, + adjust the type accordingly so that we don't assume strict alignment + when dereferencing the pointer. */ + boundary *= BITS_PER_UNIT; + if (boundary < TYPE_ALIGN (type)) + { + type = build_variant_type_copy (type); + TYPE_ALIGN (type) = boundary; + } + + /* Compute the rounded size of the type. */ + type_size = size_in_bytes (type); + rounded_size = round_up (type_size, align); + + /* Reduce rounded_size so it's sharable with the postqueue. */ + gimplify_expr (&rounded_size, pre_p, post_p, is_gimple_val, fb_rvalue); + + /* Get AP. */ + addr = valist_tmp; + + /* Compute new value for AP. */ + t = fold_build_pointer_plus (valist_tmp, rounded_size); + t = build2 (MODIFY_EXPR, TREE_TYPE (valist), valist, t); + gimplify_and_add (t, pre_p); + + addr = fold_convert (build_pointer_type (type), addr); + + if (indirect) + addr = build_va_arg_indirect_ref (addr); + + addr = build_va_arg_indirect_ref (addr); + + return addr; + } /* Addressing Modes */ *************** static const struct *** 1847,1862 **** /* Returns true if the current MCU is an F5xxx series. */ bool ! msp430_is_f5_mcu (void) { ! if (target_mcu == NULL) return false; return strncasecmp (target_mcu, "msp430f5", 8) == 0; } /* Returns true id the current MCU has a second generation 32-bit hardware multiplier. */ static bool ! has_32bit_hw_mult (void) { static const char * known_32bit_mult_mcus [] = { --- 1908,1927 ---- /* Returns true if the current MCU is an F5xxx series. */ bool ! msp430_use_f5_series_hwmult (void) { ! if (msp430_hwmult_type == F5SERIES) ! return true; ! ! if (target_mcu == NULL || msp430_hwmult_type != AUTO) return false; + return strncasecmp (target_mcu, "msp430f5", 8) == 0; } /* Returns true id the current MCU has a second generation 32-bit hardware multiplier. */ static bool ! use_32bit_hwmult (void) { static const char * known_32bit_mult_mcus [] = { *************** has_32bit_hw_mult (void) *** 1868,1874 **** "msp430f47177", "msp430f47187", "msp430f47197" }; int i; ! if (target_mcu == NULL) return false; for (i = ARRAY_SIZE (known_32bit_mult_mcus); i--;) --- 1933,1943 ---- "msp430f47177", "msp430f47187", "msp430f47197" }; int i; ! ! if (msp430_hwmult_type == LARGE) ! return true; ! ! if (target_mcu == NULL || msp430_hwmult_type != AUTO) return false; for (i = ARRAY_SIZE (known_32bit_mult_mcus); i--;) *************** has_32bit_hw_mult (void) *** 1878,1902 **** return false; } - /* Returns true if hardware multiply is supported by the chosen MCU. */ - bool - msp430_hwmult_enabled (void) - { - if (target_mcu == NULL) - return false; - - if (!ENABLE_HWMULT) - return false; - - if (msp430_is_interrupt_func ()) - return false; - - if (msp430_is_f5_mcu () || has_32bit_hw_mult ()) - return true; - - return false; - } - /* This function does the same as the default, but it will replace GCC function names with the MSPABI-specified ones. */ void --- 1947,1952 ---- *************** msp430_output_labelref (FILE *file, cons *** 1913,1932 **** /* If we have been given a specific MCU name then we may be able to make use of its hardware multiply capabilities. */ ! if (msp430_hwmult_enabled ()) { if (strcmp ("__mspabi_mpyi", name) == 0) { ! if (msp430_is_f5_mcu ()) name = "__mulhi2_f5"; else name = "__mulhi2"; } else if (strcmp ("__mspabi_mpyl", name) == 0) { ! if (msp430_is_f5_mcu ()) name = "__mulsi2_f5"; ! else if (has_32bit_hw_mult ()) name = "__mulsi2_hw32"; else name = "__mulsi2"; --- 1963,1982 ---- /* If we have been given a specific MCU name then we may be able to make use of its hardware multiply capabilities. */ ! if (msp430_hwmult_type != NONE) { if (strcmp ("__mspabi_mpyi", name) == 0) { ! if (msp430_use_f5_series_hwmult ()) name = "__mulhi2_f5"; else name = "__mulhi2"; } else if (strcmp ("__mspabi_mpyl", name) == 0) { ! if (msp430_use_f5_series_hwmult ()) name = "__mulsi2_f5"; ! else if (use_32bit_hwmult ()) name = "__mulsi2_hw32"; else name = "__mulsi2"; *************** msp430_print_operand (FILE * file, rtx o *** 2203,2209 **** because builtins are expanded before the frame layout is determined. */ fprintf (file, "%d", msp430_initial_elimination_offset (ARG_POINTER_REGNUM, STACK_POINTER_REGNUM) ! - 2); return; case 'J': --- 2253,2259 ---- because builtins are expanded before the frame layout is determined. */ fprintf (file, "%d", msp430_initial_elimination_offset (ARG_POINTER_REGNUM, STACK_POINTER_REGNUM) ! - (TARGET_LARGE ? 4 : 2)); return; case 'J': *************** msp430_print_operand (FILE * file, rtx o *** 2226,2233 **** msp430_print_operand_addr (file, addr); break; - case CONST_INT: case CONST: case SYMBOL_REF: case LABEL_REF: if (letter == 0) --- 2276,2307 ---- msp430_print_operand_addr (file, addr); break; case CONST: + if (GET_CODE (XEXP (op, 0)) == ZERO_EXTRACT) + { + op = XEXP (op, 0); + switch (INTVAL (XEXP (op, 2))) + { + case 0: + fprintf (file, "#lo ("); + msp430_print_operand_raw (file, XEXP (op, 0)); + fprintf (file, ")"); + break; + + case 16: + fprintf (file, "#hi ("); + msp430_print_operand_raw (file, XEXP (op, 0)); + fprintf (file, ")"); + break; + + default: + output_operand_lossage ("invalid zero extract"); + break; + } + break; + } + /* Fall through. */ + case CONST_INT: case SYMBOL_REF: case LABEL_REF: if (letter == 0) diff -Nrcpad gcc-4.9.0/gcc/config/msp430/msp430.h gcc-4.9.1/gcc/config/msp430/msp430.h *** gcc-4.9.0/gcc/config/msp430/msp430.h Mon Mar 3 17:17:49 2014 --- gcc-4.9.1/gcc/config/msp430/msp430.h Thu May 22 15:09:58 2014 *************** extern bool msp430x; *** 55,62 **** "%{mcpu=*:-mcpu=%*}%{!mcpu=*:%{mmcu=*:-mmcu=%*}} " /* Pass the CPU type on to the assembler. */ \ "%{mrelax=-mQ} " /* Pass the relax option on to the assembler. */ \ "%{mlarge:-ml} " /* Tell the assembler if we are building for the LARGE pointer model. */ \ ! "%{!msim:-md} %{msim:%{mlarge:-md}}" /* Copy data from ROM to RAM if necessary. */ \ ! "%{ffunction-sections:-gdwarf-sections}" /* If function sections are being created then create DWARF line number sections as well. */ /* Enable linker section garbage collection by default, unless we are creating a relocatable binary (gc does not work) or debugging --- 55,62 ---- "%{mcpu=*:-mcpu=%*}%{!mcpu=*:%{mmcu=*:-mmcu=%*}} " /* Pass the CPU type on to the assembler. */ \ "%{mrelax=-mQ} " /* Pass the relax option on to the assembler. */ \ "%{mlarge:-ml} " /* Tell the assembler if we are building for the LARGE pointer model. */ \ ! "%{!msim:-md} %{msim:%{mlarge:-md}} " /* Copy data from ROM to RAM if necessary. */ \ ! "%{ffunction-sections:-gdwarf-sections} " /* If function sections are being created then create DWARF line number sections as well. */ /* Enable linker section garbage collection by default, unless we are creating a relocatable binary (gc does not work) or debugging diff -Nrcpad gcc-4.9.0/gcc/config/msp430/msp430.md gcc-4.9.1/gcc/config/msp430/msp430.md *** gcc-4.9.0/gcc/config/msp430/msp430.md Mon Mar 3 17:17:49 2014 --- gcc-4.9.1/gcc/config/msp430/msp430.md Tue Jun 17 09:34:45 2014 *************** *** 362,369 **** ; halves. (define_split [(set (match_operand:SI 0 "msp430_nonsubreg_operand") ! (plus:SI (match_operand:SI 1 "nonimmediate_operand") ! (match_operand:SI 2 "general_operand"))) ] "" [(parallel [(set (match_operand:HI 3 "nonimmediate_operand" "=&rm") --- 362,369 ---- ; halves. (define_split [(set (match_operand:SI 0 "msp430_nonsubreg_operand") ! (plus:SI (match_operand:SI 1 "msp430_nonsubreg_operand") ! (match_operand:SI 2 "msp430_nonsubreg_or_imm_operand"))) ] "" [(parallel [(set (match_operand:HI 3 "nonimmediate_operand" "=&rm") *************** *** 609,617 **** ; when the PSI value is negative.. ; ; Note: using PUSHM.A #1 is two bytes smaller than using PUSHX.A.... (define_insn "zero_extendpsisi2" ! [(set (match_operand:SI 0 "register_operand" "=r") (zero_extend:SI (match_operand:PSI 1 "register_operand" "r")))] "" "* --- 609,623 ---- ; when the PSI value is negative.. ; ; Note: using PUSHM.A #1 is two bytes smaller than using PUSHX.A.... + ; + ; Note: We use a + constraint on operand 0 as otherwise GCC gets confused + ; about extending a single PSI mode register into a pair of SImode registers + ; with the same starting register. It thinks that the upper register of + ; the pair is unused and so it can clobber it. Try compiling 20050826-2.c + ; at -O2 to see this. (define_insn "zero_extendpsisi2" ! [(set (match_operand:SI 0 "register_operand" "+r") (zero_extend:SI (match_operand:PSI 1 "register_operand" "r")))] "" "* *************** *** 1311,1319 **** "" "* if (REGNO (operands[0]) != REGNO (operands[1])) ! return \"MOV.W\t%1, %0 { SUB.W\t#0, %0 { AND.W\t%2, %0\"; else ! return \"SUB.W\t#0, %0 { AND.W\t%2, %0\"; " ) --- 1317,1325 ---- "" "* if (REGNO (operands[0]) != REGNO (operands[1])) ! return \"MOV.W\t%1, %0 { INV.W\t%0 { INC.W\t%0 { AND.W\t%2, %0\"; else ! return \"INV.W\t%0 { INC.W\t%0 { AND.W\t%2, %0\"; " ) *************** *** 1321,1332 **** [(set (match_operand:SI 0 "register_operand" "=r") (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%0")) (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_enabled ()" "* ! if (msp430_is_f5_mcu ()) ! return \"MOV.W %1, &0x04C2 { MOV.W %2, &0x04C8 { MOV.W &0x04CA, %L0 { MOV.W &0x04CC, %H0\"; else ! return \"MOV.W %1, &0x0132 { MOV.W %2, &0x0138 { MOV.W &0x013A, %L0 { MOV.W &0x013C, %H0\"; " ) --- 1327,1338 ---- [(set (match_operand:SI 0 "register_operand" "=r") (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%0")) (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_type != NONE" "* ! if (msp430_use_f5_series_hwmult ()) ! return \"PUSH.W sr { DINT { NOP { MOV.W %1, &0x04C2 { MOV.W %2, &0x04C8 { MOV.W &0x04CA, %L0 { MOV.W &0x04CC, %H0 { POP.W sr\"; else ! return \"PUSH.W sr { DINT { NOP { MOV.W %1, &0x0132 { MOV.W %2, &0x0138 { MOV.W &0x013A, %L0 { MOV.W &0x013C, %H0 { POP.W sr\"; " ) *************** *** 1334,1345 **** [(set (match_operand:SI 0 "register_operand" "=r") (mult:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "%0")) (zero_extend:SI (match_operand:HI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_enabled ()" "* ! if (msp430_is_f5_mcu ()) ! return \"MOV.W %1, &0x04C0 { MOV.W %2, &0x04C8 { MOV.W &0x04CA, %L0 { MOV.W &0x04CC, %H0\"; else ! return \"MOV.W %1, &0x0130 { MOV.W %2, &0x0138 { MOV.W &0x013A, %L0 { MOV.W &0x013C, %H0\"; " ) --- 1340,1351 ---- [(set (match_operand:SI 0 "register_operand" "=r") (mult:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "%0")) (zero_extend:SI (match_operand:HI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_type != NONE" "* ! if (msp430_use_f5_series_hwmult ()) ! return \"PUSH.W sr { DINT { NOP { MOV.W %1, &0x04C0 { MOV.W %2, &0x04C8 { MOV.W &0x04CA, %L0 { MOV.W &0x04CC, %H0 { POP.W sr\"; else ! return \"PUSH.W sr { DINT { NOP { MOV.W %1, &0x0130 { MOV.W %2, &0x0138 { MOV.W &0x013A, %L0 { MOV.W &0x013C, %H0 { POP.W sr\"; " ) *************** *** 1347,1358 **** [(set (match_operand:DI 0 "register_operand" "=r") (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "%0")) (sign_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_enabled ()" "* ! if (msp430_is_f5_mcu ()) ! return \"MOV.W %L1, &0x04D4 { MOV.W %H1, &0x04D6 { MOV.W %L2, &0x04E0 { MOV.W %H2, &0x04E2 { MOV.W &0x04E4, %A0 { MOV.W &0x04E6, %B0 { MOV.W &0x04E8, %C0 { MOV.W &0x04EA, %D0\"; else ! return \"MOV.W %L1, &0x0144 { MOV.W %H1, &0x0146 { MOV.W %L2, &0x0150 { MOV.W %H2, &0x0152 { MOV.W &0x0154, %A0 { MOV.W &0x0156, %B0 { MOV.W &0x0158, %C0 { MOV.W &0x015A, %D0\"; " ) --- 1353,1364 ---- [(set (match_operand:DI 0 "register_operand" "=r") (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "%0")) (sign_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_type != NONE" "* ! if (msp430_use_f5_series_hwmult ()) ! return \"PUSH.W sr { DINT { NOP { MOV.W %L1, &0x04D4 { MOV.W %H1, &0x04D6 { MOV.W %L2, &0x04E0 { MOV.W %H2, &0x04E2 { MOV.W &0x04E4, %A0 { MOV.W &0x04E6, %B0 { MOV.W &0x04E8, %C0 { MOV.W &0x04EA, %D0 { POP.W sr\"; else ! return \"PUSH.W sr { DINT { NOP { MOV.W %L1, &0x0144 { MOV.W %H1, &0x0146 { MOV.W %L2, &0x0150 { MOV.W %H2, &0x0152 { MOV.W &0x0154, %A0 { MOV.W &0x0156, %B0 { MOV.W &0x0158, %C0 { MOV.W &0x015A, %D0 { POP.W sr\"; " ) *************** *** 1360,1370 **** [(set (match_operand:DI 0 "register_operand" "=r") (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%0")) (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_enabled ()" "* ! if (msp430_is_f5_mcu ()) ! return \"MOV.W %L1, &0x04D0 { MOV.W %H1, &0x04D2 { MOV.W %L2, &0x04E0 { MOV.W %H2, &0x04E2 { MOV.W &0x04E4, %A0 { MOV.W &0x04E6, %B0 { MOV.W &0x04E8, %C0 { MOV.W &0x04EA, %D0\"; else ! return \"MOV.W %L1, &0x0140 { MOV.W %H1, &0x0141 { MOV.W %L2, &0x0150 { MOV.W %H2, &0x0152 { MOV.W &0x0154, %A0 { MOV.W &0x0156, %B0 { MOV.W &0x0158, %C0 { MOV.W &0x015A, %D0\"; " ) --- 1366,1376 ---- [(set (match_operand:DI 0 "register_operand" "=r") (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%0")) (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ! "optimize > 2 && msp430_hwmult_type != NONE" "* ! if (msp430_use_f5_series_hwmult ()) ! return \"PUSH.W sr { DINT { NOP { MOV.W %L1, &0x04D0 { MOV.W %H1, &0x04D2 { MOV.W %L2, &0x04E0 { MOV.W %H2, &0x04E2 { MOV.W &0x04E4, %A0 { MOV.W &0x04E6, %B0 { MOV.W &0x04E8, %C0 { MOV.W &0x04EA, %D0 { POP.W sr\"; else ! return \"PUSH.W sr { DINT { NOP { MOV.W %L1, &0x0140 { MOV.W %H1, &0x0142 { MOV.W %L2, &0x0150 { MOV.W %H2, &0x0152 { MOV.W &0x0154, %A0 { MOV.W &0x0156, %B0 { MOV.W &0x0158, %C0 { MOV.W &0x015A, %D0 { POP.W sr\"; " ) diff -Nrcpad gcc-4.9.0/gcc/config/msp430/msp430.opt gcc-4.9.1/gcc/config/msp430/msp430.opt *** gcc-4.9.0/gcc/config/msp430/msp430.opt Mon Mar 3 17:17:49 2014 --- gcc-4.9.1/gcc/config/msp430/msp430.opt Wed Apr 23 10:38:30 2014 *************** Target Mask(ASM_HEX) *** 7,25 **** Force assembly output to always use hex constants mmcu= ! Target ToLower Joined RejectNegative Var(target_mcu) Specify the MCU to build for. mcpu= ! Target Joined RejectNegative Var(target_cpu) Specify the ISA to build for: msp430, mdsp430x, msp430xv2 mlarge ! Target Mask(LARGE) RejectNegative Select large model - 20-bit addresses/pointers msmall ! Target InverseMask(LARGE) RejectNegative Select small model - 16-bit addresses/pointers (default) mrelax --- 7,25 ---- Force assembly output to always use hex constants mmcu= ! Target Report ToLower Joined RejectNegative Var(target_mcu) Specify the MCU to build for. mcpu= ! Target Report Joined RejectNegative Var(target_cpu) Specify the ISA to build for: msp430, mdsp430x, msp430xv2 mlarge ! Target Report Mask(LARGE) RejectNegative Select large model - 20-bit addresses/pointers msmall ! Target Report InverseMask(LARGE) RejectNegative Select small model - 16-bit addresses/pointers (default) mrelax *************** minrt *** 33,38 **** Target Report Mask(MINRT) RejectNegative Use a minimum runtime (no static initializers or ctors) for memory-constrained devices. ! mhwmult ! Target Report Var(ENABLE_HWMULT, 1) Init(1) ! Enable hardware multiply (except in interrupt routines) --- 33,59 ---- Target Report Mask(MINRT) RejectNegative Use a minimum runtime (no static initializers or ctors) for memory-constrained devices. ! HeaderInclude ! config/msp430/msp430-opts.h ! ! mhwmult= ! Target Joined RejectNegative Report ToLower Var(msp430_hwmult_type) Enum(msp430_hwmult_types) Init(AUTO) ! Specify the type of hardware multiply to support ! ! Enum ! Name(msp430_hwmult_types) Type(enum msp430_hwmult_types) ! ! EnumValue ! Enum(msp430_hwmult_types) String(none) Value(NONE) ! ! EnumValue ! Enum(msp430_hwmult_types) String(auto) Value(AUTO) ! ! EnumValue ! Enum(msp430_hwmult_types) String(16bit) Value(SMALL) ! ! EnumValue ! Enum(msp430_hwmult_types) String(32bit) Value(LARGE) ! ! EnumValue ! Enum(msp430_hwmult_types) String(f5series) Value(F5SERIES) diff -Nrcpad gcc-4.9.0/gcc/config/msp430/predicates.md gcc-4.9.1/gcc/config/msp430/predicates.md *** gcc-4.9.0/gcc/config/msp430/predicates.md Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/msp430/predicates.md Tue May 20 20:00:22 2014 *************** *** 73,78 **** --- 73,82 ---- (define_predicate "msp430_nonsubreg_operand" (match_code "reg,mem")) + (define_predicate "msp430_nonsubreg_or_imm_operand" + (ior (match_operand 0 "msp430_nonsubreg_operand") + (match_operand 0 "immediate_operand"))) + ; TRUE for constants which are bit positions for zero_extract (define_predicate "msp430_bitpos" (and (match_code "const_int") diff -Nrcpad gcc-4.9.0/gcc/config/newlib-stdint.h gcc-4.9.1/gcc/config/newlib-stdint.h *** gcc-4.9.0/gcc/config/newlib-stdint.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/newlib-stdint.h Wed May 28 09:35:19 2014 *************** but WITHOUT ANY WARRANTY; without even t *** 13,20 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* newlib uses 32-bit long in certain cases for all non-SPU --- 13,25 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* newlib uses 32-bit long in certain cases for all non-SPU diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/altivec.md gcc-4.9.1/gcc/config/rs6000/altivec.md *** gcc-4.9.0/gcc/config/rs6000/altivec.md Thu Mar 27 20:07:16 2014 --- gcc-4.9.1/gcc/config/rs6000/altivec.md Wed Apr 30 19:30:47 2014 *************** *** 143,148 **** --- 143,151 ---- UNSPEC_VSUBEUQM UNSPEC_VSUBECUQ UNSPEC_VBPERMQ + UNSPEC_BCDADD + UNSPEC_BCDSUB + UNSPEC_BCD_OVERFLOW ]) (define_c_enum "unspecv" *************** *** 3334,3336 **** --- 3337,3448 ---- "vbpermq %0,%1,%2" [(set_attr "length" "4") (set_attr "type" "vecsimple")]) + + ;; Decimal Integer operations + (define_int_iterator UNSPEC_BCD_ADD_SUB [UNSPEC_BCDADD UNSPEC_BCDSUB]) + + (define_int_attr bcd_add_sub [(UNSPEC_BCDADD "add") + (UNSPEC_BCDSUB "sub")]) + + (define_code_iterator BCD_TEST [eq lt gt unordered]) + + (define_insn "bcd" + [(set (match_operand:V1TI 0 "register_operand" "") + (unspec:V1TI [(match_operand:V1TI 1 "register_operand" "") + (match_operand:V1TI 2 "register_operand" "") + (match_operand:QI 3 "const_0_to_1_operand" "")] + UNSPEC_BCD_ADD_SUB)) + (clobber (reg:CCFP 74))] + "TARGET_P8_VECTOR" + "bcd. %0,%1,%2,%3" + [(set_attr "length" "4") + (set_attr "type" "vecsimple")]) + + ;; Use a floating point type (V2DFmode) for the compare to set CR6 so that we + ;; can use the unordered test for BCD nans and add/subtracts that overflow. An + ;; UNORDERED test on an integer type (like V1TImode) is not defined. The type + ;; probably should be one that can go in the VMX (Altivec) registers, so we + ;; can't use DDmode or DFmode. + (define_insn "*bcd_test" + [(set (reg:CCFP 74) + (compare:CCFP + (unspec:V2DF [(match_operand:V1TI 1 "register_operand" "v") + (match_operand:V1TI 2 "register_operand" "v") + (match_operand:QI 3 "const_0_to_1_operand" "i")] + UNSPEC_BCD_ADD_SUB) + (match_operand:V2DF 4 "zero_constant" "j"))) + (clobber (match_scratch:V1TI 0 "=v"))] + "TARGET_P8_VECTOR" + "bcd. %0,%1,%2,%3" + [(set_attr "length" "4") + (set_attr "type" "vecsimple")]) + + (define_insn "*bcd_test2" + [(set (match_operand:V1TI 0 "register_operand" "=v") + (unspec:V1TI [(match_operand:V1TI 1 "register_operand" "v") + (match_operand:V1TI 2 "register_operand" "v") + (match_operand:QI 3 "const_0_to_1_operand" "i")] + UNSPEC_BCD_ADD_SUB)) + (set (reg:CCFP 74) + (compare:CCFP + (unspec:V2DF [(match_dup 1) + (match_dup 2) + (match_dup 3)] + UNSPEC_BCD_ADD_SUB) + (match_operand:V2DF 4 "zero_constant" "j")))] + "TARGET_P8_VECTOR" + "bcd. %0,%1,%2,%3" + [(set_attr "length" "4") + (set_attr "type" "vecsimple")]) + + (define_expand "bcd_" + [(parallel [(set (reg:CCFP 74) + (compare:CCFP + (unspec:V2DF [(match_operand:V1TI 1 "register_operand" "") + (match_operand:V1TI 2 "register_operand" "") + (match_operand:QI 3 "const_0_to_1_operand" "")] + UNSPEC_BCD_ADD_SUB) + (match_dup 4))) + (clobber (match_scratch:V1TI 5 ""))]) + (set (match_operand:SI 0 "register_operand" "") + (BCD_TEST:SI (reg:CCFP 74) + (const_int 0)))] + "TARGET_P8_VECTOR" + { + operands[4] = CONST0_RTX (V2DFmode); + }) + + ;; Peephole2 pattern to combine a bcdadd/bcdsub that calculates the value and + ;; the bcdadd/bcdsub that tests the value. The combiner won't work since + ;; CR6 is a hard coded register. Unfortunately, all of the Altivec predicate + ;; support is hard coded to use the fixed register CR6 instead of creating + ;; a register class for CR6. + + (define_peephole2 + [(parallel [(set (match_operand:V1TI 0 "register_operand" "") + (unspec:V1TI [(match_operand:V1TI 1 "register_operand" "") + (match_operand:V1TI 2 "register_operand" "") + (match_operand:QI 3 "const_0_to_1_operand" "")] + UNSPEC_BCD_ADD_SUB)) + (clobber (reg:CCFP 74))]) + (parallel [(set (reg:CCFP 74) + (compare:CCFP + (unspec:V2DF [(match_dup 1) + (match_dup 2) + (match_dup 3)] + UNSPEC_BCD_ADD_SUB) + (match_operand:V2DF 4 "zero_constant" ""))) + (clobber (match_operand:V1TI 5 "register_operand" ""))])] + "TARGET_P8_VECTOR" + [(parallel [(set (match_dup 0) + (unspec:V1TI [(match_dup 1) + (match_dup 2) + (match_dup 3)] + UNSPEC_BCD_ADD_SUB)) + (set (reg:CCFP 74) + (compare:CCFP + (unspec:V2DF [(match_dup 1) + (match_dup 2) + (match_dup 3)] + UNSPEC_BCD_ADD_SUB) + (match_dup 4)))])]) diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/dfp.md gcc-4.9.1/gcc/config/rs6000/dfp.md *** gcc-4.9.0/gcc/config/rs6000/dfp.md Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/rs6000/dfp.md Wed Apr 30 19:30:47 2014 *************** *** 322,324 **** --- 322,393 ---- "TARGET_DFP" "dctfixq %0,%1" [(set_attr "type" "fp")]) + + + ;; Decimal builtin support + + (define_c_enum "unspec" + [UNSPEC_DDEDPD + UNSPEC_DENBCD + UNSPEC_DXEX + UNSPEC_DIEX + UNSPEC_DSCLI + UNSPEC_DSCRI]) + + (define_mode_iterator D64_D128 [DD TD]) + + (define_mode_attr dfp_suffix [(DD "") + (TD "q")]) + + (define_insn "dfp_ddedpd_" + [(set (match_operand:D64_D128 0 "gpc_reg_operand" "=d") + (unspec:D64_D128 [(match_operand:QI 1 "const_0_to_3_operand" "i") + (match_operand:D64_D128 2 "gpc_reg_operand" "d")] + UNSPEC_DDEDPD))] + "TARGET_DFP" + "ddedpd %1,%0,%2" + [(set_attr "type" "fp")]) + + (define_insn "dfp_denbcd_" + [(set (match_operand:D64_D128 0 "gpc_reg_operand" "=d") + (unspec:D64_D128 [(match_operand:QI 1 "const_0_to_1_operand" "i") + (match_operand:D64_D128 2 "gpc_reg_operand" "d")] + UNSPEC_DENBCD))] + "TARGET_DFP" + "denbcd %1,%0,%2" + [(set_attr "type" "fp")]) + + (define_insn "dfp_dxex_" + [(set (match_operand:D64_D128 0 "gpc_reg_operand" "=d") + (unspec:D64_D128 [(match_operand:D64_D128 1 "gpc_reg_operand" "d")] + UNSPEC_DXEX))] + "TARGET_DFP" + "dxex %0,%1" + [(set_attr "type" "fp")]) + + (define_insn "dfp_diex_" + [(set (match_operand:D64_D128 0 "gpc_reg_operand" "=d") + (unspec:D64_D128 [(match_operand:D64_D128 1 "gpc_reg_operand" "d") + (match_operand:D64_D128 2 "gpc_reg_operand" "d")] + UNSPEC_DXEX))] + "TARGET_DFP" + "diex %0,%1,%2" + [(set_attr "type" "fp")]) + + (define_insn "dfp_dscli_" + [(set (match_operand:D64_D128 0 "gpc_reg_operand" "=d") + (unspec:D64_D128 [(match_operand:D64_D128 1 "gpc_reg_operand" "d") + (match_operand:QI 2 "immediate_operand" "i")] + UNSPEC_DSCLI))] + "TARGET_DFP" + "dscli %0,%1,%2" + [(set_attr "type" "fp")]) + + (define_insn "dfp_dscri_" + [(set (match_operand:D64_D128 0 "gpc_reg_operand" "=d") + (unspec:D64_D128 [(match_operand:D64_D128 1 "gpc_reg_operand" "d") + (match_operand:QI 2 "immediate_operand" "i")] + UNSPEC_DSCRI))] + "TARGET_DFP" + "dscri %0,%1,%2" + [(set_attr "type" "fp")]) diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/htm.md gcc-4.9.1/gcc/config/rs6000/htm.md *** gcc-4.9.0/gcc/config/rs6000/htm.md Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/rs6000/htm.md Thu May 22 16:01:46 2014 *************** *** 179,185 **** (const_int 0)] UNSPECV_HTM_TABORTWCI)) (set (subreg:CC (match_dup 2) 0) (match_dup 1)) ! (set (match_dup 3) (lshiftrt:SI (match_dup 2) (const_int 24))) (parallel [(set (match_operand:SI 0 "int_reg_operand" "") (and:SI (match_dup 3) (const_int 15))) (clobber (scratch:CC))])] --- 179,185 ---- (const_int 0)] UNSPECV_HTM_TABORTWCI)) (set (subreg:CC (match_dup 2) 0) (match_dup 1)) ! (set (match_dup 3) (lshiftrt:SI (match_dup 2) (const_int 28))) (parallel [(set (match_operand:SI 0 "int_reg_operand" "") (and:SI (match_dup 3) (const_int 15))) (clobber (scratch:CC))])] diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/htmxlintrin.h gcc-4.9.1/gcc/config/rs6000/htmxlintrin.h *** gcc-4.9.0/gcc/config/rs6000/htmxlintrin.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/rs6000/htmxlintrin.h Fri May 16 03:44:19 2014 *************** extern "C" { *** 46,57 **** typedef char TM_buff_type[16]; extern __inline long __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) __TM_simple_begin (void) { if (__builtin_expect (__builtin_tbegin (0), 1)) ! return 1; return 0; } --- 46,62 ---- typedef char TM_buff_type[16]; + /* Compatibility macro with s390. This macro can be used to determine + whether a transaction was successfully started from the __TM_begin() + and __TM_simple_begin() intrinsic functions below. */ + #define _HTM_TBEGIN_STARTED 1 + extern __inline long __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) __TM_simple_begin (void) { if (__builtin_expect (__builtin_tbegin (0), 1)) ! return _HTM_TBEGIN_STARTED; return 0; } *************** __TM_begin (void* const TM_buff) *** 61,67 **** { *_TEXASRL_PTR (TM_buff) = 0; if (__builtin_expect (__builtin_tbegin (0), 1)) ! return 1; #ifdef __powerpc64__ *_TEXASR_PTR (TM_buff) = __builtin_get_texasr (); #else --- 66,72 ---- { *_TEXASRL_PTR (TM_buff) = 0; if (__builtin_expect (__builtin_tbegin (0), 1)) ! return _HTM_TBEGIN_STARTED; #ifdef __powerpc64__ *_TEXASR_PTR (TM_buff) = __builtin_get_texasr (); #else diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/predicates.md gcc-4.9.1/gcc/config/rs6000/predicates.md *** gcc-4.9.0/gcc/config/rs6000/predicates.md Wed Apr 9 19:53:39 2014 --- gcc-4.9.1/gcc/config/rs6000/predicates.md Wed Apr 30 19:30:47 2014 *************** *** 171,176 **** --- 171,181 ---- (and (match_code "const_int") (match_test "IN_RANGE (INTVAL (op), 0, 1)"))) + ;; Match op = 0..3. + (define_predicate "const_0_to_3_operand" + (and (match_code "const_int") + (match_test "IN_RANGE (INTVAL (op), 0, 3)"))) + ;; Match op = 2 or op = 3. (define_predicate "const_2_to_3_operand" (and (match_code "const_int") *************** *** 624,637 **** (match_test "offsettable_nonstrict_memref_p (op)"))) ;; Return 1 if the operand is suitable for load/store quad memory. ! ;; This predicate only checks for non-atomic loads/stores. (define_predicate "quad_memory_operand" (match_code "mem") { rtx addr, op0, op1; int ret; ! if (!TARGET_QUAD_MEMORY) ret = 0; else if (!memory_operand (op, mode)) --- 629,642 ---- (match_test "offsettable_nonstrict_memref_p (op)"))) ;; Return 1 if the operand is suitable for load/store quad memory. ! ;; This predicate only checks for non-atomic loads/stores (not lqarx/stqcx). (define_predicate "quad_memory_operand" (match_code "mem") { rtx addr, op0, op1; int ret; ! if (!TARGET_QUAD_MEMORY && !TARGET_SYNC_TI) ret = 0; else if (!memory_operand (op, mode)) diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/rs6000-builtin.def gcc-4.9.1/gcc/config/rs6000/rs6000-builtin.def *** gcc-4.9.0/gcc/config/rs6000/rs6000-builtin.def Thu Mar 27 20:07:16 2014 --- gcc-4.9.1/gcc/config/rs6000/rs6000-builtin.def Fri Jun 13 21:56:16 2014 *************** *** 570,575 **** --- 570,637 ---- MASK, /* MASK */ \ (ATTR | RS6000_BTC_SPECIAL), /* ATTR */ \ CODE_FOR_nothing) /* ICODE */ + + + /* Decimal floating point builtins for instructions. */ + #define BU_DFP_MISC_1(ENUM, NAME, ATTR, ICODE) \ + RS6000_BUILTIN_1 (MISC_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_" NAME, /* NAME */ \ + RS6000_BTM_DFP, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_UNARY), \ + CODE_FOR_ ## ICODE) /* ICODE */ + + #define BU_DFP_MISC_2(ENUM, NAME, ATTR, ICODE) \ + RS6000_BUILTIN_2 (MISC_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_" NAME, /* NAME */ \ + RS6000_BTM_DFP, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_BINARY), \ + CODE_FOR_ ## ICODE) /* ICODE */ + + + /* Miscellaneous builtins for instructions added in ISA 2.06. These + instructions don't require either the DFP or VSX options, just the basic ISA + 2.06 (popcntd) enablement since they operate on general purpose + registers. */ + #define BU_P7_MISC_1(ENUM, NAME, ATTR, ICODE) \ + RS6000_BUILTIN_1 (MISC_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_" NAME, /* NAME */ \ + RS6000_BTM_POPCNTD, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_UNARY), \ + CODE_FOR_ ## ICODE) /* ICODE */ + + #define BU_P7_MISC_2(ENUM, NAME, ATTR, ICODE) \ + RS6000_BUILTIN_2 (MISC_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_" NAME, /* NAME */ \ + RS6000_BTM_POPCNTD, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_BINARY), \ + CODE_FOR_ ## ICODE) /* ICODE */ + + + /* Miscellaneous builtins for instructions added in ISA 2.07. These + instructions do require the ISA 2.07 vector support, but they aren't vector + instructions. */ + #define BU_P8V_MISC_3(ENUM, NAME, ATTR, ICODE) \ + RS6000_BUILTIN_3 (MISC_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_" NAME, /* NAME */ \ + RS6000_BTM_P8_VECTOR, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_TERNARY), \ + CODE_FOR_ ## ICODE) /* ICODE */ + + /* 128-bit long double floating point builtins. */ + #define BU_LDBL128_2(ENUM, NAME, ATTR, ICODE) \ + RS6000_BUILTIN_2 (MISC_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_" NAME, /* NAME */ \ + (RS6000_BTM_HARD_FLOAT /* MASK */ \ + | RS6000_BTM_LDBL128), \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_BINARY), \ + CODE_FOR_ ## ICODE) /* ICODE */ + #endif /* Insure 0 is not a legitimate index. */ *************** BU_P8V_AV_2 (ORC_V4SF, "orc_v4sf", CONS *** 1412,1421 **** BU_P8V_AV_2 (ORC_V2DF, "orc_v2df", CONST, orcv2df3) /* 3 argument altivec instructions added in ISA 2.07. */ ! BU_P8V_AV_3 (VADDEUQM, "vaddeuqm", CONST, altivec_vaddeuqm) ! BU_P8V_AV_3 (VADDECUQ, "vaddecuq", CONST, altivec_vaddecuq) ! BU_P8V_AV_3 (VSUBEUQM, "vsubeuqm", CONST, altivec_vsubeuqm) ! BU_P8V_AV_3 (VSUBECUQ, "vsubecuq", CONST, altivec_vsubecuq) /* Vector comparison instructions added in ISA 2.07. */ BU_P8V_AV_2 (VCMPEQUD, "vcmpequd", CONST, vector_eqv2di) --- 1474,1483 ---- BU_P8V_AV_2 (ORC_V2DF, "orc_v2df", CONST, orcv2df3) /* 3 argument altivec instructions added in ISA 2.07. */ ! BU_P8V_AV_3 (VADDEUQM, "vaddeuqm", CONST, altivec_vaddeuqm) ! BU_P8V_AV_3 (VADDECUQ, "vaddecuq", CONST, altivec_vaddecuq) ! BU_P8V_AV_3 (VSUBEUQM, "vsubeuqm", CONST, altivec_vsubeuqm) ! BU_P8V_AV_3 (VSUBECUQ, "vsubecuq", CONST, altivec_vsubecuq) /* Vector comparison instructions added in ISA 2.07. */ BU_P8V_AV_2 (VCMPEQUD, "vcmpequd", CONST, vector_eqv2di) *************** BU_P8V_OVERLOAD_3 (VSUBECUQ, "vsubecuq") *** 1475,1480 **** --- 1537,1598 ---- BU_P8V_OVERLOAD_3 (VSUBEUQM, "vsubeuqm") + /* 2 argument extended divide functions added in ISA 2.06. */ + BU_P7_MISC_2 (DIVWE, "divwe", CONST, dive_si) + BU_P7_MISC_2 (DIVWEO, "divweo", CONST, diveo_si) + BU_P7_MISC_2 (DIVWEU, "divweu", CONST, diveu_si) + BU_P7_MISC_2 (DIVWEUO, "divweuo", CONST, diveuo_si) + BU_P7_MISC_2 (DIVDE, "divde", CONST, dive_di) + BU_P7_MISC_2 (DIVDEO, "divdeo", CONST, diveo_di) + BU_P7_MISC_2 (DIVDEU, "divdeu", CONST, diveu_di) + BU_P7_MISC_2 (DIVDEUO, "divdeuo", CONST, diveuo_di) + + /* 1 argument DFP (decimal floating point) functions added in ISA 2.05. */ + BU_DFP_MISC_1 (DXEX, "dxex", CONST, dfp_dxex_dd) + BU_DFP_MISC_1 (DXEXQ, "dxexq", CONST, dfp_dxex_td) + + /* 2 argument DFP (decimal floating point) functions added in ISA 2.05. */ + BU_DFP_MISC_2 (DDEDPD, "ddedpd", CONST, dfp_ddedpd_dd) + BU_DFP_MISC_2 (DDEDPDQ, "ddedpdq", CONST, dfp_ddedpd_td) + BU_DFP_MISC_2 (DENBCD, "denbcd", CONST, dfp_denbcd_dd) + BU_DFP_MISC_2 (DENBCDQ, "denbcdq", CONST, dfp_denbcd_td) + BU_DFP_MISC_2 (DIEX, "diex", CONST, dfp_diex_dd) + BU_DFP_MISC_2 (DIEXQ, "diexq", CONST, dfp_diex_td) + BU_DFP_MISC_2 (DSCLI, "dscli", CONST, dfp_dscli_dd) + BU_DFP_MISC_2 (DSCLIQ, "dscliq", CONST, dfp_dscli_td) + BU_DFP_MISC_2 (DSCRI, "dscri", CONST, dfp_dscri_dd) + BU_DFP_MISC_2 (DSCRIQ, "dscriq", CONST, dfp_dscri_td) + + /* 1 argument BCD functions added in ISA 2.06. */ + BU_P7_MISC_1 (CDTBCD, "cdtbcd", CONST, cdtbcd) + BU_P7_MISC_1 (CBCDTD, "cbcdtd", CONST, cbcdtd) + + /* 2 argument BCD functions added in ISA 2.06. */ + BU_P7_MISC_2 (ADDG6S, "addg6s", CONST, addg6s) + + /* 3 argument BCD functions added in ISA 2.07. */ + BU_P8V_MISC_3 (BCDADD, "bcdadd", CONST, bcdadd) + BU_P8V_MISC_3 (BCDADD_LT, "bcdadd_lt", CONST, bcdadd_lt) + BU_P8V_MISC_3 (BCDADD_EQ, "bcdadd_eq", CONST, bcdadd_eq) + BU_P8V_MISC_3 (BCDADD_GT, "bcdadd_gt", CONST, bcdadd_gt) + BU_P8V_MISC_3 (BCDADD_OV, "bcdadd_ov", CONST, bcdadd_unordered) + BU_P8V_MISC_3 (BCDSUB, "bcdsub", CONST, bcdsub) + BU_P8V_MISC_3 (BCDSUB_LT, "bcdsub_lt", CONST, bcdsub_lt) + BU_P8V_MISC_3 (BCDSUB_EQ, "bcdsub_eq", CONST, bcdsub_eq) + BU_P8V_MISC_3 (BCDSUB_GT, "bcdsub_gt", CONST, bcdsub_gt) + BU_P8V_MISC_3 (BCDSUB_OV, "bcdsub_ov", CONST, bcdsub_unordered) + + /* 2 argument pack/unpack 128-bit floating point types. */ + BU_DFP_MISC_2 (PACK_TD, "pack_dec128", CONST, packtd) + BU_DFP_MISC_2 (UNPACK_TD, "unpack_dec128", CONST, unpacktd) + + BU_LDBL128_2 (PACK_TF, "pack_longdouble", CONST, packtf) + BU_LDBL128_2 (UNPACK_TF, "unpack_longdouble", CONST, unpacktf) + + BU_P7_MISC_2 (PACK_V1TI, "pack_vector_int128", CONST, packv1ti) + BU_P7_MISC_2 (UNPACK_V1TI, "unpack_vector_int128", CONST, unpackv1ti) + + /* 1 argument crypto functions. */ BU_CRYPTO_1 (VSBOX, "vsbox", CONST, crypto_vsbox) diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/rs6000-protos.h gcc-4.9.1/gcc/config/rs6000/rs6000-protos.h *** gcc-4.9.0/gcc/config/rs6000/rs6000-protos.h Thu Mar 13 00:11:56 2014 --- gcc-4.9.1/gcc/config/rs6000/rs6000-protos.h Wed Jun 11 23:49:49 2014 *************** extern tree altivec_resolve_overloaded_b *** 163,169 **** extern rtx rs6000_libcall_value (enum machine_mode); extern rtx rs6000_va_arg (tree, tree); extern int function_ok_for_sibcall (tree); ! extern int rs6000_reg_parm_stack_space (tree); extern void rs6000_elf_declare_function_name (FILE *, const char *, tree); extern bool rs6000_elf_in_small_data_p (const_tree); #ifdef ARGS_SIZE_RTX --- 163,169 ---- extern rtx rs6000_libcall_value (enum machine_mode); extern rtx rs6000_va_arg (tree, tree); extern int function_ok_for_sibcall (tree); ! extern int rs6000_reg_parm_stack_space (tree, bool); extern void rs6000_elf_declare_function_name (FILE *, const char *, tree); extern bool rs6000_elf_in_small_data_p (const_tree); #ifdef ARGS_SIZE_RTX diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/rs6000.c gcc-4.9.1/gcc/config/rs6000/rs6000.c *** gcc-4.9.0/gcc/config/rs6000/rs6000.c Tue Apr 15 18:25:09 2014 --- gcc-4.9.1/gcc/config/rs6000/rs6000.c Fri Jun 13 21:56:16 2014 *************** rs6000_debug_reg_global (void) *** 2283,2288 **** --- 2283,2306 ---- if (rs6000_float_gprs) fprintf (stderr, DEBUG_FMT_S, "float_gprs", "true"); + fprintf (stderr, DEBUG_FMT_S, "fprs", + (TARGET_FPRS ? "true" : "false")); + + fprintf (stderr, DEBUG_FMT_S, "single_float", + (TARGET_SINGLE_FLOAT ? "true" : "false")); + + fprintf (stderr, DEBUG_FMT_S, "double_float", + (TARGET_DOUBLE_FLOAT ? "true" : "false")); + + fprintf (stderr, DEBUG_FMT_S, "soft_float", + (TARGET_SOFT_FLOAT ? "true" : "false")); + + fprintf (stderr, DEBUG_FMT_S, "e500_single", + (TARGET_E500_SINGLE ? "true" : "false")); + + fprintf (stderr, DEBUG_FMT_S, "e500_double", + (TARGET_E500_DOUBLE ? "true" : "false")); + if (TARGET_LINK_STACK) fprintf (stderr, DEBUG_FMT_S, "link_stack", "true"); *************** rs6000_builtin_mask_calculate (void) *** 3017,3023 **** | ((rs6000_cpu == PROCESSOR_CELL) ? RS6000_BTM_CELL : 0) | ((TARGET_P8_VECTOR) ? RS6000_BTM_P8_VECTOR : 0) | ((TARGET_CRYPTO) ? RS6000_BTM_CRYPTO : 0) ! | ((TARGET_HTM) ? RS6000_BTM_HTM : 0)); } /* Override command line options. Mostly we process the processor type and --- 3035,3044 ---- | ((rs6000_cpu == PROCESSOR_CELL) ? RS6000_BTM_CELL : 0) | ((TARGET_P8_VECTOR) ? RS6000_BTM_P8_VECTOR : 0) | ((TARGET_CRYPTO) ? RS6000_BTM_CRYPTO : 0) ! | ((TARGET_HTM) ? RS6000_BTM_HTM : 0) ! | ((TARGET_DFP) ? RS6000_BTM_DFP : 0) ! | ((TARGET_HARD_FLOAT) ? RS6000_BTM_HARD_FLOAT : 0) ! | ((TARGET_LONG_DOUBLE_128) ? RS6000_BTM_LDBL128 : 0)); } /* Override command line options. Mostly we process the processor type and *************** rs6000_option_override_internal (bool gl *** 3374,3379 **** --- 3395,3407 ---- rs6000_isa_flags &= ~OPTION_MASK_VSX_TIMODE; } + if (TARGET_DFP && !TARGET_HARD_FLOAT) + { + if (rs6000_isa_flags_explicit & OPTION_MASK_DFP) + error ("-mhard-dfp requires -mhard-float"); + rs6000_isa_flags &= ~OPTION_MASK_DFP; + } + /* The quad memory instructions only works in 64-bit mode. In 32-bit mode, silently turn off quad memory mode. */ if ((TARGET_QUAD_MEMORY || TARGET_QUAD_MEMORY_ATOMIC) && !TARGET_POWERPC64) *************** mem_operand_gpr (rtx op, enum machine_mo *** 6091,6097 **** return false; extra = GET_MODE_SIZE (mode) - UNITS_PER_WORD; ! gcc_assert (extra >= 0); if (GET_CODE (addr) == LO_SUM) /* For lo_sum addresses, we must allow any offset except one that --- 6119,6126 ---- return false; extra = GET_MODE_SIZE (mode) - UNITS_PER_WORD; ! if (extra < 0) ! extra = 0; if (GET_CODE (addr) == LO_SUM) /* For lo_sum addresses, we must allow any offset except one that *************** rs6000_parm_needs_stack (cumulative_args *** 10450,10484 **** list, or passes any parameter in memory. */ static bool ! rs6000_function_parms_need_stack (tree fun) { ! function_args_iterator args_iter; ! tree arg_type; CUMULATIVE_ARGS args_so_far_v; cumulative_args_t args_so_far; if (!fun) /* Must be a libcall, all of which only use reg parms. */ return false; if (!TYPE_P (fun)) ! fun = TREE_TYPE (fun); /* Varargs functions need the parameter save area. */ ! if (!prototype_p (fun) || stdarg_p (fun)) return true; ! INIT_CUMULATIVE_INCOMING_ARGS (args_so_far_v, fun, NULL_RTX); args_so_far = pack_cumulative_args (&args_so_far_v); ! if (aggregate_value_p (TREE_TYPE (fun), fun)) { ! tree type = build_pointer_type (TREE_TYPE (fun)); ! rs6000_parm_needs_stack (args_so_far, type); } ! FOREACH_FUNCTION_ARGS (fun, arg_type, args_iter) ! if (rs6000_parm_needs_stack (args_so_far, arg_type)) ! return true; return false; } --- 10479,10543 ---- list, or passes any parameter in memory. */ static bool ! rs6000_function_parms_need_stack (tree fun, bool incoming) { ! tree fntype, result; CUMULATIVE_ARGS args_so_far_v; cumulative_args_t args_so_far; if (!fun) /* Must be a libcall, all of which only use reg parms. */ return false; + + fntype = fun; if (!TYPE_P (fun)) ! fntype = TREE_TYPE (fun); /* Varargs functions need the parameter save area. */ ! if ((!incoming && !prototype_p (fntype)) || stdarg_p (fntype)) return true; ! INIT_CUMULATIVE_INCOMING_ARGS (args_so_far_v, fntype, NULL_RTX); args_so_far = pack_cumulative_args (&args_so_far_v); ! /* When incoming, we will have been passed the function decl. ! It is necessary to use the decl to handle K&R style functions, ! where TYPE_ARG_TYPES may not be available. */ ! if (incoming) { ! gcc_assert (DECL_P (fun)); ! result = DECL_RESULT (fun); } + else + result = TREE_TYPE (fntype); ! if (result && aggregate_value_p (result, fntype)) ! { ! if (!TYPE_P (result)) ! result = TREE_TYPE (result); ! result = build_pointer_type (result); ! rs6000_parm_needs_stack (args_so_far, result); ! } ! ! if (incoming) ! { ! tree parm; ! ! for (parm = DECL_ARGUMENTS (fun); ! parm && parm != void_list_node; ! parm = TREE_CHAIN (parm)) ! if (rs6000_parm_needs_stack (args_so_far, TREE_TYPE (parm))) ! return true; ! } ! else ! { ! function_args_iterator args_iter; ! tree arg_type; ! ! FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter) ! if (rs6000_parm_needs_stack (args_so_far, arg_type)) ! return true; ! } return false; } *************** rs6000_function_parms_need_stack (tree f *** 10490,10496 **** all parameters in registers. */ int ! rs6000_reg_parm_stack_space (tree fun) { int reg_parm_stack_space; --- 10549,10555 ---- all parameters in registers. */ int ! rs6000_reg_parm_stack_space (tree fun, bool incoming) { int reg_parm_stack_space; *************** rs6000_reg_parm_stack_space (tree fun) *** 10508,10514 **** case ABI_ELFv2: /* ??? Recomputing this every time is a bit expensive. Is there a place to cache this information? */ ! if (rs6000_function_parms_need_stack (fun)) reg_parm_stack_space = TARGET_64BIT ? 64 : 32; else reg_parm_stack_space = 0; --- 10567,10573 ---- case ABI_ELFv2: /* ??? Recomputing this every time is a bit expensive. Is there a place to cache this information? */ ! if (rs6000_function_parms_need_stack (fun, incoming)) reg_parm_stack_space = TARGET_64BIT ? 64 : 32; else reg_parm_stack_space = 0; *************** rs6000_expand_ternop_builtin (enum insn_ *** 12381,12387 **** } } else if (icode == CODE_FOR_vsx_set_v2df ! || icode == CODE_FOR_vsx_set_v2di) { /* Only allow 1-bit unsigned literals. */ STRIP_NOPS (arg2); --- 12440,12454 ---- } } else if (icode == CODE_FOR_vsx_set_v2df ! || icode == CODE_FOR_vsx_set_v2di ! || icode == CODE_FOR_bcdadd ! || icode == CODE_FOR_bcdadd_lt ! || icode == CODE_FOR_bcdadd_eq ! || icode == CODE_FOR_bcdadd_gt ! || icode == CODE_FOR_bcdsub ! || icode == CODE_FOR_bcdsub_lt ! || icode == CODE_FOR_bcdsub_eq ! || icode == CODE_FOR_bcdsub_gt) { /* Only allow 1-bit unsigned literals. */ STRIP_NOPS (arg2); *************** rs6000_expand_ternop_builtin (enum insn_ *** 12392,12397 **** --- 12459,12502 ---- return const0_rtx; } } + else if (icode == CODE_FOR_dfp_ddedpd_dd + || icode == CODE_FOR_dfp_ddedpd_td) + { + /* Only allow 2-bit unsigned literals where the value is 0 or 2. */ + STRIP_NOPS (arg0); + if (TREE_CODE (arg0) != INTEGER_CST + || TREE_INT_CST_LOW (arg2) & ~0x3) + { + error ("argument 1 must be 0 or 2"); + return const0_rtx; + } + } + else if (icode == CODE_FOR_dfp_denbcd_dd + || icode == CODE_FOR_dfp_denbcd_td) + { + /* Only allow 1-bit unsigned literals. */ + STRIP_NOPS (arg0); + if (TREE_CODE (arg0) != INTEGER_CST + || TREE_INT_CST_LOW (arg0) & ~0x1) + { + error ("argument 1 must be a 1-bit unsigned literal"); + return const0_rtx; + } + } + else if (icode == CODE_FOR_dfp_dscli_dd + || icode == CODE_FOR_dfp_dscli_td + || icode == CODE_FOR_dfp_dscri_dd + || icode == CODE_FOR_dfp_dscri_td) + { + /* Only allow 6-bit unsigned literals. */ + STRIP_NOPS (arg1); + if (TREE_CODE (arg1) != INTEGER_CST + || TREE_INT_CST_LOW (arg1) & ~0x3f) + { + error ("argument 2 must be a 6-bit unsigned literal"); + return const0_rtx; + } + } else if (icode == CODE_FOR_crypto_vshasigmaw || icode == CODE_FOR_crypto_vshasigmad) { *************** rs6000_invalid_builtin (enum rs6000_buil *** 13483,13488 **** --- 13588,13607 ---- error ("Builtin function %s requires the -mpaired option", name); else if ((fnmask & RS6000_BTM_SPE) != 0) error ("Builtin function %s requires the -mspe option", name); + else if ((fnmask & (RS6000_BTM_DFP | RS6000_BTM_P8_VECTOR)) + == (RS6000_BTM_DFP | RS6000_BTM_P8_VECTOR)) + error ("Builtin function %s requires the -mhard-dfp and" + " -mpower8-vector options", name); + else if ((fnmask & RS6000_BTM_DFP) != 0) + error ("Builtin function %s requires the -mhard-dfp option", name); + else if ((fnmask & RS6000_BTM_P8_VECTOR) != 0) + error ("Builtin function %s requires the -mpower8-vector option", name); + else if ((fnmask & (RS6000_BTM_HARD_FLOAT | RS6000_BTM_LDBL128)) + == (RS6000_BTM_HARD_FLOAT | RS6000_BTM_LDBL128)) + error ("Builtin function %s requires the -mhard-float and" + " -mlong-double-128 options", name); + else if ((fnmask & RS6000_BTM_HARD_FLOAT) != 0) + error ("Builtin function %s requires the -mhard-float option", name); else error ("Builtin function %s is not supported with the current options", name); *************** rs6000_expand_builtin (tree exp, rtx tar *** 13671,13677 **** return ret; } ! gcc_assert (TARGET_ALTIVEC || TARGET_VSX || TARGET_SPE || TARGET_PAIRED_FLOAT); /* Handle simple unary operations. */ d = bdesc_1arg; --- 13790,13799 ---- return ret; } ! unsigned attr = rs6000_builtin_info[uns_fcode].attr & RS6000_BTC_TYPE_MASK; ! gcc_assert (attr == RS6000_BTC_UNARY ! || attr == RS6000_BTC_BINARY ! || attr == RS6000_BTC_TERNARY); /* Handle simple unary operations. */ d = bdesc_1arg; *************** rs6000_init_builtins (void) *** 13762,13767 **** --- 13884,13892 ---- uintTI_type_internal_node = unsigned_intTI_type_node; float_type_internal_node = float_type_node; double_type_internal_node = double_type_node; + long_double_type_internal_node = long_double_type_node; + dfloat64_type_internal_node = dfloat64_type_node; + dfloat128_type_internal_node = dfloat128_type_node; void_type_internal_node = void_type_node; /* Initialize the modes for builtin_function_type, mapping a machine mode to *************** rs6000_init_builtins (void) *** 13776,13781 **** --- 13901,13909 ---- builtin_mode_to_type[TImode][1] = unsigned_intTI_type_node; builtin_mode_to_type[SFmode][0] = float_type_node; builtin_mode_to_type[DFmode][0] = double_type_node; + builtin_mode_to_type[TFmode][0] = long_double_type_node; + builtin_mode_to_type[DDmode][0] = dfloat64_type_node; + builtin_mode_to_type[TDmode][0] = dfloat128_type_node; builtin_mode_to_type[V1TImode][0] = V1TI_type_node; builtin_mode_to_type[V1TImode][1] = unsigned_V1TI_type_node; builtin_mode_to_type[V2SImode][0] = V2SI_type_node; *************** builtin_function_type (enum machine_mode *** 14868,14873 **** --- 14996,15003 ---- /* unsigned 1 argument functions. */ case CRYPTO_BUILTIN_VSBOX: case P8V_BUILTIN_VGBBD: + case MISC_BUILTIN_CDTBCD: + case MISC_BUILTIN_CBCDTD: h.uns_p[0] = 1; h.uns_p[1] = 1; break; *************** builtin_function_type (enum machine_mode *** 14886,14891 **** --- 15016,15026 ---- case CRYPTO_BUILTIN_VPMSUMW: case CRYPTO_BUILTIN_VPMSUMD: case CRYPTO_BUILTIN_VPMSUM: + case MISC_BUILTIN_ADDG6S: + case MISC_BUILTIN_DIVWEU: + case MISC_BUILTIN_DIVWEUO: + case MISC_BUILTIN_DIVDEU: + case MISC_BUILTIN_DIVDEUO: h.uns_p[0] = 1; h.uns_p[1] = 1; h.uns_p[2] = 1; *************** builtin_function_type (enum machine_mode *** 14947,14955 **** --- 15082,15099 ---- /* signed args, unsigned return. */ case VSX_BUILTIN_XVCVDPUXDS_UNS: case ALTIVEC_BUILTIN_FIXUNS_V4SF_V4SI: + case MISC_BUILTIN_UNPACK_TD: + case MISC_BUILTIN_UNPACK_V1TI: h.uns_p[0] = 1; break; + /* unsigned arguments for 128-bit pack instructions. */ + case MISC_BUILTIN_PACK_TD: + case MISC_BUILTIN_PACK_V1TI: + h.uns_p[1] = 1; + h.uns_p[2] = 1; + break; + default: break; } *************** static struct rs6000_opt_mask const rs60 *** 31203,31208 **** --- 31347,31355 ---- { "power8-vector", RS6000_BTM_P8_VECTOR, false, false }, { "crypto", RS6000_BTM_CRYPTO, false, false }, { "htm", RS6000_BTM_HTM, false, false }, + { "hard-dfp", RS6000_BTM_DFP, false, false }, + { "hard-float", RS6000_BTM_HARD_FLOAT, false, false }, + { "long-double-128", RS6000_BTM_LDBL128, false, false }, }; /* Option variables that we want to support inside attribute((target)) and diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/rs6000.h gcc-4.9.1/gcc/config/rs6000/rs6000.h *** gcc-4.9.0/gcc/config/rs6000/rs6000.h Thu Mar 27 20:07:16 2014 --- gcc-4.9.1/gcc/config/rs6000/rs6000.h Fri Jun 13 21:56:16 2014 *************** extern int rs6000_vector_align[]; *** 624,630 **** || TARGET_CMPB /* ISA 2.05 */ \ || TARGET_POPCNTD /* ISA 2.06 */ \ || TARGET_ALTIVEC \ ! || TARGET_VSX))) /* E500 cores only support plain "sync", not lwsync. */ #define TARGET_NO_LWSYNC (rs6000_cpu == PROCESSOR_PPC8540 \ --- 624,631 ---- || TARGET_CMPB /* ISA 2.05 */ \ || TARGET_POPCNTD /* ISA 2.06 */ \ || TARGET_ALTIVEC \ ! || TARGET_VSX \ ! || TARGET_HARD_FLOAT))) /* E500 cores only support plain "sync", not lwsync. */ #define TARGET_NO_LWSYNC (rs6000_cpu == PROCESSOR_PPC8540 \ *************** extern enum reg_class rs6000_constraints *** 1601,1607 **** /* Define this if stack space is still allocated for a parameter passed in a register. The value is the number of bytes allocated to this area. */ ! #define REG_PARM_STACK_SPACE(FNDECL) rs6000_reg_parm_stack_space((FNDECL)) /* Define this if the above stack space is to be considered part of the space allocated by the caller. */ --- 1602,1615 ---- /* Define this if stack space is still allocated for a parameter passed in a register. The value is the number of bytes allocated to this area. */ ! #define REG_PARM_STACK_SPACE(FNDECL) \ ! rs6000_reg_parm_stack_space ((FNDECL), false) ! ! /* Define this macro if space guaranteed when compiling a function body ! is different to space required when making a call, a situation that ! can arise with K&R style function definitions. */ ! #define INCOMING_REG_PARM_STACK_SPACE(FNDECL) \ ! rs6000_reg_parm_stack_space ((FNDECL), true) /* Define this if the above stack space is to be considered part of the space allocated by the caller. */ *************** extern int frame_pointer_needed; *** 2500,2507 **** #define RS6000_BTC_SAT RS6000_BTC_MISC /* saturate sets VSCR. */ /* Builtin targets. For now, we reuse the masks for those options that are in ! target flags, and pick two random bits for SPE and paired which aren't in ! target_flags. */ #define RS6000_BTM_ALWAYS 0 /* Always enabled. */ #define RS6000_BTM_ALTIVEC MASK_ALTIVEC /* VMX/altivec vectors. */ #define RS6000_BTM_VSX MASK_VSX /* VSX (vector/scalar). */ --- 2508,2515 ---- #define RS6000_BTC_SAT RS6000_BTC_MISC /* saturate sets VSCR. */ /* Builtin targets. For now, we reuse the masks for those options that are in ! target flags, and pick three random bits for SPE, paired and ldbl128 which ! aren't in target_flags. */ #define RS6000_BTM_ALWAYS 0 /* Always enabled. */ #define RS6000_BTM_ALTIVEC MASK_ALTIVEC /* VMX/altivec vectors. */ #define RS6000_BTM_VSX MASK_VSX /* VSX (vector/scalar). */ *************** extern int frame_pointer_needed; *** 2516,2521 **** --- 2524,2532 ---- #define RS6000_BTM_FRSQRTES MASK_POPCNTB /* FRSQRTES instruction. */ #define RS6000_BTM_POPCNTD MASK_POPCNTD /* Target supports ISA 2.06. */ #define RS6000_BTM_CELL MASK_FPRND /* Target is cell powerpc. */ + #define RS6000_BTM_DFP MASK_DFP /* Decimal floating point. */ + #define RS6000_BTM_HARD_FLOAT MASK_SOFT_FLOAT /* Hardware floating point. */ + #define RS6000_BTM_LDBL128 MASK_MULTIPLE /* 128-bit long double. */ #define RS6000_BTM_COMMON (RS6000_BTM_ALTIVEC \ | RS6000_BTM_VSX \ *************** extern int frame_pointer_needed; *** 2527,2533 **** | RS6000_BTM_FRSQRTES \ | RS6000_BTM_HTM \ | RS6000_BTM_POPCNTD \ ! | RS6000_BTM_CELL) /* Define builtin enum index. */ --- 2538,2547 ---- | RS6000_BTM_FRSQRTES \ | RS6000_BTM_HTM \ | RS6000_BTM_POPCNTD \ ! | RS6000_BTM_CELL \ ! | RS6000_BTM_DFP \ ! | RS6000_BTM_HARD_FLOAT \ ! | RS6000_BTM_LDBL128) /* Define builtin enum index. */ *************** enum rs6000_builtin_type_index *** 2622,2627 **** --- 2636,2644 ---- RS6000_BTI_UINTTI, /* unsigned_intTI_type_node */ RS6000_BTI_float, /* float_type_node */ RS6000_BTI_double, /* double_type_node */ + RS6000_BTI_long_double, /* long_double_type_node */ + RS6000_BTI_dfloat64, /* dfloat64_type_node */ + RS6000_BTI_dfloat128, /* dfloat128_type_node */ RS6000_BTI_void, /* void_type_node */ RS6000_BTI_MAX }; *************** enum rs6000_builtin_type_index *** 2673,2678 **** --- 2690,2698 ---- #define uintTI_type_internal_node (rs6000_builtin_types[RS6000_BTI_UINTTI]) #define float_type_internal_node (rs6000_builtin_types[RS6000_BTI_float]) #define double_type_internal_node (rs6000_builtin_types[RS6000_BTI_double]) + #define long_double_type_internal_node (rs6000_builtin_types[RS6000_BTI_long_double]) + #define dfloat64_type_internal_node (rs6000_builtin_types[RS6000_BTI_dfloat64]) + #define dfloat128_type_internal_node (rs6000_builtin_types[RS6000_BTI_dfloat128]) #define void_type_internal_node (rs6000_builtin_types[RS6000_BTI_void]) extern GTY(()) tree rs6000_builtin_types[RS6000_BTI_MAX]; diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/rs6000.md gcc-4.9.1/gcc/config/rs6000/rs6000.md *** gcc-4.9.0/gcc/config/rs6000/rs6000.md Tue Apr 15 18:25:09 2014 --- gcc-4.9.1/gcc/config/rs6000/rs6000.md Fri Jun 13 21:56:16 2014 *************** *** 125,130 **** --- 125,140 ---- UNSPEC_P8V_MTVSRD UNSPEC_P8V_XXPERMDI UNSPEC_P8V_RELOAD_FROM_VSX + UNSPEC_ADDG6S + UNSPEC_CDTBCD + UNSPEC_CBCDTD + UNSPEC_DIVE + UNSPEC_DIVEO + UNSPEC_DIVEU + UNSPEC_DIVEUO + UNSPEC_UNPACK_128BIT + UNSPEC_PACK_128BIT + UNSPEC_LSQ ]) ;; *************** *** 481,486 **** --- 491,500 ---- (V2DF "X,X,X,X,X") (V1TI "X,X,X,X,X")]) + ;; Mode attribute to give the correct type for integer divides + (define_mode_attr idiv_ldiv [(SI "idiv") + (DI "ldiv")]) + ;; Start with fixed-point load and store insns. Here we put only the more ;; complex forms. Basic data transfer is done later. *************** *** 732,738 **** (define_insn "*extendsidi2_lfiwax" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r,??wm,!wl,!wu") ! (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r,r,Z,Z")))] "TARGET_POWERPC64 && TARGET_LFIWAX" "@ lwa%U1%X1 %0,%1 --- 746,752 ---- (define_insn "*extendsidi2_lfiwax" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r,??wm,!wl,!wu") ! (sign_extend:DI (match_operand:SI 1 "lwa_operand" "Y,r,r,Z,Z")))] "TARGET_POWERPC64 && TARGET_LFIWAX" "@ lwa%U1%X1 %0,%1 *************** *** 755,761 **** (define_insn "*extendsidi2_nocell" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") ! (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r")))] "TARGET_POWERPC64 && rs6000_gen_cell_microcode && !TARGET_LFIWAX" "@ lwa%U1%X1 %0,%1 --- 769,775 ---- (define_insn "*extendsidi2_nocell" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") ! (sign_extend:DI (match_operand:SI 1 "lwa_operand" "Y,r")))] "TARGET_POWERPC64 && rs6000_gen_cell_microcode && !TARGET_LFIWAX" "@ lwa%U1%X1 %0,%1 *************** *** 2755,2764 **** (match_operand:GPR 2 "gpc_reg_operand" "r")))] "" "divu %0,%1,%2" ! [(set (attr "type") ! (cond [(match_operand:SI 0 "" "") ! (const_string "idiv")] ! (const_string "ldiv")))]) ;; For powers of two we can do srai/aze for divide and then adjust for --- 2769,2775 ---- (match_operand:GPR 2 "gpc_reg_operand" "r")))] "" "divu %0,%1,%2" ! [(set_attr "type" "")]) ;; For powers of two we can do srai/aze for divide and then adjust for *************** *** 2782,2791 **** (match_operand:GPR 2 "gpc_reg_operand" "r")))] "" "div %0,%1,%2" ! [(set (attr "type") ! (cond [(match_operand:SI 0 "" "") ! (const_string "idiv")] ! (const_string "ldiv")))]) (define_expand "mod3" [(use (match_operand:GPR 0 "gpc_reg_operand" "")) --- 2793,2799 ---- (match_operand:GPR 2 "gpc_reg_operand" "r")))] "" "div %0,%1,%2" ! [(set_attr "type" "")]) (define_expand "mod3" [(use (match_operand:GPR 0 "gpc_reg_operand" "")) *************** *** 6534,6539 **** --- 6542,6590 ---- [(set_attr "length" "8") (set_attr "type" "fpload")]) + ;; Define the TImode operations that can be done in a small number + ;; of instructions. The & constraints are to prevent the register + ;; allocator from allocating registers that overlap with the inputs + ;; (for example, having an input in 7,8 and an output in 6,7). We + ;; also allow for the output being the same as one of the inputs. + + (define_insn "addti3" + [(set (match_operand:TI 0 "gpc_reg_operand" "=&r,&r,r,r") + (plus:TI (match_operand:TI 1 "gpc_reg_operand" "%r,r,0,0") + (match_operand:TI 2 "reg_or_short_operand" "r,I,r,I")))] + "TARGET_64BIT" + { + if (WORDS_BIG_ENDIAN) + return (GET_CODE (operands[2])) != CONST_INT + ? \"addc %L0,%L1,%L2\;adde %0,%1,%2\" + : \"addic %L0,%L1,%2\;add%G2e %0,%1\"; + else + return (GET_CODE (operands[2])) != CONST_INT + ? \"addc %0,%1,%2\;adde %L0,%L1,%L2\" + : \"addic %0,%1,%2\;add%G2e %L0,%L1\"; + } + [(set_attr "type" "two") + (set_attr "length" "8")]) + + (define_insn "subti3" + [(set (match_operand:TI 0 "gpc_reg_operand" "=&r,&r,r,r,r") + (minus:TI (match_operand:TI 1 "reg_or_short_operand" "r,I,0,r,I") + (match_operand:TI 2 "gpc_reg_operand" "r,r,r,0,0")))] + "TARGET_64BIT" + { + if (WORDS_BIG_ENDIAN) + return (GET_CODE (operands[1]) != CONST_INT) + ? \"subfc %L0,%L2,%L1\;subfe %0,%2,%1\" + : \"subfic %L0,%L2,%1\;subf%G1e %0,%2\"; + else + return (GET_CODE (operands[1]) != CONST_INT) + ? \"subfc %0,%2,%1\;subfe %L0,%L2,%L1\" + : \"subfic %0,%2,%1\;subf%G1e %L0,%L2\"; + } + [(set_attr "type" "two") + (set_attr "length" "8")]) + + ;; Define the DImode operations that can be done in a small number ;; of instructions. The & constraints are to prevent the register ;; allocator from allocating registers that overlap with the inputs *************** *** 9395,9401 **** (match_operand:FMOVE64 1 "input_operand" "r,Y,r,G,H,F"))] "! TARGET_POWERPC64 && ((TARGET_FPRS && TARGET_SINGLE_FLOAT) ! || TARGET_SOFT_FLOAT || TARGET_E500_SINGLE) && (gpc_reg_operand (operands[0], mode) || gpc_reg_operand (operands[1], mode))" "#" --- 9446,9453 ---- (match_operand:FMOVE64 1 "input_operand" "r,Y,r,G,H,F"))] "! TARGET_POWERPC64 && ((TARGET_FPRS && TARGET_SINGLE_FLOAT) ! || TARGET_SOFT_FLOAT || TARGET_E500_SINGLE ! || (mode == DDmode && TARGET_E500_DOUBLE)) && (gpc_reg_operand (operands[0], mode) || gpc_reg_operand (operands[1], mode))" "#" *************** *** 15691,15696 **** --- 15743,15913 ---- }) + ;; Miscellaneous ISA 2.06 (power7) instructions + (define_insn "addg6s" + [(set (match_operand:SI 0 "register_operand" "=r") + (unspec:SI [(match_operand:SI 1 "register_operand" "r") + (match_operand:SI 2 "register_operand" "r")] + UNSPEC_ADDG6S))] + "TARGET_POPCNTD" + "addg6s %0,%1,%2" + [(set_attr "type" "integer") + (set_attr "length" "4")]) + + (define_insn "cdtbcd" + [(set (match_operand:SI 0 "register_operand" "=r") + (unspec:SI [(match_operand:SI 1 "register_operand" "r")] + UNSPEC_CDTBCD))] + "TARGET_POPCNTD" + "cdtbcd %0,%1" + [(set_attr "type" "integer") + (set_attr "length" "4")]) + + (define_insn "cbcdtd" + [(set (match_operand:SI 0 "register_operand" "=r") + (unspec:SI [(match_operand:SI 1 "register_operand" "r")] + UNSPEC_CBCDTD))] + "TARGET_POPCNTD" + "cbcdtd %0,%1" + [(set_attr "type" "integer") + (set_attr "length" "4")]) + + (define_int_iterator UNSPEC_DIV_EXTEND [UNSPEC_DIVE + UNSPEC_DIVEO + UNSPEC_DIVEU + UNSPEC_DIVEUO]) + + (define_int_attr div_extend [(UNSPEC_DIVE "e") + (UNSPEC_DIVEO "eo") + (UNSPEC_DIVEU "eu") + (UNSPEC_DIVEUO "euo")]) + + (define_insn "div_" + [(set (match_operand:GPR 0 "register_operand" "=r") + (unspec:GPR [(match_operand:GPR 1 "register_operand" "r") + (match_operand:GPR 2 "register_operand" "r")] + UNSPEC_DIV_EXTEND))] + "TARGET_POPCNTD" + "div %0,%1,%2" + [(set_attr "type" "")]) + + + ;; Pack/unpack 128-bit floating point types that take 2 scalar registers + + ; Type of the 64-bit part when packing/unpacking 128-bit floating point types + (define_mode_attr FP128_64 [(TF "DF") (TD "DI")]) + + (define_expand "unpack" + [(set (match_operand: 0 "nonimmediate_operand" "") + (unspec: + [(match_operand:FMOVE128 1 "register_operand" "") + (match_operand:QI 2 "const_0_to_1_operand" "")] + UNSPEC_UNPACK_128BIT))] + "" + "") + + (define_insn_and_split "unpack_dm" + [(set (match_operand: 0 "nonimmediate_operand" "=d,m,d,r,m") + (unspec: + [(match_operand:FMOVE128 1 "register_operand" "d,d,r,d,r") + (match_operand:QI 2 "const_0_to_1_operand" "i,i,i,i,i")] + UNSPEC_UNPACK_128BIT))] + "TARGET_POWERPC64 && TARGET_DIRECT_MOVE" + "#" + "&& reload_completed" + [(set (match_dup 0) (match_dup 3))] + { + unsigned fp_regno = REGNO (operands[1]) + UINTVAL (operands[2]); + + if (REG_P (operands[0]) && REGNO (operands[0]) == fp_regno) + { + emit_note (NOTE_INSN_DELETED); + DONE; + } + + operands[3] = gen_rtx_REG (mode, fp_regno); + } + [(set_attr "type" "fp,fpstore,mffgpr,mftgpr,store") + (set_attr "length" "4")]) + + (define_insn_and_split "unpack_nodm" + [(set (match_operand: 0 "nonimmediate_operand" "=d,m") + (unspec: + [(match_operand:FMOVE128 1 "register_operand" "d,d") + (match_operand:QI 2 "const_0_to_1_operand" "i,i")] + UNSPEC_UNPACK_128BIT))] + "!TARGET_POWERPC64 || !TARGET_DIRECT_MOVE" + "#" + "&& reload_completed" + [(set (match_dup 0) (match_dup 3))] + { + unsigned fp_regno = REGNO (operands[1]) + UINTVAL (operands[2]); + + if (REG_P (operands[0]) && REGNO (operands[0]) == fp_regno) + { + emit_note (NOTE_INSN_DELETED); + DONE; + } + + operands[3] = gen_rtx_REG (mode, fp_regno); + } + [(set_attr "type" "fp,fpstore") + (set_attr "length" "4")]) + + (define_insn_and_split "pack" + [(set (match_operand:FMOVE128 0 "register_operand" "=d,&d") + (unspec:FMOVE128 + [(match_operand: 1 "register_operand" "0,d") + (match_operand: 2 "register_operand" "d,d")] + UNSPEC_PACK_128BIT))] + "" + "@ + fmr %L0,%2 + #" + "&& reload_completed && REGNO (operands[0]) != REGNO (operands[1])" + [(set (match_dup 3) (match_dup 1)) + (set (match_dup 4) (match_dup 2))] + { + unsigned dest_hi = REGNO (operands[0]); + unsigned dest_lo = dest_hi + 1; + + gcc_assert (!IN_RANGE (REGNO (operands[1]), dest_hi, dest_lo)); + gcc_assert (!IN_RANGE (REGNO (operands[2]), dest_hi, dest_lo)); + + operands[3] = gen_rtx_REG (mode, dest_hi); + operands[4] = gen_rtx_REG (mode, dest_lo); + } + [(set_attr "type" "fp,fp") + (set_attr "length" "4,8")]) + + (define_insn "unpackv1ti" + [(set (match_operand:DI 0 "register_operand" "=d,d") + (unspec:DI [(match_operand:V1TI 1 "register_operand" "0,wa") + (match_operand:QI 2 "const_0_to_1_operand" "O,i")] + UNSPEC_UNPACK_128BIT))] + "TARGET_VSX" + { + if (REGNO (operands[0]) == REGNO (operands[1]) && INTVAL (operands[2]) == 0) + return ASM_COMMENT_START " xxpermdi to same register"; + + operands[3] = GEN_INT (INTVAL (operands[2]) == 0 ? 0 : 3); + return "xxpermdi %x0,%x1,%x1,%3"; + } + [(set_attr "type" "vecperm") + (set_attr "length" "4")]) + + (define_insn "packv1ti" + [(set (match_operand:V1TI 0 "register_operand" "=wa") + (unspec:V1TI + [(match_operand:DI 1 "register_operand" "d") + (match_operand:DI 2 "register_operand" "d")] + UNSPEC_PACK_128BIT))] + "TARGET_VSX" + "xxpermdi %x0,%x1,%x2,0" + [(set_attr "type" "vecperm") + (set_attr "length" "4")]) + + (include "sync.md") (include "vector.md") diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/sync.md gcc-4.9.1/gcc/config/rs6000/sync.md *** gcc-4.9.0/gcc/config/rs6000/sync.md Wed Apr 9 19:53:39 2014 --- gcc-4.9.1/gcc/config/rs6000/sync.md Mon Apr 28 20:37:25 2014 *************** *** 107,116 **** "isync" [(set_attr "type" "isync")]) ;; The control dependency used for load dependency described ;; in B.2.3 of the Power ISA 2.06B. (define_insn "loadsync_" ! [(unspec_volatile:BLK [(match_operand:INT1 0 "register_operand" "r")] UNSPECV_ISYNC) (clobber (match_scratch:CC 1 "=y"))] "" --- 107,123 ---- "isync" [(set_attr "type" "isync")]) + ;; Types that we should provide atomic instructions for. + (define_mode_iterator AINT [QI + HI + SI + (DI "TARGET_POWERPC64") + (TI "TARGET_SYNC_TI")]) + ;; The control dependency used for load dependency described ;; in B.2.3 of the Power ISA 2.06B. (define_insn "loadsync_" ! [(unspec_volatile:BLK [(match_operand:AINT 0 "register_operand" "r")] UNSPECV_ISYNC) (clobber (match_scratch:CC 1 "=y"))] "" *************** *** 118,135 **** [(set_attr "type" "isync") (set_attr "length" "12")]) (define_expand "atomic_load" ! [(set (match_operand:INT1 0 "register_operand" "") ;; output ! (match_operand:INT1 1 "memory_operand" "")) ;; memory (use (match_operand:SI 2 "const_int_operand" ""))] ;; model "" { enum memmodel model = (enum memmodel) INTVAL (operands[2]); if (model == MEMMODEL_SEQ_CST) emit_insn (gen_hwsync ()); ! emit_move_insn (operands[0], operands[1]); switch (model) { --- 125,180 ---- [(set_attr "type" "isync") (set_attr "length" "12")]) + (define_insn "load_quadpti" + [(set (match_operand:PTI 0 "quad_int_reg_operand" "=&r") + (unspec:PTI + [(match_operand:TI 1 "quad_memory_operand" "wQ")] UNSPEC_LSQ))] + "TARGET_SYNC_TI + && !reg_mentioned_p (operands[0], operands[1])" + "lq %0,%1" + [(set_attr "type" "load") + (set_attr "length" "4")]) + (define_expand "atomic_load" ! [(set (match_operand:AINT 0 "register_operand" "") ;; output ! (match_operand:AINT 1 "memory_operand" "")) ;; memory (use (match_operand:SI 2 "const_int_operand" ""))] ;; model "" { + if (mode == TImode && !TARGET_SYNC_TI) + FAIL; + enum memmodel model = (enum memmodel) INTVAL (operands[2]); if (model == MEMMODEL_SEQ_CST) emit_insn (gen_hwsync ()); ! if (mode != TImode) ! emit_move_insn (operands[0], operands[1]); ! else ! { ! rtx op0 = operands[0]; ! rtx op1 = operands[1]; ! rtx pti_reg = gen_reg_rtx (PTImode); ! ! // Can't have indexed address for 'lq' ! if (indexed_address (XEXP (op1, 0), TImode)) ! { ! rtx old_addr = XEXP (op1, 0); ! rtx new_addr = force_reg (Pmode, old_addr); ! operands[1] = op1 = replace_equiv_address (op1, new_addr); ! } ! ! emit_insn (gen_load_quadpti (pti_reg, op1)); ! ! if (WORDS_BIG_ENDIAN) ! emit_move_insn (op0, gen_lowpart (TImode, pti_reg)); ! else ! { ! emit_move_insn (gen_lowpart (DImode, op0), gen_highpart (DImode, pti_reg)); ! emit_move_insn (gen_highpart (DImode, op0), gen_lowpart (DImode, pti_reg)); ! } ! } switch (model) { *************** *** 146,157 **** DONE; }) (define_expand "atomic_store" ! [(set (match_operand:INT1 0 "memory_operand" "") ;; memory ! (match_operand:INT1 1 "register_operand" "")) ;; input (use (match_operand:SI 2 "const_int_operand" ""))] ;; model "" { enum memmodel model = (enum memmodel) INTVAL (operands[2]); switch (model) { --- 191,214 ---- DONE; }) + (define_insn "store_quadpti" + [(set (match_operand:PTI 0 "quad_memory_operand" "=wQ") + (unspec:PTI + [(match_operand:PTI 1 "quad_int_reg_operand" "r")] UNSPEC_LSQ))] + "TARGET_SYNC_TI" + "stq %1,%0" + [(set_attr "type" "store") + (set_attr "length" "4")]) + (define_expand "atomic_store" ! [(set (match_operand:AINT 0 "memory_operand" "") ;; memory ! (match_operand:AINT 1 "register_operand" "")) ;; input (use (match_operand:SI 2 "const_int_operand" ""))] ;; model "" { + if (mode == TImode && !TARGET_SYNC_TI) + FAIL; + enum memmodel model = (enum memmodel) INTVAL (operands[2]); switch (model) { *************** *** 166,172 **** default: gcc_unreachable (); } ! emit_move_insn (operands[0], operands[1]); DONE; }) --- 223,255 ---- default: gcc_unreachable (); } ! if (mode != TImode) ! emit_move_insn (operands[0], operands[1]); ! else ! { ! rtx op0 = operands[0]; ! rtx op1 = operands[1]; ! rtx pti_reg = gen_reg_rtx (PTImode); ! ! // Can't have indexed address for 'stq' ! if (indexed_address (XEXP (op0, 0), TImode)) ! { ! rtx old_addr = XEXP (op0, 0); ! rtx new_addr = force_reg (Pmode, old_addr); ! operands[0] = op0 = replace_equiv_address (op0, new_addr); ! } ! ! if (WORDS_BIG_ENDIAN) ! emit_move_insn (pti_reg, gen_lowpart (PTImode, op1)); ! else ! { ! emit_move_insn (gen_lowpart (DImode, pti_reg), gen_highpart (DImode, op1)); ! emit_move_insn (gen_highpart (DImode, pti_reg), gen_lowpart (DImode, op1)); ! } ! ! emit_insn (gen_store_quadpti (gen_lowpart (PTImode, op0), pti_reg)); ! } ! DONE; }) *************** *** 180,193 **** SI (DI "TARGET_POWERPC64")]) - ;; Types that we should provide atomic instructions for. - - (define_mode_iterator AINT [QI - HI - SI - (DI "TARGET_POWERPC64") - (TI "TARGET_SYNC_TI")]) - (define_insn "load_locked" [(set (match_operand:ATOMIC 0 "int_reg_operand" "=r") (unspec_volatile:ATOMIC --- 263,268 ---- diff -Nrcpad gcc-4.9.0/gcc/config/rs6000/vsx.md gcc-4.9.1/gcc/config/rs6000/vsx.md *** gcc-4.9.0/gcc/config/rs6000/vsx.md Tue Apr 8 17:50:45 2014 --- gcc-4.9.1/gcc/config/rs6000/vsx.md Thu Jun 26 18:49:01 2014 *************** *** 24,29 **** --- 24,36 ---- ;; Iterator for the 2 64-bit vector types (define_mode_iterator VSX_D [V2DF V2DI]) + ;; Iterator for the 2 64-bit vector types + 128-bit types that are loaded with + ;; lxvd2x to properly handle swapping words on little endian + (define_mode_iterator VSX_LE [V2DF + V2DI + V1TI + (TI "VECTOR_MEM_VSX_P (TImode)")]) + ;; Iterator for the 2 32-bit vector types (define_mode_iterator VSX_W [V4SF V4SI]) *************** *** 228,235 **** ;; The patterns for LE permuted loads and stores come before the general ;; VSX moves so they match first. (define_insn_and_split "*vsx_le_perm_load_" ! [(set (match_operand:VSX_D 0 "vsx_register_operand" "=wa") ! (match_operand:VSX_D 1 "memory_operand" "Z"))] "!BYTES_BIG_ENDIAN && TARGET_VSX" "#" "!BYTES_BIG_ENDIAN && TARGET_VSX" --- 235,242 ---- ;; The patterns for LE permuted loads and stores come before the general ;; VSX moves so they match first. (define_insn_and_split "*vsx_le_perm_load_" ! [(set (match_operand:VSX_LE 0 "vsx_register_operand" "=wa") ! (match_operand:VSX_LE 1 "memory_operand" "Z"))] "!BYTES_BIG_ENDIAN && TARGET_VSX" "#" "!BYTES_BIG_ENDIAN && TARGET_VSX" *************** *** 342,357 **** (set_attr "length" "8")]) (define_insn "*vsx_le_perm_store_" ! [(set (match_operand:VSX_D 0 "memory_operand" "=Z") ! (match_operand:VSX_D 1 "vsx_register_operand" "+wa"))] "!BYTES_BIG_ENDIAN && TARGET_VSX" "#" [(set_attr "type" "vecstore") (set_attr "length" "12")]) (define_split ! [(set (match_operand:VSX_D 0 "memory_operand" "") ! (match_operand:VSX_D 1 "vsx_register_operand" ""))] "!BYTES_BIG_ENDIAN && TARGET_VSX && !reload_completed" [(set (match_dup 2) (vec_select: --- 349,364 ---- (set_attr "length" "8")]) (define_insn "*vsx_le_perm_store_" ! [(set (match_operand:VSX_LE 0 "memory_operand" "=Z") ! (match_operand:VSX_LE 1 "vsx_register_operand" "+wa"))] "!BYTES_BIG_ENDIAN && TARGET_VSX" "#" [(set_attr "type" "vecstore") (set_attr "length" "12")]) (define_split ! [(set (match_operand:VSX_LE 0 "memory_operand" "") ! (match_operand:VSX_LE 1 "vsx_register_operand" ""))] "!BYTES_BIG_ENDIAN && TARGET_VSX && !reload_completed" [(set (match_dup 2) (vec_select: *************** *** 369,376 **** ;; The post-reload split requires that we re-permute the source ;; register in case it is still live. (define_split ! [(set (match_operand:VSX_D 0 "memory_operand" "") ! (match_operand:VSX_D 1 "vsx_register_operand" ""))] "!BYTES_BIG_ENDIAN && TARGET_VSX && reload_completed" [(set (match_dup 1) (vec_select: --- 376,383 ---- ;; The post-reload split requires that we re-permute the source ;; register in case it is still live. (define_split ! [(set (match_operand:VSX_LE 0 "memory_operand" "") ! (match_operand:VSX_LE 1 "vsx_register_operand" ""))] "!BYTES_BIG_ENDIAN && TARGET_VSX && reload_completed" [(set (match_dup 1) (vec_select: *************** *** 1352,1360 **** ;; xxpermdi for little endian loads and stores. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_xxpermdi2_le_" ! [(set (match_operand:VSX_D 0 "vsx_register_operand" "=wa") ! (vec_select:VSX_D ! (match_operand:VSX_D 1 "vsx_register_operand" "wa") (parallel [(const_int 1) (const_int 0)])))] "!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (mode)" "xxpermdi %x0,%x1,%x1,2" --- 1359,1367 ---- ;; xxpermdi for little endian loads and stores. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_xxpermdi2_le_" ! [(set (match_operand:VSX_LE 0 "vsx_register_operand" "=wa") ! (vec_select:VSX_LE ! (match_operand:VSX_LE 1 "vsx_register_operand" "wa") (parallel [(const_int 1) (const_int 0)])))] "!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (mode)" "xxpermdi %x0,%x1,%x1,2" *************** *** 1401,1409 **** ;; lxvd2x for little endian loads. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_lxvd2x2_le_" ! [(set (match_operand:VSX_D 0 "vsx_register_operand" "=wa") ! (vec_select:VSX_D ! (match_operand:VSX_D 1 "memory_operand" "Z") (parallel [(const_int 1) (const_int 0)])))] "!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (mode)" "lxvd2x %x0,%y1" --- 1408,1416 ---- ;; lxvd2x for little endian loads. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_lxvd2x2_le_" ! [(set (match_operand:VSX_LE 0 "vsx_register_operand" "=wa") ! (vec_select:VSX_LE ! (match_operand:VSX_LE 1 "memory_operand" "Z") (parallel [(const_int 1) (const_int 0)])))] "!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (mode)" "lxvd2x %x0,%y1" *************** *** 1450,1458 **** ;; stxvd2x for little endian stores. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_stxvd2x2_le_" ! [(set (match_operand:VSX_D 0 "memory_operand" "=Z") ! (vec_select:VSX_D ! (match_operand:VSX_D 1 "vsx_register_operand" "wa") (parallel [(const_int 1) (const_int 0)])))] "!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (mode)" "stxvd2x %x1,%y0" --- 1457,1465 ---- ;; stxvd2x for little endian stores. We need several of ;; these since the form of the PARALLEL differs by mode. (define_insn "*vsx_stxvd2x2_le_" ! [(set (match_operand:VSX_LE 0 "memory_operand" "=Z") ! (vec_select:VSX_LE ! (match_operand:VSX_LE 1 "vsx_register_operand" "wa") (parallel [(const_int 1) (const_int 0)])))] "!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (mode)" "stxvd2x %x1,%y0" *************** *** 1683,1689 **** { if (GET_CODE (op3) == SCRATCH) op3 = gen_reg_rtx (V4SFmode); ! emit_insn (gen_vsx_xxsldwi_v4sf (op3, op1, op1, op2)); tmp = op3; } emit_insn (gen_vsx_xscvspdp_scalar2 (op0, tmp)); --- 1690,1696 ---- { if (GET_CODE (op3) == SCRATCH) op3 = gen_reg_rtx (V4SFmode); ! emit_insn (gen_vsx_xxsldwi_v4sf (op3, op1, op1, GEN_INT (ele))); tmp = op3; } emit_insn (gen_vsx_xscvspdp_scalar2 (op0, tmp)); *************** *** 1891,1897 **** (parallel [(const_int 0) (const_int 4) (const_int 1) (const_int 5)])))] "VECTOR_MEM_VSX_P (mode)" ! "xxmrghw %x0,%x1,%x2" [(set_attr "type" "vecperm")]) (define_insn "vsx_xxmrglw_" --- 1898,1909 ---- (parallel [(const_int 0) (const_int 4) (const_int 1) (const_int 5)])))] "VECTOR_MEM_VSX_P (mode)" ! { ! if (BYTES_BIG_ENDIAN) ! return "xxmrghw %x0,%x1,%x2"; ! else ! return "xxmrglw %x0,%x2,%x1"; ! } [(set_attr "type" "vecperm")]) (define_insn "vsx_xxmrglw_" *************** *** 1903,1909 **** (parallel [(const_int 2) (const_int 6) (const_int 3) (const_int 7)])))] "VECTOR_MEM_VSX_P (mode)" ! "xxmrglw %x0,%x1,%x2" [(set_attr "type" "vecperm")]) ;; Shift left double by word immediate --- 1915,1926 ---- (parallel [(const_int 2) (const_int 6) (const_int 3) (const_int 7)])))] "VECTOR_MEM_VSX_P (mode)" ! { ! if (BYTES_BIG_ENDIAN) ! return "xxmrglw %x0,%x1,%x2"; ! else ! return "xxmrghw %x0,%x2,%x1"; ! } [(set_attr "type" "vecperm")]) ;; Shift left double by word immediate diff -Nrcpad gcc-4.9.0/gcc/config/rtems.h gcc-4.9.1/gcc/config/rtems.h *** gcc-4.9.0/gcc/config/rtems.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/rtems.h Wed May 28 09:35:19 2014 *************** but WITHOUT ANY WARRANTY; without even t *** 13,20 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* The system headers under RTEMS are C++-aware. */ --- 13,25 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* The system headers under RTEMS are C++-aware. */ diff -Nrcpad gcc-4.9.0/gcc/config/sh/sh.c gcc-4.9.1/gcc/config/sh/sh.c *** gcc-4.9.0/gcc/config/sh/sh.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/sh/sh.c Sat May 3 08:17:43 2014 *************** You should have received a copy of the G *** 19,24 **** --- 19,28 ---- along with GCC; see the file COPYING3. If not see . */ + #include + #include + #include + #include "config.h" #include "system.h" #include "coretypes.h" *************** along with GCC; see the file COPYING3. *** 70,79 **** #include "pass_manager.h" #include "context.h" - #include - #include - #include - int code_for_indirect_jump_scratch = CODE_FOR_indirect_jump_scratch; /* These are some macros to abstract register modes. */ --- 74,79 ---- diff -Nrcpad gcc-4.9.0/gcc/config/sol2-clearcap.map gcc-4.9.1/gcc/config/sol2-clearcap.map *** gcc-4.9.0/gcc/config/sol2-clearcap.map Thu Jan 1 00:00:00 1970 --- gcc-4.9.1/gcc/config/sol2-clearcap.map Wed May 28 11:37:50 2014 *************** *** 0 **** --- 1,2 ---- + # Clear all hardware capabilities emitted by Sun as. + hwcap_1 = V0x0 OVERRIDE; diff -Nrcpad gcc-4.9.0/gcc/config/sol2-clearcapv2.map gcc-4.9.1/gcc/config/sol2-clearcapv2.map *** gcc-4.9.0/gcc/config/sol2-clearcapv2.map Thu Jan 1 00:00:00 1970 --- gcc-4.9.1/gcc/config/sol2-clearcapv2.map Wed May 28 11:37:50 2014 *************** *** 0 **** --- 1,7 ---- + # Clear all hardware capabilities emitted by Sun as. + # + # Uses mapfile v2 syntax which is the only way to clear AT_SUN_CAP_HW2 flags. + $mapfile_version 2 + CAPABILITY { + HW = ; + }; diff -Nrcpad gcc-4.9.0/gcc/config/sol2.h gcc-4.9.1/gcc/config/sol2.h *** gcc-4.9.0/gcc/config/sol2.h Tue Feb 4 09:31:38 2014 --- gcc-4.9.1/gcc/config/sol2.h Wed May 28 11:37:50 2014 *************** along with GCC; see the file COPYING3. *** 183,194 **** #define LINK_LIBGCC_MAPFILE_SPEC "" #endif #undef LINK_SPEC #define LINK_SPEC \ "%{h*} %{v:-V} \ %{!shared:%{!static:%{rdynamic: " RDYNAMIC_SPEC "}}} \ %{static:-dn -Bstatic} \ ! %{shared:-G -dy %{!mimpure-text:-z text}} " LINK_LIBGCC_MAPFILE_SPEC " \ %{symbolic:-Bsymbolic -G -dy -z text} \ %(link_arch) \ %{Qy:} %{!Qn:-Qy}" --- 183,203 ---- #define LINK_LIBGCC_MAPFILE_SPEC "" #endif + /* Clear hardware capabilities, either explicitly or with OpenMP: + #pragma openmp declare simd creates clones for SSE2, AVX, and AVX2. */ + #ifdef HAVE_LD_CLEARCAP + #define LINK_CLEARCAP_SPEC " %{mclear-hwcap|fopenmp*:-M %sclearcap.map}" + #else + #define LINK_CLEARCAP_SPEC "" + #endif + #undef LINK_SPEC #define LINK_SPEC \ "%{h*} %{v:-V} \ %{!shared:%{!static:%{rdynamic: " RDYNAMIC_SPEC "}}} \ %{static:-dn -Bstatic} \ ! %{shared:-G -dy %{!mimpure-text:-z text}} " \ ! LINK_LIBGCC_MAPFILE_SPEC LINK_CLEARCAP_SPEC " \ %{symbolic:-Bsymbolic -G -dy -z text} \ %(link_arch) \ %{Qy:} %{!Qn:-Qy}" diff -Nrcpad gcc-4.9.0/gcc/config/sol2.opt gcc-4.9.1/gcc/config/sol2.opt *** gcc-4.9.0/gcc/config/sol2.opt Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/sol2.opt Wed May 28 11:37:50 2014 *************** Driver Joined *** 27,32 **** --- 27,36 ---- Ym, Driver Joined + mclear-hwcap + Target Report + Clear hardware capabilities when linking + mimpure-text Target Report Pass -z text to linker diff -Nrcpad gcc-4.9.0/gcc/config/sparc/sparc-protos.h gcc-4.9.1/gcc/config/sparc/sparc-protos.h *** gcc-4.9.0/gcc/config/sparc/sparc-protos.h Sat Mar 15 21:39:30 2014 --- gcc-4.9.1/gcc/config/sparc/sparc-protos.h Wed May 14 22:10:22 2014 *************** extern bool sparc_expand_move (enum mach *** 69,75 **** extern void sparc_emit_set_symbolic_const64 (rtx, rtx, rtx); extern int sparc_splitdi_legitimate (rtx, rtx); extern int sparc_split_regreg_legitimate (rtx, rtx); - extern int sparc_absnegfloat_split_legitimate (rtx, rtx); extern const char *output_ubranch (rtx, rtx); extern const char *output_cbranch (rtx, rtx, int, int, int, rtx); extern const char *output_return (rtx); --- 69,74 ---- diff -Nrcpad gcc-4.9.0/gcc/config/sparc/sparc.c gcc-4.9.1/gcc/config/sparc/sparc.c *** gcc-4.9.0/gcc/config/sparc/sparc.c Thu Mar 20 11:39:39 2014 --- gcc-4.9.1/gcc/config/sparc/sparc.c Wed May 14 22:10:22 2014 *************** sparc_split_regreg_legitimate (rtx reg1, *** 8539,8560 **** return 0; } - /* Return 1 if x and y are some kind of REG and they refer to - different hard registers. This test is guaranteed to be - run after reload. */ - - int - sparc_absnegfloat_split_legitimate (rtx x, rtx y) - { - if (GET_CODE (x) != REG) - return 0; - if (GET_CODE (y) != REG) - return 0; - if (REGNO (x) == REGNO (y)) - return 0; - return 1; - } - /* Return 1 if REGNO (reg1) is even and REGNO (reg1) == REGNO (reg2) - 1. This makes them candidates for using ldd and std insns. --- 8539,8544 ---- diff -Nrcpad gcc-4.9.0/gcc/config/sparc/sparc.md gcc-4.9.1/gcc/config/sparc/sparc.md *** gcc-4.9.0/gcc/config/sparc/sparc.md Thu Mar 20 11:39:39 2014 --- gcc-4.9.1/gcc/config/sparc/sparc.md Wed May 14 22:10:22 2014 *************** *** 424,429 **** --- 424,433 ---- (define_attr "fptype" "single,double" (const_string "single")) + ;; FP precision specific to the UT699. + (define_attr "fptype_ut699" "none,single" + (const_string "none")) + ;; UltraSPARC-III integer load type. (define_attr "us3load_type" "2cycle,3cycle" (const_string "2cycle")) *************** *** 464,470 **** (const_string "false") (and (eq_attr "fix_ut699" "true") (and (eq_attr "type" "fpload,fp,fpmove,fpmul,fpdivs,fpsqrts") ! (eq_attr "fptype" "single"))) (const_string "false") (eq_attr "length" "1") (const_string "true") --- 468,475 ---- (const_string "false") (and (eq_attr "fix_ut699" "true") (and (eq_attr "type" "fpload,fp,fpmove,fpmul,fpdivs,fpsqrts") ! (ior (eq_attr "fptype" "single") ! (eq_attr "fptype_ut699" "single")))) (const_string "false") (eq_attr "length" "1") (const_string "true") *************** *** 3455,3461 **** "TARGET_FPU" "fdtos\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "double")]) (define_expand "trunctfsf2" [(set (match_operand:SF 0 "register_operand" "") --- 3460,3467 ---- "TARGET_FPU" "fdtos\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "double") ! (set_attr "fptype_ut699" "single")]) (define_expand "trunctfsf2" [(set (match_operand:SF 0 "register_operand" "") *************** *** 3496,3502 **** "TARGET_FPU" "fitos\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "double")]) (define_insn "floatsidf2" [(set (match_operand:DF 0 "register_operand" "=e") --- 3502,3508 ---- "TARGET_FPU" "fitos\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "single")]) (define_insn "floatsidf2" [(set (match_operand:DF 0 "register_operand" "=e") *************** *** 3583,3589 **** "TARGET_FPU" "fstoi\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "double")]) (define_insn "fix_truncdfsi2" [(set (match_operand:SI 0 "register_operand" "=f") --- 3589,3595 ---- "TARGET_FPU" "fstoi\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "single")]) (define_insn "fix_truncdfsi2" [(set (match_operand:SI 0 "register_operand" "=f") *************** *** 3591,3597 **** "TARGET_FPU" "fdtoi\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "double")]) (define_expand "fix_trunctfsi2" [(set (match_operand:SI 0 "register_operand" "") --- 3597,3604 ---- "TARGET_FPU" "fdtoi\t%1, %0" [(set_attr "type" "fp") ! (set_attr "fptype" "double") ! (set_attr "fptype_ut699" "single")]) (define_expand "fix_trunctfsi2" [(set (match_operand:SI 0 "register_operand" "") *************** *** 5554,5606 **** [(set_attr "type" "fpdivs")]) (define_expand "negtf2" ! [(set (match_operand:TF 0 "register_operand" "=e,e") ! (neg:TF (match_operand:TF 1 "register_operand" "0,e")))] "TARGET_FPU" "") ! (define_insn_and_split "*negtf2_notv9" ! [(set (match_operand:TF 0 "register_operand" "=e,e") ! (neg:TF (match_operand:TF 1 "register_operand" "0,e")))] ! ; We don't use quad float insns here so we don't need TARGET_HARD_QUAD. ! "TARGET_FPU ! && ! TARGET_V9" ! "@ ! fnegs\t%0, %0 ! #" ! "&& reload_completed ! && sparc_absnegfloat_split_legitimate (operands[0], operands[1])" ! [(set (match_dup 2) (neg:SF (match_dup 3))) ! (set (match_dup 4) (match_dup 5)) ! (set (match_dup 6) (match_dup 7))] ! "operands[2] = gen_rtx_raw_REG (SFmode, REGNO (operands[0])); ! operands[3] = gen_rtx_raw_REG (SFmode, REGNO (operands[1])); ! operands[4] = gen_rtx_raw_REG (SFmode, REGNO (operands[0]) + 1); ! operands[5] = gen_rtx_raw_REG (SFmode, REGNO (operands[1]) + 1); ! operands[6] = gen_rtx_raw_REG (DFmode, REGNO (operands[0]) + 2); ! operands[7] = gen_rtx_raw_REG (DFmode, REGNO (operands[1]) + 2);" ! [(set_attr "type" "fpmove,*") ! (set_attr "length" "*,2")]) ! (define_insn_and_split "*negtf2_v9" ! [(set (match_operand:TF 0 "register_operand" "=e,e") ! (neg:TF (match_operand:TF 1 "register_operand" "0,e")))] ! ; We don't use quad float insns here so we don't need TARGET_HARD_QUAD. ! "TARGET_FPU && TARGET_V9" ! "@ ! fnegd\t%0, %0 ! #" ! "&& reload_completed ! && sparc_absnegfloat_split_legitimate (operands[0], operands[1])" ! [(set (match_dup 2) (neg:DF (match_dup 3))) ! (set (match_dup 4) (match_dup 5))] ! "operands[2] = gen_rtx_raw_REG (DFmode, REGNO (operands[0])); ! operands[3] = gen_rtx_raw_REG (DFmode, REGNO (operands[1])); ! operands[4] = gen_rtx_raw_REG (DFmode, REGNO (operands[0]) + 2); ! operands[5] = gen_rtx_raw_REG (DFmode, REGNO (operands[1]) + 2);" ! [(set_attr "type" "fpmove,*") ! (set_attr "length" "*,2") ! (set_attr "fptype" "double")]) (define_expand "negdf2" [(set (match_operand:DF 0 "register_operand" "") --- 5561,5612 ---- [(set_attr "type" "fpdivs")]) (define_expand "negtf2" ! [(set (match_operand:TF 0 "register_operand" "") ! (neg:TF (match_operand:TF 1 "register_operand" "")))] "TARGET_FPU" "") ! (define_insn "*negtf2_hq" ! [(set (match_operand:TF 0 "register_operand" "=e") ! (neg:TF (match_operand:TF 1 "register_operand" "e")))] ! "TARGET_FPU && TARGET_HARD_QUAD" ! "fnegq\t%1, %0" ! [(set_attr "type" "fpmove")]) ! (define_insn_and_split "*negtf2" ! [(set (match_operand:TF 0 "register_operand" "=e") ! (neg:TF (match_operand:TF 1 "register_operand" "e")))] ! "TARGET_FPU && !TARGET_HARD_QUAD" ! "#" ! "&& reload_completed" ! [(clobber (const_int 0))] ! { ! rtx set_dest = operands[0]; ! rtx set_src = operands[1]; ! rtx dest1, dest2; ! rtx src1, src2; ! ! dest1 = gen_df_reg (set_dest, 0); ! dest2 = gen_df_reg (set_dest, 1); ! src1 = gen_df_reg (set_src, 0); ! src2 = gen_df_reg (set_src, 1); ! ! /* Now emit using the real source and destination we found, swapping ! the order if we detect overlap. */ ! if (reg_overlap_mentioned_p (dest1, src2)) ! { ! emit_insn (gen_movdf (dest2, src2)); ! emit_insn (gen_negdf2 (dest1, src1)); ! } ! else ! { ! emit_insn (gen_negdf2 (dest1, src1)); ! if (REGNO (dest2) != REGNO (src2)) ! emit_insn (gen_movdf (dest2, src2)); ! } ! DONE; ! } ! [(set_attr "length" "2")]) (define_expand "negdf2" [(set (match_operand:DF 0 "register_operand" "") *************** *** 5609,5630 **** "") (define_insn_and_split "*negdf2_notv9" ! [(set (match_operand:DF 0 "register_operand" "=e,e") ! (neg:DF (match_operand:DF 1 "register_operand" "0,e")))] ! "TARGET_FPU && ! TARGET_V9" ! "@ ! fnegs\t%0, %0 ! #" ! "&& reload_completed ! && sparc_absnegfloat_split_legitimate (operands[0], operands[1])" ! [(set (match_dup 2) (neg:SF (match_dup 3))) ! (set (match_dup 4) (match_dup 5))] ! "operands[2] = gen_rtx_raw_REG (SFmode, REGNO (operands[0])); ! operands[3] = gen_rtx_raw_REG (SFmode, REGNO (operands[1])); ! operands[4] = gen_rtx_raw_REG (SFmode, REGNO (operands[0]) + 1); ! operands[5] = gen_rtx_raw_REG (SFmode, REGNO (operands[1]) + 1);" ! [(set_attr "type" "fpmove,*") ! (set_attr "length" "*,2")]) (define_insn "*negdf2_v9" [(set (match_operand:DF 0 "register_operand" "=e") --- 5615,5653 ---- "") (define_insn_and_split "*negdf2_notv9" ! [(set (match_operand:DF 0 "register_operand" "=e") ! (neg:DF (match_operand:DF 1 "register_operand" "e")))] ! "TARGET_FPU && !TARGET_V9" ! "#" ! "&& reload_completed" ! [(clobber (const_int 0))] ! { ! rtx set_dest = operands[0]; ! rtx set_src = operands[1]; ! rtx dest1, dest2; ! rtx src1, src2; ! ! dest1 = gen_highpart (SFmode, set_dest); ! dest2 = gen_lowpart (SFmode, set_dest); ! src1 = gen_highpart (SFmode, set_src); ! src2 = gen_lowpart (SFmode, set_src); ! ! /* Now emit using the real source and destination we found, swapping ! the order if we detect overlap. */ ! if (reg_overlap_mentioned_p (dest1, src2)) ! { ! emit_insn (gen_movsf (dest2, src2)); ! emit_insn (gen_negsf2 (dest1, src1)); ! } ! else ! { ! emit_insn (gen_negsf2 (dest1, src1)); ! if (REGNO (dest2) != REGNO (src2)) ! emit_insn (gen_movsf (dest2, src2)); ! } ! DONE; ! } ! [(set_attr "length" "2")]) (define_insn "*negdf2_v9" [(set (match_operand:DF 0 "register_operand" "=e") *************** *** 5647,5702 **** "TARGET_FPU" "") ! (define_insn_and_split "*abstf2_notv9" ! [(set (match_operand:TF 0 "register_operand" "=e,e") ! (abs:TF (match_operand:TF 1 "register_operand" "0,e")))] ! ; We don't use quad float insns here so we don't need TARGET_HARD_QUAD. ! "TARGET_FPU && ! TARGET_V9" ! "@ ! fabss\t%0, %0 ! #" ! "&& reload_completed ! && sparc_absnegfloat_split_legitimate (operands[0], operands[1])" ! [(set (match_dup 2) (abs:SF (match_dup 3))) ! (set (match_dup 4) (match_dup 5)) ! (set (match_dup 6) (match_dup 7))] ! "operands[2] = gen_rtx_raw_REG (SFmode, REGNO (operands[0])); ! operands[3] = gen_rtx_raw_REG (SFmode, REGNO (operands[1])); ! operands[4] = gen_rtx_raw_REG (SFmode, REGNO (operands[0]) + 1); ! operands[5] = gen_rtx_raw_REG (SFmode, REGNO (operands[1]) + 1); ! operands[6] = gen_rtx_raw_REG (DFmode, REGNO (operands[0]) + 2); ! operands[7] = gen_rtx_raw_REG (DFmode, REGNO (operands[1]) + 2);" ! [(set_attr "type" "fpmove,*") ! (set_attr "length" "*,2")]) ! (define_insn "*abstf2_hq_v9" ! [(set (match_operand:TF 0 "register_operand" "=e,e") ! (abs:TF (match_operand:TF 1 "register_operand" "0,e")))] ! "TARGET_FPU && TARGET_V9 && TARGET_HARD_QUAD" ! "@ ! fabsd\t%0, %0 ! fabsq\t%1, %0" ! [(set_attr "type" "fpmove") ! (set_attr "fptype" "double,*")]) ! (define_insn_and_split "*abstf2_v9" ! [(set (match_operand:TF 0 "register_operand" "=e,e") ! (abs:TF (match_operand:TF 1 "register_operand" "0,e")))] ! "TARGET_FPU && TARGET_V9 && !TARGET_HARD_QUAD" ! "@ ! fabsd\t%0, %0 ! #" ! "&& reload_completed ! && sparc_absnegfloat_split_legitimate (operands[0], operands[1])" ! [(set (match_dup 2) (abs:DF (match_dup 3))) ! (set (match_dup 4) (match_dup 5))] ! "operands[2] = gen_rtx_raw_REG (DFmode, REGNO (operands[0])); ! operands[3] = gen_rtx_raw_REG (DFmode, REGNO (operands[1])); ! operands[4] = gen_rtx_raw_REG (DFmode, REGNO (operands[0]) + 2); ! operands[5] = gen_rtx_raw_REG (DFmode, REGNO (operands[1]) + 2);" ! [(set_attr "type" "fpmove,*") ! (set_attr "length" "*,2") ! (set_attr "fptype" "double,*")]) (define_expand "absdf2" [(set (match_operand:DF 0 "register_operand" "") --- 5670,5716 ---- "TARGET_FPU" "") ! (define_insn "*abstf2_hq" ! [(set (match_operand:TF 0 "register_operand" "=e") ! (abs:TF (match_operand:TF 1 "register_operand" "e")))] ! "TARGET_FPU && TARGET_HARD_QUAD" ! "fabsq\t%1, %0" ! [(set_attr "type" "fpmove")]) ! (define_insn_and_split "*abstf2" ! [(set (match_operand:TF 0 "register_operand" "=e") ! (abs:TF (match_operand:TF 1 "register_operand" "e")))] ! "TARGET_FPU && !TARGET_HARD_QUAD" ! "#" ! "&& reload_completed" ! [(clobber (const_int 0))] ! { ! rtx set_dest = operands[0]; ! rtx set_src = operands[1]; ! rtx dest1, dest2; ! rtx src1, src2; ! dest1 = gen_df_reg (set_dest, 0); ! dest2 = gen_df_reg (set_dest, 1); ! src1 = gen_df_reg (set_src, 0); ! src2 = gen_df_reg (set_src, 1); ! ! /* Now emit using the real source and destination we found, swapping ! the order if we detect overlap. */ ! if (reg_overlap_mentioned_p (dest1, src2)) ! { ! emit_insn (gen_movdf (dest2, src2)); ! emit_insn (gen_absdf2 (dest1, src1)); ! } ! else ! { ! emit_insn (gen_absdf2 (dest1, src1)); ! if (REGNO (dest2) != REGNO (src2)) ! emit_insn (gen_movdf (dest2, src2)); ! } ! DONE; ! } ! [(set_attr "length" "2")]) (define_expand "absdf2" [(set (match_operand:DF 0 "register_operand" "") *************** *** 5705,5726 **** "") (define_insn_and_split "*absdf2_notv9" ! [(set (match_operand:DF 0 "register_operand" "=e,e") ! (abs:DF (match_operand:DF 1 "register_operand" "0,e")))] ! "TARGET_FPU && ! TARGET_V9" ! "@ ! fabss\t%0, %0 ! #" ! "&& reload_completed ! && sparc_absnegfloat_split_legitimate (operands[0], operands[1])" ! [(set (match_dup 2) (abs:SF (match_dup 3))) ! (set (match_dup 4) (match_dup 5))] ! "operands[2] = gen_rtx_raw_REG (SFmode, REGNO (operands[0])); ! operands[3] = gen_rtx_raw_REG (SFmode, REGNO (operands[1])); ! operands[4] = gen_rtx_raw_REG (SFmode, REGNO (operands[0]) + 1); ! operands[5] = gen_rtx_raw_REG (SFmode, REGNO (operands[1]) + 1);" ! [(set_attr "type" "fpmove,*") ! (set_attr "length" "*,2")]) (define_insn "*absdf2_v9" [(set (match_operand:DF 0 "register_operand" "=e") --- 5719,5757 ---- "") (define_insn_and_split "*absdf2_notv9" ! [(set (match_operand:DF 0 "register_operand" "=e") ! (abs:DF (match_operand:DF 1 "register_operand" "e")))] ! "TARGET_FPU && !TARGET_V9" ! "#" ! "&& reload_completed" ! [(clobber (const_int 0))] ! { ! rtx set_dest = operands[0]; ! rtx set_src = operands[1]; ! rtx dest1, dest2; ! rtx src1, src2; ! ! dest1 = gen_highpart (SFmode, set_dest); ! dest2 = gen_lowpart (SFmode, set_dest); ! src1 = gen_highpart (SFmode, set_src); ! src2 = gen_lowpart (SFmode, set_src); ! ! /* Now emit using the real source and destination we found, swapping ! the order if we detect overlap. */ ! if (reg_overlap_mentioned_p (dest1, src2)) ! { ! emit_insn (gen_movsf (dest2, src2)); ! emit_insn (gen_abssf2 (dest1, src1)); ! } ! else ! { ! emit_insn (gen_abssf2 (dest1, src1)); ! if (REGNO (dest2) != REGNO (src2)) ! emit_insn (gen_movsf (dest2, src2)); ! } ! DONE; ! } ! [(set_attr "length" "2")]) (define_insn "*absdf2_v9" [(set (match_operand:DF 0 "register_operand" "=e") *************** *** 5791,5809 **** { if (GET_CODE (operands[2]) == CONST_INT) operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f); - return "sll\t%1, %2, %0"; - } - [(set_attr "type" "shift")]) - - (define_insn "*ashlsi3_extend" - [(set (match_operand:DI 0 "register_operand" "=r") - (zero_extend:DI - (ashift:SI (match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "arith_operand" "rI"))))] - "TARGET_ARCH64" - { - if (GET_CODE (operands[2]) == CONST_INT) - operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f); return "sll\t%1, %2, %0"; } [(set_attr "type" "shift")]) --- 5822,5827 ---- diff -Nrcpad gcc-4.9.0/gcc/config/sparc/sparc.opt gcc-4.9.1/gcc/config/sparc/sparc.opt *** gcc-4.9.0/gcc/config/sparc/sparc.opt Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/sparc/sparc.opt Mon Apr 28 10:04:58 2014 *************** mrelax *** 113,118 **** --- 113,122 ---- Target Optimize tail call instructions in assembler and linker + muser-mode + Target Report Mask(USER_MODE) + Do not generate code that can only run in supervisor mode + mcpu= Target RejectNegative Joined Var(sparc_cpu_and_features) Enum(sparc_processor_type) Init(PROCESSOR_V7) Use features of and schedule code for given CPU diff -Nrcpad gcc-4.9.0/gcc/config/sparc/sync.md gcc-4.9.1/gcc/config/sparc/sync.md *** gcc-4.9.0/gcc/config/sparc/sync.md Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/sparc/sync.md Mon Apr 28 10:04:58 2014 *************** *** 200,209 **** [(match_operand:I48MODE 2 "register_operand" "r") (match_operand:I48MODE 3 "register_operand" "0")] UNSPECV_CAS))] ! "(TARGET_V9 || TARGET_LEON3) && (mode != DImode || TARGET_ARCH64)" "cas\t%1, %2, %0" [(set_attr "type" "multi")]) (define_insn "*atomic_compare_and_swapdi_v8plus" [(set (match_operand:DI 0 "register_operand" "=h") (match_operand:DI 1 "mem_noofs_operand" "+w")) --- 200,226 ---- [(match_operand:I48MODE 2 "register_operand" "r") (match_operand:I48MODE 3 "register_operand" "0")] UNSPECV_CAS))] ! "TARGET_V9 && (mode != DImode || TARGET_ARCH64)" "cas\t%1, %2, %0" [(set_attr "type" "multi")]) + (define_insn "*atomic_compare_and_swap_leon3_1" + [(set (match_operand:SI 0 "register_operand" "=r") + (match_operand:SI 1 "mem_noofs_operand" "+w")) + (set (match_dup 1) + (unspec_volatile:SI + [(match_operand:SI 2 "register_operand" "r") + (match_operand:SI 3 "register_operand" "0")] + UNSPECV_CAS))] + "TARGET_LEON3" + { + if (TARGET_USER_MODE) + return "casa\t%1 0xa, %2, %0"; /* ASI for user data space. */ + else + return "casa\t%1 0xb, %2, %0"; /* ASI for supervisor data space. */ + } + [(set_attr "type" "multi")]) + (define_insn "*atomic_compare_and_swapdi_v8plus" [(set (match_operand:DI 0 "register_operand" "=h") (match_operand:DI 1 "mem_noofs_operand" "+w")) diff -Nrcpad gcc-4.9.0/gcc/config/t-sol2 gcc-4.9.1/gcc/config/t-sol2 *** gcc-4.9.0/gcc/config/t-sol2 Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/t-sol2 Wed May 28 11:37:50 2014 *************** sol2-stubs.o: $(srcdir)/config/sol2-stub *** 35,37 **** --- 35,44 ---- sol2.o: $(srcdir)/config/sol2.c $(COMPILE) $< $(POSTCOMPILE) + + # Install clearcap.map if present. + install: install-clearcap-map + + # Ignore failures: file only exists if linker supports it. + install-clearcap-map: + -$(INSTALL_DATA) clearcap.map $(DESTDIR)$(libdir) diff -Nrcpad gcc-4.9.0/gcc/config/v850/rtems.h gcc-4.9.1/gcc/config/v850/rtems.h *** gcc-4.9.0/gcc/config/v850/rtems.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/v850/rtems.h Wed May 28 09:35:19 2014 *************** *** 13,20 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ /* Specify predefined symbols in preprocessor. */ --- 13,25 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ /* Specify predefined symbols in preprocessor. */ diff -Nrcpad gcc-4.9.0/gcc/config/v850/v850-opts.h gcc-4.9.1/gcc/config/v850/v850-opts.h *** gcc-4.9.0/gcc/config/v850/v850-opts.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/v850/v850-opts.h Wed May 28 09:35:19 2014 *************** *** 13,20 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifndef V850_OPTS_H --- 13,25 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef V850_OPTS_H diff -Nrcpad gcc-4.9.0/gcc/config/v850/v850.h gcc-4.9.1/gcc/config/v850/v850.h *** gcc-4.9.0/gcc/config/v850/v850.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/config/v850/v850.h Wed May 28 09:35:19 2014 *************** *** 14,21 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING3. If not see . */ #ifndef GCC_V850_H --- 14,26 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef GCC_V850_H diff -Nrcpad gcc-4.9.0/gcc/config.gcc gcc-4.9.1/gcc/config.gcc *** gcc-4.9.0/gcc/config.gcc Wed Mar 12 10:13:07 2014 --- gcc-4.9.1/gcc/config.gcc Mon Jun 16 08:15:35 2014 *************** arm*-*-linux-*) # ARM GNU/Linux with E *** 1021,1027 **** ;; esac tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" ! tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h" # Define multilib configuration for arm-linux-androideabi. case ${target} in *-androideabi) --- 1021,1027 ---- ;; esac tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" ! tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h" # Define multilib configuration for arm-linux-androideabi. case ${target} in *-androideabi) *************** msp430*-*-*) *** 2131,2137 **** tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" c_target_objs="msp430-c.o" cxx_target_objs="msp430-c.o" - target_has_targetm_common=no tmake_file="${tmake_file} msp430/t-msp430" ;; nds32le-*-*) --- 2131,2136 ---- diff -Nrcpad gcc-4.9.0/gcc/config.in gcc-4.9.1/gcc/config.in *** gcc-4.9.0/gcc/config.in Tue Apr 22 09:44:36 2014 --- gcc-4.9.1/gcc/config.in Wed Jul 16 10:06:03 2014 *************** *** 1254,1259 **** --- 1254,1266 ---- #endif + /* Define if the linker supports clearing hardware capabilities via mapfile. + */ + #ifndef USED_FOR_TARGET + #undef HAVE_LD_CLEARCAP + #endif + + /* Define if your linker supports --demangle option. */ #ifndef USED_FOR_TARGET #undef HAVE_LD_DEMANGLE diff -Nrcpad gcc-4.9.0/gcc/configure gcc-4.9.1/gcc/configure *** gcc-4.9.0/gcc/configure Fri Mar 7 11:33:39 2014 --- gcc-4.9.1/gcc/configure Wed May 28 11:37:50 2014 *************** else *** 24497,24503 **** .align 4 smac %g2, %g3, %g1 umac %g2, %g3, %g1 ! cas [%g2], %g3, %g1' > conftest.s if { ac_try='$gcc_cv_as $gcc_cv_as_flags -Aleon -o conftest.o conftest.s >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 --- 24497,24503 ---- .align 4 smac %g2, %g3, %g1 umac %g2, %g3, %g1 ! casa [%g2] 0xb, %g3, %g1' > conftest.s if { ac_try='$gcc_cv_as $gcc_cv_as_flags -Aleon -o conftest.o conftest.s >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 *************** _ACEOF *** 27056,27061 **** --- 27056,27089 ---- fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker mapfile support for clearing hardware capabilities" >&5 + $as_echo_n "checking linker mapfile support for clearing hardware capabilities... " >&6; } + saved_LDFLAGS="$LDFLAGS" + for clearcap_map in sol2-clearcapv2.map sol2-clearcap.map; do + LDFLAGS="$saved_LDFLAGS -Wl,-M,${srcdir}/config/$clearcap_map" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + int main(void) {return 0;} + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + gcc_cv_ld_clearcap=yes; break + else + gcc_cv_ld_clearcap=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + LDFLAGS="$saved_LDFLAGS" + if test "x$gcc_cv_ld_clearcap" = xyes; then + + $as_echo "#define HAVE_LD_CLEARCAP 1" >>confdefs.h + + ac_config_links="$ac_config_links clearcap.map:${srcdir}/config/$clearcap_map" + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_clearcap" >&5 + $as_echo "$gcc_cv_ld_clearcap" >&6; } + case "$target:$tm_file" in powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *************** cat >>$CONFIG_STATUS <<_ACEOF || ac_writ *** 28585,28590 **** --- 28613,28619 ---- # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" + config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF *************** $config_files *** 28614,28619 **** --- 28643,28651 ---- Configuration headers: $config_headers + Configuration links: + $config_links + Configuration commands: $config_commands *************** do *** 28749,28754 **** --- 28781,28787 ---- "as") CONFIG_FILES="$CONFIG_FILES as:exec-tool.in" ;; "collect-ld") CONFIG_FILES="$CONFIG_FILES collect-ld:exec-tool.in" ;; "nm") CONFIG_FILES="$CONFIG_FILES nm:exec-tool.in" ;; + "clearcap.map") CONFIG_LINKS="$CONFIG_LINKS clearcap.map:${srcdir}/config/$clearcap_map" ;; "$all_outputs") CONFIG_FILES="$CONFIG_FILES $all_outputs" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; *************** done *** 28764,28769 **** --- 28797,28803 ---- if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi *************** cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri *** 29085,29091 **** fi # test -n "$CONFIG_HEADERS" ! eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do --- 29119,29125 ---- fi # test -n "$CONFIG_HEADERS" ! eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do *************** $as_echo "$as_me: $ac_file is unchanged" *** 29321,29327 **** --- 29355,29392 ---- || as_fn_error "could not create -" "$LINENO" 5 fi ;; + :L) + # + # CONFIG_LINK + # + + if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then + : + else + # Prefer the file from the source tree if names are identical. + if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then + ac_source=$srcdir/$ac_source + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 + $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} + if test ! -r "$ac_source"; then + as_fn_error "$ac_source: file not found" "$LINENO" 5 + fi + rm -f "$ac_file" + + # Try a relative symlink, then a hard link, then a copy. + case $srcdir in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; + *) ac_rel_source=$ac_top_build_prefix$ac_source ;; + esac + ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || + ln "$ac_source" "$ac_file" 2>/dev/null || + cp -p "$ac_source" "$ac_file" || + as_fn_error "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + fi + ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; diff -Nrcpad gcc-4.9.0/gcc/configure.ac gcc-4.9.1/gcc/configure.ac *** gcc-4.9.0/gcc/configure.ac Fri Mar 7 11:33:39 2014 --- gcc-4.9.1/gcc/configure.ac Wed May 28 11:37:50 2014 *************** foo: *** 3725,3731 **** .align 4 smac %g2, %g3, %g1 umac %g2, %g3, %g1 ! cas [[%g2]], %g3, %g1],, [AC_DEFINE(HAVE_AS_LEON, 1, [Define if your assembler supports LEON instructions.])]) ;; --- 3725,3731 ---- .align 4 smac %g2, %g3, %g1 umac %g2, %g3, %g1 ! casa [[%g2]] 0xb, %g3, %g1],, [AC_DEFINE(HAVE_AS_LEON, 1, [Define if your assembler supports LEON instructions.])]) ;; *************** if test x"$gcc_cv_ld_as_needed" = xyes; *** 4806,4811 **** --- 4806,4826 ---- [Define to the linker option to keep unused dependencies.]) fi + AC_MSG_CHECKING(linker mapfile support for clearing hardware capabilities) + saved_LDFLAGS="$LDFLAGS" + for clearcap_map in sol2-clearcapv2.map sol2-clearcap.map; do + LDFLAGS="$saved_LDFLAGS -Wl,-M,${srcdir}/config/$clearcap_map" + AC_LINK_IFELSE([int main(void) {return 0;}], + [gcc_cv_ld_clearcap=yes; break], [gcc_cv_ld_clearcap=no]) + done + LDFLAGS="$saved_LDFLAGS" + if test "x$gcc_cv_ld_clearcap" = xyes; then + AC_DEFINE([HAVE_LD_CLEARCAP], 1, + [Define if the linker supports clearing hardware capabilities via mapfile.]) + AC_CONFIG_LINKS([clearcap.map:${srcdir}/config/$clearcap_map]) + fi + AC_MSG_RESULT($gcc_cv_ld_clearcap) + case "$target:$tm_file" in powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in diff -Nrcpad gcc-4.9.0/gcc/cp/ChangeLog gcc-4.9.1/gcc/cp/ChangeLog *** gcc-4.9.0/gcc/cp/ChangeLog Tue Apr 22 09:42:39 2014 --- gcc-4.9.1/gcc/cp/ChangeLog Wed Jul 16 10:03:26 2014 *************** *** 1,3 **** --- 1,228 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-07-13 Jason Merrill + + PR c++/58636 + * call.c (build_list_conv): Don't try to build a list of references. + + 2014-07-10 Jason Merrill + + PR c++/61661 + * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR. + + 2014-07-01 Paul Pluzhnikov + + PR c++/58753 + PR c++/58930 + PR c++/58704 + + Backported from mainline + 2014-05-20 Paolo Carlini + + * typeck2.c (digest_nsdmi_init): New. + * parser.c (cp_parser_late_parse_one_default_arg): Use it. + * init.c (get_nsdmi): Likewise. + * cp-tree.h (digest_nsdmi_init): Declare. + + 2014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net> + + PR c++/58781 + PR c++/60249 + PR c++/59867 + * parser.c (cp_parser_userdef_string_literal()): Take a tree + not a cp_token*. (cp_parser_string_literal(): Don't hack + the token stream! + + 2014-06-30 Jason Merrill + + PR c++/61647 + * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE. + + PR c++/61566 + * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL. + + 2014-06-30 Jakub Jelinek + + Backported from mainline + 2014-06-25 Jakub Jelinek + + * semantics.c (finish_omp_clauses): Make sure + OMP_CLAUSE_LINEAR_STEP has correct type. + + 2014-06-18 Jakub Jelinek + + * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq * + argument. + * cp-tree.h (cxx_omp_finish_clause): Adjust prototype. + + 2014-06-30 Jason Merrill + + PR c++/61539 + * pt.c (unify_one_argument): Type/expression mismatch just causes + deduction failure. + + DR 1030 + PR c++/51253 + PR c++/61382 + * cp-tree.h (CALL_EXPR_LIST_INIT_P): New. + * call.c (struct z_candidate): Add flags field. + (add_candidate): Add flags parm. + (add_function_candidate, add_conv_candidate, build_builtin_candidate) + (add_template_candidate_real): Pass it. + (build_over_call): Set CALL_EXPR_LIST_INIT_P. + * tree.c (build_aggr_init_expr): Copy it. + * semantics.c (simplify_aggr_init_expr): Copy it. + * cp-gimplify.c (cp_gimplify_expr): Handle it. + + PR c++/61488 + * pt.c (check_valid_ptrmem_cst_expr): Fix for template context. + + PR c++/61500 + * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR. + + 2014-06-30 Igor Zamyatin + + PR middle-end/57541 + * cp-array-notation.c (expand_sec_reduce_builtin): + Check that bultin argument is correct. + * call.c (build_cxx_call): Check for 0 arguments in builtin call. + + 2014-06-27 Jason Merrill + + PR c++/61433 + * error.c (dump_template_bindings): Don't tsubst in a clone. + + 2014-06-27 Paolo Carlini + + PR c++/61614 + * semantics.c (finish_compound_literal): Revert r204228. + + 2014-06-26 Adam Butcher + + PR c++/61537 + * parser.c (cp_parser_elaborated_type_specifier): Only consider template + parameter lists outside of function parameter scope. + + 2014-06-25 Jason Merrill + + PR c++/61242 + * call.c (build_aggr_conv): Ignore passed in flags. + (build_array_conv, build_complex_conv): Likewise. + + 2014-06-24 Jakub Jelinek + + * parser.c (cp_parser_omp_for_loop): For + #pragma omp parallel for simd move lastprivate clause from parallel + to for rather than simd. + + 2014-06-20 Jason Merrill + + PR c++/59296 + * call.c (add_function_candidate): Avoid special 'this' handling + if we have a ref-qualifier. + + PR c++/61556 + * call.c (build_over_call): Call build_this in template path. + + 2014-06-19 Jason Merrill + + PR c++/59296 + * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND + |LOOKUP_NO_TEMP_BIND for ref-qualifier handling. + + PR c++/61507 + * pt.c (resolve_overloaded_unification): Preserve + ARGUMENT_PACK_EXPLICIT_ARGS. + + 2014-06-18 Jason Merrill + + PR c++/60605 + * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P. + + 2014-06-18 Siva Chandra Reddy + + PR debug/57519 + * class.c (handle_using_decl): Pass the correct scope to + cp_emit_debug_info_for_using. + + 2014-06-09 Jason Merrill + + PR c++/61343 + * decl.c (check_initializer): Maybe clear + DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. + + 2014-06-04 Igor Zamyatin + + PR c/58942 + * c-c++-common/cilk-plus/AN/pr58942.c: Check for correct handling of + the case with a pointer. + + 2014-06-02 Jason Merrill + + PR c++/61134 + * pt.c (pack_deducible_p): Handle canonicalization. + + 2014-05-21 Igor Zamyatin + + PR c/60189 + * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync + from here to... + (cp_parser_statement): ...here. Make sure only semicolon can go after + Cilk_sync. + + 2014-05-13 Jason Merrill + + PR c++/61151 + * lambda.c (is_this): Allow capture proxies too. + + DR 5 + PR c++/60019 + * call.c (build_user_type_conversion_1): The copy-init temporary + is cv-unqualified. + + 2014-05-07 Paolo Carlini + + PR c++/61083 + * pt.c (convert_nontype_argument): Protect all the error calls + with complain & tf_error. + + 2014-05-06 Paolo Carlini + + PR c++/60999 + * pt.c (maybe_begin_member_template_processing): Use + uses_template_parms. + + 2014-05-02 Jason Merrill + + PR c++/60992 + * lambda.c (lambda_capture_field_type): Wrap anything dependent + other than 'this' or a VLA. + (is_this): New. + * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if + the operand was static or constant. + + 2014-04-30 Jason Merrill + + PR c++/60980 + * init.c (build_value_init): Don't try to call an array constructor. + + PR c++/60951 + * typeck2.c (massage_init_elt): Use maybe_constant_init. + + 2014-04-24 Jakub Jelinek + + * parser.c (cp_parser_omp_atomic): Allow seq_cst before + atomic-clause, allow comma in between atomic-clause and + seq_cst. + + 2014-04-22 Jakub Jelinek + + PR c/59073 + * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for + fails, don't set OM_PARALLEL_COMBINED and return NULL. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/cp/call.c gcc-4.9.1/gcc/cp/call.c *** gcc-4.9.0/gcc/cp/call.c Tue Apr 1 19:14:00 2014 --- gcc-4.9.1/gcc/cp/call.c Mon Jul 14 05:28:21 2014 *************** static conversion *maybe_handle_ref_bind *** 206,212 **** static void maybe_handle_implicit_object (conversion **); static struct z_candidate *add_candidate (struct z_candidate **, tree, tree, const vec *, size_t, ! conversion **, tree, tree, int, struct rejection_reason *); static tree source_type (conversion *); static void add_warning (struct z_candidate *, struct z_candidate *); static bool reference_compatible_p (tree, tree); --- 206,212 ---- static void maybe_handle_implicit_object (conversion **); static struct z_candidate *add_candidate (struct z_candidate **, tree, tree, const vec *, size_t, ! conversion **, tree, tree, int, struct rejection_reason *, int); static tree source_type (conversion *); static void add_warning (struct z_candidate *, struct z_candidate *); static bool reference_compatible_p (tree, tree); *************** struct z_candidate { *** 520,526 **** sequence from the type returned by FN to the desired destination type. */ conversion *second_conv; - int viable; struct rejection_reason *reason; /* If FN is a member function, the binfo indicating the path used to qualify the name of FN at the call site. This path is used to --- 520,525 ---- *************** struct z_candidate { *** 538,543 **** --- 537,546 ---- tree explicit_targs; candidate_warning *warnings; z_candidate *next; + int viable; + + /* The flags active in add_candidate. */ + int flags; }; /* Returns true iff T is a null pointer constant in the sense of *************** build_list_conv (tree type, tree ctor, i *** 802,807 **** --- 805,816 ---- /* But no narrowing conversions. */ flags |= LOOKUP_NO_NARROWING; + /* Can't make an array of these types. */ + if (TREE_CODE (elttype) == REFERENCE_TYPE + || TREE_CODE (elttype) == FUNCTION_TYPE + || VOID_TYPE_P (elttype)) + return NULL; + FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), i, val) { conversion *sub *************** build_aggr_conv (tree type, tree ctor, i *** 886,892 **** if (ctor == error_mark_node) return NULL; ! flags |= LOOKUP_NO_NARROWING; for (; field; field = next_initializable_field (DECL_CHAIN (field))) { --- 895,903 ---- if (ctor == error_mark_node) return NULL; ! /* The conversions within the init-list aren't affected by the enclosing ! context; they're always simple copy-initialization. */ ! flags = LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING; for (; field; field = next_initializable_field (DECL_CHAIN (field))) { *************** build_array_conv (tree type, tree ctor, *** 959,964 **** --- 970,977 ---- return NULL; } + flags = LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING; + FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), i, val) { conversion *sub *************** build_complex_conv (tree type, tree ctor *** 1003,1008 **** --- 1016,1023 ---- if (len != 2) return NULL; + flags = LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING; + FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), i, val) { conversion *sub *************** add_candidate (struct z_candidate **cand *** 1810,1816 **** tree fn, tree first_arg, const vec *args, size_t num_convs, conversion **convs, tree access_path, tree conversion_path, ! int viable, struct rejection_reason *reason) { struct z_candidate *cand = (struct z_candidate *) conversion_obstack_alloc (sizeof (struct z_candidate)); --- 1825,1832 ---- tree fn, tree first_arg, const vec *args, size_t num_convs, conversion **convs, tree access_path, tree conversion_path, ! int viable, struct rejection_reason *reason, ! int flags) { struct z_candidate *cand = (struct z_candidate *) conversion_obstack_alloc (sizeof (struct z_candidate)); *************** add_candidate (struct z_candidate **cand *** 1825,1830 **** --- 1841,1847 ---- cand->viable = viable; cand->reason = reason; cand->next = *candidates; + cand->flags = flags; *candidates = cand; return cand; *************** add_function_candidate (struct z_candida *** 1994,1999 **** --- 2011,2019 ---- object parameter has reference type. */ bool rv = FUNCTION_RVALUE_QUALIFIED (TREE_TYPE (fn)); parmtype = cp_build_reference_type (parmtype, rv); + /* The special handling of 'this' conversions in compare_ics + does not apply if there is a ref-qualifier. */ + is_this = false; } else { *************** add_function_candidate (struct z_candida *** 2061,2067 **** out: return add_candidate (candidates, fn, orig_first_arg, args, len, convs, ! access_path, conversion_path, viable, reason); } /* Create an overload candidate for the conversion function FN which will --- 2081,2087 ---- out: return add_candidate (candidates, fn, orig_first_arg, args, len, convs, ! access_path, conversion_path, viable, reason, flags); } /* Create an overload candidate for the conversion function FN which will *************** add_conv_candidate (struct z_candidate * *** 2163,2169 **** } return add_candidate (candidates, totype, first_arg, arglist, len, convs, ! access_path, conversion_path, viable, reason); } static void --- 2183,2189 ---- } return add_candidate (candidates, totype, first_arg, arglist, len, convs, ! access_path, conversion_path, viable, reason, flags); } static void *************** build_builtin_candidate (struct z_candid *** 2238,2244 **** num_convs, convs, /*access_path=*/NULL_TREE, /*conversion_path=*/NULL_TREE, ! viable, reason); } static bool --- 2258,2264 ---- num_convs, convs, /*access_path=*/NULL_TREE, /*conversion_path=*/NULL_TREE, ! viable, reason, flags); } static bool *************** add_template_candidate_real (struct z_ca *** 3056,3062 **** return cand; fail: return add_candidate (candidates, tmpl, first_arg, arglist, nargs, NULL, ! access_path, conversion_path, 0, reason); } --- 3076,3082 ---- return cand; fail: return add_candidate (candidates, tmpl, first_arg, arglist, nargs, NULL, ! access_path, conversion_path, 0, reason, flags); } *************** build_user_type_conversion_1 (tree totyp *** 3677,3687 **** return cand; } /* Build the user conversion sequence. */ conv = build_conv (ck_user, ! (DECL_CONSTRUCTOR_P (cand->fn) ! ? totype : non_reference (TREE_TYPE (TREE_TYPE (cand->fn)))), build_identity_conv (TREE_TYPE (expr), expr)); conv->cand = cand; if (cand->viable == -1) --- 3697,3716 ---- return cand; } + tree convtype; + if (!DECL_CONSTRUCTOR_P (cand->fn)) + convtype = non_reference (TREE_TYPE (TREE_TYPE (cand->fn))); + else if (cand->second_conv->kind == ck_rvalue) + /* DR 5: [in the first step of copy-initialization]...if the function + is a constructor, the call initializes a temporary of the + cv-unqualified version of the destination type. */ + convtype = cv_unqualified (totype); + else + convtype = totype; /* Build the user conversion sequence. */ conv = build_conv (ck_user, ! convtype, build_identity_conv (TREE_TYPE (expr), expr)); conv->cand = cand; if (cand->viable == -1) *************** build_over_call (struct z_candidate *can *** 6751,6757 **** ++nargs; alcarray = XALLOCAVEC (tree, nargs); ! alcarray[0] = first_arg; FOR_EACH_VEC_SAFE_ELT (args, ix, arg) alcarray[ix + 1] = arg; argarray = alcarray; --- 6780,6786 ---- ++nargs; alcarray = XALLOCAVEC (tree, nargs); ! alcarray[0] = build_this (first_arg); FOR_EACH_VEC_SAFE_ELT (args, ix, arg) alcarray[ix + 1] = arg; argarray = alcarray; *************** build_over_call (struct z_candidate *can *** 7219,7225 **** return error_mark_node; } ! return build_cxx_call (fn, nargs, argarray, complain|decltype_flag); } /* Build and return a call to FN, using NARGS arguments in ARGARRAY. --- 7248,7258 ---- return error_mark_node; } ! tree call = build_cxx_call (fn, nargs, argarray, complain|decltype_flag); ! if (TREE_CODE (call) == CALL_EXPR ! && (cand->flags & LOOKUP_LIST_INIT_CTOR)) ! CALL_EXPR_LIST_INIT_P (call) = true; ! return call; } /* Build and return a call to FN, using NARGS arguments in ARGARRAY. *************** build_cxx_call (tree fn, int nargs, tree *** 7261,7266 **** --- 7294,7304 ---- || bif == BUILT_IN_CILKPLUS_SEC_REDUCE || bif == BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING) { + if (call_expr_nargs (fn) == 0) + { + error_at (EXPR_LOCATION (fn), "Invalid builtin arguments"); + return error_mark_node; + } /* for bif == BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_ZERO or BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO or BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_NONZERO or *************** compare_ics (conversion *ics1, conversio *** 8446,8455 **** /* [over.ics.rank] --S1 and S2 are reference bindings (_dcl.init.ref_) and neither refers ! to an implicit object parameter, and either S1 binds an lvalue reference ! to an lvalue and S2 binds an rvalue reference or S1 binds an rvalue ! reference to an rvalue and S2 binds an lvalue reference ! (C++0x draft standard, 13.3.3.2) --S1 and S2 are reference bindings (_dcl.init.ref_), and the types to which the references refer are the same type except for --- 8484,8494 ---- /* [over.ics.rank] --S1 and S2 are reference bindings (_dcl.init.ref_) and neither refers ! to an implicit object parameter of a non-static member function ! declared without a ref-qualifier, and either S1 binds an lvalue ! reference to an lvalue and S2 binds an rvalue reference or S1 binds an ! rvalue reference to an rvalue and S2 binds an lvalue reference (C++0x ! draft standard, 13.3.3.2) --S1 and S2 are reference bindings (_dcl.init.ref_), and the types to which the references refer are the same type except for diff -Nrcpad gcc-4.9.0/gcc/cp/class.c gcc-4.9.1/gcc/cp/class.c *** gcc-4.9.0/gcc/cp/class.c Tue Apr 8 10:19:36 2014 --- gcc-4.9.1/gcc/cp/class.c Tue Jun 17 23:10:16 2014 *************** handle_using_decl (tree using_decl, tree *** 1300,1306 **** old_value = NULL_TREE; } ! cp_emit_debug_info_for_using (decl, USING_DECL_SCOPE (using_decl)); if (is_overloaded_fn (decl)) flist = decl; --- 1300,1306 ---- old_value = NULL_TREE; } ! cp_emit_debug_info_for_using (decl, t); if (is_overloaded_fn (decl)) flist = decl; diff -Nrcpad gcc-4.9.0/gcc/cp/cp-array-notation.c gcc-4.9.1/gcc/cp/cp-array-notation.c *** gcc-4.9.0/gcc/cp/cp-array-notation.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/cp/cp-array-notation.c Mon Jun 30 08:22:43 2014 *************** expand_sec_reduce_builtin (tree an_built *** 250,256 **** if (!find_rank (location, an_builtin_fn, an_builtin_fn, true, &rank)) return error_mark_node; if (rank == 0) ! return an_builtin_fn; else if (rank > 1 && (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND)) --- 250,259 ---- if (!find_rank (location, an_builtin_fn, an_builtin_fn, true, &rank)) return error_mark_node; if (rank == 0) ! { ! error_at (location, "Invalid builtin arguments"); ! return error_mark_node; ! } else if (rank > 1 && (an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND)) *************** expand_sec_reduce_builtin (tree an_built *** 340,345 **** --- 343,350 ---- array_ind_value = get_temp_regvar (TREE_TYPE (func_parm), func_parm); array_op0 = (*array_operand)[0]; + if (TREE_CODE (array_op0) == INDIRECT_REF) + array_op0 = TREE_OPERAND (array_op0, 0); switch (an_type) { case BUILT_IN_CILKPLUS_SEC_REDUCE_ADD: diff -Nrcpad gcc-4.9.0/gcc/cp/cp-gimplify.c gcc-4.9.1/gcc/cp/cp-gimplify.c *** gcc-4.9.0/gcc/cp/cp-gimplify.c Fri Jan 24 23:13:49 2014 --- gcc-4.9.1/gcc/cp/cp-gimplify.c Mon Jun 30 16:35:48 2014 *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 723,728 **** --- 723,749 ---- && !seen_error ()) return (enum gimplify_status) gimplify_cilk_spawn (expr_p); + /* DR 1030 says that we need to evaluate the elements of an + initializer-list in forward order even when it's used as arguments to + a constructor. So if the target wants to evaluate them in reverse + order and there's more than one argument other than 'this', gimplify + them in order. */ + ret = GS_OK; + if (PUSH_ARGS_REVERSED && CALL_EXPR_LIST_INIT_P (*expr_p) + && call_expr_nargs (*expr_p) > 2) + { + int nargs = call_expr_nargs (*expr_p); + location_t loc = EXPR_LOC_OR_LOC (*expr_p, input_location); + for (int i = 1; i < nargs; ++i) + { + enum gimplify_status t + = gimplify_arg (&CALL_EXPR_ARG (*expr_p, i), pre_p, loc); + if (t == GS_ERROR) + ret = GS_ERROR; + } + } + break; + default: ret = (enum gimplify_status) c_gimplify_expr (expr_p, pre_p, post_p); break; *************** cxx_omp_predetermined_sharing (tree decl *** 1578,1584 **** /* Finalize an implicitly determined clause. */ void ! cxx_omp_finish_clause (tree c) { tree decl, inner_type; bool make_shared = false; --- 1599,1605 ---- /* Finalize an implicitly determined clause. */ void ! cxx_omp_finish_clause (tree c, gimple_seq *) { tree decl, inner_type; bool make_shared = false; diff -Nrcpad gcc-4.9.0/gcc/cp/cp-tree.h gcc-4.9.1/gcc/cp/cp-tree.h *** gcc-4.9.0/gcc/cp/cp-tree.h Tue Mar 11 17:34:32 2014 --- gcc-4.9.1/gcc/cp/cp-tree.h Tue Jul 1 18:46:26 2014 *************** c-common.h, not after. *** 101,112 **** --- 101,114 ---- FNDECL_USED_AUTO (in FUNCTION_DECL) DECLTYPE_FOR_LAMBDA_PROXY (in DECLTYPE_TYPE) REF_PARENTHESIZED_P (in COMPONENT_REF, SCOPE_REF) + AGGR_INIT_ZERO_FIRST (in AGGR_INIT_EXPR) 3: (TREE_REFERENCE_EXPR) (in NON_LVALUE_EXPR) (commented-out). ICS_BAD_FLAG (in _CONV) FN_TRY_BLOCK_P (in TRY_BLOCK) IDENTIFIER_CTOR_OR_DTOR_P (in IDENTIFIER_NODE) BIND_EXPR_BODY_BLOCK (in BIND_EXPR) DECL_NON_TRIVIALLY_INITIALIZED_P (in VAR_DECL) + CALL_EXPR_LIST_INIT_P (in CALL_EXPR, AGGR_INIT_EXPR) 4: TREE_HAS_CONSTRUCTOR (in INDIRECT_REF, SAVE_EXPR, CONSTRUCTOR, or FIELD_DECL). IDENTIFIER_TYPENAME_P (in IDENTIFIER_NODE) *************** extern void decl_shadowed_for_var_insert *** 3026,3031 **** --- 3028,3037 ---- should be performed at instantiation time. */ #define KOENIG_LOOKUP_P(NODE) TREE_LANG_FLAG_0 (CALL_EXPR_CHECK (NODE)) + /* True if CALL_EXPR expresses list-initialization of an object. */ + #define CALL_EXPR_LIST_INIT_P(NODE) \ + TREE_LANG_FLAG_3 (TREE_CHECK2 ((NODE),CALL_EXPR,AGGR_INIT_EXPR)) + /* Indicates whether a string literal has been parenthesized. Such usages are disallowed in certain circumstances. */ *************** more_aggr_init_expr_args_p (const aggr_i *** 3430,3435 **** --- 3436,3444 ---- B b{1,2}, not B b({1,2}) or B b = {1,2}. */ #define CONSTRUCTOR_IS_DIRECT_INIT(NODE) (TREE_LANG_FLAG_0 (CONSTRUCTOR_CHECK (NODE))) + #define DIRECT_LIST_INIT_P(NODE) \ + (BRACE_ENCLOSED_INITIALIZER_P (NODE) && CONSTRUCTOR_IS_DIRECT_INIT (NODE)) + /* True if NODE represents a conversion for direct-initialization in a template. Set by perform_implicit_conversion_flags. */ #define IMPLICIT_CONV_EXPR_DIRECT_INIT(NODE) \ *************** extern int function_depth; *** 4347,4352 **** --- 4356,4366 ---- PARM_DECLs in cp_tree_equal. */ extern int comparing_specializations; + /* A type-qualifier, or bitmask therefore, using the TYPE_QUAL + constants. */ + + typedef int cp_cv_quals; + /* In parser.c. */ /* Nonzero if we are parsing an unevaluated operand: an operand to *************** extern int comparing_specializations; *** 4356,4361 **** --- 4370,4376 ---- extern int cp_unevaluated_operand; extern tree cp_convert_range_for (tree, tree, tree, bool); extern bool parsing_nsdmi (void); + extern void inject_this_parameter (tree, cp_cv_quals); /* in pt.c */ *************** extern GTY(()) operator_name_info_t oper *** 4735,4745 **** extern GTY(()) operator_name_info_t assignment_operator_name_info [(int) MAX_TREE_CODES]; - /* A type-qualifier, or bitmask therefore, using the TYPE_QUAL - constants. */ - - typedef int cp_cv_quals; - /* Non-static member functions have an optional virt-specifier-seq. There is a VIRT_SPEC value for each virt-specifier. They can be combined by bitwise-or to form the complete set of --- 4750,4755 ---- *************** extern tree get_type_value (tree); *** 5415,5420 **** --- 5425,5431 ---- extern tree build_zero_init (tree, tree, bool); extern tree build_value_init (tree, tsubst_flags_t); extern tree build_value_init_noctor (tree, tsubst_flags_t); + extern tree get_nsdmi (tree, bool); extern tree build_offset_ref (tree, tree, bool, tsubst_flags_t); extern tree throw_bad_array_new_length (void); *************** extern tree store_init_value (tree, tr *** 6151,6156 **** --- 6162,6168 ---- extern void check_narrowing (tree, tree); extern tree digest_init (tree, tree, tsubst_flags_t); extern tree digest_init_flags (tree, tree, int); + extern tree digest_nsdmi_init (tree, tree); extern tree build_scoped_ref (tree, tree, tree *); extern tree build_x_arrow (location_t, tree, tsubst_flags_t); *************** extern tree cxx_omp_clause_default_ctor *** 6201,6207 **** extern tree cxx_omp_clause_copy_ctor (tree, tree, tree); extern tree cxx_omp_clause_assign_op (tree, tree, tree); extern tree cxx_omp_clause_dtor (tree, tree); ! extern void cxx_omp_finish_clause (tree); extern bool cxx_omp_privatize_by_reference (const_tree); /* in name-lookup.c */ --- 6213,6219 ---- extern tree cxx_omp_clause_copy_ctor (tree, tree, tree); extern tree cxx_omp_clause_assign_op (tree, tree, tree); extern tree cxx_omp_clause_dtor (tree, tree); ! extern void cxx_omp_finish_clause (tree, gimple_seq *); extern bool cxx_omp_privatize_by_reference (const_tree); /* in name-lookup.c */ diff -Nrcpad gcc-4.9.0/gcc/cp/decl.c gcc-4.9.1/gcc/cp/decl.c *** gcc-4.9.0/gcc/cp/decl.c Fri Apr 4 21:36:11 2014 --- gcc-4.9.1/gcc/cp/decl.c Mon Jun 9 19:29:17 2014 *************** check_initializer (tree decl, tree init, *** 5797,5802 **** --- 5797,5809 ---- if (init && init != error_mark_node) init_code = build2 (INIT_EXPR, type, decl, init); + if (init_code) + { + /* We might have set these in cp_finish_decl. */ + DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl) = false; + TREE_CONSTANT (decl) = false; + } + if (init_code && DECL_IN_AGGR_P (decl)) { static int explained = 0; diff -Nrcpad gcc-4.9.0/gcc/cp/error.c gcc-4.9.1/gcc/cp/error.c *** gcc-4.9.0/gcc/cp/error.c Thu Apr 10 16:20:07 2014 --- gcc-4.9.1/gcc/cp/error.c Sat Jun 28 03:44:53 2014 *************** dump_template_bindings (cxx_pretty_print *** 318,323 **** --- 318,328 ---- if (vec_safe_is_empty (typenames) || uses_template_parms (args)) return; + /* Don't try to print typenames when we're processing a clone. */ + if (current_function_decl + && !DECL_LANG_SPECIFIC (current_function_decl)) + return; + FOR_EACH_VEC_SAFE_ELT (typenames, i, t) { if (need_semicolon) diff -Nrcpad gcc-4.9.0/gcc/cp/init.c gcc-4.9.1/gcc/cp/init.c *** gcc-4.9.0/gcc/cp/init.c Tue Apr 1 21:14:04 2014 --- gcc-4.9.1/gcc/cp/init.c Tue Jul 1 18:46:26 2014 *************** build_value_init (tree type, tsubst_flag *** 339,345 **** gcc_assert (!processing_template_decl || (SCALAR_TYPE_P (type) || TREE_CODE (type) == ARRAY_TYPE)); ! if (type_build_ctor_call (type)) { tree ctor = build_aggr_init_expr (type, --- 339,346 ---- gcc_assert (!processing_template_decl || (SCALAR_TYPE_P (type) || TREE_CODE (type) == ARRAY_TYPE)); ! if (CLASS_TYPE_P (type) ! && type_build_ctor_call (type)) { tree ctor = build_aggr_init_expr (type, *************** perform_target_ctor (tree init) *** 521,526 **** --- 522,570 ---- } } + /* Return the non-static data initializer for FIELD_DECL MEMBER. */ + + tree + get_nsdmi (tree member, bool in_ctor) + { + tree init; + tree save_ccp = current_class_ptr; + tree save_ccr = current_class_ref; + if (!in_ctor) + inject_this_parameter (DECL_CONTEXT (member), TYPE_UNQUALIFIED); + if (DECL_LANG_SPECIFIC (member) && DECL_TEMPLATE_INFO (member)) + { + /* Do deferred instantiation of the NSDMI. */ + init = (tsubst_copy_and_build + (DECL_INITIAL (DECL_TI_TEMPLATE (member)), + DECL_TI_ARGS (member), + tf_warning_or_error, member, /*function_p=*/false, + /*integral_constant_expression_p=*/false)); + + init = digest_nsdmi_init (member, init); + } + else + { + init = DECL_INITIAL (member); + if (init && TREE_CODE (init) == DEFAULT_ARG) + { + error ("constructor required before non-static data member " + "for %qD has been parsed", member); + DECL_INITIAL (member) = error_mark_node; + init = NULL_TREE; + } + /* Strip redundant TARGET_EXPR so we don't need to remap it, and + so the aggregate init code below will see a CONSTRUCTOR. */ + if (init && TREE_CODE (init) == TARGET_EXPR + && !VOID_TYPE_P (TREE_TYPE (TARGET_EXPR_INITIAL (init)))) + init = TARGET_EXPR_INITIAL (init); + init = break_out_target_exprs (init); + } + current_class_ptr = save_ccp; + current_class_ref = save_ccr; + return init; + } + /* Initialize MEMBER, a FIELD_DECL, with INIT, a TREE_LIST of arguments. If TREE_LIST is void_type_node, an empty initializer list was given; if NULL_TREE no initializer was given. */ *************** perform_member_init (tree member, tree i *** 534,564 **** /* Use the non-static data member initializer if there was no mem-initializer for this field. */ if (init == NULL_TREE) ! { ! if (DECL_LANG_SPECIFIC (member) && DECL_TEMPLATE_INFO (member)) ! /* Do deferred instantiation of the NSDMI. */ ! init = (tsubst_copy_and_build ! (DECL_INITIAL (DECL_TI_TEMPLATE (member)), ! DECL_TI_ARGS (member), ! tf_warning_or_error, member, /*function_p=*/false, ! /*integral_constant_expression_p=*/false)); ! else ! { ! init = DECL_INITIAL (member); ! if (init && TREE_CODE (init) == DEFAULT_ARG) ! { ! error ("constructor required before non-static data member " ! "for %qD has been parsed", member); ! init = NULL_TREE; ! } ! /* Strip redundant TARGET_EXPR so we don't need to remap it, and ! so the aggregate init code below will see a CONSTRUCTOR. */ ! if (init && TREE_CODE (init) == TARGET_EXPR ! && !VOID_TYPE_P (TREE_TYPE (TARGET_EXPR_INITIAL (init)))) ! init = TARGET_EXPR_INITIAL (init); ! init = break_out_target_exprs (init); ! } ! } if (init == error_mark_node) return; --- 578,584 ---- /* Use the non-static data member initializer if there was no mem-initializer for this field. */ if (init == NULL_TREE) ! init = get_nsdmi (member, /*ctor*/true); if (init == error_mark_node) return; diff -Nrcpad gcc-4.9.0/gcc/cp/lambda.c gcc-4.9.1/gcc/cp/lambda.c *** gcc-4.9.0/gcc/cp/lambda.c Fri Feb 28 20:20:21 2014 --- gcc-4.9.1/gcc/cp/lambda.c Tue May 13 17:40:03 2014 *************** lambda_function (tree lambda) *** 201,206 **** --- 201,214 ---- return lambda; } + static inline bool + is_this (tree t) + { + return ((TREE_CODE (t) == PARM_DECL + || TREE_CODE (t) == VAR_DECL) + && DECL_NAME (t) == this_identifier); + } + /* Returns the type to use for the FIELD_DECL corresponding to the capture of EXPR. The caller should add REFERENCE_TYPE for capture by reference. */ *************** lambda_capture_field_type (tree expr, bo *** 216,223 **** } else type = non_reference (unlowered_expr_type (expr)); ! if (!type || WILDCARD_TYPE_P (type) || type_uses_auto (type) ! || DECL_PACK_P (expr)) { type = cxx_make_type (DECLTYPE_TYPE); DECLTYPE_TYPE_EXPR (type) = expr; --- 224,232 ---- } else type = non_reference (unlowered_expr_type (expr)); ! if (type_dependent_expression_p (expr) ! && !is_this (tree_strip_nop_conversions (expr)) ! && !array_of_runtime_bound_p (type)) { type = cxx_make_type (DECLTYPE_TYPE); DECLTYPE_TYPE_EXPR (type) = expr; diff -Nrcpad gcc-4.9.0/gcc/cp/mangle.c gcc-4.9.1/gcc/cp/mangle.c *** gcc-4.9.0/gcc/cp/mangle.c Tue Apr 1 17:49:38 2014 --- gcc-4.9.1/gcc/cp/mangle.c Mon Jun 30 18:52:39 2014 *************** decl_mangling_context (tree decl) *** 752,757 **** --- 752,761 ---- if (tcontext != NULL_TREE) return tcontext; + if (TREE_CODE (decl) == TEMPLATE_DECL + && DECL_TEMPLATE_RESULT (decl)) + decl = DECL_TEMPLATE_RESULT (decl); + if (TREE_CODE (decl) == TYPE_DECL && LAMBDA_TYPE_P (TREE_TYPE (decl))) { diff -Nrcpad gcc-4.9.0/gcc/cp/parser.c gcc-4.9.1/gcc/cp/parser.c *** gcc-4.9.0/gcc/cp/parser.c Wed Apr 9 19:51:17 2014 --- gcc-4.9.1/gcc/cp/parser.c Tue Jul 1 18:46:26 2014 *************** static tree cp_parser_string_literal *** 1891,1897 **** static tree cp_parser_userdef_char_literal (cp_parser *); static tree cp_parser_userdef_string_literal ! (cp_token *); static tree cp_parser_userdef_numeric_literal (cp_parser *); --- 1891,1897 ---- static tree cp_parser_userdef_char_literal (cp_parser *); static tree cp_parser_userdef_string_literal ! (tree); static tree cp_parser_userdef_numeric_literal (cp_parser *); *************** cp_parser_string_literal (cp_parser *par *** 3696,3703 **** { tree literal = build_userdef_literal (suffix_id, value, OT_NONE, NULL_TREE); ! tok->u.value = literal; ! return cp_parser_userdef_string_literal (tok); } } else --- 3696,3702 ---- { tree literal = build_userdef_literal (suffix_id, value, OT_NONE, NULL_TREE); ! value = cp_parser_userdef_string_literal (literal); } } else *************** cp_parser_userdef_numeric_literal (cp_pa *** 3945,3953 **** as arguments. */ static tree ! cp_parser_userdef_string_literal (cp_token *token) { - tree literal = token->u.value; tree suffix_id = USERDEF_LITERAL_SUFFIX_ID (literal); tree name = cp_literal_operator_id (IDENTIFIER_POINTER (suffix_id)); tree value = USERDEF_LITERAL_VALUE (literal); --- 3944,3951 ---- as arguments. */ static tree ! cp_parser_userdef_string_literal (tree literal) { tree suffix_id = USERDEF_LITERAL_SUFFIX_ID (literal); tree name = cp_literal_operator_id (IDENTIFIER_POINTER (suffix_id)); tree value = USERDEF_LITERAL_VALUE (literal); *************** cp_parser_postfix_expression (cp_parser *** 5835,5854 **** } break; } - - case RID_CILK_SYNC: - if (flag_cilkplus) - { - tree sync_expr = build_cilk_sync (); - SET_EXPR_LOCATION (sync_expr, - cp_lexer_peek_token (parser->lexer)->location); - finish_expr_stmt (sync_expr); - } - else - error_at (token->location, "-fcilkplus must be enabled to use" - " %<_Cilk_sync%>"); - cp_lexer_consume_token (parser->lexer); - break; case RID_BUILTIN_SHUFFLE: { --- 5833,5838 ---- *************** cp_parser_statement (cp_parser* parser, *** 9400,9405 **** --- 9384,9407 ---- statement = cp_parser_jump_statement (parser); break; + case RID_CILK_SYNC: + cp_lexer_consume_token (parser->lexer); + if (flag_cilkplus) + { + tree sync_expr = build_cilk_sync (); + SET_EXPR_LOCATION (sync_expr, + token->location); + statement = finish_expr_stmt (sync_expr); + } + else + { + error_at (token->location, "-fcilkplus must be enabled to use" + " %<_Cilk_sync%>"); + statement = error_mark_node; + } + cp_parser_require (parser, CPP_SEMICOLON, RT_SEMICOLON); + break; + /* Objective-C++ exception-handling constructs. */ case RID_AT_TRY: case RID_AT_CATCH: *************** cp_parser_elaborated_type_specifier (cp_ *** 15045,15050 **** --- 15047,15064 ---- return cp_parser_make_typename_type (parser, parser->scope, identifier, token->location); + + /* Template parameter lists apply only if we are not within a + function parameter list. */ + bool template_parm_lists_apply + = parser->num_template_parameter_lists; + if (template_parm_lists_apply) + for (cp_binding_level *s = current_binding_level; + s && s->kind != sk_template_parms; + s = s->level_chain) + if (s->kind == sk_function_parms) + template_parm_lists_apply = false; + /* Look up a qualified name in the usual way. */ if (parser->scope) { *************** cp_parser_elaborated_type_specifier (cp_ *** 15087,15093 **** decl = (cp_parser_maybe_treat_template_as_class (decl, /*tag_name_p=*/is_friend ! && parser->num_template_parameter_lists)); if (TREE_CODE (decl) != TYPE_DECL) { --- 15101,15107 ---- decl = (cp_parser_maybe_treat_template_as_class (decl, /*tag_name_p=*/is_friend ! && template_parm_lists_apply)); if (TREE_CODE (decl) != TYPE_DECL) { *************** cp_parser_elaborated_type_specifier (cp_ *** 15100,15108 **** if (TREE_CODE (TREE_TYPE (decl)) != TYPENAME_TYPE) { ! bool allow_template = (parser->num_template_parameter_lists ! || DECL_SELF_REFERENCE_P (decl)); ! type = check_elaborated_type_specifier (tag_type, decl, allow_template); if (type == error_mark_node) --- 15114,15122 ---- if (TREE_CODE (TREE_TYPE (decl)) != TYPENAME_TYPE) { ! bool allow_template = (template_parm_lists_apply ! || DECL_SELF_REFERENCE_P (decl)); ! type = check_elaborated_type_specifier (tag_type, decl, allow_template); if (type == error_mark_node) *************** cp_parser_elaborated_type_specifier (cp_ *** 15188,15202 **** ts = ts_global; template_p = ! (parser->num_template_parameter_lists && (cp_parser_next_token_starts_class_definition_p (parser) || cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))); /* An unqualified name was used to reference this type, so there were no qualifying templates. */ ! if (!cp_parser_check_template_parameters (parser, ! /*num_templates=*/0, ! token->location, ! /*declarator=*/NULL)) return error_mark_node; type = xref_tag (tag_type, identifier, ts, template_p); } --- 15202,15217 ---- ts = ts_global; template_p = ! (template_parm_lists_apply && (cp_parser_next_token_starts_class_definition_p (parser) || cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))); /* An unqualified name was used to reference this type, so there were no qualifying templates. */ ! if (template_parm_lists_apply ! && !cp_parser_check_template_parameters (parser, ! /*num_templates=*/0, ! token->location, ! /*declarator=*/NULL)) return error_mark_node; type = xref_tag (tag_type, identifier, ts, template_p); } *************** cp_parser_virt_specifier_seq_opt (cp_par *** 17837,17843 **** /* Used by handling of trailing-return-types and NSDMI, in which 'this' is in scope even though it isn't real. */ ! static void inject_this_parameter (tree ctype, cp_cv_quals quals) { tree this_parm; --- 17852,17858 ---- /* Used by handling of trailing-return-types and NSDMI, in which 'this' is in scope even though it isn't real. */ ! void inject_this_parameter (tree ctype, cp_cv_quals quals) { tree this_parm; *************** cp_parser_template_declaration_after_exp *** 23090,23099 **** ok = false; } if (!ok) ! error ("literal operator template %qD has invalid parameter list." ! " Expected non-type template argument pack " ! " or ", ! decl); } /* Register member declarations. */ if (member_p && !friend_p && decl && !DECL_CLASS_TEMPLATE_P (decl)) --- 23105,23121 ---- ok = false; } if (!ok) ! { ! if (cxx_dialect >= cxx1y) ! error ("literal operator template %qD has invalid parameter list." ! " Expected non-type template argument pack " ! " or ", ! decl); ! else ! error ("literal operator template %qD has invalid parameter list." ! " Expected non-type template argument pack ", ! decl); ! } } /* Register member declarations. */ if (member_p && !friend_p && decl && !DECL_CLASS_TEMPLATE_P (decl)) *************** cp_parser_late_parse_one_default_arg (cp *** 23664,23679 **** parsed_arg = check_default_argument (parmtype, parsed_arg, tf_warning_or_error); else ! { ! int flags = LOOKUP_IMPLICIT; ! if (BRACE_ENCLOSED_INITIALIZER_P (parsed_arg) ! && CONSTRUCTOR_IS_DIRECT_INIT (parsed_arg)) ! flags = LOOKUP_NORMAL; ! parsed_arg = digest_init_flags (TREE_TYPE (decl), parsed_arg, flags); ! if (TREE_CODE (parsed_arg) == TARGET_EXPR) ! /* This represents the whole initialization. */ ! TARGET_EXPR_DIRECT_INIT_P (parsed_arg) = true; ! } } /* If the token stream has not been completely used up, then --- 23686,23692 ---- parsed_arg = check_default_argument (parmtype, parsed_arg, tf_warning_or_error); else ! parsed_arg = digest_nsdmi_init (decl, parsed_arg); } /* If the token stream has not been completely used up, then *************** cp_parser_omp_atomic (cp_parser *parser, *** 28530,28535 **** --- 28543,28562 ---- tree id = cp_lexer_peek_token (parser->lexer)->u.value; const char *p = IDENTIFIER_POINTER (id); + if (!strcmp (p, "seq_cst")) + { + seq_cst = true; + cp_lexer_consume_token (parser->lexer); + if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA) + && cp_lexer_peek_nth_token (parser->lexer, 2)->type == CPP_NAME) + cp_lexer_consume_token (parser->lexer); + } + } + if (cp_lexer_next_token_is (parser->lexer, CPP_NAME)) + { + tree id = cp_lexer_peek_token (parser->lexer)->u.value; + const char *p = IDENTIFIER_POINTER (id); + if (!strcmp (p, "read")) code = OMP_ATOMIC_READ; else if (!strcmp (p, "write")) *************** cp_parser_omp_atomic (cp_parser *parser, *** 28543,28558 **** if (p) cp_lexer_consume_token (parser->lexer); } ! ! if (cp_lexer_next_token_is (parser->lexer, CPP_NAME)) { ! tree id = cp_lexer_peek_token (parser->lexer)->u.value; ! const char *p = IDENTIFIER_POINTER (id); ! if (!strcmp (p, "seq_cst")) { ! seq_cst = true; ! cp_lexer_consume_token (parser->lexer); } } cp_parser_require_pragma_eol (parser, pragma_tok); --- 28570,28591 ---- if (p) cp_lexer_consume_token (parser->lexer); } ! if (!seq_cst) { ! if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA) ! && cp_lexer_peek_nth_token (parser->lexer, 2)->type == CPP_NAME) ! cp_lexer_consume_token (parser->lexer); ! if (cp_lexer_next_token_is (parser->lexer, CPP_NAME)) { ! tree id = cp_lexer_peek_token (parser->lexer)->u.value; ! const char *p = IDENTIFIER_POINTER (id); ! ! if (!strcmp (p, "seq_cst")) ! { ! seq_cst = true; ! cp_lexer_consume_token (parser->lexer); ! } } } cp_parser_require_pragma_eol (parser, pragma_tok); *************** cp_parser_omp_for_loop (cp_parser *parse *** 29341,29349 **** change it to shared (decl) in OMP_PARALLEL_CLAUSES. */ tree l = build_omp_clause (loc, OMP_CLAUSE_LASTPRIVATE); OMP_CLAUSE_DECL (l) = real_decl; - OMP_CLAUSE_CHAIN (l) = clauses; CP_OMP_CLAUSE_INFO (l) = CP_OMP_CLAUSE_INFO (*c); ! clauses = l; OMP_CLAUSE_SET_CODE (*c, OMP_CLAUSE_SHARED); CP_OMP_CLAUSE_INFO (*c) = NULL; add_private_clause = false; --- 29374,29390 ---- change it to shared (decl) in OMP_PARALLEL_CLAUSES. */ tree l = build_omp_clause (loc, OMP_CLAUSE_LASTPRIVATE); OMP_CLAUSE_DECL (l) = real_decl; CP_OMP_CLAUSE_INFO (l) = CP_OMP_CLAUSE_INFO (*c); ! if (code == OMP_SIMD) ! { ! OMP_CLAUSE_CHAIN (l) = cclauses[C_OMP_CLAUSE_SPLIT_FOR]; ! cclauses[C_OMP_CLAUSE_SPLIT_FOR] = l; ! } ! else ! { ! OMP_CLAUSE_CHAIN (l) = clauses; ! clauses = l; ! } OMP_CLAUSE_SET_CODE (*c, OMP_CLAUSE_SHARED); CP_OMP_CLAUSE_INFO (*c) = NULL; add_private_clause = false; *************** cp_parser_omp_parallel (cp_parser *parse *** 29825,29834 **** return cp_parser_omp_for (parser, pragma_tok, p_name, mask, cclauses); block = begin_omp_parallel (); save = cp_parser_begin_omp_structured_block (parser); ! cp_parser_omp_for (parser, pragma_tok, p_name, mask, cclauses); cp_parser_end_omp_structured_block (parser, save); stmt = finish_omp_parallel (cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL], block); OMP_PARALLEL_COMBINED (stmt) = 1; return stmt; } --- 29866,29877 ---- return cp_parser_omp_for (parser, pragma_tok, p_name, mask, cclauses); block = begin_omp_parallel (); save = cp_parser_begin_omp_structured_block (parser); ! tree ret = cp_parser_omp_for (parser, pragma_tok, p_name, mask, cclauses); cp_parser_end_omp_structured_block (parser, save); stmt = finish_omp_parallel (cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL], block); + if (ret == NULL_TREE) + return ret; OMP_PARALLEL_COMBINED (stmt) = 1; return stmt; } diff -Nrcpad gcc-4.9.0/gcc/cp/pt.c gcc-4.9.1/gcc/cp/pt.c *** gcc-4.9.0/gcc/cp/pt.c Wed Apr 9 19:51:17 2014 --- gcc-4.9.1/gcc/cp/pt.c Mon Jun 30 18:52:45 2014 *************** maybe_begin_member_template_processing ( *** 462,470 **** bool nsdmi = TREE_CODE (decl) == FIELD_DECL; if (nsdmi) ! decl = (CLASSTYPE_TEMPLATE_INFO (DECL_CONTEXT (decl)) ! ? CLASSTYPE_TI_TEMPLATE (DECL_CONTEXT (decl)) ! : NULL_TREE); if (inline_needs_template_parms (decl, nsdmi)) { --- 462,474 ---- bool nsdmi = TREE_CODE (decl) == FIELD_DECL; if (nsdmi) ! { ! tree ctx = DECL_CONTEXT (decl); ! decl = (CLASSTYPE_TEMPLATE_INFO (ctx) ! /* Disregard full specializations (c++/60999). */ ! && uses_template_parms (ctx) ! ? CLASSTYPE_TI_TEMPLATE (ctx) : NULL_TREE); ! } if (inline_needs_template_parms (decl, nsdmi)) { *************** check_default_tmpl_args (tree decl, tree *** 4419,4425 **** in the template-parameter-list of the definition of a member of a class template. */ ! if (TREE_CODE (CP_DECL_CONTEXT (decl)) == FUNCTION_DECL) /* You can't have a function template declaration in a local scope, nor you can you define a member of a class template in a local scope. */ --- 4423,4430 ---- in the template-parameter-list of the definition of a member of a class template. */ ! if (TREE_CODE (CP_DECL_CONTEXT (decl)) == FUNCTION_DECL ! || (TREE_CODE (decl) == FUNCTION_DECL && DECL_LOCAL_FUNCTION_P (decl))) /* You can't have a function template declaration in a local scope, nor you can you define a member of a class template in a local scope. */ *************** check_valid_ptrmem_cst_expr (tree type, *** 5341,5346 **** --- 5346,5355 ---- return true; if (cxx_dialect >= cxx11 && null_member_pointer_value_p (expr)) return true; + if (processing_template_decl + && TREE_CODE (expr) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (expr, 0)) == OFFSET_REF) + return true; if (complain & tf_error) { error ("%qE is not a valid template argument for type %qT", *************** convert_nontype_argument (tree type, tre *** 5817,5833 **** { if (VAR_P (expr)) { ! error ("%qD is not a valid template argument " ! "because %qD is a variable, not the address of " ! "a variable", ! expr, expr); return NULL_TREE; } if (POINTER_TYPE_P (expr_type)) { ! error ("%qE is not a valid template argument for %qT " ! "because it is not the address of a variable", ! expr, type); return NULL_TREE; } /* Other values, like integer constants, might be valid --- 5826,5843 ---- { if (VAR_P (expr)) { ! if (complain & tf_error) ! error ("%qD is not a valid template argument " ! "because %qD is a variable, not the address of " ! "a variable", expr, expr); return NULL_TREE; } if (POINTER_TYPE_P (expr_type)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument for %qT " ! "because it is not the address of a variable", ! expr, type); return NULL_TREE; } /* Other values, like integer constants, might be valid *************** convert_nontype_argument (tree type, tre *** 5842,5864 **** ? TREE_OPERAND (expr, 0) : expr); if (!VAR_P (decl)) { ! error ("%qE is not a valid template argument of type %qT " ! "because %qE is not a variable", ! expr, type, decl); return NULL_TREE; } else if (cxx_dialect < cxx11 && !DECL_EXTERNAL_LINKAGE_P (decl)) { ! error ("%qE is not a valid template argument of type %qT " ! "because %qD does not have external linkage", ! expr, type, decl); return NULL_TREE; } else if (cxx_dialect >= cxx11 && decl_linkage (decl) == lk_none) { ! error ("%qE is not a valid template argument of type %qT " ! "because %qD has no linkage", ! expr, type, decl); return NULL_TREE; } } --- 5852,5875 ---- ? TREE_OPERAND (expr, 0) : expr); if (!VAR_P (decl)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument of type %qT " ! "because %qE is not a variable", expr, type, decl); return NULL_TREE; } else if (cxx_dialect < cxx11 && !DECL_EXTERNAL_LINKAGE_P (decl)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument of type %qT " ! "because %qD does not have external linkage", ! expr, type, decl); return NULL_TREE; } else if (cxx_dialect >= cxx11 && decl_linkage (decl) == lk_none) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument of type %qT " ! "because %qD has no linkage", expr, type, decl); return NULL_TREE; } } *************** convert_nontype_argument (tree type, tre *** 5886,5900 **** if (!at_least_as_qualified_p (TREE_TYPE (type), expr_type)) { ! error ("%qE is not a valid template argument for type %qT " ! "because of conflicts in cv-qualification", expr, type); return NULL_TREE; } if (!real_lvalue_p (expr)) { ! error ("%qE is not a valid template argument for type %qT " ! "because it is not an lvalue", expr, type); return NULL_TREE; } --- 5897,5913 ---- if (!at_least_as_qualified_p (TREE_TYPE (type), expr_type)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument for type %qT " ! "because of conflicts in cv-qualification", expr, type); return NULL_TREE; } if (!real_lvalue_p (expr)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument for type %qT " ! "because it is not an lvalue", expr, type); return NULL_TREE; } *************** convert_nontype_argument (tree type, tre *** 5910,5935 **** expr = TREE_OPERAND (expr, 0); if (DECL_P (expr)) { ! error ("%q#D is not a valid template argument for type %qT " ! "because a reference variable does not have a constant " ! "address", expr, type); return NULL_TREE; } } if (!DECL_P (expr)) { ! error ("%qE is not a valid template argument for type %qT " ! "because it is not an object with external linkage", ! expr, type); return NULL_TREE; } if (!DECL_EXTERNAL_LINKAGE_P (expr)) { ! error ("%qE is not a valid template argument for type %qT " ! "because object %qD has not external linkage", ! expr, type, expr); return NULL_TREE; } --- 5923,5951 ---- expr = TREE_OPERAND (expr, 0); if (DECL_P (expr)) { ! if (complain & tf_error) ! error ("%q#D is not a valid template argument for type %qT " ! "because a reference variable does not have a constant " ! "address", expr, type); return NULL_TREE; } } if (!DECL_P (expr)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument for type %qT " ! "because it is not an object with external linkage", ! expr, type); return NULL_TREE; } if (!DECL_EXTERNAL_LINKAGE_P (expr)) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument for type %qT " ! "because object %qD has not external linkage", ! expr, type, expr); return NULL_TREE; } *************** convert_nontype_argument (tree type, tre *** 5971,5979 **** { if (TREE_CODE (expr) == ADDR_EXPR) { ! error ("%qE is not a valid template argument for type %qT " ! "because it is a pointer", expr, type); ! inform (input_location, "try using %qE instead", TREE_OPERAND (expr, 0)); return NULL_TREE; } --- 5987,5999 ---- { if (TREE_CODE (expr) == ADDR_EXPR) { ! if (complain & tf_error) ! { ! error ("%qE is not a valid template argument for type %qT " ! "because it is a pointer", expr, type); ! inform (input_location, "try using %qE instead", ! TREE_OPERAND (expr, 0)); ! } return NULL_TREE; } *************** convert_nontype_argument (tree type, tre *** 6011,6023 **** provide a superior diagnostic. */ if (!same_type_p (TREE_TYPE (expr), type)) { ! error ("%qE is not a valid template argument for type %qT " ! "because it is of type %qT", expr, type, ! TREE_TYPE (expr)); ! /* If we are just one standard conversion off, explain. */ ! if (can_convert_standard (type, TREE_TYPE (expr), complain)) ! inform (input_location, ! "standard conversions are not allowed in this context"); return NULL_TREE; } } --- 6031,6046 ---- provide a superior diagnostic. */ if (!same_type_p (TREE_TYPE (expr), type)) { ! if (complain & tf_error) ! { ! error ("%qE is not a valid template argument for type %qT " ! "because it is of type %qT", expr, type, ! TREE_TYPE (expr)); ! /* If we are just one standard conversion off, explain. */ ! if (can_convert_standard (type, TREE_TYPE (expr), complain)) ! inform (input_location, ! "standard conversions are not allowed in this context"); ! } return NULL_TREE; } } *************** convert_nontype_argument (tree type, tre *** 6040,6047 **** { if (expr != nullptr_node) { ! error ("%qE is not a valid template argument for type %qT " ! "because it is of type %qT", expr, type, TREE_TYPE (expr)); return NULL_TREE; } return expr; --- 6063,6071 ---- { if (expr != nullptr_node) { ! if (complain & tf_error) ! error ("%qE is not a valid template argument for type %qT " ! "because it is of type %qT", expr, type, TREE_TYPE (expr)); return NULL_TREE; } return expr; *************** tsubst_copy (tree t, tree args, tsubst_f *** 12638,12650 **** } else { ! /* This can happen for a variable used in a late-specified ! return type of a local lambda. Just make a dummy decl ! since it's only used for its type. */ ! if (cp_unevaluated_operand) ! return tsubst_decl (t, args, complain); ! gcc_assert (errorcount || sorrycount); ! return error_mark_node; } } } --- 12662,12678 ---- } else { ! /* This can happen for a variable used in a ! late-specified return type of a local lambda, or for a ! local static or constant. Building a new VAR_DECL ! should be OK in all those cases. */ ! r = tsubst_decl (t, args, complain); ! if (decl_constant_var_p (r)) ! /* A use of a local constant must decay to its value. */ ! return integral_constant_value (r); ! gcc_assert (cp_unevaluated_operand || TREE_STATIC (r) ! || errorcount || sorrycount); ! return r; } } } *************** pack_deducible_p (tree parm, tree fn) *** 15613,15619 **** continue; for (packs = PACK_EXPANSION_PARAMETER_PACKS (type); packs; packs = TREE_CHAIN (packs)) ! if (TREE_VALUE (packs) == parm) { /* The template parameter pack is used in a function parameter pack. If this is the end of the parameter list, the --- 15641,15647 ---- continue; for (packs = PACK_EXPANSION_PARAMETER_PACKS (type); packs; packs = TREE_CHAIN (packs)) ! if (template_args_equal (TREE_VALUE (packs), parm)) { /* The template parameter pack is used in a function parameter pack. If this is the end of the parameter list, the *************** unify_one_argument (tree tparms, tree ta *** 16337,16344 **** maybe_adjust_types_for_deduction (strict, &parm, &arg, arg_expr); } else ! gcc_assert ((TYPE_P (parm) || TREE_CODE (parm) == TEMPLATE_DECL) ! == (TYPE_P (arg) || TREE_CODE (arg) == TEMPLATE_DECL)); /* For deduction from an init-list we need the actual list. */ if (arg_expr && BRACE_ENCLOSED_INITIALIZER_P (arg_expr)) --- 16365,16373 ---- maybe_adjust_types_for_deduction (strict, &parm, &arg, arg_expr); } else ! if ((TYPE_P (parm) || TREE_CODE (parm) == TEMPLATE_DECL) ! != (TYPE_P (arg) || TREE_CODE (arg) == TEMPLATE_DECL)) ! return unify_template_argument_mismatch (explain_p, parm, arg); /* For deduction from an init-list we need the actual list. */ if (arg_expr && BRACE_ENCLOSED_INITIALIZER_P (arg_expr)) *************** resolve_overloaded_unification (tree tpa *** 16674,16680 **** int i = TREE_VEC_LENGTH (targs); for (; i--; ) if (TREE_VEC_ELT (tempargs, i)) ! TREE_VEC_ELT (targs, i) = TREE_VEC_ELT (tempargs, i); } if (good) return true; --- 16703,16718 ---- int i = TREE_VEC_LENGTH (targs); for (; i--; ) if (TREE_VEC_ELT (tempargs, i)) ! { ! tree old = TREE_VEC_ELT (targs, i); ! tree new_ = TREE_VEC_ELT (tempargs, i); ! if (new_ && old && ARGUMENT_PACK_P (old) ! && ARGUMENT_PACK_EXPLICIT_ARGS (old)) ! /* Don't forget explicit template arguments in a pack. */ ! ARGUMENT_PACK_EXPLICIT_ARGS (new_) ! = ARGUMENT_PACK_EXPLICIT_ARGS (old); ! TREE_VEC_ELT (targs, i) = new_; ! } } if (good) return true; *************** type_dependent_expression_p (tree expres *** 20913,20919 **** return true; if (BASELINK_P (expression)) ! expression = BASELINK_FUNCTIONS (expression); if (TREE_CODE (expression) == TEMPLATE_ID_EXPR) { --- 20951,20962 ---- return true; if (BASELINK_P (expression)) ! { ! if (BASELINK_OPTYPE (expression) ! && dependent_type_p (BASELINK_OPTYPE (expression))) ! return true; ! expression = BASELINK_FUNCTIONS (expression); ! } if (TREE_CODE (expression) == TEMPLATE_ID_EXPR) { diff -Nrcpad gcc-4.9.0/gcc/cp/semantics.c gcc-4.9.1/gcc/cp/semantics.c *** gcc-4.9.0/gcc/cp/semantics.c Fri Apr 4 20:11:47 2014 --- gcc-4.9.1/gcc/cp/semantics.c Thu Jul 10 21:53:23 2014 *************** finish_compound_literal (tree type, tree *** 2600,2606 **** if ((!at_function_scope_p () || CP_TYPE_CONST_P (type)) && TREE_CODE (type) == ARRAY_TYPE && !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type) - && !cp_unevaluated_operand && initializer_constant_valid_p (compound_literal, type)) { tree decl = create_temporary_var (type); --- 2600,2605 ---- *************** simplify_aggr_init_expr (tree *tp) *** 3867,3872 **** --- 3866,3872 ---- aggr_init_expr_nargs (aggr_init_expr), AGGR_INIT_EXPR_ARGP (aggr_init_expr)); TREE_NOTHROW (call_expr) = TREE_NOTHROW (aggr_init_expr); + CALL_EXPR_LIST_INIT_P (call_expr) = CALL_EXPR_LIST_INIT_P (aggr_init_expr); if (style == ctor) { *************** finish_omp_clauses (tree clauses) *** 5283,5288 **** --- 5283,5290 ---- break; } } + else + t = fold_convert (TREE_TYPE (OMP_CLAUSE_DECL (c)), t); } OMP_CLAUSE_LINEAR_STEP (c) = t; } *************** cxx_eval_call_expression (const constexp *** 8511,8521 **** bool reduced_constant_expression_p (tree t) { ! if (TREE_CODE (t) == PTRMEM_CST) ! /* Even if we can't lower this yet, it's constant. */ ! return true; ! /* FIXME are we calling this too much? */ ! return initializer_constant_valid_p (t, TREE_TYPE (t)) != NULL_TREE; } /* Some expressions may have constant operands but are not constant --- 8513,8536 ---- bool reduced_constant_expression_p (tree t) { ! switch (TREE_CODE (t)) ! { ! case PTRMEM_CST: ! /* Even if we can't lower this yet, it's constant. */ ! return true; ! ! case CONSTRUCTOR: ! /* And we need to handle PTRMEM_CST wrapped in a CONSTRUCTOR. */ ! tree elt; unsigned HOST_WIDE_INT idx; ! FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (t), idx, elt) ! if (!reduced_constant_expression_p (elt)) ! return false; ! return true; ! ! default: ! /* FIXME are we calling this too much? */ ! return initializer_constant_valid_p (t, TREE_TYPE (t)) != NULL_TREE; ! } } /* Some expressions may have constant operands but are not constant diff -Nrcpad gcc-4.9.0/gcc/cp/tree.c gcc-4.9.1/gcc/cp/tree.c *** gcc-4.9.0/gcc/cp/tree.c Tue Apr 1 17:49:38 2014 --- gcc-4.9.1/gcc/cp/tree.c Mon Jun 30 14:25:21 2014 *************** lvalue_kind (const_tree ref) *** 101,106 **** --- 101,116 ---- case IMAGPART_EXPR: return lvalue_kind (TREE_OPERAND (ref, 0)); + case MEMBER_REF: + case DOTSTAR_EXPR: + if (TREE_CODE (ref) == MEMBER_REF) + op1_lvalue_kind = clk_ordinary; + else + op1_lvalue_kind = lvalue_kind (TREE_OPERAND (ref, 0)); + if (TYPE_PTRMEMFUNC_P (TREE_TYPE (TREE_OPERAND (ref, 1)))) + op1_lvalue_kind = clk_none; + return op1_lvalue_kind; + case COMPONENT_REF: op1_lvalue_kind = lvalue_kind (TREE_OPERAND (ref, 0)); /* Look at the member designator. */ *************** build_aggr_init_expr (tree type, tree in *** 453,458 **** --- 463,469 ---- TREE_SIDE_EFFECTS (rval) = 1; AGGR_INIT_VIA_CTOR_P (rval) = is_ctor; TREE_NOTHROW (rval) = TREE_NOTHROW (init); + CALL_EXPR_LIST_INIT_P (rval) = CALL_EXPR_LIST_INIT_P (init); } else rval = init; diff -Nrcpad gcc-4.9.0/gcc/cp/typeck2.c gcc-4.9.1/gcc/cp/typeck2.c *** gcc-4.9.0/gcc/cp/typeck2.c Tue Apr 1 19:13:50 2014 --- gcc-4.9.1/gcc/cp/typeck2.c Tue Jul 1 18:46:26 2014 *************** digest_init_flags (tree type, tree init, *** 1097,1102 **** --- 1097,1118 ---- { return digest_init_r (type, init, false, flags, tf_warning_or_error); } + + /* Process the initializer INIT for an NSDMI DECL (a FIELD_DECL). */ + tree + digest_nsdmi_init (tree decl, tree init) + { + gcc_assert (TREE_CODE (decl) == FIELD_DECL); + + int flags = LOOKUP_IMPLICIT; + if (DIRECT_LIST_INIT_P (init)) + flags = LOOKUP_NORMAL; + init = digest_init_flags (TREE_TYPE (decl), init, flags); + if (TREE_CODE (init) == TARGET_EXPR) + /* This represents the whole initialization. */ + TARGET_EXPR_DIRECT_INIT_P (init) = true; + return init; + } /* Set of flags used within process_init_constructor to describe the initializers. */ *************** massage_init_elt (tree type, tree init, *** 1138,1144 **** /* When we defer constant folding within a statement, we may want to defer this folding as well. */ tree t = fold_non_dependent_expr_sfinae (init, complain); ! t = maybe_constant_value (t); if (TREE_CONSTANT (t)) init = t; return init; --- 1154,1160 ---- /* When we defer constant folding within a statement, we may want to defer this folding as well. */ tree t = fold_non_dependent_expr_sfinae (init, complain); ! t = maybe_constant_init (t); if (TREE_CONSTANT (t)) init = t; return init; diff -Nrcpad gcc-4.9.0/gcc/doc/aot-compile.1 gcc-4.9.1/gcc/doc/aot-compile.1 *** gcc-4.9.0/gcc/doc/aot-compile.1 Tue Apr 22 10:38:36 2014 --- gcc-4.9.1/gcc/doc/aot-compile.1 Wed Jul 16 11:00:45 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "AOT-COMPILE 1" ! .TH AOT-COMPILE 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "AOT-COMPILE 1" ! .TH AOT-COMPILE 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/arm-acle-intrinsics.texi gcc-4.9.1/gcc/doc/arm-acle-intrinsics.texi *** gcc-4.9.0/gcc/doc/arm-acle-intrinsics.texi Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/doc/arm-acle-intrinsics.texi Tue Jun 10 09:52:15 2014 *************** *** 4,9 **** --- 4,13 ---- @subsubsection CRC32 intrinsics + These intrinsics are available when the CRC32 architecture extension is + specified, e.g. when the @option{-march=armv8-a+crc} switch is used, or when + the target processor specified with @option{-mcpu} supports it. + @itemize @bullet @item uint32_t __crc32b (uint32_t, uint8_t) @*@emph{Form of expected instruction(s):} @code{crc32b @var{r0}, @var{r0}, @var{r0}} *************** *** 25,32 **** @itemize @bullet @item uint32_t __crc32d (uint32_t, uint64_t) @*@emph{Form of expected instruction(s):} Two @code{crc32w @var{r0}, @var{r0}, @var{r0}} ! instructions for AArch32. One @code{crc32w @var{w0}, @var{w0}, @var{x0}} instruction for ! AArch64. @end itemize @itemize @bullet --- 29,35 ---- @itemize @bullet @item uint32_t __crc32d (uint32_t, uint64_t) @*@emph{Form of expected instruction(s):} Two @code{crc32w @var{r0}, @var{r0}, @var{r0}} ! instructions. @end itemize @itemize @bullet *************** AArch64. *** 50,55 **** @itemize @bullet @item uint32_t __crc32cd (uint32_t, uint64_t) @*@emph{Form of expected instruction(s):} Two @code{crc32cw @var{r0}, @var{r0}, @var{r0}} ! instructions for AArch32. One @code{crc32cw @var{w0}, @var{w0}, @var{x0}} instruction for ! AArch64. @end itemize --- 53,57 ---- @itemize @bullet @item uint32_t __crc32cd (uint32_t, uint64_t) @*@emph{Form of expected instruction(s):} Two @code{crc32cw @var{r0}, @var{r0}, @var{r0}} ! instructions. @end itemize diff -Nrcpad gcc-4.9.0/gcc/doc/arm-neon-intrinsics.texi gcc-4.9.1/gcc/doc/arm-neon-intrinsics.texi *** gcc-4.9.0/gcc/doc/arm-neon-intrinsics.texi Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/doc/arm-neon-intrinsics.texi Wed Jul 9 11:13:53 2014 *************** *** 2,9 **** @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. - @c This file is generated automatically using gcc/config/arm/neon-docgen.ml - @c Please do not edit manually. @subsubsection Addition @itemize @bullet --- 2,7 ---- diff -Nrcpad gcc-4.9.0/gcc/doc/cpp.1 gcc-4.9.1/gcc/doc/cpp.1 *** gcc-4.9.0/gcc/doc/cpp.1 Tue Apr 22 09:50:43 2014 --- gcc-4.9.1/gcc/doc/cpp.1 Wed Jul 16 10:12:22 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/extend.texi gcc-4.9.1/gcc/doc/extend.texi *** gcc-4.9.0/gcc/doc/extend.texi Tue Apr 1 18:52:01 2014 --- gcc-4.9.1/gcc/doc/extend.texi Fri Jun 13 21:56:16 2014 *************** goto *(&&foo + array[i]); *** 376,381 **** --- 376,383 ---- This is more friendly to code living in shared libraries, as it reduces the number of dynamic relocations that are needed, and by consequence, allows the data to be read-only. + This alternative with label differences is not supported for the AVR target, + please use the first approach for AVR programs. The @code{&&foo} expressions for the same label might have different values if the containing function is inlined or cloned. If a program *************** when the @option{-mfpu=neon} switch is u *** 9913,9921 **** @node ARM ACLE Intrinsics @subsection ARM ACLE Intrinsics - These built-in intrinsics for the ARMv8-A CRC32 extension are available when - the @option{-march=armv8-a+crc} switch is used: - @include arm-acle-intrinsics.texi @node AVR Built-in Functions --- 9915,9920 ---- *************** used. All of them generate the machine i *** 11335,11341 **** name. @smallexample ! v32qi __builtin_ia32_mpsadbw256 (v32qi,v32qi,v32qi,int) v32qi __builtin_ia32_pabsb256 (v32qi) v16hi __builtin_ia32_pabsw256 (v16hi) v8si __builtin_ia32_pabsd256 (v8si) --- 11334,11340 ---- name. @smallexample ! v32qi __builtin_ia32_mpsadbw256 (v32qi,v32qi,int) v32qi __builtin_ia32_pabsb256 (v32qi) v16hi __builtin_ia32_pabsw256 (v16hi) v8si __builtin_ia32_pabsd256 (v8si) *************** The following built-in functions are ava *** 11570,11577 **** @smallexample v2df __builtin_ia32_vfrczpd (v2df) v4sf __builtin_ia32_vfrczps (v4sf) ! v2df __builtin_ia32_vfrczsd (v2df, v2df) ! v4sf __builtin_ia32_vfrczss (v4sf, v4sf) v4df __builtin_ia32_vfrczpd256 (v4df) v8sf __builtin_ia32_vfrczps256 (v8sf) v2di __builtin_ia32_vpcmov (v2di, v2di, v2di) --- 11569,11576 ---- @smallexample v2df __builtin_ia32_vfrczpd (v2df) v4sf __builtin_ia32_vfrczps (v4sf) ! v2df __builtin_ia32_vfrczsd (v2df) ! v4sf __builtin_ia32_vfrczss (v4sf) v4df __builtin_ia32_vfrczpd256 (v4df) v8sf __builtin_ia32_vfrczps256 (v8sf) v2di __builtin_ia32_vpcmov (v2di, v2di, v2di) *************** float __builtin_recipdivf (float, float) *** 12787,12795 **** float __builtin_rsqrtf (float); double __builtin_recipdiv (double, double); double __builtin_rsqrt (double); - long __builtin_bpermd (long, long); uint64_t __builtin_ppc_get_timebase (); unsigned long __builtin_ppc_mftb (); @end smallexample The @code{vec_rsqrt}, @code{__builtin_rsqrt}, and --- 12786,12795 ---- float __builtin_rsqrtf (float); double __builtin_recipdiv (double, double); double __builtin_rsqrt (double); uint64_t __builtin_ppc_get_timebase (); unsigned long __builtin_ppc_mftb (); + double __builtin_unpack_longdouble (long double, int); + long double __builtin_pack_longdouble (double, double); @end smallexample The @code{vec_rsqrt}, @code{__builtin_rsqrt}, and *************** The @code{__builtin_ppc_mftb} function a *** 12809,12814 **** --- 12809,12865 ---- returns the Time Base Register value as an unsigned long, throwing away the most significant word on 32-bit environments. + The following built-in functions are available for the PowerPC family + of processors, starting with ISA 2.06 or later (@option{-mcpu=power7} + or @option{-mpopcntd}): + @smallexample + long __builtin_bpermd (long, long); + int __builtin_divwe (int, int); + int __builtin_divweo (int, int); + unsigned int __builtin_divweu (unsigned int, unsigned int); + unsigned int __builtin_divweuo (unsigned int, unsigned int); + long __builtin_divde (long, long); + long __builtin_divdeo (long, long); + unsigned long __builtin_divdeu (unsigned long, unsigned long); + unsigned long __builtin_divdeuo (unsigned long, unsigned long); + unsigned int cdtbcd (unsigned int); + unsigned int cbcdtd (unsigned int); + unsigned int addg6s (unsigned int, unsigned int); + @end smallexample + + The @code{__builtin_divde}, @code{__builtin_divdeo}, + @code{__builitin_divdeu}, @code{__builtin_divdeou} functions require a + 64-bit environment support ISA 2.06 or later. + + The following built-in functions are available for the PowerPC family + of processors when hardware decimal floating point + (@option{-mhard-dfp}) is available: + @smallexample + _Decimal64 __builtin_dxex (_Decimal64); + _Decimal128 __builtin_dxexq (_Decimal128); + _Decimal64 __builtin_ddedpd (int, _Decimal64); + _Decimal128 __builtin_ddedpdq (int, _Decimal128); + _Decimal64 __builtin_denbcd (int, _Decimal64); + _Decimal128 __builtin_denbcdq (int, _Decimal128); + _Decimal64 __builtin_diex (_Decimal64, _Decimal64); + _Decimal128 _builtin_diexq (_Decimal128, _Decimal128); + _Decimal64 __builtin_dscli (_Decimal64, int); + _Decimal128 __builitn_dscliq (_Decimal128, int); + _Decimal64 __builtin_dscri (_Decimal64, int); + _Decimal128 __builitn_dscriq (_Decimal128, int); + unsigned long long __builtin_unpack_dec128 (_Decimal128, int); + _Decimal128 __builtin_pack_dec128 (unsigned long long, unsigned long long); + @end smallexample + + The following built-in functions are available for the PowerPC family + of processors when the Vector Scalar (vsx) instruction set is + available: + @smallexample + unsigned long long __builtin_unpack_vector_int128 (vector __int128_t, int); + vector __int128_t __builtin_pack_vector_int128 (unsigned long long, + unsigned long long); + @end smallexample + @node PowerPC AltiVec/VSX Built-in Functions @subsection PowerPC AltiVec Built-in Functions *************** vector __uint128_t vec_vsubcuq (vector _ *** 15220,15225 **** --- 15271,15287 ---- __int128_t vec_vsubuqm (__int128_t, __int128_t); __uint128_t vec_vsubuqm (__uint128_t, __uint128_t); + + vector __int128_t __builtin_bcdadd (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_lt (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_eq (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_gt (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_ov (vector __int128_t, vector__int128_t); + vector __int128_t bcdsub (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_lt (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_eq (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_gt (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_ov (vector __int128_t, vector__int128_t); @end smallexample If the cryptographic instructions are enabled (@option{-mcrypto} or diff -Nrcpad gcc-4.9.0/gcc/doc/fsf-funding.7 gcc-4.9.1/gcc/doc/fsf-funding.7 *** gcc-4.9.0/gcc/doc/fsf-funding.7 Tue Apr 22 09:50:46 2014 --- gcc-4.9.1/gcc/doc/fsf-funding.7 Wed Jul 16 10:12:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/g++.1 gcc-4.9.1/gcc/doc/g++.1 *** gcc-4.9.0/gcc/doc/g++.1 Tue Apr 22 10:38:35 2014 --- gcc-4.9.1/gcc/doc/g++.1 Wed Jul 16 11:00:45 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** in the following sections. *** 846,852 **** \&\fB\-meb \-mel \-mno\-crt0\fR .Sp \&\fI\s-1MSP430\s0 Options\fR ! \&\fB\-msim \-masm\-hex \-mmcu= \-mcpu= \-mlarge \-msmall \-mrelax\fR .Sp \&\fI\s-1NDS32\s0 Options\fR \&\fB\-mbig\-endian \-mlittle\-endian --- 846,853 ---- \&\fB\-meb \-mel \-mno\-crt0\fR .Sp \&\fI\s-1MSP430\s0 Options\fR ! \&\fB\-msim \-masm\-hex \-mmcu= \-mcpu= \-mlarge \-msmall \-mrelax ! \&\-mhwmult=\fR .Sp \&\fI\s-1NDS32\s0 Options\fR \&\fB\-mbig\-endian \-mlittle\-endian *************** See \s-1RS/6000\s0 and PowerPC Options. *** 998,1004 **** \&\-mpretend\-cmove \-mtas\fR .Sp \&\fISolaris 2 Options\fR ! \&\fB\-mimpure\-text \-mno\-impure\-text \&\-pthreads \-pthread\fR .Sp \&\fI\s-1SPARC\s0 Options\fR --- 999,1005 ---- \&\-mpretend\-cmove \-mtas\fR .Sp \&\fISolaris 2 Options\fR ! \&\fB\-mclear\-hwcap \-mno\-clear\-hwcap \-mimpure\-text \-mno\-impure\-text \&\-pthreads \-pthread\fR .Sp \&\fI\s-1SPARC\s0 Options\fR *************** See \s-1RS/6000\s0 and PowerPC Options. *** 1012,1017 **** --- 1013,1019 ---- \&\-mhard\-quad\-float \-msoft\-quad\-float \&\-mstack\-bias \-mno\-stack\-bias \&\-munaligned\-doubles \-mno\-unaligned\-doubles + \&\-muser\-mode \-mno\-user\-mode \&\-mv8plus \-mno\-v8plus \-mvis \-mno\-vis \&\-mvis2 \-mno\-vis2 \-mvis3 \-mno\-vis3 \&\-mcbcond \-mno\-cbcond *************** Attempt to remove redundant extension in *** 6743,6749 **** helpful for the x86\-64 architecture, which implicitly zero-extends in 64\-bit registers after writing to their lower 32\-bit half. .Sp ! Enabled for AArch64 and x86 at levels \fB\-O2\fR, \fB\-O3\fR. .IP "\fB\-flive\-range\-shrinkage\fR" 4 .IX Item "-flive-range-shrinkage" Attempt to decrease register pressure through register live range --- 6745,6752 ---- helpful for the x86\-64 architecture, which implicitly zero-extends in 64\-bit registers after writing to their lower 32\-bit half. .Sp ! Enabled for Alpha, AArch64 and x86 at levels \fB\-O2\fR, ! \&\fB\-O3\fR, \fB\-Os\fR. .IP "\fB\-flive\-range\-shrinkage\fR" 4 .IX Item "-flive-range-shrinkage" Attempt to decrease register pressure through register live range *************** IPA-CP attempts to track all possible va *** 9255,9260 **** --- 9258,9285 ---- parameter in order to propagate them and perform devirtualization. \&\fBipa-cp-value-list-size\fR is the maximum number of values and types it stores per one formal parameter of a function. + .IP "\fBipa-cp-eval-threshold\fR" 4 + .IX Item "ipa-cp-eval-threshold" + IPA-CP calculates its own score of cloning profitability heuristics + and performs those cloning opportunities with scores that exceed + \&\fBipa-cp-eval-threshold\fR. + .IP "\fBipa-max-agg-items\fR" 4 + .IX Item "ipa-max-agg-items" + IPA-CP is also capable to propagate a number of scalar values passed + in an aggregate. \fBipa-max-agg-items\fR controls the maximum + number of such values per one parameter. + .IP "\fBipa-cp-loop-hint-bonus\fR" 4 + .IX Item "ipa-cp-loop-hint-bonus" + When IPA-CP determines that a cloning candidate would make the number + of iterations of a loop known, it adds a bonus of + \&\fBipa-cp-loop-hint-bonus\fR bonus to the profitability score of + the candidate. + .IP "\fBipa-cp-array-index-hint-bonus\fR" 4 + .IX Item "ipa-cp-array-index-hint-bonus" + When IPA-CP determines that a cloning candidate would make the index of + an array access known, it adds a bonus of + \&\fBipa-cp-array-index-hint-bonus\fR bonus to the profitability + score of the candidate. .IP "\fBlto-partitions\fR" 4 .IX Item "lto-partitions" Specify desired number of partitions produced during \s-1WHOPR\s0 compilation. *************** Use small-model addressing (16\-bit poin *** 17176,17181 **** --- 17201,17227 ---- This option is passed to the assembler and linker, and allows the linker to perform certain optimizations that cannot be done until the final link. + .IP "\fBmhwmult=\fR" 4 + .IX Item "mhwmult=" + Describes the type of hardware multiply supported by the target. + Accepted values are \f(CW\*(C`none\*(C'\fR for no hardware multiply, \f(CW\*(C`16bit\*(C'\fR + for the original 16\-bit\-only multiply supported by early MCUs. + \&\f(CW\*(C`32bit\*(C'\fR for the 16/32\-bit multiply supported by later MCUs and + \&\f(CW\*(C`f5series\*(C'\fR for the 16/32\-bit multiply supported by F5\-series MCUs. + A value of \f(CW\*(C`auto\*(C'\fR can also be given. This tells \s-1GCC\s0 to deduce + the hardware multiply support based upon the \s-1MCU\s0 name provided by the + \&\fB\-mmcu\fR option. If no \fB\-mmcu\fR option is specified then + \&\f(CW\*(C`32bit\*(C'\fR hardware multiply support is assumed. \f(CW\*(C`auto\*(C'\fR is the + default setting. + .Sp + Hardware multiplies are normally performed by calling a library + routine. This saves space in the generated code. When compiling at + \&\f(CW\*(C`\-O3\*(C'\fR or higher however the hardware multiplier is invoked + inline. This makes for bigger, but faster code. + .Sp + The hardware multiply routines disable interrupts whilst running and + restore the previous interrupt state when they finish. This makes + them safe to use inside interrupt handlers as well as in normal code. .PP \fI\s-1NDS32\s0 Options\fR .IX Subsection "NDS32 Options" *************** patterns. This can result in faster cod *** 19634,19639 **** --- 19680,19691 ---- .IX Subsection "Solaris 2 Options" .PP These \fB\-m\fR options are supported on Solaris 2: + .IP "\fB\-mclear\-hwcap\fR" 4 + .IX Item "-mclear-hwcap" + \&\fB\-mclear\-hwcap\fR tells the compiler to remove the hardware + capabilities generated by the Solaris assembler. This is only necessary + when object files use \s-1ISA\s0 extensions not supported by the current + machine, but check at runtime whether or not to use them. .IP "\fB\-mimpure\-text\fR" 4 .IX Item "-mimpure-text" \&\fB\-mimpure\-text\fR, used in addition to \fB\-shared\fR, tells *************** absolute address. Otherwise, it assumes *** 19748,19753 **** --- 19800,19814 ---- Specifying this option avoids some rare compatibility problems with code generated by other compilers. It is not the default because it results in a performance loss, especially for floating-point code. + .IP "\fB\-muser\-mode\fR" 4 + .IX Item "-muser-mode" + .PD 0 + .IP "\fB\-mno\-user\-mode\fR" 4 + .IX Item "-mno-user-mode" + .PD + Do not generate code that can only run in supervisor mode. This is relevant + only for the \f(CW\*(C`casa\*(C'\fR instruction emitted for the \s-1LEON3\s0 processor. The + default is \fB\-mno\-user\-mode\fR. .IP "\fB\-mno\-faster\-structs\fR" 4 .IX Item "-mno-faster-structs" .PD 0 diff -Nrcpad gcc-4.9.0/gcc/doc/gc-analyze.1 gcc-4.9.1/gcc/doc/gc-analyze.1 *** gcc-4.9.0/gcc/doc/gc-analyze.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/gc-analyze.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GC-ANALYZE 1" ! .TH GC-ANALYZE 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GC-ANALYZE 1" ! .TH GC-ANALYZE 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/gcc.1 gcc-4.9.1/gcc/doc/gcc.1 *** gcc-4.9.0/gcc/doc/gcc.1 Tue Apr 22 10:38:35 2014 --- gcc-4.9.1/gcc/doc/gcc.1 Wed Jul 16 11:00:44 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** in the following sections. *** 846,852 **** \&\fB\-meb \-mel \-mno\-crt0\fR .Sp \&\fI\s-1MSP430\s0 Options\fR ! \&\fB\-msim \-masm\-hex \-mmcu= \-mcpu= \-mlarge \-msmall \-mrelax\fR .Sp \&\fI\s-1NDS32\s0 Options\fR \&\fB\-mbig\-endian \-mlittle\-endian --- 846,853 ---- \&\fB\-meb \-mel \-mno\-crt0\fR .Sp \&\fI\s-1MSP430\s0 Options\fR ! \&\fB\-msim \-masm\-hex \-mmcu= \-mcpu= \-mlarge \-msmall \-mrelax ! \&\-mhwmult=\fR .Sp \&\fI\s-1NDS32\s0 Options\fR \&\fB\-mbig\-endian \-mlittle\-endian *************** See \s-1RS/6000\s0 and PowerPC Options. *** 998,1004 **** \&\-mpretend\-cmove \-mtas\fR .Sp \&\fISolaris 2 Options\fR ! \&\fB\-mimpure\-text \-mno\-impure\-text \&\-pthreads \-pthread\fR .Sp \&\fI\s-1SPARC\s0 Options\fR --- 999,1005 ---- \&\-mpretend\-cmove \-mtas\fR .Sp \&\fISolaris 2 Options\fR ! \&\fB\-mclear\-hwcap \-mno\-clear\-hwcap \-mimpure\-text \-mno\-impure\-text \&\-pthreads \-pthread\fR .Sp \&\fI\s-1SPARC\s0 Options\fR *************** See \s-1RS/6000\s0 and PowerPC Options. *** 1012,1017 **** --- 1013,1019 ---- \&\-mhard\-quad\-float \-msoft\-quad\-float \&\-mstack\-bias \-mno\-stack\-bias \&\-munaligned\-doubles \-mno\-unaligned\-doubles + \&\-muser\-mode \-mno\-user\-mode \&\-mv8plus \-mno\-v8plus \-mvis \-mno\-vis \&\-mvis2 \-mno\-vis2 \-mvis3 \-mno\-vis3 \&\-mcbcond \-mno\-cbcond *************** Attempt to remove redundant extension in *** 6743,6749 **** helpful for the x86\-64 architecture, which implicitly zero-extends in 64\-bit registers after writing to their lower 32\-bit half. .Sp ! Enabled for AArch64 and x86 at levels \fB\-O2\fR, \fB\-O3\fR. .IP "\fB\-flive\-range\-shrinkage\fR" 4 .IX Item "-flive-range-shrinkage" Attempt to decrease register pressure through register live range --- 6745,6752 ---- helpful for the x86\-64 architecture, which implicitly zero-extends in 64\-bit registers after writing to their lower 32\-bit half. .Sp ! Enabled for Alpha, AArch64 and x86 at levels \fB\-O2\fR, ! \&\fB\-O3\fR, \fB\-Os\fR. .IP "\fB\-flive\-range\-shrinkage\fR" 4 .IX Item "-flive-range-shrinkage" Attempt to decrease register pressure through register live range *************** IPA-CP attempts to track all possible va *** 9255,9260 **** --- 9258,9285 ---- parameter in order to propagate them and perform devirtualization. \&\fBipa-cp-value-list-size\fR is the maximum number of values and types it stores per one formal parameter of a function. + .IP "\fBipa-cp-eval-threshold\fR" 4 + .IX Item "ipa-cp-eval-threshold" + IPA-CP calculates its own score of cloning profitability heuristics + and performs those cloning opportunities with scores that exceed + \&\fBipa-cp-eval-threshold\fR. + .IP "\fBipa-max-agg-items\fR" 4 + .IX Item "ipa-max-agg-items" + IPA-CP is also capable to propagate a number of scalar values passed + in an aggregate. \fBipa-max-agg-items\fR controls the maximum + number of such values per one parameter. + .IP "\fBipa-cp-loop-hint-bonus\fR" 4 + .IX Item "ipa-cp-loop-hint-bonus" + When IPA-CP determines that a cloning candidate would make the number + of iterations of a loop known, it adds a bonus of + \&\fBipa-cp-loop-hint-bonus\fR bonus to the profitability score of + the candidate. + .IP "\fBipa-cp-array-index-hint-bonus\fR" 4 + .IX Item "ipa-cp-array-index-hint-bonus" + When IPA-CP determines that a cloning candidate would make the index of + an array access known, it adds a bonus of + \&\fBipa-cp-array-index-hint-bonus\fR bonus to the profitability + score of the candidate. .IP "\fBlto-partitions\fR" 4 .IX Item "lto-partitions" Specify desired number of partitions produced during \s-1WHOPR\s0 compilation. *************** Use small-model addressing (16\-bit poin *** 17176,17181 **** --- 17201,17227 ---- This option is passed to the assembler and linker, and allows the linker to perform certain optimizations that cannot be done until the final link. + .IP "\fBmhwmult=\fR" 4 + .IX Item "mhwmult=" + Describes the type of hardware multiply supported by the target. + Accepted values are \f(CW\*(C`none\*(C'\fR for no hardware multiply, \f(CW\*(C`16bit\*(C'\fR + for the original 16\-bit\-only multiply supported by early MCUs. + \&\f(CW\*(C`32bit\*(C'\fR for the 16/32\-bit multiply supported by later MCUs and + \&\f(CW\*(C`f5series\*(C'\fR for the 16/32\-bit multiply supported by F5\-series MCUs. + A value of \f(CW\*(C`auto\*(C'\fR can also be given. This tells \s-1GCC\s0 to deduce + the hardware multiply support based upon the \s-1MCU\s0 name provided by the + \&\fB\-mmcu\fR option. If no \fB\-mmcu\fR option is specified then + \&\f(CW\*(C`32bit\*(C'\fR hardware multiply support is assumed. \f(CW\*(C`auto\*(C'\fR is the + default setting. + .Sp + Hardware multiplies are normally performed by calling a library + routine. This saves space in the generated code. When compiling at + \&\f(CW\*(C`\-O3\*(C'\fR or higher however the hardware multiplier is invoked + inline. This makes for bigger, but faster code. + .Sp + The hardware multiply routines disable interrupts whilst running and + restore the previous interrupt state when they finish. This makes + them safe to use inside interrupt handlers as well as in normal code. .PP \fI\s-1NDS32\s0 Options\fR .IX Subsection "NDS32 Options" *************** patterns. This can result in faster cod *** 19634,19639 **** --- 19680,19691 ---- .IX Subsection "Solaris 2 Options" .PP These \fB\-m\fR options are supported on Solaris 2: + .IP "\fB\-mclear\-hwcap\fR" 4 + .IX Item "-mclear-hwcap" + \&\fB\-mclear\-hwcap\fR tells the compiler to remove the hardware + capabilities generated by the Solaris assembler. This is only necessary + when object files use \s-1ISA\s0 extensions not supported by the current + machine, but check at runtime whether or not to use them. .IP "\fB\-mimpure\-text\fR" 4 .IX Item "-mimpure-text" \&\fB\-mimpure\-text\fR, used in addition to \fB\-shared\fR, tells *************** absolute address. Otherwise, it assumes *** 19748,19753 **** --- 19800,19814 ---- Specifying this option avoids some rare compatibility problems with code generated by other compilers. It is not the default because it results in a performance loss, especially for floating-point code. + .IP "\fB\-muser\-mode\fR" 4 + .IX Item "-muser-mode" + .PD 0 + .IP "\fB\-mno\-user\-mode\fR" 4 + .IX Item "-mno-user-mode" + .PD + Do not generate code that can only run in supervisor mode. This is relevant + only for the \f(CW\*(C`casa\*(C'\fR instruction emitted for the \s-1LEON3\s0 processor. The + default is \fB\-mno\-user\-mode\fR. .IP "\fB\-mno\-faster\-structs\fR" 4 .IX Item "-mno-faster-structs" .PD 0 diff -Nrcpad gcc-4.9.0/gcc/doc/gcc.info gcc-4.9.1/gcc/doc/gcc.info *** gcc-4.9.0/gcc/doc/gcc.info Tue Apr 22 10:38:03 2014 --- gcc-4.9.1/gcc/doc/gcc.info Wed Jul 16 11:00:12 2014 *************** Introduction *** 56,62 **** This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 4.9.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. --- 56,62 ---- This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 4.9.1. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. *************** _Machine Dependent Options_ *** 1121,1126 **** --- 1121,1127 ---- _MSP430 Options_ -msim -masm-hex -mmcu= -mcpu= -mlarge -msmall -mrelax + -mhwmult= _NDS32 Options_ -mbig-endian -mlittle-endian *************** _Machine Dependent Options_ *** 1271,1277 **** -mpretend-cmove -mtas _Solaris 2 Options_ ! -mimpure-text -mno-impure-text -pthreads -pthread _SPARC Options_ --- 1272,1278 ---- -mpretend-cmove -mtas _Solaris 2 Options_ ! -mclear-hwcap -mno-clear-hwcap -mimpure-text -mno-impure-text -pthreads -pthread _SPARC Options_ *************** _Machine Dependent Options_ *** 1285,1290 **** --- 1286,1292 ---- -mhard-quad-float -msoft-quad-float -mstack-bias -mno-stack-bias -munaligned-doubles -mno-unaligned-doubles + -muser-mode -mno-user-mode -mv8plus -mno-v8plus -mvis -mno-vis -mvis2 -mno-vis2 -mvis3 -mno-vis3 -mcbcond -mno-cbcond *************** optimizations to be performed is desired *** 6722,6728 **** zero-extends in 64-bit registers after writing to their lower 32-bit half. ! Enabled for AArch64 and x86 at levels '-O2', '-O3'. '-flive-range-shrinkage' Attempt to decrease register pressure through register live range --- 6724,6730 ---- zero-extends in 64-bit registers after writing to their lower 32-bit half. ! Enabled for Alpha, AArch64 and x86 at levels '-O2', '-O3', '-Os'. '-flive-range-shrinkage' Attempt to decrease register pressure through register live range *************** includes experimental options that may p *** 9220,9225 **** --- 9222,9249 ---- maximum number of values and types it stores per one formal parameter of a function. + 'ipa-cp-eval-threshold' + IPA-CP calculates its own score of cloning profitability + heuristics and performs those cloning opportunities with + scores that exceed 'ipa-cp-eval-threshold'. + + 'ipa-max-agg-items' + IPA-CP is also capable to propagate a number of scalar values + passed in an aggregate. 'ipa-max-agg-items' controls the + maximum number of such values per one parameter. + + 'ipa-cp-loop-hint-bonus' + When IPA-CP determines that a cloning candidate would make the + number of iterations of a loop known, it adds a bonus of + 'ipa-cp-loop-hint-bonus' bonus to the profitability score of + the candidate. + + 'ipa-cp-array-index-hint-bonus' + When IPA-CP determines that a cloning candidate would make the + index of an array access known, it adds a bonus of + 'ipa-cp-array-index-hint-bonus' bonus to the profitability + score of the candidate. + 'lto-partitions' Specify desired number of partitions produced during WHOPR compilation. The number of partitions should exceed the *************** These options are defined for the MSP430 *** 17037,17042 **** --- 17061,17087 ---- linker to perform certain optimizations that cannot be done until the final link. + 'mhwmult=' + Describes the type of hardware multiply supported by the target. + Accepted values are 'none' for no hardware multiply, '16bit' for + the original 16-bit-only multiply supported by early MCUs. '32bit' + for the 16/32-bit multiply supported by later MCUs and 'f5series' + for the 16/32-bit multiply supported by F5-series MCUs. A value of + 'auto' can also be given. This tells GCC to deduce the hardware + multiply support based upon the MCU name provided by the '-mmcu' + option. If no '-mmcu' option is specified then '32bit' hardware + multiply support is assumed. 'auto' is the default setting. + + Hardware multiplies are normally performed by calling a library + routine. This saves space in the generated code. When compiling + at '-O3' or higher however the hardware multiplier is invoked + inline. This makes for bigger, but faster code. + + The hardware multiply routines disable interrupts whilst running + and restore the previous interrupt state when they finish. This + makes them safe to use inside interrupt handlers as well as in + normal code. +  File: gcc.info, Node: NDS32 Options, Next: Nios II Options, Prev: MSP430 Options, Up: Submodel Options *************** File: gcc.info, Node: Solaris 2 Options *** 19225,19230 **** --- 19270,19281 ---- These '-m' options are supported on Solaris 2: + '-mclear-hwcap' + '-mclear-hwcap' tells the compiler to remove the hardware + capabilities generated by the Solaris assembler. This is only + necessary when object files use ISA extensions not supported by the + current machine, but check at runtime whether or not to use them. + '-mimpure-text' '-mimpure-text', used in addition to '-shared', tells the compiler to not pass '-z text' to the linker when linking a shared object. *************** These '-m' options are supported on the *** 19332,19337 **** --- 19383,19394 ---- default because it results in a performance loss, especially for floating-point code. + '-muser-mode' + '-mno-user-mode' + Do not generate code that can only run in supervisor mode. This is + relevant only for the 'casa' instruction emitted for the LEON3 + processor. The default is '-mno-user-mode'. + '-mno-faster-structs' '-mfaster-structs' With '-mfaster-structs', the compiler assumes that structures *************** never pass it as an argument. *** 22104,22110 **** This is more friendly to code living in shared libraries, as it reduces the number of dynamic relocations that are needed, and by consequence, ! allows the data to be read-only. The '&&foo' expressions for the same label might have different values if the containing function is inlined or cloned. If a program relies on --- 22161,22169 ---- This is more friendly to code living in shared libraries, as it reduces the number of dynamic relocations that are needed, and by consequence, ! allows the data to be read-only. This alternative with label ! differences is not supported for the AVR target, please use the first ! approach for AVR programs. The '&&foo' expressions for the same label might have different values if the containing function is inlined or cloned. If a program relies on *************** File: gcc.info, Node: ARM ACLE Intrinsi *** 38751,38762 **** 6.57.7 ARM ACLE Intrinsics -------------------------- - These built-in intrinsics for the ARMv8-A CRC32 extension are available - when the '-march=armv8-a+crc' switch is used: - 6.57.7.1 CRC32 intrinsics ......................... * uint32_t __crc32b (uint32_t, uint8_t) _Form of expected instruction(s):_ 'crc32b R0, R0, R0' --- 38810,38822 ---- 6.57.7 ARM ACLE Intrinsics -------------------------- 6.57.7.1 CRC32 intrinsics ......................... + These intrinsics are available when the CRC32 architecture extension is + specified, e.g. when the '-march=armv8-a+crc' switch is used, or when + the target processor specified with '-mcpu' supports it. + * uint32_t __crc32b (uint32_t, uint8_t) _Form of expected instruction(s):_ 'crc32b R0, R0, R0' *************** when the '-march=armv8-a+crc' switch is *** 38768,38775 **** * uint32_t __crc32d (uint32_t, uint64_t) _Form of expected instruction(s):_ Two 'crc32w R0, R0, R0' ! instructions for AArch32. One 'crc32w W0, W0, X0' instruction for ! AArch64. * uint32_t __crc32cb (uint32_t, uint8_t) _Form of expected instruction(s):_ 'crc32cb R0, R0, R0' --- 38828,38834 ---- * uint32_t __crc32d (uint32_t, uint64_t) _Form of expected instruction(s):_ Two 'crc32w R0, R0, R0' ! instructions. * uint32_t __crc32cb (uint32_t, uint8_t) _Form of expected instruction(s):_ 'crc32cb R0, R0, R0' *************** when the '-march=armv8-a+crc' switch is *** 38782,38789 **** * uint32_t __crc32cd (uint32_t, uint64_t) _Form of expected instruction(s):_ Two 'crc32cw R0, R0, R0' ! instructions for AArch32. One 'crc32cw W0, W0, X0' instruction for ! AArch64.  File: gcc.info, Node: AVR Built-in Functions, Next: Blackfin Built-in Functions, Prev: ARM ACLE Intrinsics, Up: Target Builtins --- 38841,38847 ---- * uint32_t __crc32cd (uint32_t, uint64_t) _Form of expected instruction(s):_ Two 'crc32cw R0, R0, R0' ! instructions.  File: gcc.info, Node: AVR Built-in Functions, Next: Blackfin Built-in Functions, Prev: ARM ACLE Intrinsics, Up: Target Builtins *************** All of them generate the machine instruc *** 39981,39987 **** The following built-in functions are available when '-mavx2' is used. All of them generate the machine instruction that is part of the name. ! v32qi __builtin_ia32_mpsadbw256 (v32qi,v32qi,v32qi,int) v32qi __builtin_ia32_pabsb256 (v32qi) v16hi __builtin_ia32_pabsw256 (v16hi) v8si __builtin_ia32_pabsd256 (v8si) --- 40039,40045 ---- The following built-in functions are available when '-mavx2' is used. All of them generate the machine instruction that is part of the name. ! v32qi __builtin_ia32_mpsadbw256 (v32qi,v32qi,int) v32qi __builtin_ia32_pabsb256 (v32qi) v16hi __builtin_ia32_pabsw256 (v16hi) v8si __builtin_ia32_pabsd256 (v8si) *************** All of them generate the machine instruc *** 40200,40207 **** The following built-in functions are available when '-mxop' is used. v2df __builtin_ia32_vfrczpd (v2df) v4sf __builtin_ia32_vfrczps (v4sf) ! v2df __builtin_ia32_vfrczsd (v2df, v2df) ! v4sf __builtin_ia32_vfrczss (v4sf, v4sf) v4df __builtin_ia32_vfrczpd256 (v4df) v8sf __builtin_ia32_vfrczps256 (v8sf) v2di __builtin_ia32_vpcmov (v2di, v2di, v2di) --- 40258,40265 ---- The following built-in functions are available when '-mxop' is used. v2df __builtin_ia32_vfrczpd (v2df) v4sf __builtin_ia32_vfrczps (v4sf) ! v2df __builtin_ia32_vfrczsd (v2df) ! v4sf __builtin_ia32_vfrczss (v4sf) v4df __builtin_ia32_vfrczpd256 (v4df) v8sf __builtin_ia32_vfrczps256 (v8sf) v2di __builtin_ia32_vpcmov (v2di, v2di, v2di) *************** processors: *** 41347,41355 **** float __builtin_rsqrtf (float); double __builtin_recipdiv (double, double); double __builtin_rsqrt (double); - long __builtin_bpermd (long, long); uint64_t __builtin_ppc_get_timebase (); unsigned long __builtin_ppc_mftb (); The 'vec_rsqrt', '__builtin_rsqrt', and '__builtin_rsqrtf' functions generate multiple instructions to implement the reciprocal sqrt --- 41405,41414 ---- float __builtin_rsqrtf (float); double __builtin_recipdiv (double, double); double __builtin_rsqrt (double); uint64_t __builtin_ppc_get_timebase (); unsigned long __builtin_ppc_mftb (); + double __builtin_unpack_longdouble (long double, int); + long double __builtin_pack_longdouble (double, double); The 'vec_rsqrt', '__builtin_rsqrt', and '__builtin_rsqrtf' functions generate multiple instructions to implement the reciprocal sqrt *************** and always returns the 64 bits of the Ti *** 41367,41372 **** --- 41426,41475 ---- returns the Time Base Register value as an unsigned long, throwing away the most significant word on 32-bit environments. + The following built-in functions are available for the PowerPC family + of processors, starting with ISA 2.06 or later ('-mcpu=power7' or + '-mpopcntd'): + long __builtin_bpermd (long, long); + int __builtin_divwe (int, int); + int __builtin_divweo (int, int); + unsigned int __builtin_divweu (unsigned int, unsigned int); + unsigned int __builtin_divweuo (unsigned int, unsigned int); + long __builtin_divde (long, long); + long __builtin_divdeo (long, long); + unsigned long __builtin_divdeu (unsigned long, unsigned long); + unsigned long __builtin_divdeuo (unsigned long, unsigned long); + unsigned int cdtbcd (unsigned int); + unsigned int cbcdtd (unsigned int); + unsigned int addg6s (unsigned int, unsigned int); + + The '__builtin_divde', '__builtin_divdeo', '__builitin_divdeu', + '__builtin_divdeou' functions require a 64-bit environment support ISA + 2.06 or later. + + The following built-in functions are available for the PowerPC family + of processors when hardware decimal floating point ('-mhard-dfp') is + available: + _Decimal64 __builtin_dxex (_Decimal64); + _Decimal128 __builtin_dxexq (_Decimal128); + _Decimal64 __builtin_ddedpd (int, _Decimal64); + _Decimal128 __builtin_ddedpdq (int, _Decimal128); + _Decimal64 __builtin_denbcd (int, _Decimal64); + _Decimal128 __builtin_denbcdq (int, _Decimal128); + _Decimal64 __builtin_diex (_Decimal64, _Decimal64); + _Decimal128 _builtin_diexq (_Decimal128, _Decimal128); + _Decimal64 __builtin_dscli (_Decimal64, int); + _Decimal128 __builitn_dscliq (_Decimal128, int); + _Decimal64 __builtin_dscri (_Decimal64, int); + _Decimal128 __builitn_dscriq (_Decimal128, int); + unsigned long long __builtin_unpack_dec128 (_Decimal128, int); + _Decimal128 __builtin_pack_dec128 (unsigned long long, unsigned long long); + + The following built-in functions are available for the PowerPC family + of processors when the Vector Scalar (vsx) instruction set is available: + unsigned long long __builtin_unpack_vector_int128 (vector __int128_t, int); + vector __int128_t __builtin_pack_vector_int128 (unsigned long long, + unsigned long long); +  File: gcc.info, Node: PowerPC AltiVec/VSX Built-in Functions, Next: PowerPC Hardware Transactional Memory Built-in Functions, Prev: PowerPC Built-in Functions, Up: Target Builtins *************** and VECTOR __UINT128_T types, but the in *** 43758,43763 **** --- 43861,43877 ---- __int128_t vec_vsubuqm (__int128_t, __int128_t); __uint128_t vec_vsubuqm (__uint128_t, __uint128_t); + vector __int128_t __builtin_bcdadd (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_lt (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_eq (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_gt (vector __int128_t, vector__int128_t); + int __builtin_bcdadd_ov (vector __int128_t, vector__int128_t); + vector __int128_t bcdsub (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_lt (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_eq (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_gt (vector __int128_t, vector__int128_t); + int __builtin_bcdsub_ov (vector __int128_t, vector__int128_t); + If the cryptographic instructions are enabled ('-mcrypto' or '-mcpu=power8'), the following builtins are enabled. *************** look up both forms. *** 52544,52550 **** (line 940) * m32 <1>: RS/6000 and PowerPC Options. (line 274) ! * m32 <2>: SPARC Options. (line 250) * m32 <3>: TILE-Gx Options. (line 23) * m32 <4>: TILEPro Options. (line 13) * m32-bit: CRIS Options. (line 64) --- 52658,52664 ---- (line 940) * m32 <1>: RS/6000 and PowerPC Options. (line 274) ! * m32 <2>: SPARC Options. (line 256) * m32 <3>: TILE-Gx Options. (line 23) * m32 <4>: TILEPro Options. (line 13) * m32-bit: CRIS Options. (line 64) *************** look up both forms. *** 52579,52585 **** (line 274) * m64 <2>: S/390 and zSeries Options. (line 86) ! * m64 <3>: SPARC Options. (line 250) * m64 <4>: TILE-Gx Options. (line 23) * m64bit-doubles: RX Options. (line 10) * m68000: M680x0 Options. (line 93) --- 52693,52699 ---- (line 274) * m64 <2>: S/390 and zSeries Options. (line 86) ! * m64 <3>: SPARC Options. (line 256) * m64 <4>: TILE-Gx Options. (line 23) * m64bit-doubles: RX Options. (line 10) * m68000: M680x0 Options. (line 93) *************** look up both forms. *** 52788,52802 **** * mcaller-super-interworking: ARM Options. (line 292) * mcallgraph-data: MCore Options. (line 31) * mcase-vector-pcrel: ARC Options. (line 206) ! * mcbcond: SPARC Options. (line 217) * mcc-init: CRIS Options. (line 42) * mcfv4e: M680x0 Options. (line 169) * mcheck-zero-division: MIPS Options. (line 503) * mcix: DEC Alpha Options. (line 163) * mcld: i386 and x86-64 Options. (line 672) * mclip: MeP Options. (line 35) ! * mcmodel: SPARC Options. (line 255) * mcmodel=kernel: i386 and x86-64 Options. (line 971) * mcmodel=large: AArch64 Options. (line 44) --- 52902,52917 ---- * mcaller-super-interworking: ARM Options. (line 292) * mcallgraph-data: MCore Options. (line 31) * mcase-vector-pcrel: ARC Options. (line 206) ! * mcbcond: SPARC Options. (line 223) * mcc-init: CRIS Options. (line 42) * mcfv4e: M680x0 Options. (line 169) * mcheck-zero-division: MIPS Options. (line 503) * mcix: DEC Alpha Options. (line 163) * mcld: i386 and x86-64 Options. (line 672) + * mclear-hwcap: Solaris 2 Options. (line 9) * mclip: MeP Options. (line 35) ! * mcmodel: SPARC Options. (line 261) * mcmodel=kernel: i386 and x86-64 Options. (line 971) * mcmodel=large: AArch64 Options. (line 44) *************** look up both forms. *** 52850,52856 **** * mcpu <8>: picoChip Options. (line 9) * mcpu <9>: RS/6000 and PowerPC Options. (line 68) ! * mcpu <10>: SPARC Options. (line 95) * mcpu <11>: TILE-Gx Options. (line 18) * mcpu <12>: TILEPro Options. (line 9) * mcpu32: M680x0 Options. (line 135) --- 52965,52971 ---- * mcpu <8>: picoChip Options. (line 9) * mcpu <9>: RS/6000 and PowerPC Options. (line 68) ! * mcpu <10>: SPARC Options. (line 101) * mcpu <11>: TILE-Gx Options. (line 18) * mcpu <12>: TILEPro Options. (line 9) * mcpu32: M680x0 Options. (line 135) *************** look up both forms. *** 52961,52981 **** * mfast-fp: Blackfin Options. (line 132) * mfast-indirect-calls: HPPA Options. (line 46) * mfast-sw-div: Nios II Options. (line 46) ! * mfaster-structs: SPARC Options. (line 85) * mfdpic: FRV Options. (line 72) * mfentry: i386 and x86-64 Options. (line 910) * mfix: DEC Alpha Options. (line 163) * mfix-24k: MIPS Options. (line 567) * mfix-and-continue: Darwin Options. (line 104) ! * mfix-at697f: SPARC Options. (line 237) * mfix-cortex-m3-ldrd: ARM Options. (line 325) * mfix-r10000: MIPS Options. (line 589) * mfix-r4000: MIPS Options. (line 573) * mfix-r4400: MIPS Options. (line 583) * mfix-rm7000: MIPS Options. (line 600) * mfix-sb1: MIPS Options. (line 625) ! * mfix-ut699: SPARC Options. (line 242) * mfix-vr4120: MIPS Options. (line 605) * mfix-vr4130: MIPS Options. (line 618) * mfixed-cc: FRV Options. (line 35) --- 53076,53096 ---- * mfast-fp: Blackfin Options. (line 132) * mfast-indirect-calls: HPPA Options. (line 46) * mfast-sw-div: Nios II Options. (line 46) ! * mfaster-structs: SPARC Options. (line 91) * mfdpic: FRV Options. (line 72) * mfentry: i386 and x86-64 Options. (line 910) * mfix: DEC Alpha Options. (line 163) * mfix-24k: MIPS Options. (line 567) * mfix-and-continue: Darwin Options. (line 104) ! * mfix-at697f: SPARC Options. (line 243) * mfix-cortex-m3-ldrd: ARM Options. (line 325) * mfix-r10000: MIPS Options. (line 589) * mfix-r4000: MIPS Options. (line 573) * mfix-r4400: MIPS Options. (line 583) * mfix-rm7000: MIPS Options. (line 600) * mfix-sb1: MIPS Options. (line 625) ! * mfix-ut699: SPARC Options. (line 248) * mfix-vr4120: MIPS Options. (line 605) * mfix-vr4130: MIPS Options. (line 618) * mfixed-cc: FRV Options. (line 35) *************** look up both forms. *** 52995,53001 **** * mflush-func: MIPS Options. (line 692) * mflush-func=NAME: M32R/D Options. (line 93) * mflush-trap=NUMBER: M32R/D Options. (line 86) ! * mfmaf: SPARC Options. (line 231) * mfmovd: SH Options. (line 96) * mforbid-fp-as-gp: NDS32 Options. (line 65) * mforce-fp-as-gp: NDS32 Options. (line 61) --- 53110,53116 ---- * mflush-func: MIPS Options. (line 692) * mflush-func=NAME: M32R/D Options. (line 93) * mflush-trap=NUMBER: M32R/D Options. (line 86) ! * mfmaf: SPARC Options. (line 237) * mfmovd: SH Options. (line 96) * mforbid-fp-as-gp: NDS32 Options. (line 65) * mforce-fp-as-gp: NDS32 Options. (line 61) *************** look up both forms. *** 53091,53096 **** --- 53206,53212 ---- * mhw-div: Nios II Options. (line 55) * mhw-mul: Nios II Options. (line 55) * mhw-mulx: Nios II Options. (line 55) + * mhwmult=: MSP430 Options. (line 56) * micplb: Blackfin Options. (line 177) * mid-shared-library: Blackfin Options. (line 80) * mieee: DEC Alpha Options. (line 39) *************** look up both forms. *** 53101,53107 **** * mieee-with-inexact: DEC Alpha Options. (line 52) * milp32: IA-64 Options. (line 121) * mimadd: MIPS Options. (line 543) ! * mimpure-text: Solaris 2 Options. (line 9) * mincoming-stack-boundary: i386 and x86-64 Options. (line 535) * mindexed-addressing: SH Options. (line 345) --- 53217,53223 ---- * mieee-with-inexact: DEC Alpha Options. (line 52) * milp32: IA-64 Options. (line 121) * mimadd: MIPS Options. (line 543) ! * mimpure-text: Solaris 2 Options. (line 15) * mincoming-stack-boundary: i386 and x86-64 Options. (line 535) * mindexed-addressing: SH Options. (line 345) *************** look up both forms. *** 53243,53249 **** * mmemcpy-strategy=STRATEGY: i386 and x86-64 Options. (line 871) * mmemory-latency: DEC Alpha Options. (line 268) ! * mmemory-model: SPARC Options. (line 283) * mmemset-strategy=STRATEGY: i386 and x86-64 Options. (line 883) * mmfcrf: RS/6000 and PowerPC Options. --- 53359,53365 ---- * mmemcpy-strategy=STRATEGY: i386 and x86-64 Options. (line 871) * mmemory-latency: DEC Alpha Options. (line 268) ! * mmemory-model: SPARC Options. (line 289) * mmemset-strategy=STRATEGY: i386 and x86-64 Options. (line 883) * mmfcrf: RS/6000 and PowerPC Options. *************** look up both forms. *** 53324,53330 **** * mno-bypass-cache: Nios II Options. (line 34) * mno-cache-volatile: Nios II Options. (line 40) * mno-callgraph-data: MCore Options. (line 31) ! * mno-cbcond: SPARC Options. (line 217) * mno-check-zero-division: MIPS Options. (line 503) * mno-cix: DEC Alpha Options. (line 163) * mno-clearbss: MicroBlaze Options. (line 16) --- 53440,53446 ---- * mno-bypass-cache: Nios II Options. (line 34) * mno-cache-volatile: Nios II Options. (line 40) * mno-callgraph-data: MCore Options. (line 31) ! * mno-cbcond: SPARC Options. (line 223) * mno-check-zero-division: MIPS Options. (line 503) * mno-cix: DEC Alpha Options. (line 163) * mno-clearbss: MicroBlaze Options. (line 16) *************** look up both forms. *** 53376,53382 **** * mno-fancy-math-387: i386 and x86-64 Options. (line 356) * mno-fast-sw-div: Nios II Options. (line 46) ! * mno-faster-structs: SPARC Options. (line 85) * mno-fix: DEC Alpha Options. (line 163) * mno-fix-24k: MIPS Options. (line 567) * mno-fix-r10000: MIPS Options. (line 589) --- 53492,53498 ---- * mno-fancy-math-387: i386 and x86-64 Options. (line 356) * mno-fast-sw-div: Nios II Options. (line 46) ! * mno-faster-structs: SPARC Options. (line 91) * mno-fix: DEC Alpha Options. (line 163) * mno-fix-24k: MIPS Options. (line 567) * mno-fix-r10000: MIPS Options. (line 589) *************** look up both forms. *** 53388,53394 **** * mno-float64: PDP-11 Options. (line 52) * mno-flush-func: M32R/D Options. (line 98) * mno-flush-trap: M32R/D Options. (line 90) ! * mno-fmaf: SPARC Options. (line 231) * mno-fp-in-toc: RS/6000 and PowerPC Options. (line 285) * mno-fp-regs: DEC Alpha Options. (line 25) --- 53504,53510 ---- * mno-float64: PDP-11 Options. (line 52) * mno-flush-func: M32R/D Options. (line 98) * mno-flush-trap: M32R/D Options. (line 90) ! * mno-fmaf: SPARC Options. (line 237) * mno-fp-in-toc: RS/6000 and PowerPC Options. (line 285) * mno-fp-regs: DEC Alpha Options. (line 25) *************** look up both forms. *** 53495,53501 **** * mno-pic: IA-64 Options. (line 26) * mno-pid: RX Options. (line 117) * mno-plt: MIPS Options. (line 189) ! * mno-popc: SPARC Options. (line 224) * mno-popcntb: RS/6000 and PowerPC Options. (line 27) * mno-popcntd: RS/6000 and PowerPC Options. --- 53611,53617 ---- * mno-pic: IA-64 Options. (line 26) * mno-pid: RX Options. (line 117) * mno-plt: MIPS Options. (line 189) ! * mno-popc: SPARC Options. (line 230) * mno-popcntb: RS/6000 and PowerPC Options. (line 27) * mno-popcntd: RS/6000 and PowerPC Options. *************** look up both forms. *** 53574,53580 **** * mno-sse: i386 and x86-64 Options. (line 629) * mno-stack-align: CRIS Options. (line 55) ! * mno-stack-bias: SPARC Options. (line 307) * mno-strict-align: M680x0 Options. (line 283) * mno-strict-align <1>: RS/6000 and PowerPC Options. (line 463) --- 53690,53696 ---- * mno-sse: i386 and x86-64 Options. (line 629) * mno-stack-align: CRIS Options. (line 55) ! * mno-stack-bias: SPARC Options. (line 313) * mno-strict-align: M680x0 Options. (line 283) * mno-strict-align <1>: RS/6000 and PowerPC Options. (line 463) *************** look up both forms. *** 53597,53610 **** * mno-uninit-const-in-rodata: MIPS Options. (line 458) * mno-update: RS/6000 and PowerPC Options. (line 410) * mno-v3push: NDS32 Options. (line 36) ! * mno-v8plus: SPARC Options. (line 188) * mno-vect-double: Adapteva Epiphany Options. (line 115) * mno-virt: MIPS Options. (line 367) ! * mno-vis: SPARC Options. (line 195) ! * mno-vis2: SPARC Options. (line 201) ! * mno-vis3: SPARC Options. (line 209) * mno-vliw-branch: FRV Options. (line 208) * mno-volatile-asm-stop: IA-64 Options. (line 32) * mno-volatile-cache: ARC Options. (line 188) --- 53713,53727 ---- * mno-uninit-const-in-rodata: MIPS Options. (line 458) * mno-update: RS/6000 and PowerPC Options. (line 410) + * mno-user-mode: SPARC Options. (line 85) * mno-v3push: NDS32 Options. (line 36) ! * mno-v8plus: SPARC Options. (line 194) * mno-vect-double: Adapteva Epiphany Options. (line 115) * mno-virt: MIPS Options. (line 367) ! * mno-vis: SPARC Options. (line 201) ! * mno-vis2: SPARC Options. (line 207) ! * mno-vis3: SPARC Options. (line 215) * mno-vliw-branch: FRV Options. (line 208) * mno-volatile-asm-stop: IA-64 Options. (line 32) * mno-volatile-cache: ARC Options. (line 188) *************** look up both forms. *** 53670,53676 **** * mpointers-to-nested-functions: RS/6000 and PowerPC Options. (line 868) * mpoke-function-name: ARM Options. (line 244) ! * mpopc: SPARC Options. (line 224) * mpopcntb: RS/6000 and PowerPC Options. (line 27) * mpopcntd: RS/6000 and PowerPC Options. --- 53787,53793 ---- * mpointers-to-nested-functions: RS/6000 and PowerPC Options. (line 868) * mpoke-function-name: ARM Options. (line 244) ! * mpopc: SPARC Options. (line 230) * mpopcntb: RS/6000 and PowerPC Options. (line 27) * mpopcntd: RS/6000 and PowerPC Options. *************** look up both forms. *** 53896,53902 **** * msseregparm: i386 and x86-64 Options. (line 462) * mstack-align: CRIS Options. (line 55) ! * mstack-bias: SPARC Options. (line 307) * mstack-check-l1: Blackfin Options. (line 76) * mstack-guard: S/390 and zSeries Options. (line 154) --- 54013,54019 ---- * msseregparm: i386 and x86-64 Options. (line 462) * mstack-align: CRIS Options. (line 55) ! * mstack-bias: SPARC Options. (line 313) * mstack-check-l1: Blackfin Options. (line 76) * mstack-guard: S/390 and zSeries Options. (line 154) *************** look up both forms. *** 53982,53988 **** (line 110) * mtune <12>: S/390 and zSeries Options. (line 122) ! * mtune <13>: SPARC Options. (line 174) * mtune-ctrl=FEATURE-LIST: i386 and x86-64 Options. (line 658) * mucb-mcount: ARC Options. (line 179) --- 54099,54105 ---- (line 110) * mtune <12>: S/390 and zSeries Options. (line 122) ! * mtune <13>: SPARC Options. (line 180) * mtune-ctrl=FEATURE-LIST: i386 and x86-64 Options. (line 658) * mucb-mcount: ARC Options. (line 179) *************** look up both forms. *** 54007,54012 **** --- 54124,54130 ---- * mupdate: RS/6000 and PowerPC Options. (line 410) * muser-enabled: LM32 Options. (line 21) + * muser-mode: SPARC Options. (line 85) * musermode: SH Options. (line 228) * mv3push: NDS32 Options. (line 33) * mv850: V850 Options. (line 49) *************** look up both forms. *** 54017,54023 **** * mv850e2v4: V850 Options. (line 57) * mv850e3v5: V850 Options. (line 52) * mv850es: V850 Options. (line 75) ! * mv8plus: SPARC Options. (line 188) * mveclibabi: i386 and x86-64 Options. (line 776) * mveclibabi <1>: RS/6000 and PowerPC Options. --- 54135,54141 ---- * mv850e2v4: V850 Options. (line 57) * mv850e3v5: V850 Options. (line 52) * mv850es: V850 Options. (line 75) ! * mv8plus: SPARC Options. (line 194) * mveclibabi: i386 and x86-64 Options. (line 776) * mveclibabi <1>: RS/6000 and PowerPC Options. *************** look up both forms. *** 54025,54033 **** * mvect8-ret-in-mem: i386 and x86-64 Options. (line 472) * mvirt: MIPS Options. (line 367) ! * mvis: SPARC Options. (line 195) ! * mvis2: SPARC Options. (line 201) ! * mvis3: SPARC Options. (line 209) * mvliw-branch: FRV Options. (line 201) * mvms-return-codes: VMS Options. (line 9) * mvolatile-asm-stop: IA-64 Options. (line 32) --- 54143,54151 ---- * mvect8-ret-in-mem: i386 and x86-64 Options. (line 472) * mvirt: MIPS Options. (line 367) ! * mvis: SPARC Options. (line 201) ! * mvis2: SPARC Options. (line 207) ! * mvis3: SPARC Options. (line 215) * mvliw-branch: FRV Options. (line 201) * mvms-return-codes: VMS Options. (line 9) * mvolatile-asm-stop: IA-64 Options. (line 32) *************** look up both forms. *** 54157,54164 **** * private_bundle: Darwin Options. (line 196) * pthread: RS/6000 and PowerPC Options. (line 792) ! * pthread <1>: Solaris 2 Options. (line 30) ! * pthreads: Solaris 2 Options. (line 24) * Q: Debugging Options. (line 422) * Qn: System V Options. (line 18) * Qy: System V Options. (line 14) --- 54275,54282 ---- * private_bundle: Darwin Options. (line 196) * pthread: RS/6000 and PowerPC Options. (line 792) ! * pthread <1>: Solaris 2 Options. (line 36) ! * pthreads: Solaris 2 Options. (line 30) * Q: Debugging Options. (line 422) * Qn: System V Options. (line 18) * Qy: System V Options. (line 14) *************** Node: G++ and GCC3629 *** 56595,56908 **** Node: Standards5686 Node: Invoking GCC17845 Node: Option Summary21590 ! Node: Overall Options63276 ! Node: Invoking G++77463 ! Node: C Dialect Options78986 ! Node: C++ Dialect Options95984 ! Node: Objective-C and Objective-C++ Dialect Options126529 ! Node: Language Independent Options137036 ! Node: Warning Options141536 ! Node: Debugging Options211575 ! Node: Optimize Options271636 ! Ref: Type-punning331182 ! Node: Preprocessor Options413934 ! Ref: Wtrigraphs418717 ! Ref: dashMF423467 ! Ref: fdollars-in-identifiers434348 ! Node: Assembler Options444573 ! Node: Link Options445264 ! Ref: Link Options-Footnote-1457404 ! Node: Directory Options457740 ! Node: Spec Files464284 ! Node: Target Options486113 ! Node: Submodel Options486512 ! Node: AArch64 Options488278 ! Node: Adapteva Epiphany Options493403 ! Node: ARC Options499351 ! Node: ARM Options511795 ! Node: AVR Options529093 ! Node: Blackfin Options549318 ! Node: C6X Options557336 ! Node: CRIS Options558879 ! Node: CR16 Options562618 ! Node: Darwin Options563529 ! Node: DEC Alpha Options570963 ! Node: FR30 Options582579 ! Node: FRV Options583143 ! Node: GNU/Linux Options589907 ! Node: H8/300 Options591167 ! Node: HPPA Options592619 ! Node: i386 and x86-64 Options601921 ! Node: i386 and x86-64 Windows Options643992 ! Node: IA-64 Options646845 ! Node: LM32 Options654911 ! Node: M32C Options655434 ! Node: M32R/D Options656707 ! Node: M680x0 Options660252 ! Node: MCore Options674287 ! Node: MeP Options675789 ! Node: MicroBlaze Options679749 ! Node: MIPS Options682551 ! Node: MMIX Options714436 ! Node: MN10300 Options716913 ! Node: Moxie Options719454 ! Node: MSP430 Options719824 ! Node: NDS32 Options721913 ! Node: Nios II Options723793 ! Node: PDP-11 Options732258 ! Node: picoChip Options733952 ! Node: PowerPC Options736090 ! Node: RL78 Options736311 ! Node: RS/6000 and PowerPC Options736972 ! Node: RX Options775902 ! Node: S/390 and zSeries Options783234 ! Node: Score Options791781 ! Node: SH Options792630 ! Node: Solaris 2 Options811301 ! Node: SPARC Options812531 ! Node: SPU Options825566 ! Node: System V Options830505 ! Node: TILE-Gx Options831331 ! Node: TILEPro Options832349 ! Node: V850 Options832853 ! Node: VAX Options839561 ! Node: VMS Options840096 ! Node: VxWorks Options840909 ! Node: x86-64 Options842064 ! Node: Xstormy16 Options842282 ! Node: Xtensa Options842571 ! Node: zSeries Options846882 ! Node: Code Gen Options847078 ! Node: Environment Variables877946 ! Node: Precompiled Headers885949 ! Node: C Implementation891952 ! Node: Translation implementation893642 ! Node: Environment implementation894233 ! Node: Identifiers implementation894787 ! Node: Characters implementation895873 ! Node: Integers implementation899523 ! Node: Floating point implementation901408 ! Node: Arrays and pointers implementation904471 ! Ref: Arrays and pointers implementation-Footnote-1905931 ! Node: Hints implementation906057 ! Node: Structures unions enumerations and bit-fields implementation907542 ! Node: Qualifiers implementation909766 ! Node: Declarators implementation911546 ! Node: Statements implementation911887 ! Node: Preprocessing directives implementation912213 ! Node: Library functions implementation914534 ! Node: Architecture implementation915183 ! Node: Locale-specific behavior implementation916828 ! Node: C++ Implementation917133 ! Node: Conditionally-supported behavior918416 ! Node: Exception handling918925 ! Node: C Extensions919333 ! Node: Statement Exprs924403 ! Node: Local Labels928880 ! Node: Labels as Values931853 ! Ref: Labels as Values-Footnote-1934254 ! Node: Nested Functions934439 ! Node: Constructing Calls938397 ! Node: Typeof943114 ! Node: Conditionals947496 ! Node: __int128948385 ! Node: Long Long948910 ! Node: Complex950386 ! Node: Floating Types952974 ! Node: Half-Precision954102 ! Node: Decimal Float956287 ! Node: Hex Floats958143 ! Node: Fixed-Point959180 ! Node: Named Address Spaces962440 ! Ref: AVR Named Address Spaces963121 ! Node: Zero Length968329 ! Node: Empty Structures971616 ! Node: Variable Length972022 ! Node: Variadic Macros974878 ! Node: Escaped Newlines977256 ! Node: Subscripting978095 ! Node: Pointer Arith978820 ! Node: Initializers979388 ! Node: Compound Literals979884 ! Node: Designated Inits983245 ! Node: Case Ranges986983 ! Node: Cast to Union987664 ! Node: Mixed Declarations988754 ! Node: Function Attributes989264 ! Node: Attribute Syntax1083847 ! Node: Function Prototypes1094237 ! Node: C++ Comments1096017 ! Node: Dollar Signs1096536 ! Node: Character Escapes1097001 ! Node: Variable Attributes1097295 ! Ref: AVR Variable Attributes1110970 ! Ref: MeP Variable Attributes1113632 ! Ref: i386 Variable Attributes1115568 ! Node: Type Attributes1121229 ! Ref: MeP Type Attributes1135117 ! Ref: i386 Type Attributes1135391 ! Ref: PowerPC Type Attributes1136083 ! Ref: SPU Type Attributes1136945 ! Node: Alignment1137236 ! Node: Inline1138606 ! Node: Volatiles1143582 ! Node: Extended Asm1146463 ! Ref: Example of asm with clobbered asm reg1152367 ! Ref: Extended asm with goto1162080 ! Node: Constraints1169930 ! Node: Simple Constraints1171014 ! Node: Multi-Alternative1178324 ! Node: Modifiers1180041 ! Node: Machine Constraints1183054 ! Node: Asm Labels1240008 ! Node: Explicit Reg Vars1241684 ! Node: Global Reg Vars1243282 ! Node: Local Reg Vars1247778 ! Node: Alternate Keywords1250194 ! Node: Incomplete Enums1251680 ! Node: Function Names1252436 ! Node: Return Address1254597 ! Node: Vector Extensions1258104 ! Node: Offsetof1265033 ! Node: __sync Builtins1265838 ! Node: __atomic Builtins1271307 ! Node: x86 specific memory model extensions for transactional memory1282941 ! Node: Object Size Checking1284203 ! Node: Cilk Plus Builtins1289696 ! Node: Other Builtins1290565 ! Node: Target Builtins1319872 ! Node: Alpha Built-in Functions1321291 ! Node: Altera Nios II Built-in Functions1324304 ! Node: ARC Built-in Functions1328291 ! Node: ARC SIMD Built-in Functions1333503 ! Node: ARM iWMMXt Built-in Functions1342399 ! Node: ARM NEON Intrinsics1349382 ! Node: ARM ACLE Intrinsics1566876 ! Node: AVR Built-in Functions1568257 ! Node: Blackfin Built-in Functions1571335 ! Node: FR-V Built-in Functions1571952 ! Node: Argument Types1572815 ! Node: Directly-mapped Integer Functions1574569 ! Node: Directly-mapped Media Functions1575653 ! Node: Raw read/write Functions1583859 ! Node: Other Built-in Functions1584767 ! Node: X86 Built-in Functions1585953 ! Node: X86 transactional memory intrinsics1645162 ! Node: MIPS DSP Built-in Functions1647838 ! Node: MIPS Paired-Single Support1660347 ! Node: MIPS Loongson Built-in Functions1661846 ! Node: Paired-Single Arithmetic1668361 ! Node: Paired-Single Built-in Functions1669309 ! Node: MIPS-3D Built-in Functions1671976 ! Node: Other MIPS Built-in Functions1677354 ! Node: MSP430 Built-in Functions1678359 ! Node: NDS32 Built-in Functions1679263 ! Node: picoChip Built-in Functions1680556 ! Node: PowerPC Built-in Functions1681899 ! Node: PowerPC AltiVec/VSX Built-in Functions1683314 ! Node: PowerPC Hardware Transactional Memory Built-in Functions1815519 ! Node: RX Built-in Functions1822060 ! Node: S/390 System z Built-in Functions1826093 ! Node: SH Built-in Functions1831322 ! Node: SPARC VIS Built-in Functions1832714 ! Node: SPU Built-in Functions1838317 ! Node: TI C6X Built-in Functions1840134 ! Node: TILE-Gx Built-in Functions1841158 ! Node: TILEPro Built-in Functions1842275 ! Node: Target Format Checks1843342 ! Node: Solaris Format Checks1843774 ! Node: Darwin Format Checks1844200 ! Node: Pragmas1845018 ! Node: ARM Pragmas1845754 ! Node: M32C Pragmas1846357 ! Node: MeP Pragmas1847429 ! Node: RS/6000 and PowerPC Pragmas1849497 ! Node: Darwin Pragmas1850238 ! Node: Solaris Pragmas1851305 ! Node: Symbol-Renaming Pragmas1852469 ! Node: Structure-Packing Pragmas1854025 ! Node: Weak Pragmas1855670 ! Node: Diagnostic Pragmas1856404 ! Node: Visibility Pragmas1859513 ! Node: Push/Pop Macro Pragmas1860265 ! Node: Function Specific Option Pragmas1861238 ! Node: Loop-Specific Pragmas1863429 ! Node: Unnamed Fields1864528 ! Node: Thread-Local1866755 ! Node: C99 Thread-Local Edits1868860 ! Node: C++98 Thread-Local Edits1870858 ! Node: Binary constants1874303 ! Node: C++ Extensions1874974 ! Node: C++ Volatiles1876685 ! Node: Restricted Pointers1879033 ! Node: Vague Linkage1880624 ! Node: C++ Interface1884247 ! Ref: C++ Interface-Footnote-11888535 ! Node: Template Instantiation1888673 ! Node: Bound member functions1895259 ! Node: C++ Attributes1896791 ! Node: Function Multiversioning1900370 ! Node: Namespace Association1902187 ! Node: Type Traits1903567 ! Node: Java Exceptions1910050 ! Node: Deprecated Features1911440 ! Node: Backwards Compatibility1914407 ! Node: Objective-C1915754 ! Node: GNU Objective-C runtime API1916361 ! Node: Modern GNU Objective-C runtime API1917368 ! Node: Traditional GNU Objective-C runtime API1919804 ! Node: Executing code before main1920531 ! Node: What you can and what you cannot do in +load1923269 ! Node: Type encoding1925657 ! Node: Legacy type encoding1930684 ! Node: @encode1931774 ! Node: Method signatures1932315 ! Node: Garbage Collection1934307 ! Node: Constant string objects1936996 ! Node: compatibility_alias1939504 ! Node: Exceptions1940225 ! Node: Synchronization1942935 ! Node: Fast enumeration1944119 ! Node: Using fast enumeration1944431 ! Node: c99-like fast enumeration syntax1945642 ! Node: Fast enumeration details1946345 ! Node: Fast enumeration protocol1948685 ! Node: Messaging with the GNU Objective-C runtime1951837 ! Node: Dynamically registering methods1953209 ! Node: Forwarding hook1954900 ! Node: Compatibility1957940 ! Node: Gcov1964496 ! Node: Gcov Intro1965029 ! Node: Invoking Gcov1967747 ! Node: Gcov and Optimization1981987 ! Node: Gcov Data Files1984989 ! Node: Cross-profiling1986384 ! Node: Trouble1988238 ! Node: Actual Bugs1989650 ! Node: Interoperation1990097 ! Node: Incompatibilities1996988 ! Node: Fixed Headers2005140 ! Node: Standard Libraries2006798 ! Node: Disappointments2008170 ! Node: C++ Misunderstandings2012529 ! Node: Static Definitions2013340 ! Node: Name lookup2014393 ! Ref: Name lookup-Footnote-12019173 ! Node: Temporaries2019362 ! Node: Copy Assignment2021338 ! Node: Non-bugs2023145 ! Node: Warnings and Errors2033651 ! Node: Bugs2035413 ! Node: Bug Criteria2035880 ! Node: Bug Reporting2038090 ! Node: Service2038311 ! Node: Contributing2039130 ! Node: Funding2039870 ! Node: GNU Project2042360 ! Node: Copying2043006 ! Node: GNU Free Documentation License2080514 ! Node: Contributors2105631 ! Node: Option Index2143500 ! Node: Keyword Index2353567  End Tag Table --- 56713,57026 ---- Node: Standards5686 Node: Invoking GCC17845 Node: Option Summary21590 ! Node: Overall Options63365 ! Node: Invoking G++77552 ! Node: C Dialect Options79075 ! Node: C++ Dialect Options96073 ! Node: Objective-C and Objective-C++ Dialect Options126618 ! Node: Language Independent Options137125 ! Node: Warning Options141625 ! Node: Debugging Options211664 ! Node: Optimize Options271725 ! Ref: Type-punning331285 ! Node: Preprocessor Options415022 ! Ref: Wtrigraphs419805 ! Ref: dashMF424555 ! Ref: fdollars-in-identifiers435436 ! Node: Assembler Options445661 ! Node: Link Options446352 ! Ref: Link Options-Footnote-1458492 ! Node: Directory Options458828 ! Node: Spec Files465372 ! Node: Target Options487201 ! Node: Submodel Options487600 ! Node: AArch64 Options489366 ! Node: Adapteva Epiphany Options494491 ! Node: ARC Options500439 ! Node: ARM Options512883 ! Node: AVR Options530181 ! Node: Blackfin Options550406 ! Node: C6X Options558424 ! Node: CRIS Options559967 ! Node: CR16 Options563706 ! Node: Darwin Options564617 ! Node: DEC Alpha Options572051 ! Node: FR30 Options583667 ! Node: FRV Options584231 ! Node: GNU/Linux Options590995 ! Node: H8/300 Options592255 ! Node: HPPA Options593707 ! Node: i386 and x86-64 Options603009 ! Node: i386 and x86-64 Windows Options645080 ! Node: IA-64 Options647933 ! Node: LM32 Options655999 ! Node: M32C Options656522 ! Node: M32R/D Options657795 ! Node: M680x0 Options661340 ! Node: MCore Options675375 ! Node: MeP Options676877 ! Node: MicroBlaze Options680837 ! Node: MIPS Options683639 ! Node: MMIX Options715524 ! Node: MN10300 Options718001 ! Node: Moxie Options720542 ! Node: MSP430 Options720912 ! Node: NDS32 Options724135 ! Node: Nios II Options726015 ! Node: PDP-11 Options734480 ! Node: picoChip Options736174 ! Node: PowerPC Options738312 ! Node: RL78 Options738533 ! Node: RS/6000 and PowerPC Options739194 ! Node: RX Options778124 ! Node: S/390 and zSeries Options785456 ! Node: Score Options794003 ! Node: SH Options794852 ! Node: Solaris 2 Options813523 ! Node: SPARC Options815045 ! Node: SPU Options828303 ! Node: System V Options833242 ! Node: TILE-Gx Options834068 ! Node: TILEPro Options835086 ! Node: V850 Options835590 ! Node: VAX Options842298 ! Node: VMS Options842833 ! Node: VxWorks Options843646 ! Node: x86-64 Options844801 ! Node: Xstormy16 Options845019 ! Node: Xtensa Options845308 ! Node: zSeries Options849619 ! Node: Code Gen Options849815 ! Node: Environment Variables880683 ! Node: Precompiled Headers888686 ! Node: C Implementation894689 ! Node: Translation implementation896379 ! Node: Environment implementation896970 ! Node: Identifiers implementation897524 ! Node: Characters implementation898610 ! Node: Integers implementation902260 ! Node: Floating point implementation904145 ! Node: Arrays and pointers implementation907208 ! Ref: Arrays and pointers implementation-Footnote-1908668 ! Node: Hints implementation908794 ! Node: Structures unions enumerations and bit-fields implementation910279 ! Node: Qualifiers implementation912503 ! Node: Declarators implementation914283 ! Node: Statements implementation914624 ! Node: Preprocessing directives implementation914950 ! Node: Library functions implementation917271 ! Node: Architecture implementation917920 ! Node: Locale-specific behavior implementation919565 ! Node: C++ Implementation919870 ! Node: Conditionally-supported behavior921153 ! Node: Exception handling921662 ! Node: C Extensions922070 ! Node: Statement Exprs927140 ! Node: Local Labels931617 ! Node: Labels as Values934590 ! Ref: Labels as Values-Footnote-1937117 ! Node: Nested Functions937302 ! Node: Constructing Calls941260 ! Node: Typeof945977 ! Node: Conditionals950359 ! Node: __int128951248 ! Node: Long Long951773 ! Node: Complex953249 ! Node: Floating Types955837 ! Node: Half-Precision956965 ! Node: Decimal Float959150 ! Node: Hex Floats961006 ! Node: Fixed-Point962043 ! Node: Named Address Spaces965303 ! Ref: AVR Named Address Spaces965984 ! Node: Zero Length971192 ! Node: Empty Structures974479 ! Node: Variable Length974885 ! Node: Variadic Macros977741 ! Node: Escaped Newlines980119 ! Node: Subscripting980958 ! Node: Pointer Arith981683 ! Node: Initializers982251 ! Node: Compound Literals982747 ! Node: Designated Inits986108 ! Node: Case Ranges989846 ! Node: Cast to Union990527 ! Node: Mixed Declarations991617 ! Node: Function Attributes992127 ! Node: Attribute Syntax1086710 ! Node: Function Prototypes1097100 ! Node: C++ Comments1098880 ! Node: Dollar Signs1099399 ! Node: Character Escapes1099864 ! Node: Variable Attributes1100158 ! Ref: AVR Variable Attributes1113833 ! Ref: MeP Variable Attributes1116495 ! Ref: i386 Variable Attributes1118431 ! Node: Type Attributes1124092 ! Ref: MeP Type Attributes1137980 ! Ref: i386 Type Attributes1138254 ! Ref: PowerPC Type Attributes1138946 ! Ref: SPU Type Attributes1139808 ! Node: Alignment1140099 ! Node: Inline1141469 ! Node: Volatiles1146445 ! Node: Extended Asm1149326 ! Ref: Example of asm with clobbered asm reg1155230 ! Ref: Extended asm with goto1164943 ! Node: Constraints1172793 ! Node: Simple Constraints1173877 ! Node: Multi-Alternative1181187 ! Node: Modifiers1182904 ! Node: Machine Constraints1185917 ! Node: Asm Labels1242871 ! Node: Explicit Reg Vars1244547 ! Node: Global Reg Vars1246145 ! Node: Local Reg Vars1250641 ! Node: Alternate Keywords1253057 ! Node: Incomplete Enums1254543 ! Node: Function Names1255299 ! Node: Return Address1257460 ! Node: Vector Extensions1260967 ! Node: Offsetof1267896 ! Node: __sync Builtins1268701 ! Node: __atomic Builtins1274170 ! Node: x86 specific memory model extensions for transactional memory1285804 ! Node: Object Size Checking1287066 ! Node: Cilk Plus Builtins1292559 ! Node: Other Builtins1293428 ! Node: Target Builtins1322735 ! Node: Alpha Built-in Functions1324154 ! Node: Altera Nios II Built-in Functions1327167 ! Node: ARC Built-in Functions1331154 ! Node: ARC SIMD Built-in Functions1336366 ! Node: ARM iWMMXt Built-in Functions1345262 ! Node: ARM NEON Intrinsics1352245 ! Node: ARM ACLE Intrinsics1569739 ! Node: AVR Built-in Functions1571067 ! Node: Blackfin Built-in Functions1574145 ! Node: FR-V Built-in Functions1574762 ! Node: Argument Types1575625 ! Node: Directly-mapped Integer Functions1577379 ! Node: Directly-mapped Media Functions1578463 ! Node: Raw read/write Functions1586669 ! Node: Other Built-in Functions1587577 ! Node: X86 Built-in Functions1588763 ! Node: X86 transactional memory intrinsics1647954 ! Node: MIPS DSP Built-in Functions1650630 ! Node: MIPS Paired-Single Support1663139 ! Node: MIPS Loongson Built-in Functions1664638 ! Node: Paired-Single Arithmetic1671153 ! Node: Paired-Single Built-in Functions1672101 ! Node: MIPS-3D Built-in Functions1674768 ! Node: Other MIPS Built-in Functions1680146 ! Node: MSP430 Built-in Functions1681151 ! Node: NDS32 Built-in Functions1682055 ! Node: picoChip Built-in Functions1683348 ! Node: PowerPC Built-in Functions1684691 ! Node: PowerPC AltiVec/VSX Built-in Functions1688400 ! Node: PowerPC Hardware Transactional Memory Built-in Functions1821298 ! Node: RX Built-in Functions1827839 ! Node: S/390 System z Built-in Functions1831872 ! Node: SH Built-in Functions1837101 ! Node: SPARC VIS Built-in Functions1838493 ! Node: SPU Built-in Functions1844096 ! Node: TI C6X Built-in Functions1845913 ! Node: TILE-Gx Built-in Functions1846937 ! Node: TILEPro Built-in Functions1848054 ! Node: Target Format Checks1849121 ! Node: Solaris Format Checks1849553 ! Node: Darwin Format Checks1849979 ! Node: Pragmas1850797 ! Node: ARM Pragmas1851533 ! Node: M32C Pragmas1852136 ! Node: MeP Pragmas1853208 ! Node: RS/6000 and PowerPC Pragmas1855276 ! Node: Darwin Pragmas1856017 ! Node: Solaris Pragmas1857084 ! Node: Symbol-Renaming Pragmas1858248 ! Node: Structure-Packing Pragmas1859804 ! Node: Weak Pragmas1861449 ! Node: Diagnostic Pragmas1862183 ! Node: Visibility Pragmas1865292 ! Node: Push/Pop Macro Pragmas1866044 ! Node: Function Specific Option Pragmas1867017 ! Node: Loop-Specific Pragmas1869208 ! Node: Unnamed Fields1870307 ! Node: Thread-Local1872534 ! Node: C99 Thread-Local Edits1874639 ! Node: C++98 Thread-Local Edits1876637 ! Node: Binary constants1880082 ! Node: C++ Extensions1880753 ! Node: C++ Volatiles1882464 ! Node: Restricted Pointers1884812 ! Node: Vague Linkage1886403 ! Node: C++ Interface1890026 ! Ref: C++ Interface-Footnote-11894314 ! Node: Template Instantiation1894452 ! Node: Bound member functions1901038 ! Node: C++ Attributes1902570 ! Node: Function Multiversioning1906149 ! Node: Namespace Association1907966 ! Node: Type Traits1909346 ! Node: Java Exceptions1915829 ! Node: Deprecated Features1917219 ! Node: Backwards Compatibility1920186 ! Node: Objective-C1921533 ! Node: GNU Objective-C runtime API1922140 ! Node: Modern GNU Objective-C runtime API1923147 ! Node: Traditional GNU Objective-C runtime API1925583 ! Node: Executing code before main1926310 ! Node: What you can and what you cannot do in +load1929048 ! Node: Type encoding1931436 ! Node: Legacy type encoding1936463 ! Node: @encode1937553 ! Node: Method signatures1938094 ! Node: Garbage Collection1940086 ! Node: Constant string objects1942775 ! Node: compatibility_alias1945283 ! Node: Exceptions1946004 ! Node: Synchronization1948714 ! Node: Fast enumeration1949898 ! Node: Using fast enumeration1950210 ! Node: c99-like fast enumeration syntax1951421 ! Node: Fast enumeration details1952124 ! Node: Fast enumeration protocol1954464 ! Node: Messaging with the GNU Objective-C runtime1957616 ! Node: Dynamically registering methods1958988 ! Node: Forwarding hook1960679 ! Node: Compatibility1963719 ! Node: Gcov1970275 ! Node: Gcov Intro1970808 ! Node: Invoking Gcov1973526 ! Node: Gcov and Optimization1987766 ! Node: Gcov Data Files1990768 ! Node: Cross-profiling1992163 ! Node: Trouble1994017 ! Node: Actual Bugs1995429 ! Node: Interoperation1995876 ! Node: Incompatibilities2002767 ! Node: Fixed Headers2010919 ! Node: Standard Libraries2012577 ! Node: Disappointments2013949 ! Node: C++ Misunderstandings2018308 ! Node: Static Definitions2019119 ! Node: Name lookup2020172 ! Ref: Name lookup-Footnote-12024952 ! Node: Temporaries2025141 ! Node: Copy Assignment2027117 ! Node: Non-bugs2028924 ! Node: Warnings and Errors2039430 ! Node: Bugs2041192 ! Node: Bug Criteria2041659 ! Node: Bug Reporting2043869 ! Node: Service2044090 ! Node: Contributing2044909 ! Node: Funding2045649 ! Node: GNU Project2048139 ! Node: Copying2048785 ! Node: GNU Free Documentation License2086293 ! Node: Contributors2111410 ! Node: Option Index2149279 ! Node: Keyword Index2359638  End Tag Table diff -Nrcpad gcc-4.9.0/gcc/doc/gccinstall.info gcc-4.9.1/gcc/doc/gccinstall.info *** gcc-4.9.0/gcc/doc/gccinstall.info Tue Apr 22 10:38:28 2014 --- gcc-4.9.1/gcc/doc/gccinstall.info Wed Jul 16 11:00:37 2014 *************** information collected. *** 2266,2274 **** Unlike standard bootstrap, several additional restrictions apply. The compiler used to build 'stage1' needs to support a 64-bit integral ! type. It is recommended to only use GCC for this. Also parallel make ! is currently not supported since collisions in profile collecting may ! occur.  File: gccinstall.info, Node: Testing, Next: Final install, Prev: Building, Up: Installing GCC --- 2266,2272 ---- Unlike standard bootstrap, several additional restrictions apply. The compiler used to build 'stage1' needs to support a 64-bit integral ! type. It is recommended to only use GCC for this.  File: gccinstall.info, Node: Testing, Next: Final install, Prev: Building, Up: Installing GCC *************** makers. *** 2604,2613 **** * SCO OpenServer/Unixware. * Solaris 2 (SPARC, Intel): - * Sunfreeware - - * Blastwave - * OpenCSW * TGCware --- 2602,2607 ---- *************** the system libunwind library will always *** 3085,3093 **** aarch64*-*-* ============ ! Pre 2.24 binutils does not have support for selecting -mabi and does not ! support ILP32. If GCC 4.9 or later is built with pre 2.24, GCC will not ! support option -mabi=ilp32. *-ibm-aix* ========== --- 3079,3087 ---- aarch64*-*-* ============ ! Binutils pre 2.24 does not have support for selecting '-mabi' and does ! not support ILP32. If it is used to build GCC 4.9 or later, GCC will ! not support option '-mabi=ilp32'. *-ibm-aix* ========== *************** Ref: with-gnu-as32585 *** 4589,4679 **** Ref: with-as33480 Ref: with-gnu-ld34893 Node: Building84585 ! Node: Testing100052 ! Node: Final install107914 ! Node: Binaries113225 ! Node: Specific114733 ! Ref: alpha-x-x115240 ! Ref: alpha-dec-osf51115729 ! Ref: amd64-x-solaris210116254 ! Ref: arc-x-elf32116357 ! Ref: arc-linux-uclibc116533 ! Ref: arm-x-eabi116674 ! Ref: avr116885 ! Ref: bfin117524 ! Ref: cr16117765 ! Ref: cris118181 ! Ref: dos118996 ! Ref: epiphany-x-elf119319 ! Ref: x-x-freebsd119424 ! Ref: h8300-hms121260 ! Ref: hppa-hp-hpux121612 ! Ref: hppa-hp-hpux10123984 ! Ref: hppa-hp-hpux11124397 ! Ref: x-x-linux-gnu130056 ! Ref: ix86-x-linux130249 ! Ref: ix86-x-solaris29130562 ! Ref: ix86-x-solaris210131341 ! Ref: ia64-x-linux132532 ! Ref: ia64-x-hpux133302 ! Ref: aarch64-x-x133857 ! Ref: x-ibm-aix134059 ! Ref: iq2000-x-elf140922 ! Ref: lm32-x-elf141062 ! Ref: lm32-x-uclinux141166 ! Ref: m32c-x-elf141294 ! Ref: m32r-x-elf141396 ! Ref: m68k-x-x141498 ! Ref: m68k-x-uclinux142536 ! Ref: mep-x-elf142781 ! Ref: microblaze-x-elf142891 ! Ref: mips-x-x143010 ! Ref: mips-sgi-irix5145404 ! Ref: mips-sgi-irix6145484 ! Ref: moxie-x-elf145671 ! Ref: msp430-x-elf145718 ! Ref: nds32le-x-elf145821 ! Ref: nds32be-x-elf145893 ! Ref: powerpc-x-x145962 ! Ref: powerpc-x-darwin146167 ! Ref: powerpc-x-elf146661 ! Ref: powerpc-x-linux-gnu146746 ! Ref: powerpc-x-netbsd146841 ! Ref: powerpc-x-eabisim146929 ! Ref: powerpc-x-eabi147055 ! Ref: powerpcle-x-elf147131 ! Ref: powerpcle-x-eabisim147223 ! Ref: powerpcle-x-eabi147356 ! Ref: rl78-x-elf147439 ! Ref: rx-x-elf147545 ! Ref: s390-x-linux147744 ! Ref: s390x-x-linux147816 ! Ref: s390x-ibm-tpf147903 ! Ref: x-x-solaris2148034 ! Ref: sparc-x-x152955 ! Ref: sparc-sun-solaris2153457 ! Ref: sparc-sun-solaris210156210 ! Ref: sparc-x-linux156585 ! Ref: sparc64-x-solaris2156810 ! Ref: sparcv9-x-solaris2157463 ! Ref: c6x-x-x157550 ! Ref: tilegx-*-linux157642 ! Ref: tilegxbe-*-linux157784 ! Ref: tilepro-*-linux157927 ! Ref: x-x-vxworks158048 ! Ref: x86-64-x-x159571 ! Ref: x86-64-x-solaris210159899 ! Ref: xtensa-x-elf160561 ! Ref: xtensa-x-linux161232 ! Ref: windows161573 ! Ref: x-x-cygwin163506 ! Ref: x-x-interix164059 ! Ref: x-x-mingw32164367 ! Ref: older164593 ! Ref: elf166710 ! Node: Old166968 ! Node: Configurations170101 ! Node: GNU Free Documentation License173639 ! Node: Concept Index198766  End Tag Table --- 4583,4673 ---- Ref: with-as33480 Ref: with-gnu-ld34893 Node: Building84585 ! Node: Testing99955 ! Node: Final install107817 ! Node: Binaries113128 ! Node: Specific114592 ! Ref: alpha-x-x115099 ! Ref: alpha-dec-osf51115588 ! Ref: amd64-x-solaris210116113 ! Ref: arc-x-elf32116216 ! Ref: arc-linux-uclibc116392 ! Ref: arm-x-eabi116533 ! Ref: avr116744 ! Ref: bfin117383 ! Ref: cr16117624 ! Ref: cris118040 ! Ref: dos118855 ! Ref: epiphany-x-elf119178 ! Ref: x-x-freebsd119283 ! Ref: h8300-hms121119 ! Ref: hppa-hp-hpux121471 ! Ref: hppa-hp-hpux10123843 ! Ref: hppa-hp-hpux11124256 ! Ref: x-x-linux-gnu129915 ! Ref: ix86-x-linux130108 ! Ref: ix86-x-solaris29130421 ! Ref: ix86-x-solaris210131200 ! Ref: ia64-x-linux132391 ! Ref: ia64-x-hpux133161 ! Ref: aarch64-x-x133716 ! Ref: x-ibm-aix133919 ! Ref: iq2000-x-elf140782 ! Ref: lm32-x-elf140922 ! Ref: lm32-x-uclinux141026 ! Ref: m32c-x-elf141154 ! Ref: m32r-x-elf141256 ! Ref: m68k-x-x141358 ! Ref: m68k-x-uclinux142396 ! Ref: mep-x-elf142641 ! Ref: microblaze-x-elf142751 ! Ref: mips-x-x142870 ! Ref: mips-sgi-irix5145264 ! Ref: mips-sgi-irix6145344 ! Ref: moxie-x-elf145531 ! Ref: msp430-x-elf145578 ! Ref: nds32le-x-elf145681 ! Ref: nds32be-x-elf145753 ! Ref: powerpc-x-x145822 ! Ref: powerpc-x-darwin146027 ! Ref: powerpc-x-elf146521 ! Ref: powerpc-x-linux-gnu146606 ! Ref: powerpc-x-netbsd146701 ! Ref: powerpc-x-eabisim146789 ! Ref: powerpc-x-eabi146915 ! Ref: powerpcle-x-elf146991 ! Ref: powerpcle-x-eabisim147083 ! Ref: powerpcle-x-eabi147216 ! Ref: rl78-x-elf147299 ! Ref: rx-x-elf147405 ! Ref: s390-x-linux147604 ! Ref: s390x-x-linux147676 ! Ref: s390x-ibm-tpf147763 ! Ref: x-x-solaris2147894 ! Ref: sparc-x-x152815 ! Ref: sparc-sun-solaris2153317 ! Ref: sparc-sun-solaris210156070 ! Ref: sparc-x-linux156445 ! Ref: sparc64-x-solaris2156670 ! Ref: sparcv9-x-solaris2157323 ! Ref: c6x-x-x157410 ! Ref: tilegx-*-linux157502 ! Ref: tilegxbe-*-linux157644 ! Ref: tilepro-*-linux157787 ! Ref: x-x-vxworks157908 ! Ref: x86-64-x-x159431 ! Ref: x86-64-x-solaris210159759 ! Ref: xtensa-x-elf160421 ! Ref: xtensa-x-linux161092 ! Ref: windows161433 ! Ref: x-x-cygwin163366 ! Ref: x-x-interix163919 ! Ref: x-x-mingw32164227 ! Ref: older164453 ! Ref: elf166570 ! Node: Old166828 ! Node: Configurations169961 ! Node: GNU Free Documentation License173499 ! Node: Concept Index198626  End Tag Table diff -Nrcpad gcc-4.9.0/gcc/doc/gccint.info gcc-4.9.1/gcc/doc/gccint.info *** gcc-4.9.0/gcc/doc/gccint.info Tue Apr 22 10:38:27 2014 --- gcc-4.9.1/gcc/doc/gccint.info Wed Jul 16 11:00:36 2014 *************** Introduction *** 55,61 **** This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 4.9.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It --- 55,61 ---- This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 4.9.1. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It *************** specified for the particular test in an *** 4539,4544 **** --- 4539,4547 ---- 'double64plus' Target has 'double' that is 64 bits or longer. + 'longdouble128' + Target has 128-bit 'long double'. + 'int32plus' Target has 'int' that is at 32 bits or longer. *************** specified for the particular test in an *** 4835,4840 **** --- 4838,4849 ---- 7.2.3.8 PowerPC-specific attributes ................................... + 'dfp_hw' + PowerPC target supports executing hardware DFP instructions. + + 'p8vector_hw' + PowerPC target supports executing VSX instructions (ISA 2.07). + 'powerpc64' Test system supports executing 64-bit instructions. *************** specified for the particular test in an *** 4844,4855 **** --- 4853,4876 ---- 'powerpc_altivec_ok' PowerPC target supports '-maltivec'. + 'powerpc_eabi_ok' + PowerPC target supports '-meabi'. + + 'powerpc_elfv2' + PowerPC target supports '-mabi=elfv2'. + 'powerpc_fprs' PowerPC target supports floating-point registers. 'powerpc_hard_double' PowerPC target supports hardware double-precision floating-point. + 'powerpc_htm_ok' + PowerPC target supports '-mhtm' + + 'powerpc_p8vector_ok' + PowerPC target supports '-mpower8-vector' + 'powerpc_ppu_ok' PowerPC target supports '-mcpu=cell'. *************** specified for the particular test in an *** 4863,4872 **** 'powerpc_spu' PowerPC target supports PowerPC SPU. - 'spu_auto_overlay' - SPU target has toolchain that supports automatic overlay - generation. - 'powerpc_vsx_ok' PowerPC target supports '-mvsx'. --- 4884,4889 ---- *************** specified for the particular test in an *** 4874,4882 **** --- 4891,4909 ---- Including the options used to compile this particular test, the PowerPC target supports PowerPC 405. + 'ppc_recip_hw' + PowerPC target supports executing reciprocal estimate instructions. + + 'spu_auto_overlay' + SPU target has toolchain that supports automatic overlay + generation. + 'vmx_hw' PowerPC target supports executing AltiVec instructions. + 'vsx_hw' + PowerPC target supports executing VSX instructions (ISA 2.06). + 7.2.3.9 Other hardware attributes ................................. *************** certain arguments in registers. *** 30693,30698 **** --- 30720,30731 ---- machine-dependent stack frame: 'OUTGOING_REG_PARM_STACK_SPACE' says which. + -- Macro: INCOMING_REG_PARM_STACK_SPACE (FNDECL) + Like 'REG_PARM_STACK_SPACE', but for incoming register arguments. + Define this macro if space guaranteed when compiling a function + body is different to space required when making a call, a situation + that can arise with K&R style function definitions. + -- Macro: OUTGOING_REG_PARM_STACK_SPACE (FNTYPE) Define this to a nonzero value if it is the responsibility of the caller to allocate the area reserved for arguments passed in *************** Concept Index *** 46290,46296 **** * 'call_insn' and '/v': Flags. (line 44) * CALL_INSN_FUNCTION_USAGE: Insns. (line 101) * 'call_pop' instruction pattern: Standard Names. (line 1148) ! * CALL_POPS_ARGS: Stack Arguments. (line 132) * CALL_REALLY_USED_REGISTERS: Register Basics. (line 45) * CALL_USED_REGISTERS: Register Basics. (line 34) * call_used_regs: Register Basics. (line 59) --- 46323,46329 ---- * 'call_insn' and '/v': Flags. (line 44) * CALL_INSN_FUNCTION_USAGE: Insns. (line 101) * 'call_pop' instruction pattern: Standard Names. (line 1148) ! * CALL_POPS_ARGS: Stack Arguments. (line 138) * CALL_REALLY_USED_REGISTERS: Register Basics. (line 45) * CALL_USED_REGISTERS: Register Basics. (line 34) * call_used_regs: Register Basics. (line 59) *************** Concept Index *** 47681,47686 **** --- 47714,47720 ---- * inclusive-or, bitwise: Arithmetic. (line 164) * INCOMING_FRAME_SP_OFFSET: Frame Layout. (line 181) * INCOMING_REGNO: Register Basics. (line 87) + * INCOMING_REG_PARM_STACK_SPACE: Stack Arguments. (line 73) * INCOMING_RETURN_ADDR_RTX: Frame Layout. (line 137) * INCOMING_STACK_BOUNDARY: Storage Layout. (line 154) * INDEX_REG_CLASS: Register Classes. (line 140) *************** Concept Index *** 48289,48295 **** * other register constraints: Simple Constraints. (line 171) * outgoing_args_size: Stack Arguments. (line 48) * OUTGOING_REGNO: Register Basics. (line 94) ! * OUTGOING_REG_PARM_STACK_SPACE: Stack Arguments. (line 73) * output of assembler code: File Framework. (line 6) * output statements: Output Statement. (line 6) * output templates: Output Template. (line 6) --- 48323,48329 ---- * other register constraints: Simple Constraints. (line 171) * outgoing_args_size: Stack Arguments. (line 48) * OUTGOING_REGNO: Register Basics. (line 94) ! * OUTGOING_REG_PARM_STACK_SPACE: Stack Arguments. (line 79) * output of assembler code: File Framework. (line 6) * output statements: Output Statement. (line 6) * output templates: Output Template. (line 6) *************** Concept Index *** 48850,48856 **** * 'STACK_DYNAMIC_OFFSET' and virtual registers: Regs and Memory. (line 83) * STACK_GROWS_DOWNWARD: Frame Layout. (line 8) ! * STACK_PARMS_IN_REG_PARM_AREA: Stack Arguments. (line 83) * STACK_POINTER_OFFSET: Frame Layout. (line 57) * 'STACK_POINTER_OFFSET' and virtual registers: Regs and Memory. (line 93) --- 48884,48890 ---- * 'STACK_DYNAMIC_OFFSET' and virtual registers: Regs and Memory. (line 83) * STACK_GROWS_DOWNWARD: Frame Layout. (line 8) ! * STACK_PARMS_IN_REG_PARM_AREA: Stack Arguments. (line 89) * STACK_POINTER_OFFSET: Frame Layout. (line 57) * 'STACK_POINTER_OFFSET' and virtual registers: Regs and Memory. (line 93) *************** Concept Index *** 49329,49335 **** * TARGET_RESOLVE_OVERLOADED_BUILTIN: Misc. (line 624) * TARGET_RETURN_IN_MEMORY: Aggregate Return. (line 15) * TARGET_RETURN_IN_MSB: Scalar Return. (line 117) ! * TARGET_RETURN_POPS_ARGS: Stack Arguments. (line 92) * TARGET_RTX_COSTS: Costs. (line 269) * TARGET_SCALAR_MODE_SUPPORTED_P: Register Arguments. (line 315) * TARGET_SCHED_ADJUST_COST: Scheduling. (line 35) --- 49363,49369 ---- * TARGET_RESOLVE_OVERLOADED_BUILTIN: Misc. (line 624) * TARGET_RETURN_IN_MEMORY: Aggregate Return. (line 15) * TARGET_RETURN_IN_MSB: Scalar Return. (line 117) ! * TARGET_RETURN_POPS_ARGS: Stack Arguments. (line 98) * TARGET_RTX_COSTS: Costs. (line 269) * TARGET_SCALAR_MODE_SUPPORTED_P: Register Arguments. (line 315) * TARGET_SCHED_ADJUST_COST: Scheduling. (line 35) *************** Node: Test Directives204042 *** 49967,50307 **** Node: Directives204569 Node: Selectors214866 Node: Effective-Target Keywords216222 ! Ref: arm_neon_ok223910 ! Ref: arm_neonv2_ok224068 ! Ref: arm_neon_fp16_ok224240 ! Ref: arm_vfp3_ok224680 ! Node: Add Options234179 ! Node: Require Support235496 ! Node: Final Actions238003 ! Node: Ada Tests243168 ! Node: C Tests244499 ! Node: libgcj Tests248894 ! Node: LTO Testing250021 ! Node: gcov Testing251669 ! Node: profopt Testing254659 ! Node: compat Testing256374 ! Node: Torture Tests260614 ! Node: Options262229 ! Node: Option file format262670 ! Node: Option properties269659 ! Node: Passes282686 ! Node: Parsing pass283576 ! Node: Cilk Plus Transformation287109 ! Node: Gimplification pass290491 ! Node: Pass manager292336 ! Node: Tree SSA passes294182 ! Node: RTL passes315249 ! Node: Optimization info327613 ! Node: Dump setup328432 ! Node: Optimization groups329561 ! Node: Dump files and streams330450 ! Node: Dump output verbosity331648 ! Node: Dump types332704 ! Node: Dump examples334194 ! Node: GENERIC335540 ! Node: Deficiencies337416 ! Node: Tree overview337657 ! Node: Macros and Functions341781 ! Node: Identifiers342606 ! Node: Containers344215 ! Node: Types345372 ! Node: Declarations357446 ! Node: Working with declarations357941 ! Node: Internal structure363545 ! Node: Current structure hierarchy363929 ! Node: Adding new DECL node types366022 ! Node: Attributes370306 ! Node: Expression trees371550 ! Node: Constant expressions373304 ! Node: Storage References377517 ! Node: Unary and Binary Expressions381036 ! Node: Vectors401184 ! Node: Statements405916 ! Node: Basic Statements406436 ! Node: Blocks410943 ! Node: Statement Sequences412347 ! Node: Empty Statements412680 ! Node: Jumps413254 ! Node: Cleanups413907 ! Node: OpenMP415674 ! Node: Functions421518 ! Node: Function Basics421989 ! Node: Function Properties425673 ! Node: Language-dependent trees428454 ! Node: C and C++ Trees429341 ! Node: Types for C++432245 ! Node: Namespaces437215 ! Node: Classes440321 ! Node: Functions for C++445398 ! Node: Statements for C++451649 ! Node: C++ Expressions460422 ! Node: Java Trees461927 ! Node: GIMPLE462040 ! Node: Tuple representation465664 ! Node: GIMPLE instruction set473968 ! Node: GIMPLE Exception Handling475584 ! Node: Temporaries477496 ! Ref: Temporaries-Footnote-1478814 ! Node: Operands478879 ! Node: Compound Expressions479640 ! Node: Compound Lvalues479874 ! Node: Conditional Expressions480636 ! Node: Logical Operators481295 ! Node: Manipulating GIMPLE statements488153 ! Node: Tuple specific accessors494089 ! Node: 'GIMPLE_ASM'494908 ! Node: 'GIMPLE_ASSIGN'497425 ! Node: 'GIMPLE_BIND'501531 ! Node: 'GIMPLE_CALL'503339 ! Node: 'GIMPLE_CATCH'507610 ! Node: 'GIMPLE_COND'508754 ! Node: 'GIMPLE_DEBUG'511542 ! Node: 'GIMPLE_EH_FILTER'514920 ! Node: 'GIMPLE_LABEL'516408 ! Node: 'GIMPLE_NOP'517383 ! Node: 'GIMPLE_OMP_ATOMIC_LOAD'517752 ! Node: 'GIMPLE_OMP_ATOMIC_STORE'518662 ! Node: 'GIMPLE_OMP_CONTINUE'519302 ! Node: 'GIMPLE_OMP_CRITICAL'520652 ! Node: 'GIMPLE_OMP_FOR'521590 ! Node: 'GIMPLE_OMP_MASTER'525105 ! Node: 'GIMPLE_OMP_ORDERED'525489 ! Node: 'GIMPLE_OMP_PARALLEL'525889 ! Node: 'GIMPLE_OMP_RETURN'528522 ! Node: 'GIMPLE_OMP_SECTION'529173 ! Node: 'GIMPLE_OMP_SECTIONS'529839 ! Node: 'GIMPLE_OMP_SINGLE'531446 ! Node: 'GIMPLE_PHI'532384 ! Node: 'GIMPLE_RESX'533671 ! Node: 'GIMPLE_RETURN'534390 ! Node: 'GIMPLE_SWITCH'534958 ! Node: 'GIMPLE_TRY'536760 ! Node: 'GIMPLE_WITH_CLEANUP_EXPR'538551 ! Node: GIMPLE sequences539434 ! Node: Sequence iterators542640 ! Node: Adding a new GIMPLE statement code551095 ! Node: Statement and operand traversals552371 ! Node: Tree SSA554963 ! Node: Annotations556751 ! Node: SSA Operands557156 ! Node: SSA571230 ! Node: Alias analysis582262 ! Node: Memory model586036 ! Node: RTL587395 ! Node: RTL Objects589583 ! Node: RTL Classes593457 ! Node: Accessors598454 ! Node: Special Accessors600848 ! Node: Flags606635 ! Node: Machine Modes621399 ! Node: Constants634687 ! Node: Regs and Memory641415 ! Node: Arithmetic659303 ! Node: Comparisons669385 ! Node: Bit-Fields673677 ! Node: Vector Operations675229 ! Node: Conversions677110 ! Node: RTL Declarations681608 ! Node: Side Effects682429 ! Node: Incdec699439 ! Node: Assembler702775 ! Node: Debug Information704320 ! Node: Insns705517 ! Node: Calls731938 ! Node: Sharing734531 ! Node: Reading RTL737642 ! Node: Control Flow738633 ! Node: Basic Blocks740402 ! Node: Edges745691 ! Node: Profile information754320 ! Node: Maintaining the CFG759004 ! Node: Liveness information764865 ! Node: Loop Analysis and Representation766991 ! Node: Loop representation768101 ! Node: Loop querying775664 ! Node: Loop manipulation778480 ! Node: LCSSA780841 ! Node: Scalar evolutions782910 ! Node: loop-iv786154 ! Node: Number of iterations788076 ! Node: Dependency analysis790882 ! Node: Omega797246 ! Node: Machine Desc798822 ! Node: Overview801385 ! Node: Patterns803425 ! Node: Example806863 ! Node: RTL Template808297 ! Node: Output Template818952 ! Node: Output Statement822915 ! Node: Predicates827254 ! Node: Machine-Independent Predicates830172 ! Node: Defining Predicates835116 ! Node: Constraints841079 ! Node: Simple Constraints842561 ! Node: Multi-Alternative855401 ! Node: Class Preferences858242 ! Node: Modifiers859134 ! Node: Machine Constraints863380 ! Node: Disable Insn Alternatives921548 ! Node: Define Constraints924449 ! Node: C Constraint Interface931234 ! Node: Standard Names934886 ! Ref: shift patterns958034 ! Ref: prologue instruction pattern1002791 ! Ref: window_save instruction pattern1003284 ! Ref: epilogue instruction pattern1003561 ! Node: Pattern Ordering1021147 ! Node: Dependent Patterns1022383 ! Node: Jump Patterns1024003 ! Ref: Jump Patterns-Footnote-11026150 ! Node: Looping Patterns1026198 ! Node: Insn Canonicalizations1030927 ! Node: Expander Definitions1035512 ! Node: Insn Splitting1043726 ! Node: Including Patterns1053327 ! Node: Peephole Definitions1055108 ! Node: define_peephole1056361 ! Node: define_peephole21062691 ! Node: Insn Attributes1065757 ! Node: Defining Attributes1066939 ! Ref: define_enum_attr1070432 ! Node: Expressions1071468 ! Node: Tagging Insns1078218 ! Node: Attr Example1082571 ! Node: Insn Lengths1084944 ! Node: Constant Attributes1088003 ! Node: Mnemonic Attribute1089179 ! Node: Delay Slots1090698 ! Node: Processor pipeline description1093921 ! Ref: Processor pipeline description-Footnote-11112739 ! Node: Conditional Execution1113063 ! Node: Define Subst1116546 ! Node: Define Subst Example1118582 ! Node: Define Subst Pattern Matching1121576 ! Node: Define Subst Output Template1122802 ! Node: Constant Definitions1124872 ! Ref: define_enum1128654 ! Node: Iterators1129142 ! Node: Mode Iterators1129720 ! Node: Defining Mode Iterators1130698 ! Node: Substitutions1132192 ! Node: Examples1134434 ! Node: Code Iterators1135882 ! Node: Int Iterators1138161 ! Node: Subst Iterators1140605 ! Node: Target Macros1142297 ! Node: Target Structure1145385 ! Node: Driver1147501 ! Node: Run-time Target1166313 ! Node: Per-Function Data1176024 ! Node: Storage Layout1178788 ! Node: Type Layout1205040 ! Node: Registers1220363 ! Node: Register Basics1221337 ! Node: Allocation Order1226845 ! Node: Values in Registers1229291 ! Node: Leaf Functions1236769 ! Node: Stack Registers1239628 ! Node: Register Classes1240900 ! Node: Old Constraints1271844 ! Node: Stack and Calling1278984 ! Node: Frame Layout1279518 ! Node: Exception Handling1290394 ! Node: Stack Checking1296606 ! Node: Frame Registers1301420 ! Node: Elimination1309679 ! Node: Stack Arguments1313909 ! Node: Register Arguments1320772 ! Node: Scalar Return1341073 ! Node: Aggregate Return1347160 ! Node: Caller Saves1351371 ! Node: Function Entry1352548 ! Node: Profiling1363642 ! Node: Tail Calls1365341 ! Node: Stack Smashing Protection1367244 ! Node: Varargs1368872 ! Node: Trampolines1375559 ! Node: Library Calls1381602 ! Node: Addressing Modes1386286 ! Node: Anchored Addresses1407254 ! Node: Condition Code1409897 ! Node: CC0 Condition Codes1412224 ! Node: MODE_CC Condition Codes1415470 ! Node: Costs1421922 ! Node: Scheduling1438384 ! Node: Sections1458342 ! Node: PIC1474040 ! Node: Assembler Format1476099 ! Node: File Framework1477237 ! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1484169 ! Node: Data Output1487439 ! Node: Uninitialized Data1495208 ! Node: Label Output1500219 ! Node: Initialization1523175 ! Node: Macros for Initialization1529136 ! Node: Instruction Output1535855 ! Node: Dispatch Tables1546478 ! Node: Exception Region Output1550862 ! Node: Alignment Output1557540 ! Node: Debugging Info1562119 ! Node: All Debuggers1562789 ! Node: DBX Options1565644 ! Node: DBX Hooks1571082 ! Node: File Names and DBX1572391 ! Node: SDB and DWARF1574503 ! Node: VMS Debug1580575 ! Node: Floating Point1581162 ! Node: Mode Switching1585638 ! Node: Target Attributes1589634 ! Node: Emulated TLS1598092 ! Node: MIPS Coprocessors1601482 ! Node: PCH Target1602779 ! Node: C++ ABI1604621 ! Node: Named Address Spaces1609415 ! Node: Misc1614349 ! Ref: TARGET_SHIFT_TRUNCATION_MASK1621091 ! Node: Host Config1669593 ! Node: Host Common1670661 ! Node: Filesystem1673035 ! Node: Host Misc1677150 ! Node: Fragments1679599 ! Node: Target Fragment1680794 ! Node: Host Fragment1691422 ! Node: Collect21691662 ! Node: Header Dirs1694298 ! Node: Type Information1695721 ! Node: GTY Options1698997 ! Node: Inheritance and GTY1713517 ! Ref: Inheritance and GTY-Footnote-11715080 ! Node: User GC1715350 ! Node: GGC Roots1719089 ! Node: Files1719802 ! Node: Invoking the garbage collector1722509 ! Node: Troubleshooting1724014 ! Node: Plugins1725089 ! Node: Plugins loading1726207 ! Node: Plugin API1727077 ! Node: Plugins pass1734740 ! Node: Plugins GC1736711 ! Node: Plugins description1738376 ! Node: Plugins attr1738912 ! Node: Plugins recording1741185 ! Node: Plugins gate1742035 ! Node: Plugins tracking1742626 ! Node: Plugins building1743214 ! Node: LTO1745004 ! Node: LTO Overview1745865 ! Node: LTO object file layout1751697 ! Node: IPA1756327 ! Node: WHOPR1765292 ! Node: Internal flags1769981 ! Node: Funding1771392 ! Node: GNU Project1773876 ! Node: Copying1774525 ! Node: GNU Free Documentation License1812036 ! Node: Contributors1837156 ! Node: Option Index1875028 ! Node: Concept Index1875905  End Tag Table --- 50001,50341 ---- Node: Directives204569 Node: Selectors214866 Node: Effective-Target Keywords216222 ! Ref: arm_neon_ok223966 ! Ref: arm_neonv2_ok224124 ! Ref: arm_neon_fp16_ok224296 ! Ref: arm_vfp3_ok224736 ! Node: Add Options234805 ! Node: Require Support236122 ! Node: Final Actions238629 ! Node: Ada Tests243794 ! Node: C Tests245125 ! Node: libgcj Tests249520 ! Node: LTO Testing250647 ! Node: gcov Testing252295 ! Node: profopt Testing255285 ! Node: compat Testing257000 ! Node: Torture Tests261240 ! Node: Options262855 ! Node: Option file format263296 ! Node: Option properties270285 ! Node: Passes283312 ! Node: Parsing pass284202 ! Node: Cilk Plus Transformation287735 ! Node: Gimplification pass291117 ! Node: Pass manager292962 ! Node: Tree SSA passes294808 ! Node: RTL passes315875 ! Node: Optimization info328239 ! Node: Dump setup329058 ! Node: Optimization groups330187 ! Node: Dump files and streams331076 ! Node: Dump output verbosity332274 ! Node: Dump types333330 ! Node: Dump examples334820 ! Node: GENERIC336166 ! Node: Deficiencies338042 ! Node: Tree overview338283 ! Node: Macros and Functions342407 ! Node: Identifiers343232 ! Node: Containers344841 ! Node: Types345998 ! Node: Declarations358072 ! Node: Working with declarations358567 ! Node: Internal structure364171 ! Node: Current structure hierarchy364555 ! Node: Adding new DECL node types366648 ! Node: Attributes370932 ! Node: Expression trees372176 ! Node: Constant expressions373930 ! Node: Storage References378143 ! Node: Unary and Binary Expressions381662 ! Node: Vectors401810 ! Node: Statements406542 ! Node: Basic Statements407062 ! Node: Blocks411569 ! Node: Statement Sequences412973 ! Node: Empty Statements413306 ! Node: Jumps413880 ! Node: Cleanups414533 ! Node: OpenMP416300 ! Node: Functions422144 ! Node: Function Basics422615 ! Node: Function Properties426299 ! Node: Language-dependent trees429080 ! Node: C and C++ Trees429967 ! Node: Types for C++432871 ! Node: Namespaces437841 ! Node: Classes440947 ! Node: Functions for C++446024 ! Node: Statements for C++452275 ! Node: C++ Expressions461048 ! Node: Java Trees462553 ! Node: GIMPLE462666 ! Node: Tuple representation466290 ! Node: GIMPLE instruction set474594 ! Node: GIMPLE Exception Handling476210 ! Node: Temporaries478122 ! Ref: Temporaries-Footnote-1479440 ! Node: Operands479505 ! Node: Compound Expressions480266 ! Node: Compound Lvalues480500 ! Node: Conditional Expressions481262 ! Node: Logical Operators481921 ! Node: Manipulating GIMPLE statements488779 ! Node: Tuple specific accessors494715 ! Node: 'GIMPLE_ASM'495534 ! Node: 'GIMPLE_ASSIGN'498051 ! Node: 'GIMPLE_BIND'502157 ! Node: 'GIMPLE_CALL'503965 ! Node: 'GIMPLE_CATCH'508236 ! Node: 'GIMPLE_COND'509380 ! Node: 'GIMPLE_DEBUG'512168 ! Node: 'GIMPLE_EH_FILTER'515546 ! Node: 'GIMPLE_LABEL'517034 ! Node: 'GIMPLE_NOP'518009 ! Node: 'GIMPLE_OMP_ATOMIC_LOAD'518378 ! Node: 'GIMPLE_OMP_ATOMIC_STORE'519288 ! Node: 'GIMPLE_OMP_CONTINUE'519928 ! Node: 'GIMPLE_OMP_CRITICAL'521278 ! Node: 'GIMPLE_OMP_FOR'522216 ! Node: 'GIMPLE_OMP_MASTER'525731 ! Node: 'GIMPLE_OMP_ORDERED'526115 ! Node: 'GIMPLE_OMP_PARALLEL'526515 ! Node: 'GIMPLE_OMP_RETURN'529148 ! Node: 'GIMPLE_OMP_SECTION'529799 ! Node: 'GIMPLE_OMP_SECTIONS'530465 ! Node: 'GIMPLE_OMP_SINGLE'532072 ! Node: 'GIMPLE_PHI'533010 ! Node: 'GIMPLE_RESX'534297 ! Node: 'GIMPLE_RETURN'535016 ! Node: 'GIMPLE_SWITCH'535584 ! Node: 'GIMPLE_TRY'537386 ! Node: 'GIMPLE_WITH_CLEANUP_EXPR'539177 ! Node: GIMPLE sequences540060 ! Node: Sequence iterators543266 ! Node: Adding a new GIMPLE statement code551721 ! Node: Statement and operand traversals552997 ! Node: Tree SSA555589 ! Node: Annotations557377 ! Node: SSA Operands557782 ! Node: SSA571856 ! Node: Alias analysis582888 ! Node: Memory model586662 ! Node: RTL588021 ! Node: RTL Objects590209 ! Node: RTL Classes594083 ! Node: Accessors599080 ! Node: Special Accessors601474 ! Node: Flags607261 ! Node: Machine Modes622025 ! Node: Constants635313 ! Node: Regs and Memory642041 ! Node: Arithmetic659929 ! Node: Comparisons670011 ! Node: Bit-Fields674303 ! Node: Vector Operations675855 ! Node: Conversions677736 ! Node: RTL Declarations682234 ! Node: Side Effects683055 ! Node: Incdec700065 ! Node: Assembler703401 ! Node: Debug Information704946 ! Node: Insns706143 ! Node: Calls732564 ! Node: Sharing735157 ! Node: Reading RTL738268 ! Node: Control Flow739259 ! Node: Basic Blocks741028 ! Node: Edges746317 ! Node: Profile information754946 ! Node: Maintaining the CFG759630 ! Node: Liveness information765491 ! Node: Loop Analysis and Representation767617 ! Node: Loop representation768727 ! Node: Loop querying776290 ! Node: Loop manipulation779106 ! Node: LCSSA781467 ! Node: Scalar evolutions783536 ! Node: loop-iv786780 ! Node: Number of iterations788702 ! Node: Dependency analysis791508 ! Node: Omega797872 ! Node: Machine Desc799448 ! Node: Overview802011 ! Node: Patterns804051 ! Node: Example807489 ! Node: RTL Template808923 ! Node: Output Template819578 ! Node: Output Statement823541 ! Node: Predicates827880 ! Node: Machine-Independent Predicates830798 ! Node: Defining Predicates835742 ! Node: Constraints841705 ! Node: Simple Constraints843187 ! Node: Multi-Alternative856027 ! Node: Class Preferences858868 ! Node: Modifiers859760 ! Node: Machine Constraints864006 ! Node: Disable Insn Alternatives922174 ! Node: Define Constraints925075 ! Node: C Constraint Interface931860 ! Node: Standard Names935512 ! Ref: shift patterns958660 ! Ref: prologue instruction pattern1003417 ! Ref: window_save instruction pattern1003910 ! Ref: epilogue instruction pattern1004187 ! Node: Pattern Ordering1021773 ! Node: Dependent Patterns1023009 ! Node: Jump Patterns1024629 ! Ref: Jump Patterns-Footnote-11026776 ! Node: Looping Patterns1026824 ! Node: Insn Canonicalizations1031553 ! Node: Expander Definitions1036138 ! Node: Insn Splitting1044352 ! Node: Including Patterns1053953 ! Node: Peephole Definitions1055734 ! Node: define_peephole1056987 ! Node: define_peephole21063317 ! Node: Insn Attributes1066383 ! Node: Defining Attributes1067565 ! Ref: define_enum_attr1071058 ! Node: Expressions1072094 ! Node: Tagging Insns1078844 ! Node: Attr Example1083197 ! Node: Insn Lengths1085570 ! Node: Constant Attributes1088629 ! Node: Mnemonic Attribute1089805 ! Node: Delay Slots1091324 ! Node: Processor pipeline description1094547 ! Ref: Processor pipeline description-Footnote-11113365 ! Node: Conditional Execution1113689 ! Node: Define Subst1117172 ! Node: Define Subst Example1119208 ! Node: Define Subst Pattern Matching1122202 ! Node: Define Subst Output Template1123428 ! Node: Constant Definitions1125498 ! Ref: define_enum1129280 ! Node: Iterators1129768 ! Node: Mode Iterators1130346 ! Node: Defining Mode Iterators1131324 ! Node: Substitutions1132818 ! Node: Examples1135060 ! Node: Code Iterators1136508 ! Node: Int Iterators1138787 ! Node: Subst Iterators1141231 ! Node: Target Macros1142923 ! Node: Target Structure1146011 ! Node: Driver1148127 ! Node: Run-time Target1166939 ! Node: Per-Function Data1176650 ! Node: Storage Layout1179414 ! Node: Type Layout1205666 ! Node: Registers1220989 ! Node: Register Basics1221963 ! Node: Allocation Order1227471 ! Node: Values in Registers1229917 ! Node: Leaf Functions1237395 ! Node: Stack Registers1240254 ! Node: Register Classes1241526 ! Node: Old Constraints1272470 ! Node: Stack and Calling1279610 ! Node: Frame Layout1280144 ! Node: Exception Handling1291020 ! Node: Stack Checking1297232 ! Node: Frame Registers1302046 ! Node: Elimination1310305 ! Node: Stack Arguments1314535 ! Node: Register Arguments1321719 ! Node: Scalar Return1342020 ! Node: Aggregate Return1348107 ! Node: Caller Saves1352318 ! Node: Function Entry1353495 ! Node: Profiling1364589 ! Node: Tail Calls1366288 ! Node: Stack Smashing Protection1368191 ! Node: Varargs1369819 ! Node: Trampolines1376506 ! Node: Library Calls1382549 ! Node: Addressing Modes1387233 ! Node: Anchored Addresses1408201 ! Node: Condition Code1410844 ! Node: CC0 Condition Codes1413171 ! Node: MODE_CC Condition Codes1416417 ! Node: Costs1422869 ! Node: Scheduling1439331 ! Node: Sections1459289 ! Node: PIC1474987 ! Node: Assembler Format1477046 ! Node: File Framework1478184 ! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1485116 ! Node: Data Output1488386 ! Node: Uninitialized Data1496155 ! Node: Label Output1501166 ! Node: Initialization1524122 ! Node: Macros for Initialization1530083 ! Node: Instruction Output1536802 ! Node: Dispatch Tables1547425 ! Node: Exception Region Output1551809 ! Node: Alignment Output1558487 ! Node: Debugging Info1563066 ! Node: All Debuggers1563736 ! Node: DBX Options1566591 ! Node: DBX Hooks1572029 ! Node: File Names and DBX1573338 ! Node: SDB and DWARF1575450 ! Node: VMS Debug1581522 ! Node: Floating Point1582109 ! Node: Mode Switching1586585 ! Node: Target Attributes1590581 ! Node: Emulated TLS1599039 ! Node: MIPS Coprocessors1602429 ! Node: PCH Target1603726 ! Node: C++ ABI1605568 ! Node: Named Address Spaces1610362 ! Node: Misc1615296 ! Ref: TARGET_SHIFT_TRUNCATION_MASK1622038 ! Node: Host Config1670540 ! Node: Host Common1671608 ! Node: Filesystem1673982 ! Node: Host Misc1678097 ! Node: Fragments1680546 ! Node: Target Fragment1681741 ! Node: Host Fragment1692369 ! Node: Collect21692609 ! Node: Header Dirs1695245 ! Node: Type Information1696668 ! Node: GTY Options1699944 ! Node: Inheritance and GTY1714464 ! Ref: Inheritance and GTY-Footnote-11716027 ! Node: User GC1716297 ! Node: GGC Roots1720036 ! Node: Files1720749 ! Node: Invoking the garbage collector1723456 ! Node: Troubleshooting1724961 ! Node: Plugins1726036 ! Node: Plugins loading1727154 ! Node: Plugin API1728024 ! Node: Plugins pass1735687 ! Node: Plugins GC1737658 ! Node: Plugins description1739323 ! Node: Plugins attr1739859 ! Node: Plugins recording1742132 ! Node: Plugins gate1742982 ! Node: Plugins tracking1743573 ! Node: Plugins building1744161 ! Node: LTO1745951 ! Node: LTO Overview1746812 ! Node: LTO object file layout1752644 ! Node: IPA1757274 ! Node: WHOPR1766239 ! Node: Internal flags1770928 ! Node: Funding1772339 ! Node: GNU Project1774823 ! Node: Copying1775472 ! Node: GNU Free Documentation License1812983 ! Node: Contributors1838103 ! Node: Option Index1875975 ! Node: Concept Index1876852  End Tag Table diff -Nrcpad gcc-4.9.0/gcc/doc/gcj-dbtool.1 gcc-4.9.1/gcc/doc/gcj-dbtool.1 *** gcc-4.9.0/gcc/doc/gcj-dbtool.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/gcj-dbtool.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCJ-DBTOOL 1" ! .TH GCJ-DBTOOL 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCJ-DBTOOL 1" ! .TH GCJ-DBTOOL 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/gcj.1 gcc-4.9.1/gcc/doc/gcj.1 *** gcc-4.9.0/gcc/doc/gcj.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/gcj.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCJ 1" ! .TH GCJ 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/gcov.1 gcc-4.9.1/gcc/doc/gcov.1 *** gcc-4.9.0/gcc/doc/gcov.1 Tue Apr 22 09:50:43 2014 --- gcc-4.9.1/gcc/doc/gcov.1 Wed Jul 16 10:12:22 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/gfortran.1 gcc-4.9.1/gcc/doc/gfortran.1 *** gcc-4.9.0/gcc/doc/gfortran.1 Tue Apr 22 10:38:36 2014 --- gcc-4.9.1/gcc/doc/gfortran.1 Wed Jul 16 11:00:45 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/gij.1 gcc-4.9.1/gcc/doc/gij.1 *** gcc-4.9.0/gcc/doc/gij.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/gij.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GIJ 1" ! .TH GIJ 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/gpl.7 gcc-4.9.1/gcc/doc/gpl.7 *** gcc-4.9.0/gcc/doc/gpl.7 Tue Apr 22 10:38:35 2014 --- gcc-4.9.1/gcc/doc/gpl.7 Wed Jul 16 11:00:45 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/grmic.1 gcc-4.9.1/gcc/doc/grmic.1 *** gcc-4.9.0/gcc/doc/grmic.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/grmic.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GRMIC 1" ! .TH GRMIC 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GRMIC 1" ! .TH GRMIC 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/install.texi gcc-4.9.1/gcc/doc/install.texi *** gcc-4.9.0/gcc/doc/install.texi Wed Mar 26 03:14:42 2014 --- gcc-4.9.1/gcc/doc/install.texi Thu Jul 10 12:15:53 2014 *************** Finally a @code{stagefeedback} compiler *** 2544,2551 **** Unlike standard bootstrap, several additional restrictions apply. The compiler used to build @code{stage1} needs to support a 64-bit integral type. ! It is recommended to only use GCC for this. Also parallel make is currently ! not supported since collisions in profile collecting may occur. @html
    --- 2544,2550 ---- Unlike standard bootstrap, several additional restrictions apply. The compiler used to build @code{stage1} needs to support a 64-bit integral type. ! It is recommended to only use GCC for this. @html
    *************** OpenServer/Unixware}. *** 3009,3020 **** Solaris 2 (SPARC, Intel): @itemize @item - @uref{http://www.sunfreeware.com/,,Sunfreeware} - - @item - @uref{http://www.blastwave.org/,,Blastwave} - - @item @uref{http://www.opencsw.org/,,OpenCSW} @item --- 3008,3013 ---- *************** removed and the system libunwind library *** 3765,3773 **** @end html @anchor{aarch64-x-x} @heading aarch64*-*-* ! Pre 2.24 binutils does not have support for selecting -mabi and does not ! support ILP32. If GCC 4.9 or later is built with pre 2.24, GCC will not ! support option -mabi=ilp32. @html
    --- 3758,3766 ---- @end html @anchor{aarch64-x-x} @heading aarch64*-*-* ! Binutils pre 2.24 does not have support for selecting @option{-mabi} and ! does not support ILP32. If it is used to build GCC 4.9 or later, GCC will ! not support option @option{-mabi=ilp32}. @html
    diff -Nrcpad gcc-4.9.0/gcc/doc/invoke.texi gcc-4.9.1/gcc/doc/invoke.texi *** gcc-4.9.0/gcc/doc/invoke.texi Mon Apr 14 15:07:07 2014 --- gcc-4.9.1/gcc/doc/invoke.texi Wed May 28 11:37:50 2014 *************** Objective-C and Objective-C++ Dialects}. *** 825,831 **** @gccoptlist{-meb -mel -mno-crt0} @emph{MSP430 Options} ! @gccoptlist{-msim -masm-hex -mmcu= -mcpu= -mlarge -msmall -mrelax} @emph{NDS32 Options} @gccoptlist{-mbig-endian -mlittle-endian @gol --- 825,832 ---- @gccoptlist{-meb -mel -mno-crt0} @emph{MSP430 Options} ! @gccoptlist{-msim -masm-hex -mmcu= -mcpu= -mlarge -msmall -mrelax @gol ! -mhwmult=} @emph{NDS32 Options} @gccoptlist{-mbig-endian -mlittle-endian @gol *************** See RS/6000 and PowerPC Options. *** 977,983 **** -mpretend-cmove -mtas} @emph{Solaris 2 Options} ! @gccoptlist{-mimpure-text -mno-impure-text @gol -pthreads -pthread} @emph{SPARC Options} --- 978,984 ---- -mpretend-cmove -mtas} @emph{Solaris 2 Options} ! @gccoptlist{-mclear-hwcap -mno-clear-hwcap -mimpure-text -mno-impure-text @gol -pthreads -pthread} @emph{SPARC Options} *************** See RS/6000 and PowerPC Options. *** 991,996 **** --- 992,998 ---- -mhard-quad-float -msoft-quad-float @gol -mstack-bias -mno-stack-bias @gol -munaligned-doubles -mno-unaligned-doubles @gol + -muser-mode -mno-user-mode @gol -mv8plus -mno-v8plus -mvis -mno-vis @gol -mvis2 -mno-vis2 -mvis3 -mno-vis3 @gol -mcbcond -mno-cbcond @gol *************** Attempt to remove redundant extension in *** 7390,7396 **** helpful for the x86-64 architecture, which implicitly zero-extends in 64-bit registers after writing to their lower 32-bit half. ! Enabled for AArch64 and x86 at levels @option{-O2}, @option{-O3}. @item -flive-range-shrinkage @opindex flive-range-shrinkage --- 7392,7399 ---- helpful for the x86-64 architecture, which implicitly zero-extends in 64-bit registers after writing to their lower 32-bit half. ! Enabled for Alpha, AArch64 and x86 at levels @option{-O2}, ! @option{-O3}, @option{-Os}. @item -flive-range-shrinkage @opindex flive-range-shrinkage *************** parameter in order to propagate them and *** 10001,10006 **** --- 10004,10031 ---- @option{ipa-cp-value-list-size} is the maximum number of values and types it stores per one formal parameter of a function. + @item ipa-cp-eval-threshold + IPA-CP calculates its own score of cloning profitability heuristics + and performs those cloning opportunities with scores that exceed + @option{ipa-cp-eval-threshold}. + + @item ipa-max-agg-items + IPA-CP is also capable to propagate a number of scalar values passed + in an aggregate. @option{ipa-max-agg-items} controls the maximum + number of such values per one parameter. + + @item ipa-cp-loop-hint-bonus + When IPA-CP determines that a cloning candidate would make the number + of iterations of a loop known, it adds a bonus of + @option{ipa-cp-loop-hint-bonus} bonus to the profitability score of + the candidate. + + @item ipa-cp-array-index-hint-bonus + When IPA-CP determines that a cloning candidate would make the index of + an array access known, it adds a bonus of + @option{ipa-cp-array-index-hint-bonus} bonus to the profitability + score of the candidate. + @item lto-partitions Specify desired number of partitions produced during WHOPR compilation. The number of partitions should exceed the number of CPUs used for compilation. *************** This option is passed to the assembler a *** 18214,18219 **** --- 18239,18266 ---- linker to perform certain optimizations that cannot be done until the final link. + @item mhwmult= + @opindex mhwmult= + Describes the type of hardware multiply supported by the target. + Accepted values are @code{none} for no hardware multiply, @code{16bit} + for the original 16-bit-only multiply supported by early MCUs. + @code{32bit} for the 16/32-bit multiply supported by later MCUs and + @code{f5series} for the 16/32-bit multiply supported by F5-series MCUs. + A value of @code{auto} can also be given. This tells GCC to deduce + the hardware multiply support based upon the MCU name provided by the + @option{-mmcu} option. If no @option{-mmcu} option is specified then + @code{32bit} hardware multiply support is assumed. @code{auto} is the + default setting. + + Hardware multiplies are normally performed by calling a library + routine. This saves space in the generated code. When compiling at + @code{-O3} or higher however the hardware multiplier is invoked + inline. This makes for bigger, but faster code. + + The hardware multiply routines disable interrupts whilst running and + restore the previous interrupt state when they finish. This makes + them safe to use inside interrupt handlers as well as in normal code. + @end table @node NDS32 Options *************** patterns. This can result in faster cod *** 20784,20789 **** --- 20831,20843 ---- These @samp{-m} options are supported on Solaris 2: @table @gcctabopt + @item -mclear-hwcap + @opindex mclear-hwcap + @option{-mclear-hwcap} tells the compiler to remove the hardware + capabilities generated by the Solaris assembler. This is only necessary + when object files use ISA extensions not supported by the current + machine, but check at runtime whether or not to use them. + @item -mimpure-text @opindex mimpure-text @option{-mimpure-text}, used in addition to @option{-shared}, tells *************** Specifying this option avoids some rare *** 20904,20909 **** --- 20958,20971 ---- generated by other compilers. It is not the default because it results in a performance loss, especially for floating-point code. + @item -muser-mode + @itemx -mno-user-mode + @opindex muser-mode + @opindex mno-user-mode + Do not generate code that can only run in supervisor mode. This is relevant + only for the @code{casa} instruction emitted for the LEON3 processor. The + default is @option{-mno-user-mode}. + @item -mno-faster-structs @itemx -mfaster-structs @opindex mno-faster-structs diff -Nrcpad gcc-4.9.0/gcc/doc/jcf-dump.1 gcc-4.9.1/gcc/doc/jcf-dump.1 *** gcc-4.9.0/gcc/doc/jcf-dump.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/jcf-dump.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "JCF-DUMP 1" ! .TH JCF-DUMP 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/jv-convert.1 gcc-4.9.1/gcc/doc/jv-convert.1 *** gcc-4.9.0/gcc/doc/jv-convert.1 Tue Apr 22 10:27:16 2014 --- gcc-4.9.1/gcc/doc/jv-convert.1 Wed Jul 16 10:49:24 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "JV-CONVERT 1" ! .TH JV-CONVERT 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/rebuild-gcj-db.1 gcc-4.9.1/gcc/doc/rebuild-gcj-db.1 *** gcc-4.9.0/gcc/doc/rebuild-gcj-db.1 Tue Apr 22 10:38:36 2014 --- gcc-4.9.1/gcc/doc/rebuild-gcj-db.1 Wed Jul 16 11:00:45 2014 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "REBUILD-GCJ-DB 1" ! .TH REBUILD-GCJ-DB 1 "2014-04-22" "gcc-4.9.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "REBUILD-GCJ-DB 1" ! .TH REBUILD-GCJ-DB 1 "2014-07-16" "gcc-4.9.1" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-4.9.0/gcc/doc/sourcebuild.texi gcc-4.9.1/gcc/doc/sourcebuild.texi *** gcc-4.9.0/gcc/doc/sourcebuild.texi Wed Apr 9 11:37:14 2014 --- gcc-4.9.1/gcc/doc/sourcebuild.texi Fri Jun 13 21:56:16 2014 *************** Target has 64-bit @code{double}. *** 1295,1300 **** --- 1295,1303 ---- @item double64plus Target has @code{double} that is 64 bits or longer. + @item longdouble128 + Target has 128-bit @code{long double}. + @item int32plus Target has @code{int} that is at 32 bits or longer. *************** MIPS target supports @code{-mpaired-sing *** 1601,1606 **** --- 1604,1616 ---- @subsubsection PowerPC-specific attributes @table @code + + @item dfp_hw + PowerPC target supports executing hardware DFP instructions. + + @item p8vector_hw + PowerPC target supports executing VSX instructions (ISA 2.07). + @item powerpc64 Test system supports executing 64-bit instructions. *************** PowerPC target supports AltiVec. *** 1610,1621 **** --- 1620,1643 ---- @item powerpc_altivec_ok PowerPC target supports @code{-maltivec}. + @item powerpc_eabi_ok + PowerPC target supports @code{-meabi}. + + @item powerpc_elfv2 + PowerPC target supports @code{-mabi=elfv2}. + @item powerpc_fprs PowerPC target supports floating-point registers. @item powerpc_hard_double PowerPC target supports hardware double-precision floating-point. + @item powerpc_htm_ok + PowerPC target supports @code{-mhtm} + + @item powerpc_p8vector_ok + PowerPC target supports @code{-mpower8-vector} + @item powerpc_ppu_ok PowerPC target supports @code{-mcpu=cell}. *************** PowerPC target supports PowerPC SPE. *** 1629,1637 **** @item powerpc_spu PowerPC target supports PowerPC SPU. - @item spu_auto_overlay - SPU target has toolchain that supports automatic overlay generation. - @item powerpc_vsx_ok PowerPC target supports @code{-mvsx}. --- 1651,1656 ---- *************** PowerPC target supports @code{-mvsx}. *** 1639,1646 **** --- 1658,1674 ---- Including the options used to compile this particular test, the PowerPC target supports PowerPC 405. + @item ppc_recip_hw + PowerPC target supports executing reciprocal estimate instructions. + + @item spu_auto_overlay + SPU target has toolchain that supports automatic overlay generation. + @item vmx_hw PowerPC target supports executing AltiVec instructions. + + @item vsx_hw + PowerPC target supports executing VSX instructions (ISA 2.06). @end table @subsubsection Other hardware attributes diff -Nrcpad gcc-4.9.0/gcc/doc/tm.texi gcc-4.9.1/gcc/doc/tm.texi *** gcc-4.9.0/gcc/doc/tm.texi Thu Feb 27 19:02:18 2014 --- gcc-4.9.1/gcc/doc/tm.texi Wed Jun 11 23:49:49 2014 *************** which. *** 3947,3952 **** --- 3947,3959 ---- @c above is overfull. not sure what to do. --mew 5feb93 did @c something, not sure if it looks good. --mew 10feb93 + @defmac INCOMING_REG_PARM_STACK_SPACE (@var{fndecl}) + Like @code{REG_PARM_STACK_SPACE}, but for incoming register arguments. + Define this macro if space guaranteed when compiling a function body + is different to space required when making a call, a situation that + can arise with K&R style function definitions. + @end defmac + @defmac OUTGOING_REG_PARM_STACK_SPACE (@var{fntype}) Define this to a nonzero value if it is the responsibility of the caller to allocate the area reserved for arguments passed in registers diff -Nrcpad gcc-4.9.0/gcc/doc/tm.texi.in gcc-4.9.1/gcc/doc/tm.texi.in *** gcc-4.9.0/gcc/doc/tm.texi.in Thu Feb 27 19:54:56 2014 --- gcc-4.9.1/gcc/doc/tm.texi.in Wed Jun 11 23:49:49 2014 *************** which. *** 3498,3503 **** --- 3498,3510 ---- @c above is overfull. not sure what to do. --mew 5feb93 did @c something, not sure if it looks good. --mew 10feb93 + @defmac INCOMING_REG_PARM_STACK_SPACE (@var{fndecl}) + Like @code{REG_PARM_STACK_SPACE}, but for incoming register arguments. + Define this macro if space guaranteed when compiling a function body + is different to space required when making a call, a situation that + can arise with K&R style function definitions. + @end defmac + @defmac OUTGOING_REG_PARM_STACK_SPACE (@var{fntype}) Define this to a nonzero value if it is the responsibility of the caller to allocate the area reserved for arguments passed in registers diff -Nrcpad gcc-4.9.0/gcc/double-int.c gcc-4.9.1/gcc/double-int.c *** gcc-4.9.0/gcc/double-int.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/double-int.c Wed May 28 16:44:48 2014 *************** div_and_round_double (unsigned code, int *** 588,594 **** == (unsigned HOST_WIDE_INT) htwice) && (labs_den <= ltwice))) { ! if (*hquo < 0) /* quo = quo - 1; */ add_double (*lquo, *hquo, (HOST_WIDE_INT) -1, (HOST_WIDE_INT) -1, lquo, hquo); --- 588,594 ---- == (unsigned HOST_WIDE_INT) htwice) && (labs_den <= ltwice))) { ! if (quo_neg) /* quo = quo - 1; */ add_double (*lquo, *hquo, (HOST_WIDE_INT) -1, (HOST_WIDE_INT) -1, lquo, hquo); diff -Nrcpad gcc-4.9.0/gcc/dwarf2out.c gcc-4.9.1/gcc/dwarf2out.c *** gcc-4.9.0/gcc/dwarf2out.c Fri Apr 4 16:10:07 2014 --- gcc-4.9.1/gcc/dwarf2out.c Thu Jul 10 17:46:38 2014 *************** add_addr_table_entry (void *addr, enum a *** 4222,4234 **** static void remove_addr_table_entry (addr_table_entry *entry) { - addr_table_entry *node; - gcc_assert (dwarf_split_debug_info && addr_index_table); - node = (addr_table_entry *) htab_find (addr_index_table, entry); /* After an index is assigned, the table is frozen. */ ! gcc_assert (node->refcount > 0 && node->index == NO_INDEX_ASSIGNED); ! node->refcount--; } /* Given a location list, remove all addresses it refers to from the --- 4222,4231 ---- static void remove_addr_table_entry (addr_table_entry *entry) { gcc_assert (dwarf_split_debug_info && addr_index_table); /* After an index is assigned, the table is frozen. */ ! gcc_assert (entry->refcount > 0 && entry->index == NO_INDEX_ASSIGNED); ! entry->refcount--; } /* Given a location list, remove all addresses it refers to from the *************** resolve_addr_in_expr (dw_loc_descr_ref l *** 23099,23109 **** break; case DW_OP_GNU_addr_index: case DW_OP_GNU_const_index: ! if ((loc->dw_loc_opc == DW_OP_GNU_addr_index ! || (loc->dw_loc_opc == DW_OP_GNU_const_index && loc->dtprel)) ! && resolve_one_addr (&loc->dw_loc_oprnd1.val_entry->addr.rtl, ! NULL)) ! return false; break; case DW_OP_const4u: case DW_OP_const8u: --- 23096,23111 ---- break; case DW_OP_GNU_addr_index: case DW_OP_GNU_const_index: ! if (loc->dw_loc_opc == DW_OP_GNU_addr_index ! || (loc->dw_loc_opc == DW_OP_GNU_const_index && loc->dtprel)) ! { ! rtx rtl = loc->dw_loc_oprnd1.val_entry->addr.rtl; ! if (resolve_one_addr (&rtl, NULL)) ! return false; ! remove_addr_table_entry (loc->dw_loc_oprnd1.val_entry); ! loc->dw_loc_oprnd1.val_entry = ! add_addr_table_entry (rtl, ate_kind_rtx); ! } break; case DW_OP_const4u: case DW_OP_const8u: *************** dwarf2out_finish (const char *filename) *** 24195,24212 **** dwarf_strict ? DW_AT_macro_info : DW_AT_GNU_macros, macinfo_section_label); ! if (dwarf_split_debug_info && addr_index_table != NULL) { /* optimize_location_lists calculates the size of the lists, so index them first, and assign indices to the entries. Although optimize_location_lists will remove entries from the table, it only does so for duplicates, and therefore only reduces ref_counts to 1. */ - unsigned int index = 0; index_location_lists (comp_unit_die ()); ! htab_traverse_noresize (addr_index_table, ! index_addr_table_entry, &index); } if (have_location_lists) optimize_location_lists (comp_unit_die ()); --- 24197,24219 ---- dwarf_strict ? DW_AT_macro_info : DW_AT_GNU_macros, macinfo_section_label); ! if (dwarf_split_debug_info) { /* optimize_location_lists calculates the size of the lists, so index them first, and assign indices to the entries. Although optimize_location_lists will remove entries from the table, it only does so for duplicates, and therefore only reduces ref_counts to 1. */ index_location_lists (comp_unit_die ()); ! ! if (addr_index_table != NULL) ! { ! unsigned int index = 0; ! htab_traverse_noresize (addr_index_table, ! index_addr_table_entry, &index); ! } } + if (have_location_lists) optimize_location_lists (comp_unit_die ()); diff -Nrcpad gcc-4.9.0/gcc/expmed.c gcc-4.9.1/gcc/expmed.c *** gcc-4.9.0/gcc/expmed.c Tue Feb 4 09:36:18 2014 --- gcc-4.9.1/gcc/expmed.c Mon Jun 30 16:56:01 2014 *************** expand_shift_1 (enum tree_code code, enu *** 2141,2149 **** --- 2141,2152 ---- optab lrotate_optab = rotl_optab; optab rrotate_optab = rotr_optab; enum machine_mode op1_mode; + enum machine_mode scalar_mode = mode; int attempt; bool speed = optimize_insn_for_speed_p (); + if (VECTOR_MODE_P (mode)) + scalar_mode = GET_MODE_INNER (mode); op1 = amount; op1_mode = GET_MODE (op1); *************** expand_shift_1 (enum tree_code code, enu *** 2166,2174 **** { if (CONST_INT_P (op1) && ((unsigned HOST_WIDE_INT) INTVAL (op1) >= ! (unsigned HOST_WIDE_INT) GET_MODE_BITSIZE (mode))) op1 = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (op1) ! % GET_MODE_BITSIZE (mode)); else if (GET_CODE (op1) == SUBREG && subreg_lowpart_p (op1) && SCALAR_INT_MODE_P (GET_MODE (SUBREG_REG (op1))) --- 2169,2177 ---- { if (CONST_INT_P (op1) && ((unsigned HOST_WIDE_INT) INTVAL (op1) >= ! (unsigned HOST_WIDE_INT) GET_MODE_BITSIZE (scalar_mode))) op1 = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (op1) ! % GET_MODE_BITSIZE (scalar_mode)); else if (GET_CODE (op1) == SUBREG && subreg_lowpart_p (op1) && SCALAR_INT_MODE_P (GET_MODE (SUBREG_REG (op1))) *************** expand_shift_1 (enum tree_code code, enu *** 2182,2191 **** amount instead. */ if (rotate && CONST_INT_P (op1) ! && IN_RANGE (INTVAL (op1), GET_MODE_BITSIZE (mode) / 2 + left, ! GET_MODE_BITSIZE (mode) - 1)) { ! op1 = GEN_INT (GET_MODE_BITSIZE (mode) - INTVAL (op1)); left = !left; code = left ? LROTATE_EXPR : RROTATE_EXPR; } --- 2185,2194 ---- amount instead. */ if (rotate && CONST_INT_P (op1) ! && IN_RANGE (INTVAL (op1), GET_MODE_BITSIZE (scalar_mode) / 2 + left, ! GET_MODE_BITSIZE (scalar_mode) - 1)) { ! op1 = GEN_INT (GET_MODE_BITSIZE (scalar_mode) - INTVAL (op1)); left = !left; code = left ? LROTATE_EXPR : RROTATE_EXPR; } *************** expand_shift_1 (enum tree_code code, enu *** 2198,2204 **** if (code == LSHIFT_EXPR && CONST_INT_P (op1) && INTVAL (op1) > 0 ! && INTVAL (op1) < GET_MODE_PRECISION (mode) && INTVAL (op1) < MAX_BITS_PER_WORD && (shift_cost (speed, mode, INTVAL (op1)) > INTVAL (op1) * add_cost (speed, mode)) --- 2201,2207 ---- if (code == LSHIFT_EXPR && CONST_INT_P (op1) && INTVAL (op1) > 0 ! && INTVAL (op1) < GET_MODE_PRECISION (scalar_mode) && INTVAL (op1) < MAX_BITS_PER_WORD && (shift_cost (speed, mode, INTVAL (op1)) > INTVAL (op1) * add_cost (speed, mode)) *************** expand_shift_1 (enum tree_code code, enu *** 2253,2266 **** if (op1 == const0_rtx) return shifted; else if (CONST_INT_P (op1)) ! other_amount = GEN_INT (GET_MODE_BITSIZE (mode) - INTVAL (op1)); else { other_amount = simplify_gen_unary (NEG, GET_MODE (op1), op1, GET_MODE (op1)); ! HOST_WIDE_INT mask = GET_MODE_PRECISION (mode) - 1; other_amount = simplify_gen_binary (AND, GET_MODE (op1), other_amount, gen_int_mode (mask, GET_MODE (op1))); --- 2256,2269 ---- if (op1 == const0_rtx) return shifted; else if (CONST_INT_P (op1)) ! other_amount = GEN_INT (GET_MODE_BITSIZE (scalar_mode) - INTVAL (op1)); else { other_amount = simplify_gen_unary (NEG, GET_MODE (op1), op1, GET_MODE (op1)); ! HOST_WIDE_INT mask = GET_MODE_PRECISION (scalar_mode) - 1; other_amount = simplify_gen_binary (AND, GET_MODE (op1), other_amount, gen_int_mode (mask, GET_MODE (op1))); diff -Nrcpad gcc-4.9.0/gcc/fold-const.c gcc-4.9.1/gcc/fold-const.c *** gcc-4.9.0/gcc/fold-const.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fold-const.c Wed May 28 12:46:39 2014 *************** negate_expr_p (tree t) *** 484,491 **** case TRUNC_DIV_EXPR: case ROUND_DIV_EXPR: - case FLOOR_DIV_EXPR: - case CEIL_DIV_EXPR: case EXACT_DIV_EXPR: /* In general we can't negate A / B, because if A is INT_MIN and B is 1, we may turn this into INT_MIN / -1 which is undefined --- 484,489 ---- *************** fold_negate_expr (location_t loc, tree t *** 682,689 **** case TRUNC_DIV_EXPR: case ROUND_DIV_EXPR: - case FLOOR_DIV_EXPR: - case CEIL_DIV_EXPR: case EXACT_DIV_EXPR: /* In general we can't negate A / B, because if A is INT_MIN and B is 1, we may turn this into INT_MIN / -1 which is undefined --- 680,685 ---- *************** fold_comparison (location_t loc, enum tr *** 9312,9318 **** /* Transform comparisons of the form X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 for signed X, Y. This is valid if the resulting offset is smaller in absolute value than the ! original one. */ if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0)) && (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR) && (TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST --- 9308,9314 ---- /* Transform comparisons of the form X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 for signed X, Y. This is valid if the resulting offset is smaller in absolute value than the ! original one and has the same sign. */ if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0)) && (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR) && (TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST *************** fold_comparison (location_t loc, enum tr *** 9331,9362 **** "a comparison"); /* Put the constant on the side where it doesn't overflow and is ! of lower absolute value than before. */ cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1) ? MINUS_EXPR : PLUS_EXPR, const2, const1); if (!TREE_OVERFLOW (cst) ! && tree_int_cst_compare (const2, cst) == tree_int_cst_sgn (const2)) { fold_overflow_warning (warnmsg, WARN_STRICT_OVERFLOW_COMPARISON); return fold_build2_loc (loc, code, type, ! variable1, ! fold_build2_loc (loc, ! TREE_CODE (arg1), TREE_TYPE (arg1), ! variable2, cst)); } cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1) ? MINUS_EXPR : PLUS_EXPR, const1, const2); if (!TREE_OVERFLOW (cst) ! && tree_int_cst_compare (const1, cst) == tree_int_cst_sgn (const1)) { fold_overflow_warning (warnmsg, WARN_STRICT_OVERFLOW_COMPARISON); return fold_build2_loc (loc, code, type, ! fold_build2_loc (loc, TREE_CODE (arg0), TREE_TYPE (arg0), ! variable1, cst), ! variable2); } } --- 9327,9361 ---- "a comparison"); /* Put the constant on the side where it doesn't overflow and is ! of lower absolute value and of same sign than before. */ cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1) ? MINUS_EXPR : PLUS_EXPR, const2, const1); if (!TREE_OVERFLOW (cst) ! && tree_int_cst_compare (const2, cst) == tree_int_cst_sgn (const2) ! && tree_int_cst_sgn (cst) == tree_int_cst_sgn (const2)) { fold_overflow_warning (warnmsg, WARN_STRICT_OVERFLOW_COMPARISON); return fold_build2_loc (loc, code, type, ! variable1, ! fold_build2_loc (loc, TREE_CODE (arg1), ! TREE_TYPE (arg1), ! variable2, cst)); } cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1) ? MINUS_EXPR : PLUS_EXPR, const1, const2); if (!TREE_OVERFLOW (cst) ! && tree_int_cst_compare (const1, cst) == tree_int_cst_sgn (const1) ! && tree_int_cst_sgn (cst) == tree_int_cst_sgn (const1)) { fold_overflow_warning (warnmsg, WARN_STRICT_OVERFLOW_COMPARISON); return fold_build2_loc (loc, code, type, ! fold_build2_loc (loc, TREE_CODE (arg0), ! TREE_TYPE (arg0), ! variable1, cst), ! variable2); } } *************** fold_binary_loc (location_t loc, *** 11430,11436 **** { double_int c1, c2, c3, msk; int width = TYPE_PRECISION (type), w; - bool try_simplify = true; c1 = tree_to_double_int (TREE_OPERAND (arg0, 1)); c2 = tree_to_double_int (arg1); --- 11429,11434 ---- *************** fold_binary_loc (location_t loc, *** 11467,11486 **** } } ! /* If X is a tree of the form (Y * K1) & K2, this might conflict ! with that optimization from the BIT_AND_EXPR optimizations. ! This could end up in an infinite recursion. */ ! if (TREE_CODE (TREE_OPERAND (arg0, 0)) == MULT_EXPR ! && TREE_CODE (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1)) ! == INTEGER_CST) ! { ! tree t = TREE_OPERAND (TREE_OPERAND (arg0, 0), 1); ! double_int masked = mask_with_tz (type, c3, tree_to_double_int (t)); ! ! try_simplify = (masked != c1); ! } ! ! if (try_simplify && c3 != c1) return fold_build2_loc (loc, BIT_IOR_EXPR, type, fold_build2_loc (loc, BIT_AND_EXPR, type, TREE_OPERAND (arg0, 0), --- 11465,11471 ---- } } ! if (c3 != c1) return fold_build2_loc (loc, BIT_IOR_EXPR, type, fold_build2_loc (loc, BIT_AND_EXPR, type, TREE_OPERAND (arg0, 0), *************** fold_binary_loc (location_t loc, *** 11870,11885 **** && TREE_CODE (arg0) == MULT_EXPR && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) { double_int masked ! = mask_with_tz (type, tree_to_double_int (arg1), tree_to_double_int (TREE_OPERAND (arg0, 1))); if (masked.is_zero ()) return omit_two_operands_loc (loc, type, build_zero_cst (type), arg0, arg1); ! else if (masked != tree_to_double_int (arg1)) ! return fold_build2_loc (loc, code, type, op0, ! double_int_to_tree (type, masked)); } /* For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M, --- 11855,11879 ---- && TREE_CODE (arg0) == MULT_EXPR && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) { + double_int darg1 = tree_to_double_int (arg1); double_int masked ! = mask_with_tz (type, darg1, tree_to_double_int (TREE_OPERAND (arg0, 1))); if (masked.is_zero ()) return omit_two_operands_loc (loc, type, build_zero_cst (type), arg0, arg1); ! else if (masked != darg1) ! { ! /* Avoid the transform if arg1 is a mask of some ! mode which allows further optimizations. */ ! int pop = darg1.popcount (); ! if (!(pop >= BITS_PER_UNIT ! && exact_log2 (pop) != -1 ! && double_int::mask (pop) == darg1)) ! return fold_build2_loc (loc, code, type, op0, ! double_int_to_tree (type, masked)); ! } } /* For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M, *************** fold_binary_loc (location_t loc, *** 12092,12102 **** /* See if we can shorten the right shift. */ if (shiftc < prec) shift_type = inner_type; } } zerobits = ~(unsigned HOST_WIDE_INT) 0; ! zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc; ! zerobits <<= prec - shiftc; /* For arithmetic shift if sign bit could be set, zerobits can contain actually sign bits, so no transformation is possible, unless MASK masks them all away. In that --- 12086,12102 ---- /* See if we can shorten the right shift. */ if (shiftc < prec) shift_type = inner_type; + /* Otherwise X >> C1 is all zeros, so we'll optimize + it into (X, 0) later on by making sure zerobits + is all ones. */ } } zerobits = ~(unsigned HOST_WIDE_INT) 0; ! if (shiftc < prec) ! { ! zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc; ! zerobits <<= prec - shiftc; ! } /* For arithmetic shift if sign bit could be set, zerobits can contain actually sign bits, so no transformation is possible, unless MASK masks them all away. In that *************** fold_binary_loc (location_t loc, *** 12114,12120 **** /* ((X << 16) & 0xff00) is (X, 0). */ if ((mask & zerobits) == mask) return omit_one_operand_loc (loc, type, ! build_int_cst (type, 0), arg0); newmask = mask | zerobits; if (newmask != mask && (newmask & (newmask + 1)) == 0) --- 12114,12120 ---- /* ((X << 16) & 0xff00) is (X, 0). */ if ((mask & zerobits) == mask) return omit_one_operand_loc (loc, type, ! build_int_cst (type, 0), arg0); newmask = mask | zerobits; if (newmask != mask && (newmask & (newmask + 1)) == 0) diff -Nrcpad gcc-4.9.0/gcc/fortran/ChangeLog gcc-4.9.1/gcc/fortran/ChangeLog *** gcc-4.9.0/gcc/fortran/ChangeLog Tue Apr 22 09:42:36 2014 --- gcc-4.9.1/gcc/fortran/ChangeLog Wed Jul 16 10:03:21 2014 *************** *** 1,3 **** --- 1,621 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-07-07 Paul Thomas + + PR fortran/61459 + PR fortran/58883 + * trans-expr.c (fcncall_realloc_result): Use the natural type + for the address expression of 'res_desc'. + + 2014-07-07 Dominique d'Humieres + Mikael Morin + + PR fortran/41936 + * trans-expr.c (gfc_conv_expr_reference): Deallocate array + components. + + 2014-07-02 Jakub Jelinek + Fritz Reese + + * decl.c (variable_decl): Reject old style initialization + for derived type components. + + 2014-06-30 Jakub Jelinek + + * module.c (MOD_VERSION): Revert back to 12. + (MOD_VERSION_OMP4): Define. + (module_omp4): New variable. + (mio_symbol): Call mio_omp_declare_simd only if module_omp4. + (read_module): Load omp udrs only if module_omp4. + (write_module): Write omp udrs only if module_omp4. + (find_omp_declare_simd): New function. + (gfc_dump_module): Compute module_omp4. Use MOD_VERSION_OMP4 + if module_omp4. + (gfc_use_module): Handle MOD_VERSION_OMP4, set module_omp4. + + Backported from mainline + 2014-06-25 Jakub Jelinek + + * trans.h (gfc_omp_clause_linear_ctor): New prototype. + * trans-openmp.c (gfc_omp_linear_clause_add_loop, + gfc_omp_clause_linear_ctor): New functions. + (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has + correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed. + * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine. + + 2014-06-24 Jakub Jelinek + + * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead + of n->udr. + * f95-lang.c (gfc_init_builtin_functions): Initialize + BUILT_IN_ASSUME_ALIGNED. + * gfortran.h (gfc_omp_namelist): Change udr field type to + struct gfc_omp_namelist_udr. + (gfc_omp_namelist_udr): New type. + (gfc_get_omp_namelist_udr): Define. + (gfc_resolve_code): New prototype. + * match.c (gfc_free_omp_namelist): Free name->udr. + * module.c (intrinsics): Add INTRINSIC_USER. + (fix_mio_expr): Likewise. + (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION. + * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr. + (gfc_match_omp_declare_reduction): Treat len=: the same as len=*. + Set attr.flavor on omp_{out,in,priv,orig} artificial variables. + (struct resolve_omp_udr_callback_data): New type. + (resolve_omp_udr_callback, resolve_omp_udr_callback2, + resolve_omp_udr_clause): New functions. + (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses + here. + (omp_udr_callback): Don't check for implicitly declared functions + here. + (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for + implicitly declared subroutines here. + * resolve.c (resolve_function): If value.function.isym is non-NULL, + consider it already resolved. + (resolve_code): Renamed to ... + (gfc_resolve_code): ... this. No longer static. + (gfc_resolve_blocks, generate_component_assignments, resolve_codes): + Adjust callers. + * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize + by reference type (C_PTR) variables. + (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL. + (gfc_trans_omp_udr_expr): Remove. + (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes. + Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension + expand it as assignment or subroutine call. Don't initialize + value.function.isym. + + 2014-06-18 Tobias Burnus + + * gfortran.texi (OpenMP): Update refs to OpenMP 4.0. + * intrinsic.texi (OpenMP Modules): Ditto. + + 2014-06-18 Jakub Jelinek + + * cpp.c (cpp_define_builtins): Change _OPENMP macro to + 201307. + * dump-parse-tree.c (show_omp_namelist): Add list_type + argument. Adjust for rop being u.reduction_op now, + handle depend_op or map_op. + (show_omp_node): Adjust callers. Print some new + OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT} + becoming a single OMP_LIST_DEPEND. + * f95-lang.c (gfc_handle_omp_declare_target_attribute): New + function. + (gfc_attribute_table): New variable. + (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine. + * frontend-passes.c (gfc_code_walker): Handle new OpenMP target + EXEC_OMP_* codes and new clauses. + * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET, + ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE, + ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS, + ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD, + ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO, + ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, + ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS, + ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE, + ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD, + ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE, + ST_OMP_END_TARGET_TEAMS_DISTRIBUTE, + ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, + ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD, + ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, + ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO, + ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, + ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, + ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, + ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, + ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and + ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD. + (symbol_attribute): Add omp_declare_target field. + (gfc_omp_depend_op, gfc_omp_map_op): New enums. + (gfc_omp_namelist): Replace rop field with union + containing reduction_op, depend_op and map_op. + (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove. + (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New. + (gfc_omp_clauses): Add num_teams, device, thread_limit, + dist_sched_kind, dist_chunk_size fields. + (gfc_common_head): Add omp_declare_target field. + (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA, + EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD, + EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, + EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE, + EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE, + EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, + EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, + EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, + EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, + EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and + EXEC_OMP_TARGET_UPDATE. + (gfc_add_omp_declare_target): New prototype. + * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute, + gfc_match_omp_distribute_parallel_do, + gfc_match_omp_distribute_parallel_do_simd, + gfc_match_omp_distribute_simd, gfc_match_omp_target, + gfc_match_omp_target_data, gfc_match_omp_target_teams, + gfc_match_omp_target_teams_distribute, + gfc_match_omp_target_teams_distribute_parallel_do, + gfc_match_omp_target_teams_distribute_parallel_do_simd, + gfc_match_omp_target_teams_distribute_simd, + gfc_match_omp_target_update, gfc_match_omp_teams, + gfc_match_omp_teams_distribute, + gfc_match_omp_teams_distribute_parallel_do, + gfc_match_omp_teams_distribute_parallel_do_simd, + gfc_match_omp_teams_distribute_simd): New prototypes. + * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET. + (attr_bits): Likewise. + (mio_symbol_attribute): Handle omp_declare_target attribute. + (gfc_free_omp_clauses): Free num_teams, device, thread_limit + and dist_chunk_size expressions. + (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, + OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, + OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, + OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, + OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, + OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, + OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, + OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, + OMP_CLAUSE_UNIFORM): Use 1U instead of 1. + (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM, + OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT, + OMP_CLAUSE_DIST_SCHEDULE): Define. + (gfc_match_omp_clauses): Change mask parameter to unsigned int. + Adjust for rop becoming u.reduction_op. Disallow inbranch with + notinbranch. For depend clause, always create OMP_LIST_DEPEND + and fill in u.depend_op. Handle num_teams, device, map, + to, from, thread_limit and dist_schedule clauses. + (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and + OMP_CLAUSE_NOTINBRANCH. + (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES, + OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES, + OMP_DISTRIBUTE_CLAUSES): Define. + (match_omp): New function. + (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel, + gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd, + gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare, + gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single, + gfc_match_omp_task): Rewritten using match_omp. + (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction): + Diagnose if the directives are followed by unexpected junk. + (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do, + gfc_match_omp_distribute_parallel_do_simd, + gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target, + gfc_match_omp_target, gfc_match_omp_target_data, + gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute, + gfc_match_omp_target_teams_distribute_parallel_do, + gfc_match_omp_target_teams_distribute_parallel_do_simd, + gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update, + gfc_match_omp_teams, gfc_match_omp_teams_distribute, + gfc_match_omp_teams_distribute_parallel_do, + gfc_match_omp_teams_distribute_parallel_do_simd, + gfc_match_omp_teams_distrbute_simd): New functions. + * openmp.c (resolve_omp_clauses): Adjust for + OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle + OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device, + dist_chunk_size and thread_limit. + (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into + ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various + new EXEC_OMP_* codes. + (resolve_omp_do): Handle various new EXEC_OMP_* codes. + (gfc_resolve_omp_directive): Likewise. + (gfc_resolve_omp_declare_simd): Add missing space to diagnostics. + * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0 + offloading related directives. + (case_executable): Add ST_OMP_TARGET_UPDATE. + (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*, + ST_OMP_DISTRIBUTE*. + (case_decl): Add ST_OMP_DECLARE_TARGET. + (gfc_ascii_statement): Handle new ST_OMP_* codes. + (parse_omp_do): Handle various new ST_OMP_* codes. + (parse_executable): Likewise. + * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_* + codes. + (resolve_code): Likewise. + (resolve_symbol): Change that !$OMP DECLARE TARGET variables + are saved. + * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes. + * symbol.c (check_conflict): Check omp_declare_target conflicts. + (gfc_add_omp_declare_target): New function. + (gfc_copy_attr): Copy omp_declare_target. + * trans.c (trans_code): Handle various new EXEC_OMP_* codes. + * trans-common.c (build_common_decl): Add "omp declare target" + attribute if needed. + * trans-decl.c (add_attributes_to_decl): Likewise. + * trans.h (gfc_omp_finish_clause): New prototype. + * trans-openmp.c (gfc_omp_finish_clause): New function. + (gfc_trans_omp_reduction_list): Adjust for rop being renamed + to u.reduction_op. + (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT} + change to OMP_LIST_DEPEND and fix up depend handling. + Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams, + thread_limit, device, dist_chunk_size and dist_sched_kind. + (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE. + (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS, + GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE, + GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New. + (gfc_split_omp_clauses): Handle splitting of clauses for new + EXEC_OMP_* codes. + (gfc_trans_omp_do_simd): Add pblock argument, adjust for being + callable for combined constructs. + (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise. + (gfc_trans_omp_distribute, gfc_trans_omp_teams, + gfc_trans_omp_target, gfc_trans_omp_target_data, + gfc_trans_omp_target_update): New functions. + (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle + new EXEC_OMP_* codes. + + 2014-06-10 Jakub Jelinek + + PR fortran/60928 + * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd + like -fopenmp. + * openmp.c (resolve_omp_clauses): Remove allocatable components + diagnostics. Add associate-name and intent(in) pointer + diagnostics for various clauses, diagnose procedure pointers in + reduction clause. + * parse.c (match_word_omp_simd): New function. + (matchs, matcho): New macros. + (decode_omp_directive): Change match macros to either matchs + or matcho. Handle -fopenmp-simd. + (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp. + * scanner.c (skip_free_comments, skip_fixed_comments, include_line): + Likewise. + * trans-array.c (get_full_array_size): Rename to... + (gfc_full_array_size): ... this. No longer static. + (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument + and handle it. + (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust + duplicate_allocatable callers. + (gfc_duplicate_allocatable_nocopy): New function. + (structure_alloc_comps): Adjust g*_full_array_size and + duplicate_allocatable caller. + * trans-array.h (gfc_full_array_size, + gfc_duplicate_allocatable_nocopy): New prototypes. + * trans-common.c (create_common): Call gfc_finish_decl_attrs. + * trans-decl.c (gfc_finish_decl_attrs): New function. + (gfc_finish_var_decl, create_function_arglist, + gfc_get_fake_result_decl): Call it. + (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated, + don't allocate it again. + (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on + associate-names. + * trans.h (gfc_finish_decl_attrs): New prototype. + (struct lang_decl): Add scalar_allocatable and scalar_pointer + bitfields. + (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER, + GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER, + GFC_DECL_ASSOCIATE_VAR_P): Define. + (GFC_POINTER_TYPE_P): Remove. + * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check + GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE, + GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl. + (gfc_omp_predetermined_sharing): Associate-names are predetermined. + (enum walk_alloc_comps): New. + (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr, + gfc_walk_alloc_comps): New functions. + (gfc_omp_private_outer_ref): Return true for scalar allocatables or + decls with allocatable components. + (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor, + gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of + allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar + allocatables and decls with allocatable components. + (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable + arrays here. + (gfc_trans_omp_reduction_list): Call + gfc_trans_omp_array_reduction_or_udr even for allocatable scalars. + (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD. + (gfc_trans_omp_parallel_do_simd): Likewise. + * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P. + (gfc_get_derived_type): Call gfc_finish_decl_attrs. + + 2014-06-06 Jakub Jelinek + + * dump-parse-tree.c (show_omp_namelist): Dump reduction + id in each list item. + (show_omp_node): Only handle OMP_LIST_REDUCTION, not + OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't + dump reduction id here. + * frontend-passes.c (dummy_code_callback): Renamed to... + (gfc_dummy_code_callback): ... this. No longer static. + (optimize_reduction): Use gfc_dummy_code_callback instead of + dummy_code_callback. + * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION. + (symbol_attribute): Add omp_udr_artificial_var bitfield. + (gfc_omp_reduction_op): New enum. + (gfc_omp_namelist): Add rop and udr fields. + (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT, + OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV, + OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND, + OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed. + (OMP_LIST_REDUCTION): New. + (gfc_omp_udr): New type. + (gfc_get_omp_udr): Define. + (gfc_symtree): Add n.omp_udr field. + (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield. + (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs, + gfc_dummy_code_callback): New prototypes. + * match.h (gfc_match_omp_declare_reduction): New prototype. + * module.c (MOD_VERSION): Increase to 13. + (omp_declare_reduction_stmt): New array. + (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs): + New functions. + (read_module): Read OpenMP user defined reductions. + (write_module): Write OpenMP user defined reductions. + * openmp.c: Include arith.h. + (gfc_free_omp_udr, gfc_find_omp_udr): New functions. + (gfc_match_omp_clauses): Handle user defined reductions. + Store reduction kind into gfc_omp_namelist instead of using + several OMP_LIST_* entries. + (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find, + gfc_match_omp_declare_reduction): New functions. + (resolve_omp_clauses): Adjust for reduction clauses being only + in OMP_LIST_REDUCTION list. Diagnose missing UDRs. + (struct omp_udr_callback_data): New type. + (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New + functions. + * parse.c (decode_omp_directive): Handle !$omp declare reduction. + (case_decl): Add ST_OMP_DECLARE_REDUCTION. + (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION. + * resolve.c (resolve_fl_variable): Allow len=: or len=* on + sym->attr.omp_udr_artificial_var symbols. + (resolve_types): Call gfc_resolve_omp_udrs. + * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns, + use parent ns instead of gfc_current_ns. + (gfc_get_sym_tree): Don't insert symbols into + namespaces with omp_udr_ns set. + (free_omp_udr_tree): New function. + (gfc_free_namespace): Call it. + * trans-openmp.c (struct omp_udr_find_orig_data): New type. + (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions. + (gfc_trans_omp_array_reduction): Renamed to... + (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM + argument, instead pass gfc_omp_namelist pointer N. Handle + user defined reductions. + (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument. + Handle user defined reductions and reduction ops in gfc_omp_namelist. + (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION + list. + (gfc_split_omp_clauses): Likewise. + + 2014-05-12 Tobias Burnus + + PR fortran/60127 + * openmp.c (resolve_omp_do): Reject do concurrent loops. + + 2014-05-11 Jakub Jelinek + + * gfortran.h (gfc_statement): Add ST_OMP_CANCEL, + ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, + ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, + ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and + ST_OMP_DECLARE_SIMD. + (gfc_omp_namelist): New typedef. + (gfc_get_omp_namelist): Define. + (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR, + OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds. + (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums. + (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *. + Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and + simdlen_expr fields. + (gfc_omp_declare_simd): New typedef. + (gfc_get_omp_declare_simd): Define. + (gfc_namespace): Add omp_declare_simd field. + (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, + EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and + EXEC_OMP_PARALLEL_DO_SIMD. + (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST + and GFC_OMP_ATOMIC_SWAP. + (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *. + (gfc_free_omp_namelist, gfc_free_omp_declare_simd, + gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New + prototypes. + * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype. + * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd. + * openmp.c (gfc_free_omp_clauses): Free safelen_expr and + simdlen_expr. Use gfc_free_omp_namelist instead of + gfc_free_namelist. + (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New + functions. + (gfc_match_omp_variable_list): Add end_colon, headp and + allow_sections arguments. Handle parsing of array sections. + Use *omp_namelist* instead of *namelist* data structure and + functions/macros. Allow termination at : character. + (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH, + OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND, + OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define. + (gfc_match_omp_clauses): Change first and needs_space variables + into arguments with default values. Parse inbranch, notinbranch, + proc_bind, safelen, simdlen, uniform, linear, aligned and + depend clauses. + (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND. + (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define. + (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND. + (gfc_match_omp_do_simd): New function. + (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist* + data structure and functions/macros. + (gfc_match_omp_simd, gfc_match_omp_declare_simd, + gfc_match_omp_parallel_do_simd): New functions. + (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap. + (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind, + gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New + functions. + (resolve_omp_clauses): Add where, omp_clauses and ns arguments. + Use *omp_namelist* instead of *namelist* data structure and + functions/macros. Resolve uniform, aligned, linear, depend, + safelen and simdlen clauses. + (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP} + addition, recognize atomic swap. + (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead + of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as + EXEC_OMP_PARALLEL_DO. + (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist* + data structure and functions/macros. + (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD. + (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust + resolve_omp_clauses caller. + (gfc_resolve_omp_declare_simd): New function. + * parse.c (decode_omp_directive): Parse cancellation point, cancel, + declare simd, end do simd, end simd, end parallel do simd, + end taskgroup, parallel do simd, simd and taskgroup directives. + (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT. + (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD, + ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD. + (case_decl): Add ST_OMP_DECLARE_SIMD. + (gfc_ascii_statement): Handle ST_OMP_CANCEL, + ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, + ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, + ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and + ST_OMP_DECLARE_SIMD. + (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and + ST_OMP_PARALLEL_DO_SIMD. + (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions. + (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and + ST_OMP_PARALLEL_DO_SIMD. + (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD, + ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP. + * trans-decl.c (gfc_get_extern_function_decl, + gfc_create_function_decl): Call gfc_trans_omp_declare_simd if + needed. + * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD, + EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk + safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist + of depend, aligned and linear clauses. + * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD + and EXEC_OMP_PARALLEL_DO_SIMD. + (gfc_free_omp_namelist): New function. + * dump-parse-tree.c (show_namelist): Removed. + (show_omp_namelist): New function. + (show_omp_node): Handle OpenMP 4.0 additions. + (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, + EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and + EXEC_OMP_TASKGROUP. + * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point, + gfc_match_omp_declare_simd, gfc_match_omp_do_simd, + gfc_match_omp_parallel_do_simd, gfc_match_omp_simd, + gfc_match_omp_taskgroup): New prototypes. + * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd + argument, handle it. Allow current_function_decl to be NULL. + (gfc_trans_omp_variable_list): Add declare_simd argument, pass + it through to gfc_trans_omp_variable and disregard whether + sym is referenced if declare_simd is true. Work on gfc_omp_namelist + instead of gfc_namelist. + (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of + gfc_namelist. Adjust gfc_trans_omp_variable caller. + (gfc_trans_omp_clauses): Add declare_simd argument, pass it through + to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist + instead of gfc_namelist. Handle inbranch, notinbranch, safelen, + simdlen, depend, uniform, linear, proc_bind and aligned clauses. + Handle cancel kind. + (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap, + adjust for GFC_OMP_ATOMIC_* changes. + (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New + functions. + (gfc_trans_omp_do): Add op argument, handle simd translation into + generic. + (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL, + GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO, + GFC_OMP_MASK_PARALLEL): New. + (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions. + (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses. + (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New + functions. + (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL, + EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. + Adjust gfc_trans_omp_do caller. + (gfc_trans_omp_declare_simd): New function. + * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL, + EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. + For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of + gfc_free_namelist. + * module.c (omp_declare_simd_clauses): New variable. + (mio_omp_declare_simd): New function. + (mio_symbol): Call it. + * trans.c (trans_code): Handle EXEC_OMP_CANCEL, + EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. + * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. + (resolve_code): Handle EXEC_OMP_CANCEL, + EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, + EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. + (resolve_types): Call gfc_resolve_omp_declare_simd. + + 2014-06-15 Francois-Xavier Coudert + + Backport from trunk. + PR fortran/45187 + * trans-decl.c (gfc_create_module_variable): Don't create + Cray-pointee decls twice. + + 2014-06-09 Paul Thomas + + Backport from trunk. + PR fortran/61406 + * trans-stmt.c (trans_associate_var): Check that array + constructors are constant for direct reference. + + 2014-06-05 Richard Biener + + PR fortran/61418 + * gfortranspec.c (spec_file): Remove. + (find_spec_file): Likewise. + (lang_specific_driver): Do not look for specs file in -L + or append -specs command line argument. + (lang_specific_pre_link): Always %:include libgfortran.spec. + + 2014-05-29 Thomas Koenig + + PR fortran/60834 + Backport from mainline + * frontend-passes.c (in_assoc_list): New variable. + (optimize_namespace): Initialize in_assoc_list + (combine_array_constructor): Don't try to combine + assoc lists. + (gfc_code_walker): Keep track of in_assoc_list. + + 2014-05-26 Janne Blomqvist + + Backport from mainline + PR libfortran/61310 + * intrinsics.texi (CTIME): Remove mention of locale-dependent + behavior. + + 2014-04-22 Tobias Burnus + + Backport from mainline + 2014-04-11 Tobias Burnus + + PR fortran/58880 + PR fortran/60495 + * resolve.c (gfc_resolve_finalizers): Ensure that vtables + and finalization wrappers are generated. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/fortran/cpp.c gcc-4.9.1/gcc/fortran/cpp.c *** gcc-4.9.0/gcc/fortran/cpp.c Sat Mar 22 07:18:38 2014 --- gcc-4.9.1/gcc/fortran/cpp.c Mon Jun 30 16:35:48 2014 *************** cpp_define_builtins (cpp_reader *pfile) *** 171,177 **** cpp_define (pfile, "_LANGUAGE_FORTRAN=1"); if (gfc_option.gfc_flag_openmp) ! cpp_define (pfile, "_OPENMP=201107"); /* The defines below are necessary for the TARGET_* macros. --- 171,177 ---- cpp_define (pfile, "_LANGUAGE_FORTRAN=1"); if (gfc_option.gfc_flag_openmp) ! cpp_define (pfile, "_OPENMP=201307"); /* The defines below are necessary for the TARGET_* macros. diff -Nrcpad gcc-4.9.0/gcc/fortran/decl.c gcc-4.9.1/gcc/fortran/decl.c *** gcc-4.9.0/gcc/fortran/decl.c Wed Mar 19 21:03:14 2014 --- gcc-4.9.1/gcc/fortran/decl.c Wed Jul 2 09:44:03 2014 *************** variable_decl (int elem) *** 1997,2002 **** --- 1997,2009 ---- if (!gfc_notify_std (GFC_STD_GNU, "Old-style " "initialization at %C")) return MATCH_ERROR; + else if (gfc_current_state () == COMP_DERIVED) + { + gfc_error ("Invalid old style initialization for derived type " + "component at %C"); + m = MATCH_ERROR; + goto cleanup; + } return match_old_style_init (name); } diff -Nrcpad gcc-4.9.0/gcc/fortran/dump-parse-tree.c gcc-4.9.1/gcc/fortran/dump-parse-tree.c *** gcc-4.9.0/gcc/fortran/dump-parse-tree.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/dump-parse-tree.c Mon Jun 30 16:35:48 2014 *************** show_code (int level, gfc_code *c) *** 1016,1026 **** } static void ! show_namelist (gfc_namelist *n) { ! for (; n->next; n = n->next) ! fprintf (dumpfile, "%s,", n->sym->name); ! fprintf (dumpfile, "%s", n->sym->name); } /* Show a single OpenMP directive node and everything underneath it --- 1016,1075 ---- } static void ! show_omp_namelist (int list_type, gfc_omp_namelist *n) { ! for (; n; n = n->next) ! { ! if (list_type == OMP_LIST_REDUCTION) ! switch (n->u.reduction_op) ! { ! case OMP_REDUCTION_PLUS: ! case OMP_REDUCTION_TIMES: ! case OMP_REDUCTION_MINUS: ! case OMP_REDUCTION_AND: ! case OMP_REDUCTION_OR: ! case OMP_REDUCTION_EQV: ! case OMP_REDUCTION_NEQV: ! fprintf (dumpfile, "%s:", ! gfc_op2string ((gfc_intrinsic_op) n->u.reduction_op)); ! break; ! case OMP_REDUCTION_MAX: fputs ("max:", dumpfile); break; ! case OMP_REDUCTION_MIN: fputs ("min:", dumpfile); break; ! case OMP_REDUCTION_IAND: fputs ("iand:", dumpfile); break; ! case OMP_REDUCTION_IOR: fputs ("ior:", dumpfile); break; ! case OMP_REDUCTION_IEOR: fputs ("ieor:", dumpfile); break; ! case OMP_REDUCTION_USER: ! if (n->udr) ! fprintf (dumpfile, "%s:", n->udr->udr->name); ! break; ! default: break; ! } ! else if (list_type == OMP_LIST_DEPEND) ! switch (n->u.depend_op) ! { ! case OMP_DEPEND_IN: fputs ("in:", dumpfile); break; ! case OMP_DEPEND_OUT: fputs ("out:", dumpfile); break; ! case OMP_DEPEND_INOUT: fputs ("inout:", dumpfile); break; ! default: break; ! } ! else if (list_type == OMP_LIST_MAP) ! switch (n->u.map_op) ! { ! case OMP_MAP_ALLOC: fputs ("alloc:", dumpfile); break; ! case OMP_MAP_TO: fputs ("to:", dumpfile); break; ! case OMP_MAP_FROM: fputs ("from:", dumpfile); break; ! case OMP_MAP_TOFROM: fputs ("tofrom:", dumpfile); break; ! default: break; ! } ! fprintf (dumpfile, "%s", n->sym->name); ! if (n->expr) ! { ! fputc (':', dumpfile); ! show_expr (n->expr); ! } ! if (n->next) ! fputc (',', dumpfile); ! } } /* Show a single OpenMP directive node and everything underneath it *************** show_omp_node (int level, gfc_code *c) *** 1036,1053 **** --- 1085,1108 ---- { case EXEC_OMP_ATOMIC: name = "ATOMIC"; break; case EXEC_OMP_BARRIER: name = "BARRIER"; break; + case EXEC_OMP_CANCEL: name = "CANCEL"; break; + case EXEC_OMP_CANCELLATION_POINT: name = "CANCELLATION POINT"; break; case EXEC_OMP_CRITICAL: name = "CRITICAL"; break; case EXEC_OMP_FLUSH: name = "FLUSH"; break; case EXEC_OMP_DO: name = "DO"; break; + case EXEC_OMP_DO_SIMD: name = "DO SIMD"; break; case EXEC_OMP_MASTER: name = "MASTER"; break; case EXEC_OMP_ORDERED: name = "ORDERED"; break; case EXEC_OMP_PARALLEL: name = "PARALLEL"; break; case EXEC_OMP_PARALLEL_DO: name = "PARALLEL DO"; break; + case EXEC_OMP_PARALLEL_DO_SIMD: name = "PARALLEL DO SIMD"; break; case EXEC_OMP_PARALLEL_SECTIONS: name = "PARALLEL SECTIONS"; break; case EXEC_OMP_PARALLEL_WORKSHARE: name = "PARALLEL WORKSHARE"; break; case EXEC_OMP_SECTIONS: name = "SECTIONS"; break; + case EXEC_OMP_SIMD: name = "SIMD"; break; case EXEC_OMP_SINGLE: name = "SINGLE"; break; case EXEC_OMP_TASK: name = "TASK"; break; + case EXEC_OMP_TASKGROUP: name = "TASKGROUP"; break; case EXEC_OMP_TASKWAIT: name = "TASKWAIT"; break; case EXEC_OMP_TASKYIELD: name = "TASKYIELD"; break; case EXEC_OMP_WORKSHARE: name = "WORKSHARE"; break; *************** show_omp_node (int level, gfc_code *c) *** 1057,1067 **** --- 1112,1127 ---- fprintf (dumpfile, "!$OMP %s", name); switch (c->op) { + case EXEC_OMP_CANCEL: + case EXEC_OMP_CANCELLATION_POINT: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_SECTIONS: + case EXEC_OMP_SIMD: case EXEC_OMP_SINGLE: case EXEC_OMP_WORKSHARE: case EXEC_OMP_PARALLEL_WORKSHARE: *************** show_omp_node (int level, gfc_code *c) *** 1076,1082 **** if (c->ext.omp_namelist) { fputs (" (", dumpfile); ! show_namelist (c->ext.omp_namelist); fputc (')', dumpfile); } return; --- 1136,1142 ---- if (c->ext.omp_namelist) { fputs (" (", dumpfile); ! show_omp_namelist (OMP_LIST_NUM, c->ext.omp_namelist); fputc (')', dumpfile); } return; *************** show_omp_node (int level, gfc_code *c) *** 1091,1096 **** --- 1151,1173 ---- { int list_type; + switch (omp_clauses->cancel) + { + case OMP_CANCEL_UNKNOWN: + break; + case OMP_CANCEL_PARALLEL: + fputs (" PARALLEL", dumpfile); + break; + case OMP_CANCEL_SECTIONS: + fputs (" SECTIONS", dumpfile); + break; + case OMP_CANCEL_DO: + fputs (" DO", dumpfile); + break; + case OMP_CANCEL_TASKGROUP: + fputs (" TASKGROUP", dumpfile); + break; + } if (omp_clauses->if_expr) { fputs (" IF(", dumpfile); *************** show_omp_node (int level, gfc_code *c) *** 1156,1200 **** if (omp_clauses->lists[list_type] != NULL && list_type != OMP_LIST_COPYPRIVATE) { ! const char *type; ! if (list_type >= OMP_LIST_REDUCTION_FIRST) ! { ! switch (list_type) ! { ! case OMP_LIST_PLUS: type = "+"; break; ! case OMP_LIST_MULT: type = "*"; break; ! case OMP_LIST_SUB: type = "-"; break; ! case OMP_LIST_AND: type = ".AND."; break; ! case OMP_LIST_OR: type = ".OR."; break; ! case OMP_LIST_EQV: type = ".EQV."; break; ! case OMP_LIST_NEQV: type = ".NEQV."; break; ! case OMP_LIST_MAX: type = "MAX"; break; ! case OMP_LIST_MIN: type = "MIN"; break; ! case OMP_LIST_IAND: type = "IAND"; break; ! case OMP_LIST_IOR: type = "IOR"; break; ! case OMP_LIST_IEOR: type = "IEOR"; break; ! default: ! gcc_unreachable (); ! } ! fprintf (dumpfile, " REDUCTION(%s:", type); ! } ! else { ! switch (list_type) ! { ! case OMP_LIST_PRIVATE: type = "PRIVATE"; break; ! case OMP_LIST_FIRSTPRIVATE: type = "FIRSTPRIVATE"; break; ! case OMP_LIST_LASTPRIVATE: type = "LASTPRIVATE"; break; ! case OMP_LIST_SHARED: type = "SHARED"; break; ! case OMP_LIST_COPYIN: type = "COPYIN"; break; ! default: ! gcc_unreachable (); ! } ! fprintf (dumpfile, " %s(", type); } ! show_namelist (omp_clauses->lists[list_type]); fputc (')', dumpfile); } } fputc ('\n', dumpfile); if (c->op == EXEC_OMP_SECTIONS || c->op == EXEC_OMP_PARALLEL_SECTIONS) --- 1233,1315 ---- if (omp_clauses->lists[list_type] != NULL && list_type != OMP_LIST_COPYPRIVATE) { ! const char *type = NULL; ! switch (list_type) { ! case OMP_LIST_PRIVATE: type = "PRIVATE"; break; ! case OMP_LIST_FIRSTPRIVATE: type = "FIRSTPRIVATE"; break; ! case OMP_LIST_LASTPRIVATE: type = "LASTPRIVATE"; break; ! case OMP_LIST_SHARED: type = "SHARED"; break; ! case OMP_LIST_COPYIN: type = "COPYIN"; break; ! case OMP_LIST_UNIFORM: type = "UNIFORM"; break; ! case OMP_LIST_ALIGNED: type = "ALIGNED"; break; ! case OMP_LIST_LINEAR: type = "LINEAR"; break; ! case OMP_LIST_REDUCTION: type = "REDUCTION"; break; ! case OMP_LIST_DEPEND: type = "DEPEND"; break; ! default: ! gcc_unreachable (); } ! fprintf (dumpfile, " %s(", type); ! show_omp_namelist (list_type, omp_clauses->lists[list_type]); fputc (')', dumpfile); } + if (omp_clauses->safelen_expr) + { + fputs (" SAFELEN(", dumpfile); + show_expr (omp_clauses->safelen_expr); + fputc (')', dumpfile); + } + if (omp_clauses->simdlen_expr) + { + fputs (" SIMDLEN(", dumpfile); + show_expr (omp_clauses->simdlen_expr); + fputc (')', dumpfile); + } + if (omp_clauses->inbranch) + fputs (" INBRANCH", dumpfile); + if (omp_clauses->notinbranch) + fputs (" NOTINBRANCH", dumpfile); + if (omp_clauses->proc_bind != OMP_PROC_BIND_UNKNOWN) + { + const char *type; + switch (omp_clauses->proc_bind) + { + case OMP_PROC_BIND_MASTER: type = "MASTER"; break; + case OMP_PROC_BIND_SPREAD: type = "SPREAD"; break; + case OMP_PROC_BIND_CLOSE: type = "CLOSE"; break; + default: + gcc_unreachable (); + } + fprintf (dumpfile, " PROC_BIND(%s)", type); + } + if (omp_clauses->num_teams) + { + fputs (" NUM_TEAMS(", dumpfile); + show_expr (omp_clauses->num_teams); + fputc (')', dumpfile); + } + if (omp_clauses->device) + { + fputs (" DEVICE(", dumpfile); + show_expr (omp_clauses->device); + fputc (')', dumpfile); + } + if (omp_clauses->thread_limit) + { + fputs (" THREAD_LIMIT(", dumpfile); + show_expr (omp_clauses->thread_limit); + fputc (')', dumpfile); + } + if (omp_clauses->dist_sched_kind != OMP_SCHED_NONE) + { + fprintf (dumpfile, " DIST_SCHEDULE (static"); + if (omp_clauses->dist_chunk_size) + { + fputc (',', dumpfile); + show_expr (omp_clauses->dist_chunk_size); + } + fputc (')', dumpfile); + } } fputc ('\n', dumpfile); if (c->op == EXEC_OMP_SECTIONS || c->op == EXEC_OMP_PARALLEL_SECTIONS) *************** show_omp_node (int level, gfc_code *c) *** 1214,1219 **** --- 1329,1335 ---- show_code (level + 1, c->block->next); if (c->op == EXEC_OMP_ATOMIC) return; + fputc ('\n', dumpfile); code_indent (level, 0); fprintf (dumpfile, "!$OMP END %s", name); if (omp_clauses != NULL) *************** show_omp_node (int level, gfc_code *c) *** 1221,1227 **** if (omp_clauses->lists[OMP_LIST_COPYPRIVATE]) { fputs (" COPYPRIVATE(", dumpfile); ! show_namelist (omp_clauses->lists[OMP_LIST_COPYPRIVATE]); fputc (')', dumpfile); } else if (omp_clauses->nowait) --- 1337,1344 ---- if (omp_clauses->lists[OMP_LIST_COPYPRIVATE]) { fputs (" COPYPRIVATE(", dumpfile); ! show_omp_namelist (OMP_LIST_COPYPRIVATE, ! omp_clauses->lists[OMP_LIST_COPYPRIVATE]); fputc (')', dumpfile); } else if (omp_clauses->nowait) *************** show_code_node (int level, gfc_code *c) *** 2195,2213 **** --- 2312,2336 ---- break; case EXEC_OMP_ATOMIC: + case EXEC_OMP_CANCEL: + case EXEC_OMP_CANCELLATION_POINT: case EXEC_OMP_BARRIER: case EXEC_OMP_CRITICAL: case EXEC_OMP_FLUSH: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_MASTER: case EXEC_OMP_ORDERED: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_PARALLEL_WORKSHARE: case EXEC_OMP_SECTIONS: + case EXEC_OMP_SIMD: case EXEC_OMP_SINGLE: case EXEC_OMP_TASK: + case EXEC_OMP_TASKGROUP: case EXEC_OMP_TASKWAIT: case EXEC_OMP_TASKYIELD: case EXEC_OMP_WORKSHARE: diff -Nrcpad gcc-4.9.0/gcc/fortran/f95-lang.c gcc-4.9.1/gcc/fortran/f95-lang.c *** gcc-4.9.0/gcc/fortran/f95-lang.c Sat Mar 8 18:53:18 2014 --- gcc-4.9.1/gcc/fortran/f95-lang.c Mon Jun 30 16:35:48 2014 *************** static alias_set_type gfc_get_alias_set *** 87,92 **** --- 87,110 ---- static void gfc_init_ts (void); static tree gfc_builtin_function (tree); + /* Handle an "omp declare target" attribute; arguments as in + struct attribute_spec.handler. */ + static tree + gfc_handle_omp_declare_target_attribute (tree *, tree, tree, int, bool *) + { + return NULL_TREE; + } + + /* Table of valid Fortran attributes. */ + static const struct attribute_spec gfc_attribute_table[] = + { + /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler, + affects_type_identity } */ + { "omp declare target", 0, 0, true, false, false, + gfc_handle_omp_declare_target_attribute, false }, + { NULL, 0, 0, false, false, false, NULL, false } + }; + #undef LANG_HOOKS_NAME #undef LANG_HOOKS_INIT #undef LANG_HOOKS_FINISH *************** static tree gfc_builtin_function (tree); *** 108,114 **** --- 126,134 ---- #undef LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR #undef LANG_HOOKS_OMP_CLAUSE_COPY_CTOR #undef LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP + #undef LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR #undef LANG_HOOKS_OMP_CLAUSE_DTOR + #undef LANG_HOOKS_OMP_FINISH_CLAUSE #undef LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR #undef LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE #undef LANG_HOOKS_OMP_PRIVATE_OUTER_REF *************** static tree gfc_builtin_function (tree); *** 116,121 **** --- 136,142 ---- #undef LANG_HOOKS_BUILTIN_FUNCTION #undef LANG_HOOKS_BUILTIN_FUNCTION #undef LANG_HOOKS_GET_ARRAY_DESCR_INFO + #undef LANG_HOOKS_ATTRIBUTE_TABLE /* Define lang hooks. */ #define LANG_HOOKS_NAME "GNU Fortran" *************** static tree gfc_builtin_function (tree); *** 138,151 **** #define LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR gfc_omp_clause_default_ctor #define LANG_HOOKS_OMP_CLAUSE_COPY_CTOR gfc_omp_clause_copy_ctor #define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP gfc_omp_clause_assign_op #define LANG_HOOKS_OMP_CLAUSE_DTOR gfc_omp_clause_dtor #define LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR gfc_omp_disregard_value_expr #define LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE gfc_omp_private_debug_clause #define LANG_HOOKS_OMP_PRIVATE_OUTER_REF gfc_omp_private_outer_ref #define LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES \ gfc_omp_firstprivatize_type_sizes ! #define LANG_HOOKS_BUILTIN_FUNCTION gfc_builtin_function ! #define LANG_HOOKS_GET_ARRAY_DESCR_INFO gfc_get_array_descr_info struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; --- 159,175 ---- #define LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR gfc_omp_clause_default_ctor #define LANG_HOOKS_OMP_CLAUSE_COPY_CTOR gfc_omp_clause_copy_ctor #define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP gfc_omp_clause_assign_op + #define LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR gfc_omp_clause_linear_ctor #define LANG_HOOKS_OMP_CLAUSE_DTOR gfc_omp_clause_dtor + #define LANG_HOOKS_OMP_FINISH_CLAUSE gfc_omp_finish_clause #define LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR gfc_omp_disregard_value_expr #define LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE gfc_omp_private_debug_clause #define LANG_HOOKS_OMP_PRIVATE_OUTER_REF gfc_omp_private_outer_ref #define LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES \ gfc_omp_firstprivatize_type_sizes ! #define LANG_HOOKS_BUILTIN_FUNCTION gfc_builtin_function ! #define LANG_HOOKS_GET_ARRAY_DESCR_INFO gfc_get_array_descr_info ! #define LANG_HOOKS_ATTRIBUTE_TABLE gfc_attribute_table struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; *************** gfc_init_builtin_functions (void) *** 1038,1044 **** #include "../sync-builtins.def" #undef DEF_SYNC_BUILTIN ! if (gfc_option.gfc_flag_openmp || flag_tree_parallelize_loops) { #undef DEF_GOMP_BUILTIN #define DEF_GOMP_BUILTIN(code, name, type, attr) \ --- 1062,1070 ---- #include "../sync-builtins.def" #undef DEF_SYNC_BUILTIN ! if (gfc_option.gfc_flag_openmp ! || gfc_option.gfc_flag_openmp_simd ! || flag_tree_parallelize_loops) { #undef DEF_GOMP_BUILTIN #define DEF_GOMP_BUILTIN(code, name, type, attr) \ *************** gfc_init_builtin_functions (void) *** 1052,1057 **** --- 1078,1090 ---- BUILT_IN_TRAP, NULL, ATTR_NOTHROW_LEAF_LIST); TREE_THIS_VOLATILE (builtin_decl_explicit (BUILT_IN_TRAP)) = 1; + ftype = build_varargs_function_type_list (ptr_type_node, const_ptr_type_node, + size_type_node, NULL_TREE); + gfc_define_builtin ("__builtin_assume_aligned", ftype, + BUILT_IN_ASSUME_ALIGNED, + "__builtin_assume_aligned", + ATTR_CONST_NOTHROW_LEAF_LIST); + gfc_define_builtin ("__emutls_get_address", builtin_types[BT_FN_PTR_PTR], BUILT_IN_EMUTLS_GET_ADDRESS, diff -Nrcpad gcc-4.9.0/gcc/fortran/frontend-passes.c gcc-4.9.1/gcc/fortran/frontend-passes.c *** gcc-4.9.0/gcc/fortran/frontend-passes.c Thu Mar 27 22:21:35 2014 --- gcc-4.9.1/gcc/fortran/frontend-passes.c Mon Jun 30 16:35:48 2014 *************** static int doloop_size, doloop_level; *** 88,93 **** --- 88,97 ---- struct my_struct *evec; + /* Keep track of association lists. */ + + static bool in_assoc_list; + /* Entry point - run all passes for a namespace. */ void *************** dummy_expr_callback (gfc_expr **e ATTRIB *** 672,681 **** /* Dummy function for code callback, for use when we really don't want to do anything. */ ! static int ! dummy_code_callback (gfc_code **e ATTRIBUTE_UNUSED, ! int *walk_subtrees ATTRIBUTE_UNUSED, ! void *data ATTRIBUTE_UNUSED) { return 0; } --- 676,685 ---- /* Dummy function for code callback, for use when we really don't want to do anything. */ ! int ! gfc_dummy_code_callback (gfc_code **e ATTRIBUTE_UNUSED, ! int *walk_subtrees ATTRIBUTE_UNUSED, ! void *data ATTRIBUTE_UNUSED) { return 0; } *************** optimize_namespace (gfc_namespace *ns) *** 820,825 **** --- 824,830 ---- current_ns = ns; forall_level = 0; iterator_level = 0; + in_assoc_list = false; in_omp_workshare = false; gfc_code_walker (&ns->code, convert_do_while, dummy_expr_callback, NULL); *************** static void *** 839,845 **** optimize_reduction (gfc_namespace *ns) { current_ns = ns; ! gfc_code_walker (&ns->code, dummy_code_callback, callback_reduction, NULL); /* BLOCKs are handled in the expression walker below. */ for (ns = ns->contained; ns; ns = ns->sibling) --- 844,851 ---- optimize_reduction (gfc_namespace *ns) { current_ns = ns; ! gfc_code_walker (&ns->code, gfc_dummy_code_callback, ! callback_reduction, NULL); /* BLOCKs are handled in the expression walker below. */ for (ns = ns->contained; ns; ns = ns->sibling) *************** combine_array_constructor (gfc_expr *e) *** 1054,1059 **** --- 1060,1070 ---- if (e->rank != 1) return false; + /* Don't try to combine association lists, this makes no sense + and leads to an ICE. */ + if (in_assoc_list) + return false; + op1 = e->value.op.op1; op2 = e->value.op.op2; *************** gfc_code_walker (gfc_code **c, walk_code *** 1940,1947 **** case EXEC_BLOCK: WALK_SUBCODE (co->ext.block.ns->code); ! for (alist = co->ext.block.assoc; alist; alist = alist->next) ! WALK_SUBEXPR (alist->target); break; case EXEC_DO: --- 1951,1967 ---- case EXEC_BLOCK: WALK_SUBCODE (co->ext.block.ns->code); ! if (co->ext.block.assoc) ! { ! bool saved_in_assoc_list = in_assoc_list; ! ! in_assoc_list = true; ! for (alist = co->ext.block.assoc; alist; alist = alist->next) ! WALK_SUBEXPR (alist->target); ! ! in_assoc_list = saved_in_assoc_list; ! } ! break; case EXEC_DO: *************** gfc_code_walker (gfc_code **c, walk_code *** 2112,2117 **** --- 2132,2138 ---- case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: in_omp_workshare = false; *************** gfc_code_walker (gfc_code **c, walk_code *** 2126,2137 **** in_omp_workshare = true; /* Fall through */ ! case EXEC_OMP_DO: case EXEC_OMP_SECTIONS: case EXEC_OMP_SINGLE: case EXEC_OMP_END_SINGLE: case EXEC_OMP_TASK: /* Come to this label only from the EXEC_OMP_PARALLEL_* cases above. */ --- 2147,2177 ---- in_omp_workshare = true; /* Fall through */ ! ! case EXEC_OMP_DISTRIBUTE: ! case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: ! case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: ! case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_SECTIONS: case EXEC_OMP_SINGLE: case EXEC_OMP_END_SINGLE: + case EXEC_OMP_SIMD: + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_DATA: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TARGET_UPDATE: case EXEC_OMP_TASK: + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: /* Come to this label only from the EXEC_OMP_PARALLEL_* cases above. */ *************** gfc_code_walker (gfc_code **c, walk_code *** 2140,2149 **** --- 2180,2206 ---- if (co->ext.omp_clauses) { + gfc_omp_namelist *n; + static int list_types[] + = { OMP_LIST_ALIGNED, OMP_LIST_LINEAR, OMP_LIST_DEPEND, + OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM }; + size_t idx; WALK_SUBEXPR (co->ext.omp_clauses->if_expr); WALK_SUBEXPR (co->ext.omp_clauses->final_expr); WALK_SUBEXPR (co->ext.omp_clauses->num_threads); WALK_SUBEXPR (co->ext.omp_clauses->chunk_size); + WALK_SUBEXPR (co->ext.omp_clauses->safelen_expr); + WALK_SUBEXPR (co->ext.omp_clauses->simdlen_expr); + WALK_SUBEXPR (co->ext.omp_clauses->num_teams); + WALK_SUBEXPR (co->ext.omp_clauses->device); + WALK_SUBEXPR (co->ext.omp_clauses->thread_limit); + WALK_SUBEXPR (co->ext.omp_clauses->dist_chunk_size); + for (idx = 0; + idx < sizeof (list_types) / sizeof (list_types[0]); + idx++) + for (n = co->ext.omp_clauses->lists[list_types[idx]]; + n; n = n->next) + WALK_SUBEXPR (n->expr); } break; default: diff -Nrcpad gcc-4.9.0/gcc/fortran/gfortran.h gcc-4.9.1/gcc/fortran/gfortran.h *** gcc-4.9.0/gcc/fortran/gfortran.h Wed Mar 19 21:03:14 2014 --- gcc-4.9.1/gcc/fortran/gfortran.h Mon Jun 30 16:35:48 2014 *************** typedef enum *** 211,218 **** ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS, ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION, ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE, ST_OMP_TASK, ST_OMP_END_TASK, ! ST_OMP_TASKWAIT, ST_OMP_TASKYIELD, ST_PROCEDURE, ST_GENERIC, ST_CRITICAL, ! ST_END_CRITICAL, ST_GET_FCN_CHARACTERISTICS, ST_LOCK, ST_UNLOCK, ST_NONE } gfc_statement; --- 211,240 ---- ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS, ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION, ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE, ST_OMP_TASK, ST_OMP_END_TASK, ! ST_OMP_TASKWAIT, ST_OMP_TASKYIELD, ST_OMP_CANCEL, ST_OMP_CANCELLATION_POINT, ! ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, ST_OMP_SIMD, ST_OMP_END_SIMD, ! ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, ST_OMP_PARALLEL_DO_SIMD, ! ST_OMP_END_PARALLEL_DO_SIMD, ST_OMP_DECLARE_SIMD, ST_OMP_DECLARE_REDUCTION, ! ST_OMP_TARGET, ST_OMP_END_TARGET, ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ! ST_OMP_TARGET_UPDATE, ST_OMP_DECLARE_TARGET, ! ST_OMP_TEAMS, ST_OMP_END_TEAMS, ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ! ST_OMP_DISTRIBUTE_SIMD, ST_OMP_END_DISTRIBUTE_SIMD, ! ST_OMP_DISTRIBUTE_PARALLEL_DO, ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ! ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ! ST_OMP_TARGET_TEAMS, ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE, ! ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD, ! ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE, ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, ! ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO, ! ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, ! ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, ! ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, ! ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, ! ST_PROCEDURE, ST_GENERIC, ST_CRITICAL, ST_END_CRITICAL, ! ST_GET_FCN_CHARACTERISTICS, ST_LOCK, ST_UNLOCK, ST_NONE } gfc_statement; *************** typedef struct *** 808,813 **** --- 830,842 ---- variable for SELECT_TYPE or ASSOCIATE. */ unsigned select_type_temporary:1, associate_var:1; + /* This is omp_{out,in,priv,orig} artificial variable in + !$OMP DECLARE REDUCTION. */ + unsigned omp_udr_artificial_var:1; + + /* Mentioned in OMP DECLARE TARGET. */ + unsigned omp_declare_target:1; + /* Attributes set by compiler extensions (!GCC$ ATTRIBUTES). */ unsigned ext_attr:EXT_ATTR_NUM; *************** gfc_namelist; *** 1028,1033 **** --- 1057,1118 ---- #define gfc_get_namelist() XCNEW (gfc_namelist) + typedef enum + { + OMP_REDUCTION_NONE = -1, + OMP_REDUCTION_PLUS = INTRINSIC_PLUS, + OMP_REDUCTION_MINUS = INTRINSIC_MINUS, + OMP_REDUCTION_TIMES = INTRINSIC_TIMES, + OMP_REDUCTION_AND = INTRINSIC_AND, + OMP_REDUCTION_OR = INTRINSIC_OR, + OMP_REDUCTION_EQV = INTRINSIC_EQV, + OMP_REDUCTION_NEQV = INTRINSIC_NEQV, + OMP_REDUCTION_MAX = GFC_INTRINSIC_END, + OMP_REDUCTION_MIN, + OMP_REDUCTION_IAND, + OMP_REDUCTION_IOR, + OMP_REDUCTION_IEOR, + OMP_REDUCTION_USER + } + gfc_omp_reduction_op; + + typedef enum + { + OMP_DEPEND_IN, + OMP_DEPEND_OUT, + OMP_DEPEND_INOUT + } + gfc_omp_depend_op; + + typedef enum + { + OMP_MAP_ALLOC, + OMP_MAP_TO, + OMP_MAP_FROM, + OMP_MAP_TOFROM + } + gfc_omp_map_op; + + /* For use in OpenMP clauses in case we need extra information + (aligned clause alignment, linear clause step, etc.). */ + + typedef struct gfc_omp_namelist + { + struct gfc_symbol *sym; + struct gfc_expr *expr; + union + { + gfc_omp_reduction_op reduction_op; + gfc_omp_depend_op depend_op; + gfc_omp_map_op map_op; + } u; + struct gfc_omp_namelist_udr *udr; + struct gfc_omp_namelist *next; + } + gfc_omp_namelist; + + #define gfc_get_omp_namelist() XCNEW (gfc_omp_namelist) + enum { OMP_LIST_PRIVATE, *************** enum *** 1036,1055 **** OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN, ! OMP_LIST_PLUS, ! OMP_LIST_REDUCTION_FIRST = OMP_LIST_PLUS, ! OMP_LIST_MULT, ! OMP_LIST_SUB, ! OMP_LIST_AND, ! OMP_LIST_OR, ! OMP_LIST_EQV, ! OMP_LIST_NEQV, ! OMP_LIST_MAX, ! OMP_LIST_MIN, ! OMP_LIST_IAND, ! OMP_LIST_IOR, ! OMP_LIST_IEOR, ! OMP_LIST_REDUCTION_LAST = OMP_LIST_IEOR, OMP_LIST_NUM }; --- 1121,1134 ---- OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN, ! OMP_LIST_UNIFORM, ! OMP_LIST_ALIGNED, ! OMP_LIST_LINEAR, ! OMP_LIST_DEPEND, ! OMP_LIST_MAP, ! OMP_LIST_TO, ! OMP_LIST_FROM, ! OMP_LIST_REDUCTION, OMP_LIST_NUM }; *************** enum gfc_omp_default_sharing *** 1075,1097 **** OMP_DEFAULT_FIRSTPRIVATE }; typedef struct gfc_omp_clauses { struct gfc_expr *if_expr; struct gfc_expr *final_expr; struct gfc_expr *num_threads; ! gfc_namelist *lists[OMP_LIST_NUM]; enum gfc_omp_sched_kind sched_kind; struct gfc_expr *chunk_size; enum gfc_omp_default_sharing default_sharing; int collapse; bool nowait, ordered, untied, mergeable; } gfc_omp_clauses; #define gfc_get_omp_clauses() XCNEW (gfc_omp_clauses) /* The gfc_st_label structure is a BBT attached to a namespace that records the usage of statement labels within that space. */ --- 1154,1246 ---- OMP_DEFAULT_FIRSTPRIVATE }; + enum gfc_omp_proc_bind_kind + { + OMP_PROC_BIND_UNKNOWN, + OMP_PROC_BIND_MASTER, + OMP_PROC_BIND_SPREAD, + OMP_PROC_BIND_CLOSE + }; + + enum gfc_omp_cancel_kind + { + OMP_CANCEL_UNKNOWN, + OMP_CANCEL_PARALLEL, + OMP_CANCEL_SECTIONS, + OMP_CANCEL_DO, + OMP_CANCEL_TASKGROUP + }; + typedef struct gfc_omp_clauses { struct gfc_expr *if_expr; struct gfc_expr *final_expr; struct gfc_expr *num_threads; ! gfc_omp_namelist *lists[OMP_LIST_NUM]; enum gfc_omp_sched_kind sched_kind; struct gfc_expr *chunk_size; enum gfc_omp_default_sharing default_sharing; int collapse; bool nowait, ordered, untied, mergeable; + bool inbranch, notinbranch; + enum gfc_omp_cancel_kind cancel; + enum gfc_omp_proc_bind_kind proc_bind; + struct gfc_expr *safelen_expr; + struct gfc_expr *simdlen_expr; + struct gfc_expr *num_teams; + struct gfc_expr *device; + struct gfc_expr *thread_limit; + enum gfc_omp_sched_kind dist_sched_kind; + struct gfc_expr *dist_chunk_size; } gfc_omp_clauses; #define gfc_get_omp_clauses() XCNEW (gfc_omp_clauses) + /* Node in the linked list used for storing !$omp declare simd constructs. */ + + typedef struct gfc_omp_declare_simd + { + struct gfc_omp_declare_simd *next; + locus where; /* Where the !$omp declare simd construct occurred. */ + + gfc_symbol *proc_name; + + gfc_omp_clauses *clauses; + } + gfc_omp_declare_simd; + #define gfc_get_omp_declare_simd() XCNEW (gfc_omp_declare_simd) + + typedef struct gfc_omp_udr + { + struct gfc_omp_udr *next; + locus where; /* Where the !$omp declare reduction construct occurred. */ + + const char *name; + gfc_typespec ts; + gfc_omp_reduction_op rop; + + struct gfc_symbol *omp_out; + struct gfc_symbol *omp_in; + struct gfc_namespace *combiner_ns; + + struct gfc_symbol *omp_priv; + struct gfc_symbol *omp_orig; + struct gfc_namespace *initializer_ns; + } + gfc_omp_udr; + #define gfc_get_omp_udr() XCNEW (gfc_omp_udr) + + typedef struct gfc_omp_namelist_udr + { + struct gfc_omp_udr *udr; + struct gfc_code *combiner; + struct gfc_code *initializer; + } + gfc_omp_namelist_udr; + #define gfc_get_omp_namelist_udr() XCNEW (gfc_omp_namelist_udr) + /* The gfc_st_label structure is a BBT attached to a namespace that records the usage of statement labels within that space. */ *************** struct gfc_undo_change_set *** 1292,1298 **** typedef struct gfc_common_head { locus where; ! char use_assoc, saved, threadprivate; char name[GFC_MAX_SYMBOL_LEN + 1]; struct gfc_symbol *head; const char* binding_label; --- 1441,1447 ---- typedef struct gfc_common_head { locus where; ! char use_assoc, saved, threadprivate, omp_declare_target; char name[GFC_MAX_SYMBOL_LEN + 1]; struct gfc_symbol *head; const char* binding_label; *************** typedef struct gfc_symtree *** 1368,1373 **** --- 1517,1523 ---- gfc_user_op *uop; gfc_common_head *common; gfc_typebound_proc *tb; + gfc_omp_udr *omp_udr; } n; } *************** typedef struct gfc_namespace *** 1398,1403 **** --- 1548,1555 ---- gfc_symtree *uop_root; /* Tree containing all the common blocks. */ gfc_symtree *common_root; + /* Tree containing all the OpenMP user defined reductions. */ + gfc_symtree *omp_udr_root; /* Tree containing type-bound procedures. */ gfc_symtree *tb_sym_root; *************** typedef struct gfc_namespace *** 1464,1469 **** --- 1616,1624 ---- /* A list of USE statements in this namespace. */ gfc_use_list *use_stmts; + /* Linked list of !$omp declare simd constructs. */ + struct gfc_omp_declare_simd *omp_declare_simd; + /* Set to 1 if namespace is a BLOCK DATA program unit. */ unsigned is_block_data:1; *************** typedef struct gfc_namespace *** 1480,1485 **** --- 1635,1643 ---- /* Set to 1 if symbols in this namespace should be 'construct entities', i.e. for BLOCK local variables. */ unsigned construct_entities:1; + + /* Set to 1 for !$OMP DECLARE REDUCTION namespaces. */ + unsigned omp_udr_ns:1; } gfc_namespace; *************** typedef enum *** 2111,2126 **** EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE, EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT, EXEC_OMP_END_SINGLE, EXEC_OMP_TASK, EXEC_OMP_TASKWAIT, ! EXEC_OMP_TASKYIELD } gfc_exec_op; typedef enum { ! GFC_OMP_ATOMIC_UPDATE, ! GFC_OMP_ATOMIC_READ, ! GFC_OMP_ATOMIC_WRITE, ! GFC_OMP_ATOMIC_CAPTURE } gfc_omp_atomic_op; --- 2269,2299 ---- EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE, EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT, EXEC_OMP_END_SINGLE, EXEC_OMP_TASK, EXEC_OMP_TASKWAIT, ! EXEC_OMP_TASKYIELD, EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, ! EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, ! EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA, ! EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD, ! EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, ! EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE, ! EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE, ! EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, ! EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, ! EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, ! EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, ! EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, ! EXEC_OMP_TARGET_UPDATE } gfc_exec_op; typedef enum { ! GFC_OMP_ATOMIC_UPDATE = 0, ! GFC_OMP_ATOMIC_READ = 1, ! GFC_OMP_ATOMIC_WRITE = 2, ! GFC_OMP_ATOMIC_CAPTURE = 3, ! GFC_OMP_ATOMIC_MASK = 3, ! GFC_OMP_ATOMIC_SEQ_CST = 4, ! GFC_OMP_ATOMIC_SWAP = 8 } gfc_omp_atomic_op; *************** typedef struct gfc_code *** 2172,2178 **** gfc_entry_list *entry; gfc_omp_clauses *omp_clauses; const char *omp_name; ! gfc_namelist *omp_namelist; bool omp_bool; gfc_omp_atomic_op omp_atomic; } --- 2345,2351 ---- gfc_entry_list *entry; gfc_omp_clauses *omp_clauses; const char *omp_name; ! gfc_omp_namelist *omp_namelist; bool omp_bool; gfc_omp_atomic_op omp_atomic; } *************** bool gfc_add_protected (symbol_attribute *** 2573,2578 **** --- 2746,2752 ---- bool gfc_add_result (symbol_attribute *, const char *, locus *); bool gfc_add_save (symbol_attribute *, save_state, const char *, locus *); bool gfc_add_threadprivate (symbol_attribute *, const char *, locus *); + bool gfc_add_omp_declare_target (symbol_attribute *, const char *, locus *); bool gfc_add_saved_common (symbol_attribute *, locus *); bool gfc_add_target (symbol_attribute *, locus *); bool gfc_add_dummy (symbol_attribute *, const char *, locus *); *************** void gfc_free_iterator (gfc_iterator *, *** 2728,2733 **** --- 2902,2908 ---- void gfc_free_forall_iterator (gfc_forall_iterator *); void gfc_free_alloc_list (gfc_alloc *); void gfc_free_namelist (gfc_namelist *); + void gfc_free_omp_namelist (gfc_omp_namelist *); void gfc_free_equiv (gfc_equiv *); void gfc_free_equiv_until (gfc_equiv *, gfc_equiv *); void gfc_free_data (gfc_data *); *************** gfc_expr *gfc_get_parentheses (gfc_expr *** 2739,2748 **** --- 2914,2929 ---- /* openmp.c */ struct gfc_omp_saved_state { void *ptrs[2]; int ints[1]; }; void gfc_free_omp_clauses (gfc_omp_clauses *); + void gfc_free_omp_declare_simd (gfc_omp_declare_simd *); + void gfc_free_omp_declare_simd_list (gfc_omp_declare_simd *); + void gfc_free_omp_udr (gfc_omp_udr *); + gfc_omp_udr *gfc_omp_udr_find (gfc_symtree *, gfc_typespec *); void gfc_resolve_omp_directive (gfc_code *, gfc_namespace *); void gfc_resolve_do_iterator (gfc_code *, gfc_symbol *); void gfc_resolve_omp_parallel_blocks (gfc_code *, gfc_namespace *); void gfc_resolve_omp_do_blocks (gfc_code *, gfc_namespace *); + void gfc_resolve_omp_declare_simd (gfc_namespace *); + void gfc_resolve_omp_udrs (gfc_symtree *); void gfc_omp_save_and_clear_state (struct gfc_omp_saved_state *); void gfc_omp_restore_state (struct gfc_omp_saved_state *); *************** void gfc_free_association_list (gfc_asso *** 2833,2838 **** --- 3014,3020 ---- /* resolve.c */ bool gfc_resolve_expr (gfc_expr *); void gfc_resolve (gfc_namespace *); + void gfc_resolve_code (gfc_code *, gfc_namespace *); void gfc_resolve_blocks (gfc_code *, gfc_namespace *); int gfc_impure_variable (gfc_symbol *); int gfc_pure (gfc_symbol *); *************** void gfc_run_passes (gfc_namespace *); *** 3019,3024 **** --- 3201,3207 ---- typedef int (*walk_code_fn_t) (gfc_code **, int *, void *); typedef int (*walk_expr_fn_t) (gfc_expr **, int *, void *); + int gfc_dummy_code_callback (gfc_code **, int *, void *); int gfc_expr_walker (gfc_expr **, walk_expr_fn_t, void *); int gfc_code_walker (gfc_code **, walk_code_fn_t, walk_expr_fn_t, void *); diff -Nrcpad gcc-4.9.0/gcc/fortran/gfortran.info gcc-4.9.1/gcc/fortran/gfortran.info *** gcc-4.9.0/gcc/fortran/gfortran.info Tue Apr 22 10:38:32 2014 --- gcc-4.9.1/gcc/fortran/gfortran.info Wed Jul 16 11:00:41 2014 *************** in the *note Fortran 2003 status::, *not *** 344,350 **** *note TS 29113 status:: sections of the documentation. Additionally, the GNU Fortran compilers supports the OpenMP ! specification (version 3.1, ).  --- 344,350 ---- *note TS 29113 status:: sections of the documentation. Additionally, the GNU Fortran compilers supports the OpenMP ! specification (version 4.0, ).  *************** directives, library routines, and enviro *** 2851,2857 **** run-time behavior. GNU Fortran strives to be compatible to the OpenMP Application ! Program Interface v3.1 (http://www.openmp.org/mp-documents/spec31.pdf). To enable the processing of the OpenMP directive '!$omp' in free-form source code; the 'c$omp', '*$omp' and '!$omp' directives in fixed form; --- 2851,2857 ---- run-time behavior. GNU Fortran strives to be compatible to the OpenMP Application ! Program Interface v4.0 (http://openmp.org/wp/openmp-specifications/). To enable the processing of the OpenMP directive '!$omp' in free-form source code; the 'c$omp', '*$omp' and '!$omp' directives in fixed form; *************** File: gfortran.info, Node: CTIME, Next *** 6874,6883 **** _Description_: 'CTIME' converts a system time value, such as returned by 'TIME8', ! to a string. Unless the application has called 'setlocale', the ! output will be in the default locale, of length 24 and of the form ! 'Sat Aug 19 18:13:14 1995'. In other locales, a longer string may ! result. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. --- 6874,6881 ---- _Description_: 'CTIME' converts a system time value, such as returned by 'TIME8', ! to a string. The output will be of the form 'Sat Aug 19 18:13:14 ! 1995'. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. *************** constants: *** 15228,15235 **** 'OMP_LIB' provides the scalar default-integer named constant 'openmp_version' with a value of the form YYYYMM, where 'yyyy' is the ! year and MM the month of the OpenMP version; for OpenMP v3.1 the value ! is '201107' and for OpenMP v4.0 the value is '201307'. The following scalar integer named constants of the kind 'omp_sched_kind': --- 15226,15233 ---- 'OMP_LIB' provides the scalar default-integer named constant 'openmp_version' with a value of the form YYYYMM, where 'yyyy' is the ! year and MM the month of the OpenMP version; for OpenMP v4.0 the value ! is '201307'. The following scalar integer named constants of the kind 'omp_sched_kind': *************** Node: Hollerith constants support114849 *** 18148,18449 **** Node: Cray pointers116621 Node: CONVERT specifier122068 Node: OpenMP124063 ! Node: Argument list functions126314 ! Node: Extensions not implemented in GNU Fortran127919 ! Node: STRUCTURE and RECORD128868 ! Node: ENCODE and DECODE statements131305 ! Node: Variable FORMAT expressions132665 ! Node: Alternate complex function syntax133770 ! Node: Volatile COMMON blocks134320 ! Node: Mixed-Language Programming134797 ! Node: Interoperability with C135378 ! Node: Intrinsic Types136712 ! Node: Derived Types and struct137708 ! Node: Interoperable Global Variables139066 ! Node: Interoperable Subroutines and Functions140341 ! Node: Working with Pointers144135 ! Node: Further Interoperability of Fortran with C148611 ! Node: GNU Fortran Compiler Directives151965 ! Node: Non-Fortran Main Program155217 ! Node: _gfortran_set_args157405 ! Node: _gfortran_set_options158343 ! Node: _gfortran_set_convert161743 ! Node: _gfortran_set_record_marker162611 ! Node: _gfortran_set_fpe163421 ! Node: _gfortran_set_max_subrecord_length164619 ! Node: Naming and argument-passing conventions165542 ! Node: Naming conventions166261 ! Node: Argument passing conventions167733 ! Node: Intrinsic Procedures172227 ! Node: Introduction to Intrinsics187713 ! Node: ABORT190063 ! Node: ABS190808 ! Node: ACCESS192410 ! Node: ACHAR194340 ! Node: ACOS195544 ! Node: ACOSH196798 ! Node: ADJUSTL197793 ! Node: ADJUSTR198735 ! Node: AIMAG199683 ! Node: AINT201055 ! Node: ALARM202661 ! Node: ALL204293 ! Node: ALLOCATED206217 ! Node: AND207356 ! Node: ANINT208655 ! Node: ANY210152 ! Node: ASIN212078 ! Node: ASINH213321 ! Node: ASSOCIATED214326 ! Node: ATAN217337 ! Node: ATAN2218755 ! Node: ATANH220547 ! Node: ATOMIC_DEFINE221555 ! Node: ATOMIC_REF222631 ! Node: BACKTRACE223893 ! Node: BESSEL_J0224473 ! Node: BESSEL_J1225530 ! Node: BESSEL_JN226591 ! Node: BESSEL_Y0228416 ! Node: BESSEL_Y1229426 ! Node: BESSEL_YN230436 ! Node: BGE232267 ! Node: BGT232959 ! Node: BIT_SIZE233609 ! Node: BLE234431 ! Node: BLT235113 ! Node: BTEST235751 ! Node: C_ASSOCIATED236636 ! Node: C_F_POINTER237847 ! Node: C_F_PROCPOINTER239282 ! Node: C_FUNLOC240789 ! Node: C_LOC242160 ! Node: C_SIZEOF243439 ! Node: CEILING244852 ! Node: CHAR245860 ! Node: CHDIR247072 ! Node: CHMOD248246 ! Node: CMPLX250161 ! Node: COMMAND_ARGUMENT_COUNT251614 ! Node: COMPILER_OPTIONS252530 ! Node: COMPILER_VERSION253556 ! Node: COMPLEX254520 ! Node: CONJG255659 ! Node: COS256715 ! Node: COSH258139 ! Node: COUNT259321 ! Node: CPU_TIME261344 ! Node: CSHIFT262701 ! Node: CTIME264361 ! Node: DATE_AND_TIME266007 ! Node: DBLE268487 ! Node: DCMPLX269282 ! Node: DIGITS270464 ! Node: DIM271431 ! Node: DOT_PRODUCT272712 ! Node: DPROD274355 ! Node: DREAL275282 ! Node: DSHIFTL275948 ! Node: DSHIFTR277281 ! Node: DTIME278615 ! Node: EOSHIFT281430 ! Node: EPSILON283503 ! Node: ERF284230 ! Node: ERFC285011 ! Node: ERFC_SCALED285821 ! Node: ETIME286514 ! Node: EXECUTE_COMMAND_LINE288762 ! Node: EXIT291349 ! Node: EXP292225 ! Node: EXPONENT293476 ! Node: EXTENDS_TYPE_OF294238 ! Node: FDATE295094 ! Node: FGET296567 ! Node: FGETC298392 ! Node: FLOOR300198 ! Node: FLUSH301185 ! Node: FNUM303062 ! Node: FPUT303785 ! Node: FPUTC305417 ! Node: FRACTION307196 ! Node: FREE308098 ! Node: FSEEK308939 ! Node: FSTAT311243 ! Node: FTELL312328 ! Node: GAMMA313308 ! Node: GERROR314360 ! Node: GETARG315080 ! Node: GET_COMMAND316851 ! Node: GET_COMMAND_ARGUMENT318223 ! Node: GETCWD320271 ! Node: GETENV321251 ! Node: GET_ENVIRONMENT_VARIABLE322683 ! Node: GETGID324846 ! Node: GETLOG325383 ! Node: GETPID326245 ! Node: GETUID326975 ! Node: GMTIME327491 ! Node: HOSTNM328975 ! Node: HUGE329896 ! Node: HYPOT330618 ! Node: IACHAR331444 ! Node: IALL332612 ! Node: IAND334097 ! Node: IANY335084 ! Node: IARGC336578 ! Node: IBCLR337599 ! Node: IBITS338261 ! Node: IBSET339179 ! Node: ICHAR339836 ! Node: IDATE342006 ! Node: IEOR343036 ! Node: IERRNO343916 ! Node: IMAGE_INDEX344465 ! Node: INDEX intrinsic345493 ! Node: INT347019 ! Node: INT2348747 ! Node: INT8349515 ! Node: IOR350230 ! Node: IPARITY351086 ! Node: IRAND352618 ! Node: IS_IOSTAT_END353977 ! Node: IS_IOSTAT_EOR355076 ! Node: ISATTY356205 ! Node: ISHFT356988 ! Node: ISHFTC357971 ! Node: ISNAN359192 ! Node: ITIME359959 ! Node: KILL360987 ! Node: KIND361896 ! Node: LBOUND362742 ! Node: LCOBOUND364080 ! Node: LEADZ365215 ! Node: LEN366076 ! Node: LEN_TRIM367372 ! Node: LGE368360 ! Node: LGT369873 ! Node: LINK371351 ! Node: LLE372390 ! Node: LLT373890 ! Node: LNBLNK375361 ! Node: LOC376139 ! Node: LOG376871 ! Node: LOG10378219 ! Node: LOG_GAMMA379209 ! Node: LOGICAL380311 ! Node: LONG381123 ! Node: LSHIFT381881 ! Node: LSTAT382967 ! Node: LTIME384167 ! Node: MALLOC385573 ! Node: MASKL387035 ! Node: MASKR387802 ! Node: MATMUL388572 ! Node: MAX389670 ! Node: MAXEXPONENT391205 ! Node: MAXLOC392022 ! Node: MAXVAL394047 ! Node: MCLOCK395687 ! Node: MCLOCK8396710 ! Node: MERGE397940 ! Node: MERGE_BITS398692 ! Node: MIN399557 ! Node: MINEXPONENT401095 ! Node: MINLOC401726 ! Node: MINVAL403751 ! Node: MOD405404 ! Node: MODULO407173 ! Node: MOVE_ALLOC408476 ! Node: MVBITS409509 ! Node: NEAREST410575 ! Node: NEW_LINE411675 ! Node: NINT412448 ! Node: NORM2413869 ! Node: NOT415011 ! Node: NULL415595 ! Node: NUM_IMAGES416503 ! Node: OR417319 ! Node: PACK418605 ! Node: PARITY420613 ! Node: PERROR421834 ! Node: POPCNT422459 ! Node: POPPAR423331 ! Node: PRECISION424385 ! Node: PRESENT425272 ! Node: PRODUCT426384 ! Node: RADIX427918 ! Node: RAN428730 ! Node: RAND429186 ! Node: RANDOM_NUMBER430521 ! Node: RANDOM_SEED432250 ! Node: RANGE436081 ! Node: RANK436762 ! Node: REAL437543 ! Node: RENAME439340 ! Node: REPEAT440362 ! Node: RESHAPE441090 ! Node: RRSPACING442557 ! Node: RSHIFT443250 ! Node: SAME_TYPE_AS444390 ! Node: SCALE445222 ! Node: SCAN446003 ! Node: SECNDS447561 ! Node: SECOND448653 ! Node: SELECTED_CHAR_KIND449529 ! Node: SELECTED_INT_KIND451124 ! Node: SELECTED_REAL_KIND452301 ! Node: SET_EXPONENT454978 ! Node: SHAPE455975 ! Node: SHIFTA457399 ! Node: SHIFTL458363 ! Node: SHIFTR459200 ! Node: SIGN460038 ! Node: SIGNAL461264 ! Node: SIN462770 ! Node: SINH463812 ! Node: SIZE464824 ! Node: SIZEOF466143 ! Node: SLEEP467620 ! Node: SPACING468181 ! Node: SPREAD469195 ! Node: SQRT470346 ! Node: SRAND471678 ! Node: STAT472848 ! Node: STORAGE_SIZE476016 ! Node: SUM476895 ! Node: SYMLNK478387 ! Node: SYSTEM479522 ! Node: SYSTEM_CLOCK480777 ! Node: TAN483536 ! Node: TANH484524 ! Node: THIS_IMAGE485698 ! Node: TIME487198 ! Node: TIME8488323 ! Node: TINY489476 ! Node: TRAILZ490077 ! Node: TRANSFER490895 ! Node: TRANSPOSE492931 ! Node: TRIM493621 ! Node: TTYNAM494479 ! Node: UBOUND495397 ! Node: UCOBOUND496787 ! Node: UMASK497924 ! Node: UNLINK498606 ! Node: UNPACK499586 ! Node: VERIFY500881 ! Node: XOR502610 ! Node: Intrinsic Modules503983 ! Node: ISO_FORTRAN_ENV504226 ! Node: ISO_C_BINDING508394 ! Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS512126 ! Node: Contributing513671 ! Node: Contributors514525 ! Node: Projects516156 ! Node: Proposed Extensions516962 ! Node: Copying518972 ! Node: GNU Free Documentation License556517 ! Node: Funding581640 ! Node: Option Index584166 ! Node: Keyword Index599298  End Tag Table --- 18146,18447 ---- Node: Cray pointers116621 Node: CONVERT specifier122068 Node: OpenMP124063 ! Node: Argument list functions126312 ! Node: Extensions not implemented in GNU Fortran127917 ! Node: STRUCTURE and RECORD128866 ! Node: ENCODE and DECODE statements131303 ! Node: Variable FORMAT expressions132663 ! Node: Alternate complex function syntax133768 ! Node: Volatile COMMON blocks134318 ! Node: Mixed-Language Programming134795 ! Node: Interoperability with C135376 ! Node: Intrinsic Types136710 ! Node: Derived Types and struct137706 ! Node: Interoperable Global Variables139064 ! Node: Interoperable Subroutines and Functions140339 ! Node: Working with Pointers144133 ! Node: Further Interoperability of Fortran with C148609 ! Node: GNU Fortran Compiler Directives151963 ! Node: Non-Fortran Main Program155215 ! Node: _gfortran_set_args157403 ! Node: _gfortran_set_options158341 ! Node: _gfortran_set_convert161741 ! Node: _gfortran_set_record_marker162609 ! Node: _gfortran_set_fpe163419 ! Node: _gfortran_set_max_subrecord_length164617 ! Node: Naming and argument-passing conventions165540 ! Node: Naming conventions166259 ! Node: Argument passing conventions167731 ! Node: Intrinsic Procedures172225 ! Node: Introduction to Intrinsics187711 ! Node: ABORT190061 ! Node: ABS190806 ! Node: ACCESS192408 ! Node: ACHAR194338 ! Node: ACOS195542 ! Node: ACOSH196796 ! Node: ADJUSTL197791 ! Node: ADJUSTR198733 ! Node: AIMAG199681 ! Node: AINT201053 ! Node: ALARM202659 ! Node: ALL204291 ! Node: ALLOCATED206215 ! Node: AND207354 ! Node: ANINT208653 ! Node: ANY210150 ! Node: ASIN212076 ! Node: ASINH213319 ! Node: ASSOCIATED214324 ! Node: ATAN217335 ! Node: ATAN2218753 ! Node: ATANH220545 ! Node: ATOMIC_DEFINE221553 ! Node: ATOMIC_REF222629 ! Node: BACKTRACE223891 ! Node: BESSEL_J0224471 ! Node: BESSEL_J1225528 ! Node: BESSEL_JN226589 ! Node: BESSEL_Y0228414 ! Node: BESSEL_Y1229424 ! Node: BESSEL_YN230434 ! Node: BGE232265 ! Node: BGT232957 ! Node: BIT_SIZE233607 ! Node: BLE234429 ! Node: BLT235111 ! Node: BTEST235749 ! Node: C_ASSOCIATED236634 ! Node: C_F_POINTER237845 ! Node: C_F_PROCPOINTER239280 ! Node: C_FUNLOC240787 ! Node: C_LOC242158 ! Node: C_SIZEOF243437 ! Node: CEILING244850 ! Node: CHAR245858 ! Node: CHDIR247070 ! Node: CHMOD248244 ! Node: CMPLX250159 ! Node: COMMAND_ARGUMENT_COUNT251612 ! Node: COMPILER_OPTIONS252528 ! Node: COMPILER_VERSION253554 ! Node: COMPLEX254518 ! Node: CONJG255657 ! Node: COS256713 ! Node: COSH258137 ! Node: COUNT259319 ! Node: CPU_TIME261342 ! Node: CSHIFT262699 ! Node: CTIME264359 ! Node: DATE_AND_TIME265861 ! Node: DBLE268341 ! Node: DCMPLX269136 ! Node: DIGITS270318 ! Node: DIM271285 ! Node: DOT_PRODUCT272566 ! Node: DPROD274209 ! Node: DREAL275136 ! Node: DSHIFTL275802 ! Node: DSHIFTR277135 ! Node: DTIME278469 ! Node: EOSHIFT281284 ! Node: EPSILON283357 ! Node: ERF284084 ! Node: ERFC284865 ! Node: ERFC_SCALED285675 ! Node: ETIME286368 ! Node: EXECUTE_COMMAND_LINE288616 ! Node: EXIT291203 ! Node: EXP292079 ! Node: EXPONENT293330 ! Node: EXTENDS_TYPE_OF294092 ! Node: FDATE294948 ! Node: FGET296421 ! Node: FGETC298246 ! Node: FLOOR300052 ! Node: FLUSH301039 ! Node: FNUM302916 ! Node: FPUT303639 ! Node: FPUTC305271 ! Node: FRACTION307050 ! Node: FREE307952 ! Node: FSEEK308793 ! Node: FSTAT311097 ! Node: FTELL312182 ! Node: GAMMA313162 ! Node: GERROR314214 ! Node: GETARG314934 ! Node: GET_COMMAND316705 ! Node: GET_COMMAND_ARGUMENT318077 ! Node: GETCWD320125 ! Node: GETENV321105 ! Node: GET_ENVIRONMENT_VARIABLE322537 ! Node: GETGID324700 ! Node: GETLOG325237 ! Node: GETPID326099 ! Node: GETUID326829 ! Node: GMTIME327345 ! Node: HOSTNM328829 ! Node: HUGE329750 ! Node: HYPOT330472 ! Node: IACHAR331298 ! Node: IALL332466 ! Node: IAND333951 ! Node: IANY334938 ! Node: IARGC336432 ! Node: IBCLR337453 ! Node: IBITS338115 ! Node: IBSET339033 ! Node: ICHAR339690 ! Node: IDATE341860 ! Node: IEOR342890 ! Node: IERRNO343770 ! Node: IMAGE_INDEX344319 ! Node: INDEX intrinsic345347 ! Node: INT346873 ! Node: INT2348601 ! Node: INT8349369 ! Node: IOR350084 ! Node: IPARITY350940 ! Node: IRAND352472 ! Node: IS_IOSTAT_END353831 ! Node: IS_IOSTAT_EOR354930 ! Node: ISATTY356059 ! Node: ISHFT356842 ! Node: ISHFTC357825 ! Node: ISNAN359046 ! Node: ITIME359813 ! Node: KILL360841 ! Node: KIND361750 ! Node: LBOUND362596 ! Node: LCOBOUND363934 ! Node: LEADZ365069 ! Node: LEN365930 ! Node: LEN_TRIM367226 ! Node: LGE368214 ! Node: LGT369727 ! Node: LINK371205 ! Node: LLE372244 ! Node: LLT373744 ! Node: LNBLNK375215 ! Node: LOC375993 ! Node: LOG376725 ! Node: LOG10378073 ! Node: LOG_GAMMA379063 ! Node: LOGICAL380165 ! Node: LONG380977 ! Node: LSHIFT381735 ! Node: LSTAT382821 ! Node: LTIME384021 ! Node: MALLOC385427 ! Node: MASKL386889 ! Node: MASKR387656 ! Node: MATMUL388426 ! Node: MAX389524 ! Node: MAXEXPONENT391059 ! Node: MAXLOC391876 ! Node: MAXVAL393901 ! Node: MCLOCK395541 ! Node: MCLOCK8396564 ! Node: MERGE397794 ! Node: MERGE_BITS398546 ! Node: MIN399411 ! Node: MINEXPONENT400949 ! Node: MINLOC401580 ! Node: MINVAL403605 ! Node: MOD405258 ! Node: MODULO407027 ! Node: MOVE_ALLOC408330 ! Node: MVBITS409363 ! Node: NEAREST410429 ! Node: NEW_LINE411529 ! Node: NINT412302 ! Node: NORM2413723 ! Node: NOT414865 ! Node: NULL415449 ! Node: NUM_IMAGES416357 ! Node: OR417173 ! Node: PACK418459 ! Node: PARITY420467 ! Node: PERROR421688 ! Node: POPCNT422313 ! Node: POPPAR423185 ! Node: PRECISION424239 ! Node: PRESENT425126 ! Node: PRODUCT426238 ! Node: RADIX427772 ! Node: RAN428584 ! Node: RAND429040 ! Node: RANDOM_NUMBER430375 ! Node: RANDOM_SEED432104 ! Node: RANGE435935 ! Node: RANK436616 ! Node: REAL437397 ! Node: RENAME439194 ! Node: REPEAT440216 ! Node: RESHAPE440944 ! Node: RRSPACING442411 ! Node: RSHIFT443104 ! Node: SAME_TYPE_AS444244 ! Node: SCALE445076 ! Node: SCAN445857 ! Node: SECNDS447415 ! Node: SECOND448507 ! Node: SELECTED_CHAR_KIND449383 ! Node: SELECTED_INT_KIND450978 ! Node: SELECTED_REAL_KIND452155 ! Node: SET_EXPONENT454832 ! Node: SHAPE455829 ! Node: SHIFTA457253 ! Node: SHIFTL458217 ! Node: SHIFTR459054 ! Node: SIGN459892 ! Node: SIGNAL461118 ! Node: SIN462624 ! Node: SINH463666 ! Node: SIZE464678 ! Node: SIZEOF465997 ! Node: SLEEP467474 ! Node: SPACING468035 ! Node: SPREAD469049 ! Node: SQRT470200 ! Node: SRAND471532 ! Node: STAT472702 ! Node: STORAGE_SIZE475870 ! Node: SUM476749 ! Node: SYMLNK478241 ! Node: SYSTEM479376 ! Node: SYSTEM_CLOCK480631 ! Node: TAN483390 ! Node: TANH484378 ! Node: THIS_IMAGE485552 ! Node: TIME487052 ! Node: TIME8488177 ! Node: TINY489330 ! Node: TRAILZ489931 ! Node: TRANSFER490749 ! Node: TRANSPOSE492785 ! Node: TRIM493475 ! Node: TTYNAM494333 ! Node: UBOUND495251 ! Node: UCOBOUND496641 ! Node: UMASK497778 ! Node: UNLINK498460 ! Node: UNPACK499440 ! Node: VERIFY500735 ! Node: XOR502464 ! Node: Intrinsic Modules503837 ! Node: ISO_FORTRAN_ENV504080 ! Node: ISO_C_BINDING508248 ! Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS511980 ! Node: Contributing513483 ! Node: Contributors514337 ! Node: Projects515968 ! Node: Proposed Extensions516774 ! Node: Copying518784 ! Node: GNU Free Documentation License556329 ! Node: Funding581452 ! Node: Option Index583978 ! Node: Keyword Index599110  End Tag Table diff -Nrcpad gcc-4.9.0/gcc/fortran/gfortran.texi gcc-4.9.1/gcc/fortran/gfortran.texi *** gcc-4.9.0/gcc/fortran/gfortran.texi Wed Mar 26 20:39:42 2014 --- gcc-4.9.1/gcc/fortran/gfortran.texi Mon Jun 30 16:35:48 2014 *************** The current status of the support is can *** 531,537 **** @ref{TS 29113 status} sections of the documentation. Additionally, the GNU Fortran compilers supports the OpenMP specification ! (version 3.1, @url{http://openmp.org/@/wp/@/openmp-specifications/}). @node Varying Length Character Strings @subsection Varying Length Character Strings --- 531,537 ---- @ref{TS 29113 status} sections of the documentation. Additionally, the GNU Fortran compilers supports the OpenMP specification ! (version 4.0, @url{http://openmp.org/@/wp/@/openmp-specifications/}). @node Varying Length Character Strings @subsection Varying Length Character Strings *************** It consists of a set of compiler directi *** 1884,1891 **** and environment variables that influence run-time behavior. GNU Fortran strives to be compatible to the ! @uref{http://www.openmp.org/mp-documents/spec31.pdf, ! OpenMP Application Program Interface v3.1}. To enable the processing of the OpenMP directive @code{!$omp} in free-form source code; the @code{c$omp}, @code{*$omp} and @code{!$omp} --- 1884,1891 ---- and environment variables that influence run-time behavior. GNU Fortran strives to be compatible to the ! @uref{http://openmp.org/wp/openmp-specifications/, ! OpenMP Application Program Interface v4.0}. To enable the processing of the OpenMP directive @code{!$omp} in free-form source code; the @code{c$omp}, @code{*$omp} and @code{!$omp} diff -Nrcpad gcc-4.9.0/gcc/fortran/gfortranspec.c gcc-4.9.1/gcc/fortran/gfortranspec.c *** gcc-4.9.0/gcc/fortran/gfortranspec.c Thu Jan 2 21:25:41 2014 --- gcc-4.9.1/gcc/fortran/gfortranspec.c Thu Jun 5 14:28:23 2014 *************** static void append_arg (const struct cl_ *** 73,106 **** static unsigned int g77_newargc; static struct cl_decoded_option *g77_new_decoded_options; - /* The path to the spec file. */ - static char *spec_file = NULL; - /* This will be NULL if we encounter a situation where we should not link in the fortran libraries. */ static const char *library = NULL; - /* Return full path name of spec file if it is in DIR, or NULL if - not. */ - static char * - find_spec_file (const char *dir) - { - const char dirsep_string[] = { DIR_SEPARATOR, '\0' }; - char *spec; - struct stat sb; - - spec = XNEWVEC (char, strlen (dir) + sizeof (SPEC_FILE) + 4); - strcpy (spec, dir); - strcat (spec, dirsep_string); - strcat (spec, SPEC_FILE); - if (!stat (spec, &sb)) - return spec; - free (spec); - return NULL; - } - - /* Return whether strings S1 and S2 are both NULL or both the same string. */ --- 73,83 ---- *************** For more information about these matters *** 313,324 **** cool facility for handling --help and --verbose --help. */ return; - case OPT_L: - if (!spec_file) - spec_file = find_spec_file (decoded_options[i].arg); - break; - - default: break; } --- 290,295 ---- *************** For more information about these matters *** 449,460 **** #endif - /* Read the specs file corresponding to libgfortran. - If we didn't find the spec file on the -L path, we load it - via lang_specific_pre_link. */ - if (spec_file) - append_option (OPT_specs_, spec_file, 1); - if (verbose && g77_new_decoded_options != g77_x_decoded_options) { fprintf (stderr, _("Driving:")); --- 420,425 ---- *************** For more information about these matters *** 473,480 **** int lang_specific_pre_link (void) { ! free (spec_file); ! if (spec_file == NULL && library) do_spec ("%:include(libgfortran.spec)"); return 0; --- 438,444 ---- int lang_specific_pre_link (void) { ! if (library) do_spec ("%:include(libgfortran.spec)"); return 0; diff -Nrcpad gcc-4.9.0/gcc/fortran/intrinsic.texi gcc-4.9.1/gcc/fortran/intrinsic.texi *** gcc-4.9.0/gcc/fortran/intrinsic.texi Fri Apr 11 12:03:05 2014 --- gcc-4.9.1/gcc/fortran/intrinsic.texi Mon Jun 30 16:35:48 2014 *************** end program test_cshift *** 3343,3352 **** @table @asis @item @emph{Description}: @code{CTIME} converts a system time value, such as returned by ! @code{TIME8}, to a string. Unless the application has called ! @code{setlocale}, the output will be in the default locale, of length ! 24 and of the form @samp{Sat Aug 19 18:13:14 1995}. In other locales, ! a longer string may result. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. --- 3343,3350 ---- @table @asis @item @emph{Description}: @code{CTIME} converts a system time value, such as returned by ! @code{TIME8}, to a string. The output will be of the form @samp{Sat ! Aug 19 18:13:14 1995}. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. *************** named constants: *** 13210,13217 **** @code{OMP_LIB} provides the scalar default-integer named constant @code{openmp_version} with a value of the form @var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month ! of the OpenMP version; for OpenMP v3.1 the value is @code{201107} ! and for OpenMP v4.0 the value is @code{201307}. The following scalar integer named constants of the kind @code{omp_sched_kind}: --- 13208,13214 ---- @code{OMP_LIB} provides the scalar default-integer named constant @code{openmp_version} with a value of the form @var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month ! of the OpenMP version; for OpenMP v4.0 the value is @code{201307}. The following scalar integer named constants of the kind @code{omp_sched_kind}: diff -Nrcpad gcc-4.9.0/gcc/fortran/match.c gcc-4.9.1/gcc/fortran/match.c *** gcc-4.9.0/gcc/fortran/match.c Wed Mar 19 21:03:14 2014 --- gcc-4.9.1/gcc/fortran/match.c Mon Jun 30 16:35:48 2014 *************** match_exit_cycle (gfc_statement st, gfc_ *** 2595,2601 **** && o != NULL && o->state == COMP_OMP_STRUCTURED_BLOCK && (o->head->op == EXEC_OMP_DO ! || o->head->op == EXEC_OMP_PARALLEL_DO)) { int collapse = 1; gcc_assert (o->head->next != NULL --- 2595,2604 ---- && o != NULL && o->state == COMP_OMP_STRUCTURED_BLOCK && (o->head->op == EXEC_OMP_DO ! || o->head->op == EXEC_OMP_PARALLEL_DO ! || o->head->op == EXEC_OMP_SIMD ! || o->head->op == EXEC_OMP_DO_SIMD ! || o->head->op == EXEC_OMP_PARALLEL_DO_SIMD)) { int collapse = 1; gcc_assert (o->head->next != NULL *************** gfc_free_namelist (gfc_namelist *name) *** 4561,4566 **** --- 4564,4593 ---- n = name->next; free (name); } + } + + + /* Free an OpenMP namelist structure. */ + + void + gfc_free_omp_namelist (gfc_omp_namelist *name) + { + gfc_omp_namelist *n; + + for (; name; name = n) + { + gfc_free_expr (name->expr); + if (name->udr) + { + if (name->udr->combiner) + gfc_free_statement (name->udr->combiner); + if (name->udr->initializer) + gfc_free_statement (name->udr->initializer); + free (name->udr); + } + n = name->next; + free (name); + } } diff -Nrcpad gcc-4.9.0/gcc/fortran/match.h gcc-4.9.1/gcc/fortran/match.h *** gcc-4.9.0/gcc/fortran/match.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/match.h Mon Jun 30 16:35:48 2014 *************** gfc_common_head *gfc_get_common (const c *** 126,145 **** --- 126,171 ---- match gfc_match_omp_eos (void); match gfc_match_omp_atomic (void); match gfc_match_omp_barrier (void); + match gfc_match_omp_cancel (void); + match gfc_match_omp_cancellation_point (void); match gfc_match_omp_critical (void); + match gfc_match_omp_declare_reduction (void); + match gfc_match_omp_declare_simd (void); + match gfc_match_omp_declare_target (void); + match gfc_match_omp_distribute (void); + match gfc_match_omp_distribute_parallel_do (void); + match gfc_match_omp_distribute_parallel_do_simd (void); + match gfc_match_omp_distribute_simd (void); match gfc_match_omp_do (void); + match gfc_match_omp_do_simd (void); match gfc_match_omp_flush (void); match gfc_match_omp_master (void); match gfc_match_omp_ordered (void); match gfc_match_omp_parallel (void); match gfc_match_omp_parallel_do (void); + match gfc_match_omp_parallel_do_simd (void); match gfc_match_omp_parallel_sections (void); match gfc_match_omp_parallel_workshare (void); match gfc_match_omp_sections (void); + match gfc_match_omp_simd (void); match gfc_match_omp_single (void); + match gfc_match_omp_target (void); + match gfc_match_omp_target_data (void); + match gfc_match_omp_target_teams (void); + match gfc_match_omp_target_teams_distribute (void); + match gfc_match_omp_target_teams_distribute_parallel_do (void); + match gfc_match_omp_target_teams_distribute_parallel_do_simd (void); + match gfc_match_omp_target_teams_distribute_simd (void); + match gfc_match_omp_target_update (void); match gfc_match_omp_task (void); + match gfc_match_omp_taskgroup (void); match gfc_match_omp_taskwait (void); match gfc_match_omp_taskyield (void); + match gfc_match_omp_teams (void); + match gfc_match_omp_teams_distribute (void); + match gfc_match_omp_teams_distribute_parallel_do (void); + match gfc_match_omp_teams_distribute_parallel_do_simd (void); + match gfc_match_omp_teams_distribute_simd (void); match gfc_match_omp_threadprivate (void); match gfc_match_omp_workshare (void); match gfc_match_omp_end_nowait (void); diff -Nrcpad gcc-4.9.0/gcc/fortran/module.c gcc-4.9.1/gcc/fortran/module.c *** gcc-4.9.0/gcc/fortran/module.c Sun Jan 26 14:12:50 2014 --- gcc-4.9.1/gcc/fortran/module.c Mon Jun 30 16:35:48 2014 *************** along with GCC; see the file COPYING3. *** 83,88 **** --- 83,89 ---- /* Don't put any single quote (') in MOD_VERSION, if you want it to be recognized. */ #define MOD_VERSION "12" + #define MOD_VERSION_OMP4 "12 OpenMP 4" /* Structure that describes a position within a module file. */ *************** static char* module_content; *** 196,201 **** --- 197,203 ---- static long module_pos; static int module_line, module_column, only_flag; static int prev_module_line, prev_module_column; + static bool module_omp4; static enum { IO_INPUT, IO_OUTPUT } *************** typedef enum *** 1877,1883 **** AB_IS_BIND_C, AB_IS_C_INTEROP, AB_IS_ISO_C, AB_ABSTRACT, AB_ZERO_COMP, AB_IS_CLASS, AB_PROCEDURE, AB_PROC_POINTER, AB_ASYNCHRONOUS, AB_CODIMENSION, AB_COARRAY_COMP, AB_VTYPE, AB_VTAB, AB_CONTIGUOUS, AB_CLASS_POINTER, ! AB_IMPLICIT_PURE, AB_ARTIFICIAL, AB_UNLIMITED_POLY } ab_attribute; --- 1879,1885 ---- AB_IS_BIND_C, AB_IS_C_INTEROP, AB_IS_ISO_C, AB_ABSTRACT, AB_ZERO_COMP, AB_IS_CLASS, AB_PROCEDURE, AB_PROC_POINTER, AB_ASYNCHRONOUS, AB_CODIMENSION, AB_COARRAY_COMP, AB_VTYPE, AB_VTAB, AB_CONTIGUOUS, AB_CLASS_POINTER, ! AB_IMPLICIT_PURE, AB_ARTIFICIAL, AB_UNLIMITED_POLY, AB_OMP_DECLARE_TARGET } ab_attribute; *************** static const mstring attr_bits[] = *** 1932,1937 **** --- 1934,1940 ---- minit ("CLASS_POINTER", AB_CLASS_POINTER), minit ("IMPLICIT_PURE", AB_IMPLICIT_PURE), minit ("UNLIMITED_POLY", AB_UNLIMITED_POLY), + minit ("OMP_DECLARE_TARGET", AB_OMP_DECLARE_TARGET), minit (NULL, -1) }; *************** mio_symbol_attribute (symbol_attribute * *** 2110,2115 **** --- 2113,2120 ---- MIO_NAME (ab_attribute) (AB_VTYPE, attr_bits); if (attr->vtab) MIO_NAME (ab_attribute) (AB_VTAB, attr_bits); + if (attr->omp_declare_target) + MIO_NAME (ab_attribute) (AB_OMP_DECLARE_TARGET, attr_bits); mio_rparen (); *************** mio_symbol_attribute (symbol_attribute * *** 2273,2278 **** --- 2278,2286 ---- case AB_VTAB: attr->vtab = 1; break; + case AB_OMP_DECLARE_TARGET: + attr->omp_declare_target = 1; + break; } } } *************** static const mstring intrinsics[] = *** 3130,3135 **** --- 3138,3144 ---- minit ("LE", INTRINSIC_LE_OS), minit ("NOT", INTRINSIC_NOT), minit ("PARENTHESES", INTRINSIC_PARENTHESES), + minit ("USER", INTRINSIC_USER), minit (NULL, -1) }; *************** fix_mio_expr (gfc_expr *e) *** 3166,3172 **** && !e->symtree->n.sym->attr.dummy) e->symtree = ns_st; } ! else if (e->expr_type == EXPR_FUNCTION && e->value.function.name) { gfc_symbol *sym; --- 3175,3182 ---- && !e->symtree->n.sym->attr.dummy) e->symtree = ns_st; } ! else if (e->expr_type == EXPR_FUNCTION ! && (e->value.function.name || e->value.function.isym)) { gfc_symbol *sym; *************** mio_expr (gfc_expr **ep) *** 3281,3286 **** --- 3291,3322 ---- mio_expr (&e->value.op.op2); break; + case INTRINSIC_USER: + /* INTRINSIC_USER should not appear in resolved expressions, + though for UDRs we need to stream unresolved ones. */ + if (iomode == IO_OUTPUT) + write_atom (ATOM_STRING, e->value.op.uop->name); + else + { + char *name = read_string (); + const char *uop_name = find_use_name (name, true); + if (uop_name == NULL) + { + size_t len = strlen (name); + char *name2 = XCNEWVEC (char, len + 2); + memcpy (name2, name, len); + name2[len] = ' '; + name2[len + 1] = '\0'; + free (name); + uop_name = name = name2; + } + e->value.op.uop = gfc_get_uop (uop_name); + free (name); + } + mio_expr (&e->value.op.op1); + mio_expr (&e->value.op.op2); + break; + default: bad_module ("Bad operator"); } *************** mio_expr (gfc_expr **ep) *** 3299,3304 **** --- 3335,3342 ---- flag = 1; else if (e->ref) flag = 2; + else if (e->value.function.isym == NULL) + flag = 3; else flag = 0; mio_integer (&flag); *************** mio_expr (gfc_expr **ep) *** 3310,3315 **** --- 3348,3355 ---- case 2: mio_ref_list (&e->ref); break; + case 3: + break; default: write_atom (ATOM_STRING, e->value.function.isym->name); } *************** mio_expr (gfc_expr **ep) *** 3317,3323 **** else { require_atom (ATOM_STRING); ! e->value.function.name = gfc_get_string (atom_string); free (atom_string); mio_integer (&flag); --- 3357,3366 ---- else { require_atom (ATOM_STRING); ! if (atom_string[0] == '\0') ! e->value.function.name = NULL; ! else ! e->value.function.name = gfc_get_string (atom_string); free (atom_string); mio_integer (&flag); *************** mio_expr (gfc_expr **ep) *** 3329,3334 **** --- 3372,3379 ---- case 2: mio_ref_list (&e->ref); break; + case 3: + break; default: require_atom (ATOM_STRING); e->value.function.isym = gfc_find_function (atom_string); *************** mio_full_f2k_derived (gfc_symbol *sym) *** 3790,3795 **** --- 3835,4037 ---- mio_rparen (); } + static const mstring omp_declare_simd_clauses[] = + { + minit ("INBRANCH", 0), + minit ("NOTINBRANCH", 1), + minit ("SIMDLEN", 2), + minit ("UNIFORM", 3), + minit ("LINEAR", 4), + minit ("ALIGNED", 5), + minit (NULL, -1) + }; + + /* Handle !$omp declare simd. */ + + static void + mio_omp_declare_simd (gfc_namespace *ns, gfc_omp_declare_simd **odsp) + { + if (iomode == IO_OUTPUT) + { + if (*odsp == NULL) + return; + } + else if (peek_atom () != ATOM_LPAREN) + return; + + gfc_omp_declare_simd *ods = *odsp; + + mio_lparen (); + if (iomode == IO_OUTPUT) + { + write_atom (ATOM_NAME, "OMP_DECLARE_SIMD"); + if (ods->clauses) + { + gfc_omp_namelist *n; + + if (ods->clauses->inbranch) + mio_name (0, omp_declare_simd_clauses); + if (ods->clauses->notinbranch) + mio_name (1, omp_declare_simd_clauses); + if (ods->clauses->simdlen_expr) + { + mio_name (2, omp_declare_simd_clauses); + mio_expr (&ods->clauses->simdlen_expr); + } + for (n = ods->clauses->lists[OMP_LIST_UNIFORM]; n; n = n->next) + { + mio_name (3, omp_declare_simd_clauses); + mio_symbol_ref (&n->sym); + } + for (n = ods->clauses->lists[OMP_LIST_LINEAR]; n; n = n->next) + { + mio_name (4, omp_declare_simd_clauses); + mio_symbol_ref (&n->sym); + mio_expr (&n->expr); + } + for (n = ods->clauses->lists[OMP_LIST_ALIGNED]; n; n = n->next) + { + mio_name (5, omp_declare_simd_clauses); + mio_symbol_ref (&n->sym); + mio_expr (&n->expr); + } + } + } + else + { + gfc_omp_namelist **ptrs[3] = { NULL, NULL, NULL }; + + require_atom (ATOM_NAME); + *odsp = ods = gfc_get_omp_declare_simd (); + ods->where = gfc_current_locus; + ods->proc_name = ns->proc_name; + if (peek_atom () == ATOM_NAME) + { + ods->clauses = gfc_get_omp_clauses (); + ptrs[0] = &ods->clauses->lists[OMP_LIST_UNIFORM]; + ptrs[1] = &ods->clauses->lists[OMP_LIST_LINEAR]; + ptrs[2] = &ods->clauses->lists[OMP_LIST_ALIGNED]; + } + while (peek_atom () == ATOM_NAME) + { + gfc_omp_namelist *n; + int t = mio_name (0, omp_declare_simd_clauses); + + switch (t) + { + case 0: ods->clauses->inbranch = true; break; + case 1: ods->clauses->notinbranch = true; break; + case 2: mio_expr (&ods->clauses->simdlen_expr); break; + case 3: + case 4: + case 5: + *ptrs[t - 3] = n = gfc_get_omp_namelist (); + ptrs[t - 3] = &n->next; + mio_symbol_ref (&n->sym); + if (t != 3) + mio_expr (&n->expr); + break; + } + } + } + + mio_omp_declare_simd (ns, &ods->next); + + mio_rparen (); + } + + + static const mstring omp_declare_reduction_stmt[] = + { + minit ("ASSIGN", 0), + minit ("CALL", 1), + minit (NULL, -1) + }; + + + static void + mio_omp_udr_expr (gfc_omp_udr *udr, gfc_symbol **sym1, gfc_symbol **sym2, + gfc_namespace *ns, bool is_initializer) + { + if (iomode == IO_OUTPUT) + { + if ((*sym1)->module == NULL) + { + (*sym1)->module = module_name; + (*sym2)->module = module_name; + } + mio_symbol_ref (sym1); + mio_symbol_ref (sym2); + if (ns->code->op == EXEC_ASSIGN) + { + mio_name (0, omp_declare_reduction_stmt); + mio_expr (&ns->code->expr1); + mio_expr (&ns->code->expr2); + } + else + { + int flag; + mio_name (1, omp_declare_reduction_stmt); + mio_symtree_ref (&ns->code->symtree); + mio_actual_arglist (&ns->code->ext.actual); + + flag = ns->code->resolved_isym != NULL; + mio_integer (&flag); + if (flag) + write_atom (ATOM_STRING, ns->code->resolved_isym->name); + else + mio_symbol_ref (&ns->code->resolved_sym); + } + } + else + { + pointer_info *p1 = mio_symbol_ref (sym1); + pointer_info *p2 = mio_symbol_ref (sym2); + gfc_symbol *sym; + gcc_assert (p1->u.rsym.ns == p2->u.rsym.ns); + gcc_assert (p1->u.rsym.sym == NULL); + /* Add hidden symbols to the symtree. */ + pointer_info *q = get_integer (p1->u.rsym.ns); + q->u.pointer = (void *) ns; + sym = gfc_new_symbol (is_initializer ? "omp_priv" : "omp_out", ns); + sym->ts = udr->ts; + sym->module = gfc_get_string (p1->u.rsym.module); + associate_integer_pointer (p1, sym); + sym->attr.omp_udr_artificial_var = 1; + gcc_assert (p2->u.rsym.sym == NULL); + sym = gfc_new_symbol (is_initializer ? "omp_orig" : "omp_in", ns); + sym->ts = udr->ts; + sym->module = gfc_get_string (p2->u.rsym.module); + associate_integer_pointer (p2, sym); + sym->attr.omp_udr_artificial_var = 1; + if (mio_name (0, omp_declare_reduction_stmt) == 0) + { + ns->code = gfc_get_code (EXEC_ASSIGN); + mio_expr (&ns->code->expr1); + mio_expr (&ns->code->expr2); + } + else + { + int flag; + ns->code = gfc_get_code (EXEC_CALL); + mio_symtree_ref (&ns->code->symtree); + mio_actual_arglist (&ns->code->ext.actual); + + mio_integer (&flag); + if (flag) + { + require_atom (ATOM_STRING); + ns->code->resolved_isym = gfc_find_subroutine (atom_string); + free (atom_string); + } + else + mio_symbol_ref (&ns->code->resolved_sym); + } + ns->code->loc = gfc_current_locus; + ns->omp_udr_ns = 1; + } + } + /* Unlike most other routines, the address of the symbol node is already fixed on input and the name/module has already been filled in. *************** mio_symbol (gfc_symbol *sym) *** 3864,3869 **** --- 4106,4122 ---- if (sym->attr.flavor == FL_DERIVED) mio_integer (&(sym->hash_value)); + if (sym->formal_ns + && sym->formal_ns->proc_name == sym + && sym->formal_ns->entries == NULL) + { + if (module_omp4) + mio_omp_declare_simd (sym->formal_ns, + &sym->formal_ns->omp_declare_simd); + else if (iomode == IO_OUTPUT) + gcc_assert (sym->formal_ns->omp_declare_simd == NULL); + } + mio_rparen (); } *************** load_derived_extensions (void) *** 4343,4348 **** --- 4596,4714 ---- } + /* This function loads OpenMP user defined reductions. */ + static void + load_omp_udrs (void) + { + mio_lparen (); + while (peek_atom () != ATOM_RPAREN) + { + const char *name, *newname; + char *altname; + gfc_typespec ts; + gfc_symtree *st; + gfc_omp_reduction_op rop = OMP_REDUCTION_USER; + + mio_lparen (); + mio_pool_string (&name); + mio_typespec (&ts); + if (strncmp (name, "operator ", sizeof ("operator ") - 1) == 0) + { + const char *p = name + sizeof ("operator ") - 1; + if (strcmp (p, "+") == 0) + rop = OMP_REDUCTION_PLUS; + else if (strcmp (p, "*") == 0) + rop = OMP_REDUCTION_TIMES; + else if (strcmp (p, "-") == 0) + rop = OMP_REDUCTION_MINUS; + else if (strcmp (p, ".and.") == 0) + rop = OMP_REDUCTION_AND; + else if (strcmp (p, ".or.") == 0) + rop = OMP_REDUCTION_OR; + else if (strcmp (p, ".eqv.") == 0) + rop = OMP_REDUCTION_EQV; + else if (strcmp (p, ".neqv.") == 0) + rop = OMP_REDUCTION_NEQV; + } + altname = NULL; + if (rop == OMP_REDUCTION_USER && name[0] == '.') + { + size_t len = strlen (name + 1); + altname = XALLOCAVEC (char, len); + gcc_assert (name[len] == '.'); + memcpy (altname, name + 1, len - 1); + altname[len - 1] = '\0'; + } + newname = name; + if (rop == OMP_REDUCTION_USER) + newname = find_use_name (altname ? altname : name, !!altname); + else if (only_flag && find_use_operator ((gfc_intrinsic_op) rop) == NULL) + newname = NULL; + if (newname == NULL) + { + skip_list (1); + continue; + } + if (altname && newname != altname) + { + size_t len = strlen (newname); + altname = XALLOCAVEC (char, len + 3); + altname[0] = '.'; + memcpy (altname + 1, newname, len); + altname[len + 1] = '.'; + altname[len + 2] = '\0'; + name = gfc_get_string (altname); + } + st = gfc_find_symtree (gfc_current_ns->omp_udr_root, name); + gfc_omp_udr *udr = gfc_omp_udr_find (st, &ts); + if (udr) + { + require_atom (ATOM_INTEGER); + pointer_info *p = get_integer (atom_int); + if (strcmp (p->u.rsym.module, udr->omp_out->module)) + { + gfc_error ("Ambiguous !$OMP DECLARE REDUCTION from " + "module %s at %L", + p->u.rsym.module, &gfc_current_locus); + gfc_error ("Previous !$OMP DECLARE REDUCTION from module " + "%s at %L", + udr->omp_out->module, &udr->where); + } + skip_list (1); + continue; + } + udr = gfc_get_omp_udr (); + udr->name = name; + udr->rop = rop; + udr->ts = ts; + udr->where = gfc_current_locus; + udr->combiner_ns = gfc_get_namespace (gfc_current_ns, 1); + udr->combiner_ns->proc_name = gfc_current_ns->proc_name; + mio_omp_udr_expr (udr, &udr->omp_out, &udr->omp_in, udr->combiner_ns, + false); + if (peek_atom () != ATOM_RPAREN) + { + udr->initializer_ns = gfc_get_namespace (gfc_current_ns, 1); + udr->initializer_ns->proc_name = gfc_current_ns->proc_name; + mio_omp_udr_expr (udr, &udr->omp_priv, &udr->omp_orig, + udr->initializer_ns, true); + } + if (st) + { + udr->next = st->n.omp_udr; + st->n.omp_udr = udr; + } + else + { + st = gfc_new_symtree (&gfc_current_ns->omp_udr_root, name); + st->n.omp_udr = udr; + } + mio_rparen (); + } + mio_rparen (); + } + + /* Recursive function to traverse the pointer_info tree and load a needed symbol. We return nonzero if we load a symbol and stop the traversal, because the act of loading can alter the tree. */ *************** check_for_ambiguous (gfc_symbol *st_sym, *** 4530,4536 **** static void read_module (void) { ! module_locus operator_interfaces, user_operators, extensions; const char *p; char name[GFC_MAX_SYMBOL_LEN + 1]; int i; --- 4896,4902 ---- static void read_module (void) { ! module_locus operator_interfaces, user_operators, extensions, omp_udrs; const char *p; char name[GFC_MAX_SYMBOL_LEN + 1]; int i; *************** read_module (void) *** 4554,4559 **** --- 4920,4930 ---- get_module_locus (&extensions); skip_list (); + /* Skip OpenMP UDRs. */ + get_module_locus (&omp_udrs); + if (module_omp4) + skip_list (); + mio_lparen (); /* Create the fixup nodes for all the symbols. */ *************** read_module (void) *** 4819,4824 **** --- 5190,5202 ---- load_commons (); load_equiv (); + if (module_omp4) + { + /* Load OpenMP user defined reductions. */ + set_module_locus (&omp_udrs); + load_omp_udrs (); + } + /* At this point, we read those symbols that are needed but haven't been loaded yet. If one symbol requires another, the other gets marked as NEEDED if its previous state was UNUSED. */ *************** write_symbol0 (gfc_symtree *st) *** 5197,5202 **** --- 5575,5654 ---- } + static void + write_omp_udr (gfc_omp_udr *udr) + { + switch (udr->rop) + { + case OMP_REDUCTION_USER: + /* Non-operators can't be used outside of the module. */ + if (udr->name[0] != '.') + return; + else + { + gfc_symtree *st; + size_t len = strlen (udr->name + 1); + char *name = XALLOCAVEC (char, len); + memcpy (name, udr->name, len - 1); + name[len - 1] = '\0'; + st = gfc_find_symtree (gfc_current_ns->uop_root, name); + /* If corresponding user operator is private, don't write + the UDR. */ + if (st != NULL) + { + gfc_user_op *uop = st->n.uop; + if (!check_access (uop->access, uop->ns->default_access)) + return; + } + } + break; + case OMP_REDUCTION_PLUS: + case OMP_REDUCTION_MINUS: + case OMP_REDUCTION_TIMES: + case OMP_REDUCTION_AND: + case OMP_REDUCTION_OR: + case OMP_REDUCTION_EQV: + case OMP_REDUCTION_NEQV: + /* If corresponding operator is private, don't write the UDR. */ + if (!check_access (gfc_current_ns->operator_access[udr->rop], + gfc_current_ns->default_access)) + return; + break; + default: + break; + } + if (udr->ts.type == BT_DERIVED || udr->ts.type == BT_CLASS) + { + /* If derived type is private, don't write the UDR. */ + if (!gfc_check_symbol_access (udr->ts.u.derived)) + return; + } + + mio_lparen (); + mio_pool_string (&udr->name); + mio_typespec (&udr->ts); + mio_omp_udr_expr (udr, &udr->omp_out, &udr->omp_in, udr->combiner_ns, false); + if (udr->initializer_ns) + mio_omp_udr_expr (udr, &udr->omp_priv, &udr->omp_orig, + udr->initializer_ns, true); + mio_rparen (); + } + + + static void + write_omp_udrs (gfc_symtree *st) + { + if (st == NULL) + return; + + write_omp_udrs (st->left); + gfc_omp_udr *udr; + for (udr = st->n.omp_udr; udr; udr = udr->next) + write_omp_udr (udr); + write_omp_udrs (st->right); + } + + /* Type for the temporary tree used when writing secondary symbols. */ struct sorted_pointer_info *************** write_module (void) *** 5445,5450 **** --- 5897,5913 ---- write_char ('\n'); write_char ('\n'); + if (module_omp4) + { + mio_lparen (); + write_omp_udrs (gfc_current_ns->omp_udr_root); + mio_rparen (); + write_char ('\n'); + write_char ('\n'); + } + else + gcc_assert (gfc_current_ns->omp_udr_root == NULL); + /* Write symbol information. First we traverse all symbols in the primary namespace, writing those that need to be written. Sometimes writing one symbol will cause another to need to be *************** read_crc32_from_module_file (const char* *** 5513,5518 **** --- 5976,5996 ---- } + /* Set module_omp4 if any symbol has !$OMP DECLARE SIMD directives. */ + + static void + find_omp_declare_simd (gfc_symtree *st) + { + gfc_symbol *sym = st->n.sym; + if (sym->formal_ns + && sym->formal_ns->proc_name == sym + && sym->formal_ns->omp_declare_simd) + module_omp4 = true; + else if (sym->attr.omp_declare_target) + module_omp4 = true; + } + + /* Given module, dump it to disk. If there was an error while processing the module, dump_flag will be set to zero and we delete the module file, even if it was already there. */ *************** gfc_dump_module (const char *name, int d *** 5555,5560 **** --- 6033,6044 ---- if (gfc_cpp_makedep ()) gfc_cpp_add_target (filename); + module_omp4 = false; + if (gfc_current_ns->omp_udr_root) + module_omp4 = true; + else + gfc_traverse_symtree (gfc_current_ns->sym_root, find_omp_declare_simd); + /* Write the module to the temporary file. */ module_fp = gzopen (filename_tmp, "w"); if (module_fp == NULL) *************** gfc_dump_module (const char *name, int d *** 5562,5568 **** filename_tmp, xstrerror (errno)); gzprintf (module_fp, "GFORTRAN module version '%s' created from %s\n", ! MOD_VERSION, gfc_source_file); /* Write the module itself. */ iomode = IO_OUTPUT; --- 6046,6052 ---- filename_tmp, xstrerror (errno)); gzprintf (module_fp, "GFORTRAN module version '%s' created from %s\n", ! module_omp4 ? MOD_VERSION_OMP4 : MOD_VERSION, gfc_source_file); /* Write the module itself. */ iomode = IO_OUTPUT; *************** gfc_use_module (gfc_use_list *module) *** 6353,6358 **** --- 6837,6844 ---- read_module_to_tmpbuf (); gzclose (module_fp); + module_omp4 = false; + /* Skip the first line of the module, after checking that this is a gfortran module file. */ line = 0; *************** gfc_use_module (gfc_use_list *module) *** 6372,6382 **** if (strcmp (atom_name, " version") != 0 || module_char () != ' ' || parse_atom () != ATOM_STRING ! || strcmp (atom_string, MOD_VERSION)) gfc_fatal_error ("Cannot read module file '%s' opened at %C," " because it was created by a different" " version of GNU Fortran", filename); free (atom_string); } --- 6858,6872 ---- if (strcmp (atom_name, " version") != 0 || module_char () != ' ' || parse_atom () != ATOM_STRING ! || (strcmp (atom_string, MOD_VERSION) ! && strcmp (atom_string, MOD_VERSION_OMP4))) gfc_fatal_error ("Cannot read module file '%s' opened at %C," " because it was created by a different" " version of GNU Fortran", filename); + if (strcmp (atom_string, MOD_VERSION_OMP4) == 0) + module_omp4 = true; + free (atom_string); } diff -Nrcpad gcc-4.9.0/gcc/fortran/openmp.c gcc-4.9.1/gcc/fortran/openmp.c *** gcc-4.9.0/gcc/fortran/openmp.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/openmp.c Mon Jun 30 16:35:48 2014 *************** along with GCC; see the file COPYING3. *** 23,28 **** --- 23,29 ---- #include "coretypes.h" #include "flags.h" #include "gfortran.h" + #include "arith.h" #include "match.h" #include "parse.h" #include "pointer-set.h" *************** gfc_free_omp_clauses (gfc_omp_clauses *c *** 69,87 **** gfc_free_expr (c->final_expr); gfc_free_expr (c->num_threads); gfc_free_expr (c->chunk_size); for (i = 0; i < OMP_LIST_NUM; i++) ! gfc_free_namelist (c->lists[i]); free (c); } /* Match a variable/common block list and construct a namelist from it. */ static match ! gfc_match_omp_variable_list (const char *str, gfc_namelist **list, ! bool allow_common) { ! gfc_namelist *head, *tail, *p; ! locus old_loc; char n[GFC_MAX_SYMBOL_LEN+1]; gfc_symbol *sym; match m; --- 70,180 ---- gfc_free_expr (c->final_expr); gfc_free_expr (c->num_threads); gfc_free_expr (c->chunk_size); + gfc_free_expr (c->safelen_expr); + gfc_free_expr (c->simdlen_expr); + gfc_free_expr (c->num_teams); + gfc_free_expr (c->device); + gfc_free_expr (c->thread_limit); + gfc_free_expr (c->dist_chunk_size); for (i = 0; i < OMP_LIST_NUM; i++) ! gfc_free_omp_namelist (c->lists[i]); free (c); } + /* Free an !$omp declare simd construct list. */ + + void + gfc_free_omp_declare_simd (gfc_omp_declare_simd *ods) + { + if (ods) + { + gfc_free_omp_clauses (ods->clauses); + free (ods); + } + } + + void + gfc_free_omp_declare_simd_list (gfc_omp_declare_simd *list) + { + while (list) + { + gfc_omp_declare_simd *current = list; + list = list->next; + gfc_free_omp_declare_simd (current); + } + } + + /* Free an !$omp declare reduction. */ + + void + gfc_free_omp_udr (gfc_omp_udr *omp_udr) + { + if (omp_udr) + { + gfc_free_omp_udr (omp_udr->next); + gfc_free_namespace (omp_udr->combiner_ns); + if (omp_udr->initializer_ns) + gfc_free_namespace (omp_udr->initializer_ns); + free (omp_udr); + } + } + + + static gfc_omp_udr * + gfc_find_omp_udr (gfc_namespace *ns, const char *name, gfc_typespec *ts) + { + gfc_symtree *st; + + if (ns == NULL) + ns = gfc_current_ns; + do + { + gfc_omp_udr *omp_udr; + + st = gfc_find_symtree (ns->omp_udr_root, name); + if (st != NULL) + for (omp_udr = st->n.omp_udr; omp_udr; omp_udr = omp_udr->next) + if (ts == NULL) + return omp_udr; + else if (gfc_compare_types (&omp_udr->ts, ts)) + { + if (ts->type == BT_CHARACTER) + { + if (omp_udr->ts.u.cl->length == NULL) + return omp_udr; + if (ts->u.cl->length == NULL) + continue; + if (gfc_compare_expr (omp_udr->ts.u.cl->length, + ts->u.cl->length, + INTRINSIC_EQ) != 0) + continue; + } + return omp_udr; + } + + /* Don't escape an interface block. */ + if (ns && !ns->has_import_set + && ns->proc_name && ns->proc_name->attr.if_source == IFSRC_IFBODY) + break; + + ns = ns->parent; + } + while (ns != NULL); + + return NULL; + } + + /* Match a variable/common block list and construct a namelist from it. */ static match ! gfc_match_omp_variable_list (const char *str, gfc_omp_namelist **list, ! bool allow_common, bool *end_colon = NULL, ! gfc_omp_namelist ***headp = NULL, ! bool allow_sections = false) { ! gfc_omp_namelist *head, *tail, *p; ! locus old_loc, cur_loc; char n[GFC_MAX_SYMBOL_LEN+1]; gfc_symbol *sym; match m; *************** gfc_match_omp_variable_list (const char *** 97,108 **** for (;;) { m = gfc_match_symbol (&sym, 1); switch (m) { case MATCH_YES: gfc_set_sym_referenced (sym); ! p = gfc_get_namelist (); if (head == NULL) head = tail = p; else --- 190,218 ---- for (;;) { + cur_loc = gfc_current_locus; m = gfc_match_symbol (&sym, 1); switch (m) { case MATCH_YES: + gfc_expr *expr; + expr = NULL; + if (allow_sections && gfc_peek_ascii_char () == '(') + { + gfc_current_locus = cur_loc; + m = gfc_match_variable (&expr, 0); + switch (m) + { + case MATCH_ERROR: + goto cleanup; + case MATCH_NO: + goto syntax; + default: + break; + } + } gfc_set_sym_referenced (sym); ! p = gfc_get_omp_namelist (); if (head == NULL) head = tail = p; else *************** gfc_match_omp_variable_list (const char *** 111,116 **** --- 221,227 ---- tail = tail->next; } tail->sym = sym; + tail->expr = expr; goto next_item; case MATCH_NO: break; *************** gfc_match_omp_variable_list (const char *** 136,142 **** for (sym = st->n.common->head; sym; sym = sym->common_next) { gfc_set_sym_referenced (sym); ! p = gfc_get_namelist (); if (head == NULL) head = tail = p; else --- 247,253 ---- for (sym = st->n.common->head; sym; sym = sym->common_next) { gfc_set_sym_referenced (sym); ! p = gfc_get_omp_namelist (); if (head == NULL) head = tail = p; else *************** gfc_match_omp_variable_list (const char *** 148,153 **** --- 259,269 ---- } next_item: + if (end_colon && gfc_match_char (':') == MATCH_YES) + { + *end_colon = true; + break; + } if (gfc_match_char (')') == MATCH_YES) break; if (gfc_match_char (',') != MATCH_YES) *************** gfc_match_omp_variable_list (const char *** 158,200 **** list = &(*list)->next; *list = head; return MATCH_YES; syntax: gfc_error ("Syntax error in OpenMP variable list at %C"); cleanup: ! gfc_free_namelist (head); gfc_current_locus = old_loc; return MATCH_ERROR; } ! #define OMP_CLAUSE_PRIVATE (1 << 0) ! #define OMP_CLAUSE_FIRSTPRIVATE (1 << 1) ! #define OMP_CLAUSE_LASTPRIVATE (1 << 2) ! #define OMP_CLAUSE_COPYPRIVATE (1 << 3) ! #define OMP_CLAUSE_SHARED (1 << 4) ! #define OMP_CLAUSE_COPYIN (1 << 5) ! #define OMP_CLAUSE_REDUCTION (1 << 6) ! #define OMP_CLAUSE_IF (1 << 7) ! #define OMP_CLAUSE_NUM_THREADS (1 << 8) ! #define OMP_CLAUSE_SCHEDULE (1 << 9) ! #define OMP_CLAUSE_DEFAULT (1 << 10) ! #define OMP_CLAUSE_ORDERED (1 << 11) ! #define OMP_CLAUSE_COLLAPSE (1 << 12) ! #define OMP_CLAUSE_UNTIED (1 << 13) ! #define OMP_CLAUSE_FINAL (1 << 14) ! #define OMP_CLAUSE_MERGEABLE (1 << 15) /* Match OpenMP directive clauses. MASK is a bitmask of clauses that are allowed for a particular directive. */ static match ! gfc_match_omp_clauses (gfc_omp_clauses **cp, int mask) { gfc_omp_clauses *c = gfc_get_omp_clauses (); locus old_loc; - bool needs_space = true, first = true; *cp = NULL; while (1) --- 274,334 ---- list = &(*list)->next; *list = head; + if (headp) + *headp = list; return MATCH_YES; syntax: gfc_error ("Syntax error in OpenMP variable list at %C"); cleanup: ! gfc_free_omp_namelist (head); gfc_current_locus = old_loc; return MATCH_ERROR; } ! #define OMP_CLAUSE_PRIVATE (1U << 0) ! #define OMP_CLAUSE_FIRSTPRIVATE (1U << 1) ! #define OMP_CLAUSE_LASTPRIVATE (1U << 2) ! #define OMP_CLAUSE_COPYPRIVATE (1U << 3) ! #define OMP_CLAUSE_SHARED (1U << 4) ! #define OMP_CLAUSE_COPYIN (1U << 5) ! #define OMP_CLAUSE_REDUCTION (1U << 6) ! #define OMP_CLAUSE_IF (1U << 7) ! #define OMP_CLAUSE_NUM_THREADS (1U << 8) ! #define OMP_CLAUSE_SCHEDULE (1U << 9) ! #define OMP_CLAUSE_DEFAULT (1U << 10) ! #define OMP_CLAUSE_ORDERED (1U << 11) ! #define OMP_CLAUSE_COLLAPSE (1U << 12) ! #define OMP_CLAUSE_UNTIED (1U << 13) ! #define OMP_CLAUSE_FINAL (1U << 14) ! #define OMP_CLAUSE_MERGEABLE (1U << 15) ! #define OMP_CLAUSE_ALIGNED (1U << 16) ! #define OMP_CLAUSE_DEPEND (1U << 17) ! #define OMP_CLAUSE_INBRANCH (1U << 18) ! #define OMP_CLAUSE_LINEAR (1U << 19) ! #define OMP_CLAUSE_NOTINBRANCH (1U << 20) ! #define OMP_CLAUSE_PROC_BIND (1U << 21) ! #define OMP_CLAUSE_SAFELEN (1U << 22) ! #define OMP_CLAUSE_SIMDLEN (1U << 23) ! #define OMP_CLAUSE_UNIFORM (1U << 24) ! #define OMP_CLAUSE_DEVICE (1U << 25) ! #define OMP_CLAUSE_MAP (1U << 26) ! #define OMP_CLAUSE_TO (1U << 27) ! #define OMP_CLAUSE_FROM (1U << 28) ! #define OMP_CLAUSE_NUM_TEAMS (1U << 29) ! #define OMP_CLAUSE_THREAD_LIMIT (1U << 30) ! #define OMP_CLAUSE_DIST_SCHEDULE (1U << 31) /* Match OpenMP directive clauses. MASK is a bitmask of clauses that are allowed for a particular directive. */ static match ! gfc_match_omp_clauses (gfc_omp_clauses **cp, unsigned int mask, ! bool first = true, bool needs_space = true) { gfc_omp_clauses *c = gfc_get_omp_clauses (); locus old_loc; *cp = NULL; while (1) *************** gfc_match_omp_clauses (gfc_omp_clauses * *** 251,272 **** if ((mask & OMP_CLAUSE_REDUCTION) && gfc_match ("reduction ( ") == MATCH_YES) { ! int reduction = OMP_LIST_NUM; ! char buffer[GFC_MAX_SYMBOL_LEN + 1]; if (gfc_match_char ('+') == MATCH_YES) ! reduction = OMP_LIST_PLUS; else if (gfc_match_char ('*') == MATCH_YES) ! reduction = OMP_LIST_MULT; else if (gfc_match_char ('-') == MATCH_YES) ! reduction = OMP_LIST_SUB; else if (gfc_match (".and.") == MATCH_YES) ! reduction = OMP_LIST_AND; else if (gfc_match (".or.") == MATCH_YES) ! reduction = OMP_LIST_OR; else if (gfc_match (".eqv.") == MATCH_YES) ! reduction = OMP_LIST_EQV; else if (gfc_match (".neqv.") == MATCH_YES) ! reduction = OMP_LIST_NEQV; else if (gfc_match_name (buffer) == MATCH_YES) { gfc_symbol *sym; --- 385,414 ---- if ((mask & OMP_CLAUSE_REDUCTION) && gfc_match ("reduction ( ") == MATCH_YES) { ! gfc_omp_reduction_op rop = OMP_REDUCTION_NONE; ! char buffer[GFC_MAX_SYMBOL_LEN + 3]; if (gfc_match_char ('+') == MATCH_YES) ! rop = OMP_REDUCTION_PLUS; else if (gfc_match_char ('*') == MATCH_YES) ! rop = OMP_REDUCTION_TIMES; else if (gfc_match_char ('-') == MATCH_YES) ! rop = OMP_REDUCTION_MINUS; else if (gfc_match (".and.") == MATCH_YES) ! rop = OMP_REDUCTION_AND; else if (gfc_match (".or.") == MATCH_YES) ! rop = OMP_REDUCTION_OR; else if (gfc_match (".eqv.") == MATCH_YES) ! rop = OMP_REDUCTION_EQV; else if (gfc_match (".neqv.") == MATCH_YES) ! rop = OMP_REDUCTION_NEQV; ! if (rop != OMP_REDUCTION_NONE) ! snprintf (buffer, sizeof buffer, ! "operator %s", gfc_op2string ((gfc_intrinsic_op) rop)); ! else if (gfc_match_defined_op_name (buffer + 1, 1) == MATCH_YES) ! { ! buffer[0] = '.'; ! strcat (buffer, "."); ! } else if (gfc_match_name (buffer) == MATCH_YES) { gfc_symbol *sym; *************** gfc_match_omp_clauses (gfc_omp_clauses * *** 294,333 **** || sym->attr.if_source != IFSRC_UNKNOWN || sym == sym->ns->proc_name) { - gfc_error_now ("%s is not INTRINSIC procedure name " - "at %C", buffer); sym = NULL; } else n = sym->name; } ! if (strcmp (n, "max") == 0) ! reduction = OMP_LIST_MAX; else if (strcmp (n, "min") == 0) ! reduction = OMP_LIST_MIN; else if (strcmp (n, "iand") == 0) ! reduction = OMP_LIST_IAND; else if (strcmp (n, "ior") == 0) ! reduction = OMP_LIST_IOR; else if (strcmp (n, "ieor") == 0) ! reduction = OMP_LIST_IEOR; ! if (reduction != OMP_LIST_NUM && sym != NULL && ! sym->attr.intrinsic && ! sym->attr.use_assoc && ((sym->attr.flavor == FL_UNKNOWN ! && !gfc_add_flavor (&sym->attr, FL_PROCEDURE, sym->name, NULL)) || !gfc_add_intrinsic (&sym->attr, NULL))) { ! gfc_free_omp_clauses (c); ! return MATCH_ERROR; } } - if (reduction != OMP_LIST_NUM - && gfc_match_omp_variable_list (" :", &c->lists[reduction], - false) - == MATCH_YES) - continue; else gfc_current_locus = old_loc; } --- 436,499 ---- || sym->attr.if_source != IFSRC_UNKNOWN || sym == sym->ns->proc_name) { sym = NULL; + n = NULL; } else n = sym->name; } ! if (n == NULL) ! rop = OMP_REDUCTION_NONE; ! else if (strcmp (n, "max") == 0) ! rop = OMP_REDUCTION_MAX; else if (strcmp (n, "min") == 0) ! rop = OMP_REDUCTION_MIN; else if (strcmp (n, "iand") == 0) ! rop = OMP_REDUCTION_IAND; else if (strcmp (n, "ior") == 0) ! rop = OMP_REDUCTION_IOR; else if (strcmp (n, "ieor") == 0) ! rop = OMP_REDUCTION_IEOR; ! if (rop != OMP_REDUCTION_NONE && sym != NULL && ! sym->attr.intrinsic && ! sym->attr.use_assoc && ((sym->attr.flavor == FL_UNKNOWN ! && !gfc_add_flavor (&sym->attr, FL_PROCEDURE, ! sym->name, NULL)) || !gfc_add_intrinsic (&sym->attr, NULL))) + rop = OMP_REDUCTION_NONE; + } + gfc_omp_udr *udr = gfc_find_omp_udr (gfc_current_ns, buffer, NULL); + gfc_omp_namelist **head = NULL; + if (rop == OMP_REDUCTION_NONE && udr) + rop = OMP_REDUCTION_USER; + + if (gfc_match_omp_variable_list (" :", + &c->lists[OMP_LIST_REDUCTION], + false, NULL, &head) == MATCH_YES) + { + gfc_omp_namelist *n; + if (rop == OMP_REDUCTION_NONE) { ! n = *head; ! *head = NULL; ! gfc_error_now ("!$OMP DECLARE REDUCTION %s not found " ! "at %L", buffer, &old_loc); ! gfc_free_omp_namelist (n); } + else + for (n = *head; n; n = n->next) + { + n->u.reduction_op = rop; + if (udr) + { + n->udr = gfc_get_omp_namelist_udr (); + n->udr->udr = udr; + } + } + continue; } else gfc_current_locus = old_loc; } *************** gfc_match_omp_clauses (gfc_omp_clauses * *** 419,424 **** --- 585,772 ---- continue; } } + if ((mask & OMP_CLAUSE_INBRANCH) && !c->inbranch && !c->notinbranch + && gfc_match ("inbranch") == MATCH_YES) + { + c->inbranch = needs_space = true; + continue; + } + if ((mask & OMP_CLAUSE_NOTINBRANCH) && !c->notinbranch && !c->inbranch + && gfc_match ("notinbranch") == MATCH_YES) + { + c->notinbranch = needs_space = true; + continue; + } + if ((mask & OMP_CLAUSE_PROC_BIND) + && c->proc_bind == OMP_PROC_BIND_UNKNOWN) + { + if (gfc_match ("proc_bind ( master )") == MATCH_YES) + c->proc_bind = OMP_PROC_BIND_MASTER; + else if (gfc_match ("proc_bind ( spread )") == MATCH_YES) + c->proc_bind = OMP_PROC_BIND_SPREAD; + else if (gfc_match ("proc_bind ( close )") == MATCH_YES) + c->proc_bind = OMP_PROC_BIND_CLOSE; + if (c->proc_bind != OMP_PROC_BIND_UNKNOWN) + continue; + } + if ((mask & OMP_CLAUSE_SAFELEN) && c->safelen_expr == NULL + && gfc_match ("safelen ( %e )", &c->safelen_expr) == MATCH_YES) + continue; + if ((mask & OMP_CLAUSE_SIMDLEN) && c->simdlen_expr == NULL + && gfc_match ("simdlen ( %e )", &c->simdlen_expr) == MATCH_YES) + continue; + if ((mask & OMP_CLAUSE_UNIFORM) + && gfc_match_omp_variable_list ("uniform (", + &c->lists[OMP_LIST_UNIFORM], false) + == MATCH_YES) + continue; + bool end_colon = false; + gfc_omp_namelist **head = NULL; + old_loc = gfc_current_locus; + if ((mask & OMP_CLAUSE_ALIGNED) + && gfc_match_omp_variable_list ("aligned (", + &c->lists[OMP_LIST_ALIGNED], false, + &end_colon, &head) + == MATCH_YES) + { + gfc_expr *alignment = NULL; + gfc_omp_namelist *n; + + if (end_colon + && gfc_match (" %e )", &alignment) != MATCH_YES) + { + gfc_free_omp_namelist (*head); + gfc_current_locus = old_loc; + *head = NULL; + break; + } + for (n = *head; n; n = n->next) + if (n->next && alignment) + n->expr = gfc_copy_expr (alignment); + else + n->expr = alignment; + continue; + } + end_colon = false; + head = NULL; + old_loc = gfc_current_locus; + if ((mask & OMP_CLAUSE_LINEAR) + && gfc_match_omp_variable_list ("linear (", + &c->lists[OMP_LIST_LINEAR], false, + &end_colon, &head) + == MATCH_YES) + { + gfc_expr *step = NULL; + + if (end_colon + && gfc_match (" %e )", &step) != MATCH_YES) + { + gfc_free_omp_namelist (*head); + gfc_current_locus = old_loc; + *head = NULL; + break; + } + else if (!end_colon) + { + step = gfc_get_constant_expr (BT_INTEGER, + gfc_default_integer_kind, + &old_loc); + mpz_set_si (step->value.integer, 1); + } + (*head)->expr = step; + continue; + } + if ((mask & OMP_CLAUSE_DEPEND) + && gfc_match ("depend ( ") == MATCH_YES) + { + match m = MATCH_YES; + gfc_omp_depend_op depend_op = OMP_DEPEND_OUT; + if (gfc_match ("inout") == MATCH_YES) + depend_op = OMP_DEPEND_INOUT; + else if (gfc_match ("in") == MATCH_YES) + depend_op = OMP_DEPEND_IN; + else if (gfc_match ("out") == MATCH_YES) + depend_op = OMP_DEPEND_OUT; + else + m = MATCH_NO; + head = NULL; + if (m == MATCH_YES + && gfc_match_omp_variable_list (" : ", + &c->lists[OMP_LIST_DEPEND], + false, NULL, &head, true) + == MATCH_YES) + { + gfc_omp_namelist *n; + for (n = *head; n; n = n->next) + n->u.depend_op = depend_op; + continue; + } + else + gfc_current_locus = old_loc; + } + if ((mask & OMP_CLAUSE_DIST_SCHEDULE) + && c->dist_sched_kind == OMP_SCHED_NONE + && gfc_match ("dist_schedule ( static") == MATCH_YES) + { + match m = MATCH_NO; + c->dist_sched_kind = OMP_SCHED_STATIC; + m = gfc_match (" , %e )", &c->dist_chunk_size); + if (m != MATCH_YES) + m = gfc_match_char (')'); + if (m != MATCH_YES) + { + c->dist_sched_kind = OMP_SCHED_NONE; + gfc_current_locus = old_loc; + } + else + continue; + } + if ((mask & OMP_CLAUSE_NUM_TEAMS) && c->num_teams == NULL + && gfc_match ("num_teams ( %e )", &c->num_teams) == MATCH_YES) + continue; + if ((mask & OMP_CLAUSE_DEVICE) && c->device == NULL + && gfc_match ("device ( %e )", &c->device) == MATCH_YES) + continue; + if ((mask & OMP_CLAUSE_THREAD_LIMIT) && c->thread_limit == NULL + && gfc_match ("thread_limit ( %e )", &c->thread_limit) == MATCH_YES) + continue; + if ((mask & OMP_CLAUSE_MAP) + && gfc_match ("map ( ") == MATCH_YES) + { + gfc_omp_map_op map_op = OMP_MAP_TOFROM; + if (gfc_match ("alloc : ") == MATCH_YES) + map_op = OMP_MAP_ALLOC; + else if (gfc_match ("tofrom : ") == MATCH_YES) + map_op = OMP_MAP_TOFROM; + else if (gfc_match ("to : ") == MATCH_YES) + map_op = OMP_MAP_TO; + else if (gfc_match ("from : ") == MATCH_YES) + map_op = OMP_MAP_FROM; + head = NULL; + if (gfc_match_omp_variable_list ("", &c->lists[OMP_LIST_MAP], + false, NULL, &head, true) + == MATCH_YES) + { + gfc_omp_namelist *n; + for (n = *head; n; n = n->next) + n->u.map_op = map_op; + continue; + } + else + gfc_current_locus = old_loc; + } + if ((mask & OMP_CLAUSE_TO) + && gfc_match_omp_variable_list ("to (", + &c->lists[OMP_LIST_TO], false, + NULL, &head, true) + == MATCH_YES) + continue; + if ((mask & OMP_CLAUSE_FROM) + && gfc_match_omp_variable_list ("from (", + &c->lists[OMP_LIST_FROM], false, + NULL, &head, true) + == MATCH_YES) + continue; break; } *************** gfc_match_omp_clauses (gfc_omp_clauses * *** 436,442 **** #define OMP_PARALLEL_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE | OMP_CLAUSE_SHARED \ | OMP_CLAUSE_COPYIN | OMP_CLAUSE_REDUCTION | OMP_CLAUSE_IF \ ! | OMP_CLAUSE_NUM_THREADS | OMP_CLAUSE_DEFAULT) #define OMP_DO_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE \ | OMP_CLAUSE_LASTPRIVATE | OMP_CLAUSE_REDUCTION \ --- 784,793 ---- #define OMP_PARALLEL_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE | OMP_CLAUSE_SHARED \ | OMP_CLAUSE_COPYIN | OMP_CLAUSE_REDUCTION | OMP_CLAUSE_IF \ ! | OMP_CLAUSE_NUM_THREADS | OMP_CLAUSE_DEFAULT | OMP_CLAUSE_PROC_BIND) ! #define OMP_DECLARE_SIMD_CLAUSES \ ! (OMP_CLAUSE_SIMDLEN | OMP_CLAUSE_LINEAR | OMP_CLAUSE_UNIFORM \ ! | OMP_CLAUSE_ALIGNED | OMP_CLAUSE_INBRANCH | OMP_CLAUSE_NOTINBRANCH) #define OMP_DO_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE \ | OMP_CLAUSE_LASTPRIVATE | OMP_CLAUSE_REDUCTION \ *************** gfc_match_omp_clauses (gfc_omp_clauses * *** 444,550 **** #define OMP_SECTIONS_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE \ | OMP_CLAUSE_LASTPRIVATE | OMP_CLAUSE_REDUCTION) #define OMP_TASK_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE | OMP_CLAUSE_SHARED \ | OMP_CLAUSE_IF | OMP_CLAUSE_DEFAULT | OMP_CLAUSE_UNTIED \ ! | OMP_CLAUSE_FINAL | OMP_CLAUSE_MERGEABLE) ! ! match ! gfc_match_omp_parallel (void) ! { ! gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_PARALLEL_CLAUSES) != MATCH_YES) ! return MATCH_ERROR; ! new_st.op = EXEC_OMP_PARALLEL; ! new_st.ext.omp_clauses = c; ! return MATCH_YES; ! } ! match ! gfc_match_omp_task (void) { gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_TASK_CLAUSES) != MATCH_YES) return MATCH_ERROR; ! new_st.op = EXEC_OMP_TASK; new_st.ext.omp_clauses = c; return MATCH_YES; } match ! gfc_match_omp_taskwait (void) { if (gfc_match_omp_eos () != MATCH_YES) { ! gfc_error ("Unexpected junk after TASKWAIT clause at %C"); return MATCH_ERROR; } ! new_st.op = EXEC_OMP_TASKWAIT; ! new_st.ext.omp_clauses = NULL; return MATCH_YES; } match ! gfc_match_omp_taskyield (void) { ! if (gfc_match_omp_eos () != MATCH_YES) ! { ! gfc_error ("Unexpected junk after TASKYIELD clause at %C"); ! return MATCH_ERROR; ! } ! new_st.op = EXEC_OMP_TASKYIELD; ! new_st.ext.omp_clauses = NULL; ! return MATCH_YES; } match ! gfc_match_omp_critical (void) { ! char n[GFC_MAX_SYMBOL_LEN+1]; ! if (gfc_match (" ( %n )", n) != MATCH_YES) ! n[0] = '\0'; if (gfc_match_omp_eos () != MATCH_YES) { ! gfc_error ("Unexpected junk after $OMP CRITICAL statement at %C"); return MATCH_ERROR; } ! new_st.op = EXEC_OMP_CRITICAL; ! new_st.ext.omp_name = n[0] ? xstrdup (n) : NULL; return MATCH_YES; } match ! gfc_match_omp_do (void) { gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_DO_CLAUSES) != MATCH_YES) return MATCH_ERROR; ! new_st.op = EXEC_OMP_DO; ! new_st.ext.omp_clauses = c; return MATCH_YES; } match ! gfc_match_omp_flush (void) { ! gfc_namelist *list = NULL; ! gfc_match_omp_variable_list (" (", &list, true); if (gfc_match_omp_eos () != MATCH_YES) { ! gfc_error ("Unexpected junk after $OMP FLUSH statement at %C"); ! gfc_free_namelist (list); ! return MATCH_ERROR; } - new_st.op = EXEC_OMP_FLUSH; - new_st.ext.omp_namelist = list; return MATCH_YES; } --- 795,1427 ---- #define OMP_SECTIONS_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE \ | OMP_CLAUSE_LASTPRIVATE | OMP_CLAUSE_REDUCTION) + #define OMP_SIMD_CLAUSES \ + (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_LASTPRIVATE | OMP_CLAUSE_REDUCTION \ + | OMP_CLAUSE_COLLAPSE | OMP_CLAUSE_SAFELEN | OMP_CLAUSE_LINEAR \ + | OMP_CLAUSE_ALIGNED) #define OMP_TASK_CLAUSES \ (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE | OMP_CLAUSE_SHARED \ | OMP_CLAUSE_IF | OMP_CLAUSE_DEFAULT | OMP_CLAUSE_UNTIED \ ! | OMP_CLAUSE_FINAL | OMP_CLAUSE_MERGEABLE | OMP_CLAUSE_DEPEND) ! #define OMP_TARGET_CLAUSES \ ! (OMP_CLAUSE_DEVICE | OMP_CLAUSE_MAP | OMP_CLAUSE_IF) ! #define OMP_TARGET_DATA_CLAUSES \ ! (OMP_CLAUSE_DEVICE | OMP_CLAUSE_MAP | OMP_CLAUSE_IF) ! #define OMP_TARGET_UPDATE_CLAUSES \ ! (OMP_CLAUSE_DEVICE | OMP_CLAUSE_IF | OMP_CLAUSE_TO | OMP_CLAUSE_FROM) ! #define OMP_TEAMS_CLAUSES \ ! (OMP_CLAUSE_NUM_TEAMS | OMP_CLAUSE_THREAD_LIMIT | OMP_CLAUSE_DEFAULT \ ! | OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE | OMP_CLAUSE_SHARED \ ! | OMP_CLAUSE_REDUCTION) ! #define OMP_DISTRIBUTE_CLAUSES \ ! (OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE | OMP_CLAUSE_COLLAPSE \ ! | OMP_CLAUSE_DIST_SCHEDULE) ! static match ! match_omp (gfc_exec_op op, unsigned int mask) { gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, mask) != MATCH_YES) return MATCH_ERROR; ! new_st.op = op; new_st.ext.omp_clauses = c; return MATCH_YES; } match ! gfc_match_omp_critical (void) { + char n[GFC_MAX_SYMBOL_LEN+1]; + + if (gfc_match (" ( %n )", n) != MATCH_YES) + n[0] = '\0'; if (gfc_match_omp_eos () != MATCH_YES) { ! gfc_error ("Unexpected junk after $OMP CRITICAL statement at %C"); return MATCH_ERROR; } ! new_st.op = EXEC_OMP_CRITICAL; ! new_st.ext.omp_name = n[0] ? xstrdup (n) : NULL; return MATCH_YES; } match ! gfc_match_omp_distribute (void) { ! return match_omp (EXEC_OMP_DISTRIBUTE, OMP_DISTRIBUTE_CLAUSES); } match ! gfc_match_omp_distribute_parallel_do (void) { ! return match_omp (EXEC_OMP_DISTRIBUTE_PARALLEL_DO, ! OMP_DISTRIBUTE_CLAUSES | OMP_PARALLEL_CLAUSES ! | OMP_DO_CLAUSES); ! } ! ! match ! gfc_match_omp_distribute_parallel_do_simd (void) ! { ! return match_omp (EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD, ! (OMP_DISTRIBUTE_CLAUSES | OMP_PARALLEL_CLAUSES ! | OMP_DO_CLAUSES | OMP_SIMD_CLAUSES) ! & ~OMP_CLAUSE_ORDERED); ! } ! ! ! match ! gfc_match_omp_distribute_simd (void) ! { ! return match_omp (EXEC_OMP_DISTRIBUTE_SIMD, ! OMP_DISTRIBUTE_CLAUSES | OMP_SIMD_CLAUSES); ! } ! ! ! match ! gfc_match_omp_do (void) ! { ! return match_omp (EXEC_OMP_DO, OMP_DO_CLAUSES); ! } ! ! ! match ! gfc_match_omp_do_simd (void) ! { ! return match_omp (EXEC_OMP_DO_SIMD, ((OMP_DO_CLAUSES | OMP_SIMD_CLAUSES) ! & ~OMP_CLAUSE_ORDERED)); ! } ! ! ! match ! gfc_match_omp_flush (void) ! { ! gfc_omp_namelist *list = NULL; ! gfc_match_omp_variable_list (" (", &list, true); if (gfc_match_omp_eos () != MATCH_YES) { ! gfc_error ("Unexpected junk after $OMP FLUSH statement at %C"); ! gfc_free_omp_namelist (list); return MATCH_ERROR; } ! new_st.op = EXEC_OMP_FLUSH; ! new_st.ext.omp_namelist = list; return MATCH_YES; } match ! gfc_match_omp_declare_simd (void) { + locus where = gfc_current_locus; + gfc_symbol *proc_name; gfc_omp_clauses *c; ! gfc_omp_declare_simd *ods; ! ! if (gfc_match (" ( %s ) ", &proc_name) != MATCH_YES) return MATCH_ERROR; ! ! if (gfc_match_omp_clauses (&c, OMP_DECLARE_SIMD_CLAUSES, true, ! false) != MATCH_YES) ! return MATCH_ERROR; ! ! ods = gfc_get_omp_declare_simd (); ! ods->where = where; ! ods->proc_name = proc_name; ! ods->clauses = c; ! ods->next = gfc_current_ns->omp_declare_simd; ! gfc_current_ns->omp_declare_simd = ods; return MATCH_YES; } + static bool + match_udr_expr (gfc_symtree *omp_sym1, gfc_symtree *omp_sym2) + { + match m; + locus old_loc = gfc_current_locus; + char sname[GFC_MAX_SYMBOL_LEN + 1]; + gfc_symbol *sym; + gfc_namespace *ns = gfc_current_ns; + gfc_expr *lvalue = NULL, *rvalue = NULL; + gfc_symtree *st; + gfc_actual_arglist *arglist; + + m = gfc_match (" %v =", &lvalue); + if (m != MATCH_YES) + gfc_current_locus = old_loc; + else + { + m = gfc_match (" %e )", &rvalue); + if (m == MATCH_YES) + { + ns->code = gfc_get_code (EXEC_ASSIGN); + ns->code->expr1 = lvalue; + ns->code->expr2 = rvalue; + ns->code->loc = old_loc; + return true; + } + + gfc_current_locus = old_loc; + gfc_free_expr (lvalue); + } + + m = gfc_match (" %n", sname); + if (m != MATCH_YES) + return false; + + if (strcmp (sname, omp_sym1->name) == 0 + || strcmp (sname, omp_sym2->name) == 0) + return false; + + gfc_current_ns = ns->parent; + if (gfc_get_ha_sym_tree (sname, &st)) + return false; + + sym = st->n.sym; + if (sym->attr.flavor != FL_PROCEDURE + && sym->attr.flavor != FL_UNKNOWN) + return false; + + if (!sym->attr.generic + && !sym->attr.subroutine + && !sym->attr.function) + { + if (!(sym->attr.external && !sym->attr.referenced)) + { + /* ...create a symbol in this scope... */ + if (sym->ns != gfc_current_ns + && gfc_get_sym_tree (sname, NULL, &st, false) == 1) + return false; + + if (sym != st->n.sym) + sym = st->n.sym; + } + + /* ...and then to try to make the symbol into a subroutine. */ + if (!gfc_add_subroutine (&sym->attr, sym->name, NULL)) + return false; + } + + gfc_set_sym_referenced (sym); + gfc_gobble_whitespace (); + if (gfc_peek_ascii_char () != '(') + return false; + + gfc_current_ns = ns; + m = gfc_match_actual_arglist (1, &arglist); + if (m != MATCH_YES) + return false; + + if (gfc_match_char (')') != MATCH_YES) + return false; + + ns->code = gfc_get_code (EXEC_CALL); + ns->code->symtree = st; + ns->code->ext.actual = arglist; + ns->code->loc = old_loc; + return true; + } + + static bool + gfc_omp_udr_predef (gfc_omp_reduction_op rop, const char *name, + gfc_typespec *ts, const char **n) + { + if (!gfc_numeric_ts (ts) && ts->type != BT_LOGICAL) + return false; + + switch (rop) + { + case OMP_REDUCTION_PLUS: + case OMP_REDUCTION_MINUS: + case OMP_REDUCTION_TIMES: + return ts->type != BT_LOGICAL; + case OMP_REDUCTION_AND: + case OMP_REDUCTION_OR: + case OMP_REDUCTION_EQV: + case OMP_REDUCTION_NEQV: + return ts->type == BT_LOGICAL; + case OMP_REDUCTION_USER: + if (name[0] != '.' && (ts->type == BT_INTEGER || ts->type == BT_REAL)) + { + gfc_symbol *sym; + + gfc_find_symbol (name, NULL, 1, &sym); + if (sym != NULL) + { + if (sym->attr.intrinsic) + *n = sym->name; + else if ((sym->attr.flavor != FL_UNKNOWN + && sym->attr.flavor != FL_PROCEDURE) + || sym->attr.external + || sym->attr.generic + || sym->attr.entry + || sym->attr.result + || sym->attr.dummy + || sym->attr.subroutine + || sym->attr.pointer + || sym->attr.target + || sym->attr.cray_pointer + || sym->attr.cray_pointee + || (sym->attr.proc != PROC_UNKNOWN + && sym->attr.proc != PROC_INTRINSIC) + || sym->attr.if_source != IFSRC_UNKNOWN + || sym == sym->ns->proc_name) + *n = NULL; + else + *n = sym->name; + } + else + *n = name; + if (*n + && (strcmp (*n, "max") == 0 || strcmp (*n, "min") == 0)) + return true; + else if (*n + && ts->type == BT_INTEGER + && (strcmp (*n, "iand") == 0 + || strcmp (*n, "ior") == 0 + || strcmp (*n, "ieor") == 0)) + return true; + } + break; + default: + break; + } + return false; + } + + gfc_omp_udr * + gfc_omp_udr_find (gfc_symtree *st, gfc_typespec *ts) + { + gfc_omp_udr *omp_udr; + + if (st == NULL) + return NULL; + + for (omp_udr = st->n.omp_udr; omp_udr; omp_udr = omp_udr->next) + if (omp_udr->ts.type == ts->type + || ((omp_udr->ts.type == BT_DERIVED || omp_udr->ts.type == BT_CLASS) + && (ts->type == BT_DERIVED && ts->type == BT_CLASS))) + { + if (omp_udr->ts.type == BT_DERIVED || omp_udr->ts.type == BT_CLASS) + { + if (strcmp (omp_udr->ts.u.derived->name, ts->u.derived->name) == 0) + return omp_udr; + } + else if (omp_udr->ts.kind == ts->kind) + { + if (omp_udr->ts.type == BT_CHARACTER) + { + if (omp_udr->ts.u.cl->length == NULL + || ts->u.cl->length == NULL) + return omp_udr; + if (omp_udr->ts.u.cl->length->expr_type != EXPR_CONSTANT) + return omp_udr; + if (ts->u.cl->length->expr_type != EXPR_CONSTANT) + return omp_udr; + if (omp_udr->ts.u.cl->length->ts.type != BT_INTEGER) + return omp_udr; + if (ts->u.cl->length->ts.type != BT_INTEGER) + return omp_udr; + if (gfc_compare_expr (omp_udr->ts.u.cl->length, + ts->u.cl->length, INTRINSIC_EQ) != 0) + continue; + } + return omp_udr; + } + } + return NULL; + } + match ! gfc_match_omp_declare_reduction (void) { ! match m; ! gfc_intrinsic_op op; ! char name[GFC_MAX_SYMBOL_LEN + 3]; ! auto_vec tss; ! gfc_typespec ts; ! unsigned int i; ! gfc_symtree *st; ! locus where = gfc_current_locus; ! locus end_loc = gfc_current_locus; ! bool end_loc_set = false; ! gfc_omp_reduction_op rop = OMP_REDUCTION_NONE; ! ! if (gfc_match_char ('(') != MATCH_YES) ! return MATCH_ERROR; ! ! m = gfc_match (" %o : ", &op); ! if (m == MATCH_ERROR) ! return MATCH_ERROR; ! if (m == MATCH_YES) ! { ! snprintf (name, sizeof name, "operator %s", gfc_op2string (op)); ! rop = (gfc_omp_reduction_op) op; ! } ! else ! { ! m = gfc_match_defined_op_name (name + 1, 1); ! if (m == MATCH_ERROR) ! return MATCH_ERROR; ! if (m == MATCH_YES) ! { ! name[0] = '.'; ! strcat (name, "."); ! if (gfc_match (" : ") != MATCH_YES) ! return MATCH_ERROR; ! } ! else ! { ! if (gfc_match (" %n : ", name) != MATCH_YES) ! return MATCH_ERROR; ! } ! rop = OMP_REDUCTION_USER; ! } ! ! m = gfc_match_type_spec (&ts); ! if (m != MATCH_YES) ! return MATCH_ERROR; ! /* Treat len=: the same as len=*. */ ! if (ts.type == BT_CHARACTER) ! ts.deferred = false; ! tss.safe_push (ts); ! ! while (gfc_match_char (',') == MATCH_YES) ! { ! m = gfc_match_type_spec (&ts); ! if (m != MATCH_YES) ! return MATCH_ERROR; ! tss.safe_push (ts); ! } ! if (gfc_match_char (':') != MATCH_YES) ! return MATCH_ERROR; ! ! st = gfc_find_symtree (gfc_current_ns->omp_udr_root, name); ! for (i = 0; i < tss.length (); i++) ! { ! gfc_symtree *omp_out, *omp_in; ! gfc_symtree *omp_priv = NULL, *omp_orig = NULL; ! gfc_namespace *combiner_ns, *initializer_ns = NULL; ! gfc_omp_udr *prev_udr, *omp_udr; ! const char *predef_name = NULL; ! ! omp_udr = gfc_get_omp_udr (); ! omp_udr->name = gfc_get_string (name); ! omp_udr->rop = rop; ! omp_udr->ts = tss[i]; ! omp_udr->where = where; ! ! gfc_current_ns = combiner_ns = gfc_get_namespace (gfc_current_ns, 1); ! combiner_ns->proc_name = combiner_ns->parent->proc_name; ! ! gfc_get_sym_tree ("omp_out", combiner_ns, &omp_out, false); ! gfc_get_sym_tree ("omp_in", combiner_ns, &omp_in, false); ! combiner_ns->omp_udr_ns = 1; ! omp_out->n.sym->ts = tss[i]; ! omp_in->n.sym->ts = tss[i]; ! omp_out->n.sym->attr.omp_udr_artificial_var = 1; ! omp_in->n.sym->attr.omp_udr_artificial_var = 1; ! omp_out->n.sym->attr.flavor = FL_VARIABLE; ! omp_in->n.sym->attr.flavor = FL_VARIABLE; ! gfc_commit_symbols (); ! omp_udr->combiner_ns = combiner_ns; ! omp_udr->omp_out = omp_out->n.sym; ! omp_udr->omp_in = omp_in->n.sym; ! ! locus old_loc = gfc_current_locus; ! ! if (!match_udr_expr (omp_out, omp_in)) ! { ! syntax: ! gfc_current_locus = old_loc; ! gfc_current_ns = combiner_ns->parent; ! gfc_free_omp_udr (omp_udr); ! return MATCH_ERROR; ! } ! ! if (gfc_match (" initializer ( ") == MATCH_YES) ! { ! gfc_current_ns = combiner_ns->parent; ! initializer_ns = gfc_get_namespace (gfc_current_ns, 1); ! gfc_current_ns = initializer_ns; ! initializer_ns->proc_name = initializer_ns->parent->proc_name; ! ! gfc_get_sym_tree ("omp_priv", initializer_ns, &omp_priv, false); ! gfc_get_sym_tree ("omp_orig", initializer_ns, &omp_orig, false); ! initializer_ns->omp_udr_ns = 1; ! omp_priv->n.sym->ts = tss[i]; ! omp_orig->n.sym->ts = tss[i]; ! omp_priv->n.sym->attr.omp_udr_artificial_var = 1; ! omp_orig->n.sym->attr.omp_udr_artificial_var = 1; ! omp_priv->n.sym->attr.flavor = FL_VARIABLE; ! omp_orig->n.sym->attr.flavor = FL_VARIABLE; ! gfc_commit_symbols (); ! omp_udr->initializer_ns = initializer_ns; ! omp_udr->omp_priv = omp_priv->n.sym; ! omp_udr->omp_orig = omp_orig->n.sym; ! ! if (!match_udr_expr (omp_priv, omp_orig)) ! goto syntax; ! } ! ! gfc_current_ns = combiner_ns->parent; ! if (!end_loc_set) ! { ! end_loc_set = true; ! end_loc = gfc_current_locus; ! } ! gfc_current_locus = old_loc; ! ! prev_udr = gfc_omp_udr_find (st, &tss[i]); ! if (gfc_omp_udr_predef (rop, name, &tss[i], &predef_name) ! /* Don't error on !$omp declare reduction (min : integer : ...) ! just yet, there could be integer :: min afterwards, ! making it valid. When the UDR is resolved, we'll get ! to it again. */ ! && (rop != OMP_REDUCTION_USER || name[0] == '.')) ! { ! if (predef_name) ! gfc_error_now ("Redefinition of predefined %s " ! "!$OMP DECLARE REDUCTION at %L", ! predef_name, &where); ! else ! gfc_error_now ("Redefinition of predefined " ! "!$OMP DECLARE REDUCTION at %L", &where); ! } ! else if (prev_udr) ! { ! gfc_error_now ("Redefinition of !$OMP DECLARE REDUCTION at %L", ! &where); ! gfc_error_now ("Previous !$OMP DECLARE REDUCTION at %L", ! &prev_udr->where); ! } ! else if (st) ! { ! omp_udr->next = st->n.omp_udr; ! st->n.omp_udr = omp_udr; ! } ! else ! { ! st = gfc_new_symtree (&gfc_current_ns->omp_udr_root, name); ! st->n.omp_udr = omp_udr; ! } ! } ! ! if (end_loc_set) ! { ! gfc_current_locus = end_loc; ! if (gfc_match_omp_eos () != MATCH_YES) ! { ! gfc_error ("Unexpected junk after !$OMP DECLARE REDUCTION at %C"); ! gfc_current_locus = where; ! return MATCH_ERROR; ! } ! ! return MATCH_YES; ! } ! gfc_clear_error (); ! return MATCH_ERROR; ! } ! ! ! match ! gfc_match_omp_declare_target (void) ! { ! locus old_loc; ! char n[GFC_MAX_SYMBOL_LEN+1]; ! gfc_symbol *sym; ! match m; ! gfc_symtree *st; ! ! old_loc = gfc_current_locus; ! ! m = gfc_match (" ("); ! ! if (gfc_current_ns->proc_name ! && gfc_current_ns->proc_name->attr.if_source == IFSRC_IFBODY ! && m == MATCH_YES) ! { ! gfc_error ("Only the !$OMP DECLARE TARGET form without " ! "list is allowed in interface block at %C"); ! goto cleanup; ! } ! ! if (m == MATCH_NO ! && gfc_current_ns->proc_name ! && gfc_match_omp_eos () == MATCH_YES) ! { ! if (!gfc_add_omp_declare_target (&gfc_current_ns->proc_name->attr, ! gfc_current_ns->proc_name->name, ! &old_loc)) ! goto cleanup; ! return MATCH_YES; ! } ! ! if (m != MATCH_YES) ! return m; ! ! for (;;) ! { ! m = gfc_match_symbol (&sym, 0); ! switch (m) ! { ! case MATCH_YES: ! if (sym->attr.in_common) ! gfc_error_now ("OMP DECLARE TARGET on a variable at %C is an " ! "element of a COMMON block"); ! else if (!gfc_add_omp_declare_target (&sym->attr, sym->name, ! &sym->declared_at)) ! goto cleanup; ! goto next_item; ! case MATCH_NO: ! break; ! case MATCH_ERROR: ! goto cleanup; ! } ! ! m = gfc_match (" / %n /", n); ! if (m == MATCH_ERROR) ! goto cleanup; ! if (m == MATCH_NO || n[0] == '\0') ! goto syntax; ! ! st = gfc_find_symtree (gfc_current_ns->common_root, n); ! if (st == NULL) ! { ! gfc_error ("COMMON block /%s/ not found at %C", n); ! goto cleanup; ! } ! st->n.common->omp_declare_target = 1; ! for (sym = st->n.common->head; sym; sym = sym->common_next) ! if (!gfc_add_omp_declare_target (&sym->attr, sym->name, ! &sym->declared_at)) ! goto cleanup; ! ! next_item: ! if (gfc_match_char (')') == MATCH_YES) ! break; ! if (gfc_match_char (',') != MATCH_YES) ! goto syntax; ! } ! if (gfc_match_omp_eos () != MATCH_YES) { ! gfc_error ("Unexpected junk after !$OMP DECLARE TARGET at %C"); ! goto cleanup; } return MATCH_YES; + + syntax: + gfc_error ("Syntax error in !$OMP DECLARE TARGET list at %C"); + + cleanup: + gfc_current_locus = old_loc; + return MATCH_ERROR; } *************** gfc_match_omp_threadprivate (void) *** 605,610 **** --- 1482,1493 ---- goto syntax; } + if (gfc_match_omp_eos () != MATCH_YES) + { + gfc_error ("Unexpected junk after OMP THREADPRIVATE at %C"); + goto cleanup; + } + return MATCH_YES; syntax: *************** cleanup: *** 617,685 **** match gfc_match_omp_parallel_do (void) { ! gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_PARALLEL_CLAUSES | OMP_DO_CLAUSES) ! != MATCH_YES) ! return MATCH_ERROR; ! new_st.op = EXEC_OMP_PARALLEL_DO; ! new_st.ext.omp_clauses = c; ! return MATCH_YES; } match gfc_match_omp_parallel_sections (void) { ! gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_PARALLEL_CLAUSES | OMP_SECTIONS_CLAUSES) ! != MATCH_YES) ! return MATCH_ERROR; ! new_st.op = EXEC_OMP_PARALLEL_SECTIONS; ! new_st.ext.omp_clauses = c; ! return MATCH_YES; } match gfc_match_omp_parallel_workshare (void) { ! gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_PARALLEL_CLAUSES) != MATCH_YES) ! return MATCH_ERROR; ! new_st.op = EXEC_OMP_PARALLEL_WORKSHARE; ! new_st.ext.omp_clauses = c; ! return MATCH_YES; } match gfc_match_omp_sections (void) { ! gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_SECTIONS_CLAUSES) != MATCH_YES) ! return MATCH_ERROR; ! new_st.op = EXEC_OMP_SECTIONS; ! new_st.ext.omp_clauses = c; ! return MATCH_YES; } match gfc_match_omp_single (void) { ! gfc_omp_clauses *c; ! if (gfc_match_omp_clauses (&c, OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE) ! != MATCH_YES) ! return MATCH_ERROR; ! new_st.op = EXEC_OMP_SINGLE; ! new_st.ext.omp_clauses = c; return MATCH_YES; } match gfc_match_omp_workshare (void) { if (gfc_match_omp_eos () != MATCH_YES) --- 1500,1712 ---- match + gfc_match_omp_parallel (void) + { + return match_omp (EXEC_OMP_PARALLEL, OMP_PARALLEL_CLAUSES); + } + + + match gfc_match_omp_parallel_do (void) { ! return match_omp (EXEC_OMP_PARALLEL_DO, ! OMP_PARALLEL_CLAUSES | OMP_DO_CLAUSES); ! } ! ! ! match ! gfc_match_omp_parallel_do_simd (void) ! { ! return match_omp (EXEC_OMP_PARALLEL_DO_SIMD, ! (OMP_PARALLEL_CLAUSES | OMP_DO_CLAUSES | OMP_SIMD_CLAUSES) ! & ~OMP_CLAUSE_ORDERED); } match gfc_match_omp_parallel_sections (void) { ! return match_omp (EXEC_OMP_PARALLEL_SECTIONS, ! OMP_PARALLEL_CLAUSES | OMP_SECTIONS_CLAUSES); } match gfc_match_omp_parallel_workshare (void) { ! return match_omp (EXEC_OMP_PARALLEL_WORKSHARE, OMP_PARALLEL_CLAUSES); } match gfc_match_omp_sections (void) { ! return match_omp (EXEC_OMP_SECTIONS, OMP_SECTIONS_CLAUSES); ! } ! ! ! match ! gfc_match_omp_simd (void) ! { ! return match_omp (EXEC_OMP_SIMD, OMP_SIMD_CLAUSES); } match gfc_match_omp_single (void) { ! return match_omp (EXEC_OMP_SINGLE, ! OMP_CLAUSE_PRIVATE | OMP_CLAUSE_FIRSTPRIVATE); ! } ! ! ! match ! gfc_match_omp_task (void) ! { ! return match_omp (EXEC_OMP_TASK, OMP_TASK_CLAUSES); ! } ! ! ! match ! gfc_match_omp_taskwait (void) ! { ! if (gfc_match_omp_eos () != MATCH_YES) ! { ! gfc_error ("Unexpected junk after TASKWAIT clause at %C"); ! return MATCH_ERROR; ! } ! new_st.op = EXEC_OMP_TASKWAIT; ! new_st.ext.omp_clauses = NULL; return MATCH_YES; } match + gfc_match_omp_taskyield (void) + { + if (gfc_match_omp_eos () != MATCH_YES) + { + gfc_error ("Unexpected junk after TASKYIELD clause at %C"); + return MATCH_ERROR; + } + new_st.op = EXEC_OMP_TASKYIELD; + new_st.ext.omp_clauses = NULL; + return MATCH_YES; + } + + + match + gfc_match_omp_target (void) + { + return match_omp (EXEC_OMP_TARGET, OMP_TARGET_CLAUSES); + } + + + match + gfc_match_omp_target_data (void) + { + return match_omp (EXEC_OMP_TARGET_DATA, OMP_TARGET_DATA_CLAUSES); + } + + + match + gfc_match_omp_target_teams (void) + { + return match_omp (EXEC_OMP_TARGET_TEAMS, + OMP_TARGET_CLAUSES | OMP_TEAMS_CLAUSES); + } + + + match + gfc_match_omp_target_teams_distribute (void) + { + return match_omp (EXEC_OMP_TARGET_TEAMS_DISTRIBUTE, + OMP_TARGET_CLAUSES | OMP_TEAMS_CLAUSES + | OMP_DISTRIBUTE_CLAUSES); + } + + + match + gfc_match_omp_target_teams_distribute_parallel_do (void) + { + return match_omp (EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO, + OMP_TARGET_CLAUSES | OMP_TEAMS_CLAUSES + | OMP_DISTRIBUTE_CLAUSES | OMP_PARALLEL_CLAUSES + | OMP_DO_CLAUSES); + } + + + match + gfc_match_omp_target_teams_distribute_parallel_do_simd (void) + { + return match_omp (EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, + (OMP_TARGET_CLAUSES | OMP_TEAMS_CLAUSES + | OMP_DISTRIBUTE_CLAUSES | OMP_PARALLEL_CLAUSES + | OMP_DO_CLAUSES | OMP_SIMD_CLAUSES) + & ~OMP_CLAUSE_ORDERED); + } + + + match + gfc_match_omp_target_teams_distribute_simd (void) + { + return match_omp (EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD, + OMP_TARGET_CLAUSES | OMP_TEAMS_CLAUSES + | OMP_DISTRIBUTE_CLAUSES | OMP_SIMD_CLAUSES); + } + + + match + gfc_match_omp_target_update (void) + { + return match_omp (EXEC_OMP_TARGET_UPDATE, OMP_TARGET_UPDATE_CLAUSES); + } + + + match + gfc_match_omp_teams (void) + { + return match_omp (EXEC_OMP_TEAMS, OMP_TEAMS_CLAUSES); + } + + + match + gfc_match_omp_teams_distribute (void) + { + return match_omp (EXEC_OMP_TEAMS_DISTRIBUTE, + OMP_TEAMS_CLAUSES | OMP_DISTRIBUTE_CLAUSES); + } + + + match + gfc_match_omp_teams_distribute_parallel_do (void) + { + return match_omp (EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO, + OMP_TEAMS_CLAUSES | OMP_DISTRIBUTE_CLAUSES + | OMP_PARALLEL_CLAUSES | OMP_DO_CLAUSES); + } + + + match + gfc_match_omp_teams_distribute_parallel_do_simd (void) + { + return match_omp (EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD, + (OMP_TEAMS_CLAUSES | OMP_DISTRIBUTE_CLAUSES + | OMP_PARALLEL_CLAUSES | OMP_DO_CLAUSES + | OMP_SIMD_CLAUSES) & ~OMP_CLAUSE_ORDERED); + } + + + match + gfc_match_omp_teams_distribute_simd (void) + { + return match_omp (EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, + OMP_TEAMS_CLAUSES | OMP_DISTRIBUTE_CLAUSES + | OMP_SIMD_CLAUSES); + } + + + match gfc_match_omp_workshare (void) { if (gfc_match_omp_eos () != MATCH_YES) *************** match *** 725,744 **** gfc_match_omp_atomic (void) { gfc_omp_atomic_op op = GFC_OMP_ATOMIC_UPDATE; ! if (gfc_match ("% update") == MATCH_YES) ! op = GFC_OMP_ATOMIC_UPDATE; ! else if (gfc_match ("% read") == MATCH_YES) ! op = GFC_OMP_ATOMIC_READ; ! else if (gfc_match ("% write") == MATCH_YES) ! op = GFC_OMP_ATOMIC_WRITE; ! else if (gfc_match ("% capture") == MATCH_YES) ! op = GFC_OMP_ATOMIC_CAPTURE; if (gfc_match_omp_eos () != MATCH_YES) { gfc_error ("Unexpected junk after $OMP ATOMIC statement at %C"); return MATCH_ERROR; } new_st.op = EXEC_OMP_ATOMIC; new_st.ext.omp_atomic = op; return MATCH_YES; } --- 1752,1795 ---- gfc_match_omp_atomic (void) { gfc_omp_atomic_op op = GFC_OMP_ATOMIC_UPDATE; ! int seq_cst = 0; ! if (gfc_match ("% seq_cst") == MATCH_YES) ! seq_cst = 1; ! locus old_loc = gfc_current_locus; ! if (seq_cst && gfc_match_char (',') == MATCH_YES) ! seq_cst = 2; ! if (seq_cst == 2 ! || gfc_match_space () == MATCH_YES) ! { ! gfc_gobble_whitespace (); ! if (gfc_match ("update") == MATCH_YES) ! op = GFC_OMP_ATOMIC_UPDATE; ! else if (gfc_match ("read") == MATCH_YES) ! op = GFC_OMP_ATOMIC_READ; ! else if (gfc_match ("write") == MATCH_YES) ! op = GFC_OMP_ATOMIC_WRITE; ! else if (gfc_match ("capture") == MATCH_YES) ! op = GFC_OMP_ATOMIC_CAPTURE; ! else ! { ! if (seq_cst == 2) ! gfc_current_locus = old_loc; ! goto finish; ! } ! if (!seq_cst ! && (gfc_match (", seq_cst") == MATCH_YES ! || gfc_match ("% seq_cst") == MATCH_YES)) ! seq_cst = 1; ! } ! finish: if (gfc_match_omp_eos () != MATCH_YES) { gfc_error ("Unexpected junk after $OMP ATOMIC statement at %C"); return MATCH_ERROR; } new_st.op = EXEC_OMP_ATOMIC; + if (seq_cst) + op = (gfc_omp_atomic_op) (op | GFC_OMP_ATOMIC_SEQ_CST); new_st.ext.omp_atomic = op; return MATCH_YES; } *************** gfc_match_omp_barrier (void) *** 759,764 **** --- 1810,1882 ---- match + gfc_match_omp_taskgroup (void) + { + if (gfc_match_omp_eos () != MATCH_YES) + { + gfc_error ("Unexpected junk after $OMP TASKGROUP statement at %C"); + return MATCH_ERROR; + } + new_st.op = EXEC_OMP_TASKGROUP; + return MATCH_YES; + } + + + static enum gfc_omp_cancel_kind + gfc_match_omp_cancel_kind (void) + { + if (gfc_match_space () != MATCH_YES) + return OMP_CANCEL_UNKNOWN; + if (gfc_match ("parallel") == MATCH_YES) + return OMP_CANCEL_PARALLEL; + if (gfc_match ("sections") == MATCH_YES) + return OMP_CANCEL_SECTIONS; + if (gfc_match ("do") == MATCH_YES) + return OMP_CANCEL_DO; + if (gfc_match ("taskgroup") == MATCH_YES) + return OMP_CANCEL_TASKGROUP; + return OMP_CANCEL_UNKNOWN; + } + + + match + gfc_match_omp_cancel (void) + { + gfc_omp_clauses *c; + enum gfc_omp_cancel_kind kind = gfc_match_omp_cancel_kind (); + if (kind == OMP_CANCEL_UNKNOWN) + return MATCH_ERROR; + if (gfc_match_omp_clauses (&c, OMP_CLAUSE_IF, false) != MATCH_YES) + return MATCH_ERROR; + c->cancel = kind; + new_st.op = EXEC_OMP_CANCEL; + new_st.ext.omp_clauses = c; + return MATCH_YES; + } + + + match + gfc_match_omp_cancellation_point (void) + { + gfc_omp_clauses *c; + enum gfc_omp_cancel_kind kind = gfc_match_omp_cancel_kind (); + if (kind == OMP_CANCEL_UNKNOWN) + return MATCH_ERROR; + if (gfc_match_omp_eos () != MATCH_YES) + { + gfc_error ("Unexpected junk after $OMP CANCELLATION POINT statement " + "at %C"); + return MATCH_ERROR; + } + c = gfc_get_omp_clauses (); + c->cancel = kind; + new_st.op = EXEC_OMP_CANCELLATION_POINT; + new_st.ext.omp_clauses = c; + return MATCH_YES; + } + + + match gfc_match_omp_end_nowait (void) { bool nowait = false; *************** gfc_match_omp_end_single (void) *** 793,809 **** } /* OpenMP directive resolving routines. */ static void ! resolve_omp_clauses (gfc_code *code) { ! gfc_omp_clauses *omp_clauses = code->ext.omp_clauses; ! gfc_namelist *n; int list; static const char *clause_names[] = { "PRIVATE", "FIRSTPRIVATE", "LASTPRIVATE", "COPYPRIVATE", "SHARED", ! "COPYIN", "REDUCTION" }; if (omp_clauses == NULL) return; --- 1911,2026 ---- } + struct resolve_omp_udr_callback_data + { + gfc_symbol *sym1, *sym2; + }; + + + static int + resolve_omp_udr_callback (gfc_expr **e, int *, void *data) + { + struct resolve_omp_udr_callback_data *rcd + = (struct resolve_omp_udr_callback_data *) data; + if ((*e)->expr_type == EXPR_VARIABLE + && ((*e)->symtree->n.sym == rcd->sym1 + || (*e)->symtree->n.sym == rcd->sym2)) + { + gfc_ref *ref = gfc_get_ref (); + ref->type = REF_ARRAY; + ref->u.ar.where = (*e)->where; + ref->u.ar.as = (*e)->symtree->n.sym->as; + ref->u.ar.type = AR_FULL; + ref->u.ar.dimen = 0; + ref->next = (*e)->ref; + (*e)->ref = ref; + } + return 0; + } + + + static int + resolve_omp_udr_callback2 (gfc_expr **e, int *, void *) + { + if ((*e)->expr_type == EXPR_FUNCTION + && (*e)->value.function.isym == NULL) + { + gfc_symbol *sym = (*e)->symtree->n.sym; + if (!sym->attr.intrinsic + && sym->attr.if_source == IFSRC_UNKNOWN) + gfc_error ("Implicitly declared function %s used in " + "!$OMP DECLARE REDUCTION at %L ", sym->name, &(*e)->where); + } + return 0; + } + + + static gfc_code * + resolve_omp_udr_clause (gfc_omp_namelist *n, gfc_namespace *ns, + gfc_symbol *sym1, gfc_symbol *sym2) + { + gfc_code *copy; + gfc_symbol sym1_copy, sym2_copy; + + if (ns->code->op == EXEC_ASSIGN) + { + copy = gfc_get_code (EXEC_ASSIGN); + copy->expr1 = gfc_copy_expr (ns->code->expr1); + copy->expr2 = gfc_copy_expr (ns->code->expr2); + } + else + { + copy = gfc_get_code (EXEC_CALL); + copy->symtree = ns->code->symtree; + copy->ext.actual = gfc_copy_actual_arglist (ns->code->ext.actual); + } + copy->loc = ns->code->loc; + sym1_copy = *sym1; + sym2_copy = *sym2; + *sym1 = *n->sym; + *sym2 = *n->sym; + sym1->name = sym1_copy.name; + sym2->name = sym2_copy.name; + ns->proc_name = ns->parent->proc_name; + if (n->sym->attr.dimension) + { + struct resolve_omp_udr_callback_data rcd; + rcd.sym1 = sym1; + rcd.sym2 = sym2; + gfc_code_walker (©, gfc_dummy_code_callback, + resolve_omp_udr_callback, &rcd); + } + gfc_resolve_code (copy, gfc_current_ns); + if (copy->op == EXEC_CALL && copy->resolved_isym == NULL) + { + gfc_symbol *sym = copy->resolved_sym; + if (sym + && !sym->attr.intrinsic + && sym->attr.if_source == IFSRC_UNKNOWN) + gfc_error ("Implicitly declared subroutine %s used in " + "!$OMP DECLARE REDUCTION at %L ", sym->name, + ©->loc); + } + gfc_code_walker (©, gfc_dummy_code_callback, + resolve_omp_udr_callback2, NULL); + *sym1 = sym1_copy; + *sym2 = sym2_copy; + return copy; + } + + /* OpenMP directive resolving routines. */ static void ! resolve_omp_clauses (gfc_code *code, locus *where, ! gfc_omp_clauses *omp_clauses, gfc_namespace *ns) { ! gfc_omp_namelist *n; int list; static const char *clause_names[] = { "PRIVATE", "FIRSTPRIVATE", "LASTPRIVATE", "COPYPRIVATE", "SHARED", ! "COPYIN", "UNIFORM", "ALIGNED", "LINEAR", "DEPEND", "MAP", ! "TO", "FROM", "REDUCTION" }; if (omp_clauses == NULL) return; *************** resolve_omp_clauses (gfc_code *code) *** 847,854 **** for (n = omp_clauses->lists[list]; n; n = n->next) { n->sym->mark = 0; ! if (n->sym->attr.flavor == FL_VARIABLE || n->sym->attr.proc_pointer) ! continue; if (n->sym->attr.flavor == FL_PROCEDURE && n->sym->result == n->sym && n->sym->attr.function) --- 2064,2078 ---- for (n = omp_clauses->lists[list]; n; n = n->next) { n->sym->mark = 0; ! if (n->sym->attr.flavor == FL_VARIABLE ! || n->sym->attr.proc_pointer ! || (!code && (!n->sym->attr.dummy || n->sym->ns != ns))) ! { ! if (!code && (!n->sym->attr.dummy || n->sym->ns != ns)) ! gfc_error ("Variable '%s' is not a dummy argument at %L", ! n->sym->name, where); ! continue; ! } if (n->sym->attr.flavor == FL_PROCEDURE && n->sym->result == n->sym && n->sym->attr.function) *************** resolve_omp_clauses (gfc_code *code) *** 878,893 **** } } gfc_error ("Object '%s' is not a variable at %L", n->sym->name, ! &code->loc); } for (list = 0; list < OMP_LIST_NUM; list++) ! if (list != OMP_LIST_FIRSTPRIVATE && list != OMP_LIST_LASTPRIVATE) for (n = omp_clauses->lists[list]; n; n = n->next) { if (n->sym->mark) gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, &code->loc); else n->sym->mark = 1; } --- 2102,2123 ---- } } gfc_error ("Object '%s' is not a variable at %L", n->sym->name, ! where); } for (list = 0; list < OMP_LIST_NUM; list++) ! if (list != OMP_LIST_FIRSTPRIVATE ! && list != OMP_LIST_LASTPRIVATE ! && list != OMP_LIST_ALIGNED ! && list != OMP_LIST_DEPEND ! && list != OMP_LIST_MAP ! && list != OMP_LIST_FROM ! && list != OMP_LIST_TO) for (n = omp_clauses->lists[list]; n; n = n->next) { if (n->sym->mark) gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, where); else n->sym->mark = 1; } *************** resolve_omp_clauses (gfc_code *code) *** 898,904 **** if (n->sym->mark) { gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, &code->loc); n->sym->mark = 0; } --- 2128,2134 ---- if (n->sym->mark) { gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, where); n->sym->mark = 0; } *************** resolve_omp_clauses (gfc_code *code) *** 906,912 **** { if (n->sym->mark) gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, &code->loc); else n->sym->mark = 1; } --- 2136,2142 ---- { if (n->sym->mark) gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, where); else n->sym->mark = 1; } *************** resolve_omp_clauses (gfc_code *code) *** 917,935 **** { if (n->sym->mark) gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, &code->loc); else n->sym->mark = 1; } for (list = 0; list < OMP_LIST_NUM; list++) if ((n = omp_clauses->lists[list]) != NULL) { const char *name; ! if (list < OMP_LIST_REDUCTION_FIRST) name = clause_names[list]; - else if (list <= OMP_LIST_REDUCTION_LAST) - name = clause_names[OMP_LIST_REDUCTION_FIRST]; else gcc_unreachable (); --- 2147,2190 ---- { if (n->sym->mark) gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, where); ! else ! n->sym->mark = 1; ! } ! ! for (n = omp_clauses->lists[OMP_LIST_ALIGNED]; n; n = n->next) ! n->sym->mark = 0; ! ! for (n = omp_clauses->lists[OMP_LIST_ALIGNED]; n; n = n->next) ! { ! if (n->sym->mark) ! gfc_error ("Symbol '%s' present on multiple clauses at %L", ! n->sym->name, where); else n->sym->mark = 1; } + + for (n = omp_clauses->lists[OMP_LIST_TO]; n; n = n->next) + n->sym->mark = 0; + for (n = omp_clauses->lists[OMP_LIST_FROM]; n; n = n->next) + if (n->expr == NULL) + n->sym->mark = 1; + for (n = omp_clauses->lists[OMP_LIST_TO]; n; n = n->next) + { + if (n->expr == NULL && n->sym->mark) + gfc_error ("Symbol '%s' present on both FROM and TO clauses at %L", + n->sym->name, where); + else + n->sym->mark = 1; + } + for (list = 0; list < OMP_LIST_NUM; list++) if ((n = omp_clauses->lists[list]) != NULL) { const char *name; ! if (list < OMP_LIST_NUM) name = clause_names[list]; else gcc_unreachable (); *************** resolve_omp_clauses (gfc_code *code) *** 940,949 **** { if (!n->sym->attr.threadprivate) gfc_error ("Non-THREADPRIVATE object '%s' in COPYIN clause" ! " at %L", n->sym->name, &code->loc); ! if (n->sym->ts.type == BT_DERIVED && n->sym->ts.u.derived->attr.alloc_comp) ! gfc_error ("COPYIN clause object '%s' at %L has ALLOCATABLE components", ! n->sym->name, &code->loc); } break; case OMP_LIST_COPYPRIVATE: --- 2195,2201 ---- { if (!n->sym->attr.threadprivate) gfc_error ("Non-THREADPRIVATE object '%s' in COPYIN clause" ! " at %L", n->sym->name, where); } break; case OMP_LIST_COPYPRIVATE: *************** resolve_omp_clauses (gfc_code *code) *** 951,960 **** { if (n->sym->as && n->sym->as->type == AS_ASSUMED_SIZE) gfc_error ("Assumed size array '%s' in COPYPRIVATE clause " ! "at %L", n->sym->name, &code->loc); ! if (n->sym->ts.type == BT_DERIVED && n->sym->ts.u.derived->attr.alloc_comp) ! gfc_error ("COPYPRIVATE clause object '%s' at %L has ALLOCATABLE components", ! n->sym->name, &code->loc); } break; case OMP_LIST_SHARED: --- 2203,2212 ---- { if (n->sym->as && n->sym->as->type == AS_ASSUMED_SIZE) gfc_error ("Assumed size array '%s' in COPYPRIVATE clause " ! "at %L", n->sym->name, where); ! if (n->sym->attr.pointer && n->sym->attr.intent == INTENT_IN) ! gfc_error ("INTENT(IN) POINTER '%s' in COPYPRIVATE clause " ! "at %L", n->sym->name, where); } break; case OMP_LIST_SHARED: *************** resolve_omp_clauses (gfc_code *code) *** 962,1057 **** { if (n->sym->attr.threadprivate) gfc_error ("THREADPRIVATE object '%s' in SHARED clause at " ! "%L", n->sym->name, &code->loc); if (n->sym->attr.cray_pointee) gfc_error ("Cray pointee '%s' in SHARED clause at %L", ! n->sym->name, &code->loc); } break; default: for (; n != NULL; n = n->next) { if (n->sym->attr.threadprivate) gfc_error ("THREADPRIVATE object '%s' in %s clause at %L", ! n->sym->name, name, &code->loc); if (n->sym->attr.cray_pointee) gfc_error ("Cray pointee '%s' in %s clause at %L", ! n->sym->name, name, &code->loc); if (list != OMP_LIST_PRIVATE) { ! if (n->sym->attr.pointer ! && list >= OMP_LIST_REDUCTION_FIRST ! && list <= OMP_LIST_REDUCTION_LAST) gfc_error ("POINTER object '%s' in %s clause at %L", ! n->sym->name, name, &code->loc); ! /* Variables in REDUCTION-clauses must be of intrinsic type (flagged below). */ ! if ((list < OMP_LIST_REDUCTION_FIRST || list > OMP_LIST_REDUCTION_LAST) ! && n->sym->ts.type == BT_DERIVED ! && n->sym->ts.u.derived->attr.alloc_comp) ! gfc_error ("%s clause object '%s' has ALLOCATABLE components at %L", ! name, n->sym->name, &code->loc); ! if (n->sym->attr.cray_pointer ! && list >= OMP_LIST_REDUCTION_FIRST ! && list <= OMP_LIST_REDUCTION_LAST) gfc_error ("Cray pointer '%s' in %s clause at %L", ! n->sym->name, name, &code->loc); } if (n->sym->as && n->sym->as->type == AS_ASSUMED_SIZE) gfc_error ("Assumed size array '%s' in %s clause at %L", ! n->sym->name, name, &code->loc); ! if (n->sym->attr.in_namelist ! && (list < OMP_LIST_REDUCTION_FIRST ! || list > OMP_LIST_REDUCTION_LAST)) gfc_error ("Variable '%s' in %s clause is used in " "NAMELIST statement at %L", ! n->sym->name, name, &code->loc); switch (list) { ! case OMP_LIST_PLUS: ! case OMP_LIST_MULT: ! case OMP_LIST_SUB: ! if (!gfc_numeric_ts (&n->sym->ts)) ! gfc_error ("%c REDUCTION variable '%s' at %L must be of numeric type, got %s", ! list == OMP_LIST_PLUS ? '+' ! : list == OMP_LIST_MULT ? '*' : '-', ! n->sym->name, &code->loc, ! gfc_typename (&n->sym->ts)); ! break; ! case OMP_LIST_AND: ! case OMP_LIST_OR: ! case OMP_LIST_EQV: ! case OMP_LIST_NEQV: ! if (n->sym->ts.type != BT_LOGICAL) ! gfc_error ("%s REDUCTION variable '%s' must be LOGICAL " ! "at %L", ! list == OMP_LIST_AND ? ".AND." ! : list == OMP_LIST_OR ? ".OR." ! : list == OMP_LIST_EQV ? ".EQV." : ".NEQV.", ! n->sym->name, &code->loc); ! break; ! case OMP_LIST_MAX: ! case OMP_LIST_MIN: ! if (n->sym->ts.type != BT_INTEGER ! && n->sym->ts.type != BT_REAL) ! gfc_error ("%s REDUCTION variable '%s' must be " ! "INTEGER or REAL at %L", ! list == OMP_LIST_MAX ? "MAX" : "MIN", ! n->sym->name, &code->loc); break; ! case OMP_LIST_IAND: ! case OMP_LIST_IOR: ! case OMP_LIST_IEOR: if (n->sym->ts.type != BT_INTEGER) ! gfc_error ("%s REDUCTION variable '%s' must be INTEGER " ! "at %L", ! list == OMP_LIST_IAND ? "IAND" ! : list == OMP_LIST_MULT ? "IOR" : "IEOR", ! n->sym->name, &code->loc); break; /* Workaround for PR middle-end/26316, nothing really needs to be done here for OMP_LIST_PRIVATE. */ case OMP_LIST_PRIVATE: ! gcc_assert (code->op != EXEC_NOP); default: break; } --- 2214,2499 ---- { if (n->sym->attr.threadprivate) gfc_error ("THREADPRIVATE object '%s' in SHARED clause at " ! "%L", n->sym->name, where); if (n->sym->attr.cray_pointee) gfc_error ("Cray pointee '%s' in SHARED clause at %L", ! n->sym->name, where); ! if (n->sym->attr.associate_var) ! gfc_error ("ASSOCIATE name '%s' in SHARED clause at %L", ! n->sym->name, where); ! } ! break; ! case OMP_LIST_ALIGNED: ! for (; n != NULL; n = n->next) ! { ! if (!n->sym->attr.pointer ! && !n->sym->attr.allocatable ! && !n->sym->attr.cray_pointer ! && (n->sym->ts.type != BT_DERIVED ! || (n->sym->ts.u.derived->from_intmod ! != INTMOD_ISO_C_BINDING) ! || (n->sym->ts.u.derived->intmod_sym_id ! != ISOCBINDING_PTR))) ! gfc_error ("'%s' in ALIGNED clause must be POINTER, " ! "ALLOCATABLE, Cray pointer or C_PTR at %L", ! n->sym->name, where); ! else if (n->expr) ! { ! gfc_expr *expr = n->expr; ! int alignment = 0; ! if (!gfc_resolve_expr (expr) ! || expr->ts.type != BT_INTEGER ! || expr->rank != 0 ! || gfc_extract_int (expr, &alignment) ! || alignment <= 0) ! gfc_error ("'%s' in ALIGNED clause at %L requires a scalar " ! "positive constant integer alignment " ! "expression", n->sym->name, where); ! } } break; + case OMP_LIST_DEPEND: + case OMP_LIST_MAP: + case OMP_LIST_TO: + case OMP_LIST_FROM: + for (; n != NULL; n = n->next) + if (n->expr) + { + if (!gfc_resolve_expr (n->expr) + || n->expr->expr_type != EXPR_VARIABLE + || n->expr->ref == NULL + || n->expr->ref->next + || n->expr->ref->type != REF_ARRAY) + gfc_error ("'%s' in %s clause at %L is not a proper " + "array section", n->sym->name, name, where); + else if (n->expr->ref->u.ar.codimen) + gfc_error ("Coarrays not supported in %s clause at %L", + name, where); + else + { + int i; + gfc_array_ref *ar = &n->expr->ref->u.ar; + for (i = 0; i < ar->dimen; i++) + if (ar->stride[i]) + { + gfc_error ("Stride should not be specified for " + "array section in %s clause at %L", + name, where); + break; + } + else if (ar->dimen_type[i] != DIMEN_ELEMENT + && ar->dimen_type[i] != DIMEN_RANGE) + { + gfc_error ("'%s' in %s clause at %L is not a " + "proper array section", + n->sym->name, name, where); + break; + } + else if (list == OMP_LIST_DEPEND + && ar->start[i] + && ar->start[i]->expr_type == EXPR_CONSTANT + && ar->end[i] + && ar->end[i]->expr_type == EXPR_CONSTANT + && mpz_cmp (ar->start[i]->value.integer, + ar->end[i]->value.integer) > 0) + { + gfc_error ("'%s' in DEPEND clause at %L is a zero " + "size array section", n->sym->name, + where); + break; + } + } + } + if (list != OMP_LIST_DEPEND) + for (n = omp_clauses->lists[list]; n != NULL; n = n->next) + { + n->sym->attr.referenced = 1; + if (n->sym->attr.threadprivate) + gfc_error ("THREADPRIVATE object '%s' in %s clause at %L", + n->sym->name, name, where); + if (n->sym->attr.cray_pointee) + gfc_error ("Cray pointee '%s' in %s clause at %L", + n->sym->name, name, where); + } + break; default: for (; n != NULL; n = n->next) { + bool bad = false; if (n->sym->attr.threadprivate) gfc_error ("THREADPRIVATE object '%s' in %s clause at %L", ! n->sym->name, name, where); if (n->sym->attr.cray_pointee) gfc_error ("Cray pointee '%s' in %s clause at %L", ! n->sym->name, name, where); ! if (n->sym->attr.associate_var) ! gfc_error ("ASSOCIATE name '%s' in %s clause at %L", ! n->sym->name, name, where); if (list != OMP_LIST_PRIVATE) { ! if (n->sym->attr.proc_pointer && list == OMP_LIST_REDUCTION) ! gfc_error ("Procedure pointer '%s' in %s clause at %L", ! n->sym->name, name, where); ! if (n->sym->attr.pointer && list == OMP_LIST_REDUCTION) gfc_error ("POINTER object '%s' in %s clause at %L", ! n->sym->name, name, where); ! if (n->sym->attr.cray_pointer && list == OMP_LIST_REDUCTION) gfc_error ("Cray pointer '%s' in %s clause at %L", ! n->sym->name, name, where); } if (n->sym->as && n->sym->as->type == AS_ASSUMED_SIZE) gfc_error ("Assumed size array '%s' in %s clause at %L", ! n->sym->name, name, where); ! if (n->sym->attr.in_namelist && list != OMP_LIST_REDUCTION) gfc_error ("Variable '%s' in %s clause is used in " "NAMELIST statement at %L", ! n->sym->name, name, where); ! if (n->sym->attr.pointer && n->sym->attr.intent == INTENT_IN) ! switch (list) ! { ! case OMP_LIST_PRIVATE: ! case OMP_LIST_LASTPRIVATE: ! case OMP_LIST_LINEAR: ! /* case OMP_LIST_REDUCTION: */ ! gfc_error ("INTENT(IN) POINTER '%s' in %s clause at %L", ! n->sym->name, name, where); ! break; ! default: ! break; ! } switch (list) { ! case OMP_LIST_REDUCTION: ! switch (n->u.reduction_op) ! { ! case OMP_REDUCTION_PLUS: ! case OMP_REDUCTION_TIMES: ! case OMP_REDUCTION_MINUS: ! if (!gfc_numeric_ts (&n->sym->ts)) ! bad = true; ! break; ! case OMP_REDUCTION_AND: ! case OMP_REDUCTION_OR: ! case OMP_REDUCTION_EQV: ! case OMP_REDUCTION_NEQV: ! if (n->sym->ts.type != BT_LOGICAL) ! bad = true; ! break; ! case OMP_REDUCTION_MAX: ! case OMP_REDUCTION_MIN: ! if (n->sym->ts.type != BT_INTEGER ! && n->sym->ts.type != BT_REAL) ! bad = true; ! break; ! case OMP_REDUCTION_IAND: ! case OMP_REDUCTION_IOR: ! case OMP_REDUCTION_IEOR: ! if (n->sym->ts.type != BT_INTEGER) ! bad = true; ! break; ! case OMP_REDUCTION_USER: ! bad = true; ! break; ! default: ! break; ! } ! if (!bad) ! n->udr = NULL; ! else ! { ! const char *udr_name = NULL; ! if (n->udr) ! { ! udr_name = n->udr->udr->name; ! n->udr->udr ! = gfc_find_omp_udr (NULL, udr_name, ! &n->sym->ts); ! if (n->udr->udr == NULL) ! { ! free (n->udr); ! n->udr = NULL; ! } ! } ! if (n->udr == NULL) ! { ! if (udr_name == NULL) ! switch (n->u.reduction_op) ! { ! case OMP_REDUCTION_PLUS: ! case OMP_REDUCTION_TIMES: ! case OMP_REDUCTION_MINUS: ! case OMP_REDUCTION_AND: ! case OMP_REDUCTION_OR: ! case OMP_REDUCTION_EQV: ! case OMP_REDUCTION_NEQV: ! udr_name = gfc_op2string ((gfc_intrinsic_op) ! n->u.reduction_op); ! break; ! case OMP_REDUCTION_MAX: ! udr_name = "max"; ! break; ! case OMP_REDUCTION_MIN: ! udr_name = "min"; ! break; ! case OMP_REDUCTION_IAND: ! udr_name = "iand"; ! break; ! case OMP_REDUCTION_IOR: ! udr_name = "ior"; ! break; ! case OMP_REDUCTION_IEOR: ! udr_name = "ieor"; ! break; ! default: ! gcc_unreachable (); ! } ! gfc_error ("!$OMP DECLARE REDUCTION %s not found " ! "for type %s at %L", udr_name, ! gfc_typename (&n->sym->ts), where); ! } ! else ! { ! gfc_omp_udr *udr = n->udr->udr; ! n->u.reduction_op = OMP_REDUCTION_USER; ! n->udr->combiner ! = resolve_omp_udr_clause (n, udr->combiner_ns, ! udr->omp_out, ! udr->omp_in); ! if (udr->initializer_ns) ! n->udr->initializer ! = resolve_omp_udr_clause (n, ! udr->initializer_ns, ! udr->omp_priv, ! udr->omp_orig); ! } ! } break; ! case OMP_LIST_LINEAR: if (n->sym->ts.type != BT_INTEGER) ! gfc_error ("LINEAR variable '%s' must be INTEGER " ! "at %L", n->sym->name, where); ! else if (!code && !n->sym->attr.value) ! gfc_error ("LINEAR dummy argument '%s' must have VALUE " ! "attribute at %L", n->sym->name, where); ! else if (n->expr) ! { ! gfc_expr *expr = n->expr; ! if (!gfc_resolve_expr (expr) ! || expr->ts.type != BT_INTEGER ! || expr->rank != 0) ! gfc_error ("'%s' in LINEAR clause at %L requires " ! "a scalar integer linear-step expression", ! n->sym->name, where); ! else if (!code && expr->expr_type != EXPR_CONSTANT) ! gfc_error ("'%s' in LINEAR clause at %L requires " ! "a constant integer linear-step expression", ! n->sym->name, where); ! } break; /* Workaround for PR middle-end/26316, nothing really needs to be done here for OMP_LIST_PRIVATE. */ case OMP_LIST_PRIVATE: ! gcc_assert (code && code->op != EXEC_NOP); default: break; } *************** resolve_omp_clauses (gfc_code *code) *** 1059,1064 **** --- 2501,2554 ---- break; } } + if (omp_clauses->safelen_expr) + { + gfc_expr *expr = omp_clauses->safelen_expr; + if (!gfc_resolve_expr (expr) + || expr->ts.type != BT_INTEGER || expr->rank != 0) + gfc_error ("SAFELEN clause at %L requires a scalar " + "INTEGER expression", &expr->where); + } + if (omp_clauses->simdlen_expr) + { + gfc_expr *expr = omp_clauses->simdlen_expr; + if (!gfc_resolve_expr (expr) + || expr->ts.type != BT_INTEGER || expr->rank != 0) + gfc_error ("SIMDLEN clause at %L requires a scalar " + "INTEGER expression", &expr->where); + } + if (omp_clauses->num_teams) + { + gfc_expr *expr = omp_clauses->num_teams; + if (!gfc_resolve_expr (expr) + || expr->ts.type != BT_INTEGER || expr->rank != 0) + gfc_error ("NUM_TEAMS clause at %L requires a scalar " + "INTEGER expression", &expr->where); + } + if (omp_clauses->device) + { + gfc_expr *expr = omp_clauses->device; + if (!gfc_resolve_expr (expr) + || expr->ts.type != BT_INTEGER || expr->rank != 0) + gfc_error ("DEVICE clause at %L requires a scalar " + "INTEGER expression", &expr->where); + } + if (omp_clauses->dist_chunk_size) + { + gfc_expr *expr = omp_clauses->dist_chunk_size; + if (!gfc_resolve_expr (expr) + || expr->ts.type != BT_INTEGER || expr->rank != 0) + gfc_error ("DIST_SCHEDULE clause's chunk_size at %L requires " + "a scalar INTEGER expression", &expr->where); + } + if (omp_clauses->thread_limit) + { + gfc_expr *expr = omp_clauses->thread_limit; + if (!gfc_resolve_expr (expr) + || expr->ts.type != BT_INTEGER || expr->rank != 0) + gfc_error ("THREAD_LIMIT clause at %L requires a scalar " + "INTEGER expression", &expr->where); + } } *************** resolve_omp_atomic (gfc_code *code) *** 1142,1153 **** gfc_code *atomic_code = code; gfc_symbol *var; gfc_expr *expr2, *expr2_tmp; code = code->block->next; gcc_assert (code->op == EXEC_ASSIGN); ! gcc_assert ((atomic_code->ext.omp_atomic != GFC_OMP_ATOMIC_CAPTURE ! && code->next == NULL) ! || (atomic_code->ext.omp_atomic == GFC_OMP_ATOMIC_CAPTURE && code->next != NULL && code->next->op == EXEC_ASSIGN && code->next->next == NULL)); --- 2632,2644 ---- gfc_code *atomic_code = code; gfc_symbol *var; gfc_expr *expr2, *expr2_tmp; + gfc_omp_atomic_op aop + = (gfc_omp_atomic_op) (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_MASK); code = code->block->next; gcc_assert (code->op == EXEC_ASSIGN); ! gcc_assert (((aop != GFC_OMP_ATOMIC_CAPTURE) && code->next == NULL) ! || ((aop == GFC_OMP_ATOMIC_CAPTURE) && code->next != NULL && code->next->op == EXEC_ASSIGN && code->next->next == NULL)); *************** resolve_omp_atomic (gfc_code *code) *** 1169,1182 **** expr2 = is_conversion (code->expr2, false); if (expr2 == NULL) { ! if (atomic_code->ext.omp_atomic == GFC_OMP_ATOMIC_READ ! || atomic_code->ext.omp_atomic == GFC_OMP_ATOMIC_WRITE) expr2 = is_conversion (code->expr2, true); if (expr2 == NULL) expr2 = code->expr2; } ! switch (atomic_code->ext.omp_atomic) { case GFC_OMP_ATOMIC_READ: if (expr2->expr_type != EXPR_VARIABLE --- 2660,2672 ---- expr2 = is_conversion (code->expr2, false); if (expr2 == NULL) { ! if (aop == GFC_OMP_ATOMIC_READ || aop == GFC_OMP_ATOMIC_WRITE) expr2 = is_conversion (code->expr2, true); if (expr2 == NULL) expr2 = code->expr2; } ! switch (aop) { case GFC_OMP_ATOMIC_READ: if (expr2->expr_type != EXPR_VARIABLE *************** resolve_omp_atomic (gfc_code *code) *** 1249,1255 **** break; } ! if (expr2->expr_type == EXPR_OP) { gfc_expr *v = NULL, *e, *c; gfc_intrinsic_op op = expr2->value.op.op; --- 2739,2759 ---- break; } ! if (var->attr.allocatable) ! { ! gfc_error ("!$OMP ATOMIC with ALLOCATABLE variable at %L", ! &code->loc); ! return; ! } ! ! if (aop == GFC_OMP_ATOMIC_CAPTURE ! && code->next == NULL ! && code->expr2->rank == 0 ! && !expr_references_sym (code->expr2, var, NULL)) ! atomic_code->ext.omp_atomic ! = (gfc_omp_atomic_op) (atomic_code->ext.omp_atomic ! | GFC_OMP_ATOMIC_SWAP); ! else if (expr2->expr_type == EXPR_OP) { gfc_expr *v = NULL, *e, *c; gfc_intrinsic_op op = expr2->value.op.op; *************** resolve_omp_atomic (gfc_code *code) *** 1420,1430 **** && arg->expr->symtree->n.sym == var) var_arg = arg; else if (expr_references_sym (arg->expr, var, NULL)) ! gfc_error ("!$OMP ATOMIC intrinsic arguments except one must not " ! "reference '%s' at %L", var->name, &arg->expr->where); if (arg->expr->rank != 0) ! gfc_error ("!$OMP ATOMIC intrinsic arguments must be scalar " ! "at %L", &arg->expr->where); } if (var_arg == NULL) --- 2924,2941 ---- && arg->expr->symtree->n.sym == var) var_arg = arg; else if (expr_references_sym (arg->expr, var, NULL)) ! { ! gfc_error ("!$OMP ATOMIC intrinsic arguments except one must " ! "not reference '%s' at %L", ! var->name, &arg->expr->where); ! return; ! } if (arg->expr->rank != 0) ! { ! gfc_error ("!$OMP ATOMIC intrinsic arguments must be scalar " ! "at %L", &arg->expr->where); ! return; ! } } if (var_arg == NULL) *************** resolve_omp_atomic (gfc_code *code) *** 1447,1456 **** } } else ! gfc_error ("!$OMP ATOMIC assignment must have an operator or intrinsic " ! "on right hand side at %L", &expr2->where); ! if (atomic_code->ext.omp_atomic == GFC_OMP_ATOMIC_CAPTURE && code->next) { code = code->next; if (code->expr1->expr_type != EXPR_VARIABLE --- 2958,2967 ---- } } else ! gfc_error ("!$OMP ATOMIC assignment must have an operator or " ! "intrinsic on right hand side at %L", &expr2->where); ! if (aop == GFC_OMP_ATOMIC_CAPTURE && code->next) { code = code->next; if (code->expr1->expr_type != EXPR_VARIABLE *************** gfc_resolve_omp_parallel_blocks (gfc_cod *** 1542,1548 **** { struct omp_context ctx; gfc_omp_clauses *omp_clauses = code->ext.omp_clauses; ! gfc_namelist *n; int list; ctx.code = code; --- 3053,3059 ---- { struct omp_context ctx; gfc_omp_clauses *omp_clauses = code->ext.omp_clauses; ! gfc_omp_namelist *n; int list; ctx.code = code; *************** gfc_resolve_omp_parallel_blocks (gfc_cod *** 1552,1564 **** omp_current_ctx = &ctx; for (list = 0; list < OMP_LIST_NUM; list++) ! for (n = omp_clauses->lists[list]; n; n = n->next) ! pointer_set_insert (ctx.sharing_clauses, n->sym); ! if (code->op == EXEC_OMP_PARALLEL_DO) ! gfc_resolve_omp_do_blocks (code, ns); ! else ! gfc_resolve_blocks (code->block, ns); omp_current_ctx = ctx.previous; pointer_set_destroy (ctx.sharing_clauses); --- 3063,3100 ---- omp_current_ctx = &ctx; for (list = 0; list < OMP_LIST_NUM; list++) ! switch (list) ! { ! case OMP_LIST_SHARED: ! case OMP_LIST_PRIVATE: ! case OMP_LIST_FIRSTPRIVATE: ! case OMP_LIST_LASTPRIVATE: ! case OMP_LIST_REDUCTION: ! case OMP_LIST_LINEAR: ! for (n = omp_clauses->lists[list]; n; n = n->next) ! pointer_set_insert (ctx.sharing_clauses, n->sym); ! break; ! default: ! break; ! } ! switch (code->op) ! { ! case EXEC_OMP_PARALLEL_DO: ! case EXEC_OMP_PARALLEL_DO_SIMD: ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: ! case EXEC_OMP_TEAMS_DISTRIBUTE: ! case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: ! case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: ! case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: ! gfc_resolve_omp_do_blocks (code, ns); ! break; ! default: ! gfc_resolve_blocks (code->block, ns); ! } omp_current_ctx = ctx.previous; pointer_set_destroy (ctx.sharing_clauses); *************** gfc_resolve_do_iterator (gfc_code *code, *** 1624,1632 **** if (! pointer_set_insert (omp_current_ctx->private_iterators, sym)) { gfc_omp_clauses *omp_clauses = omp_current_ctx->code->ext.omp_clauses; ! gfc_namelist *p; ! p = gfc_get_namelist (); p->sym = sym; p->next = omp_clauses->lists[OMP_LIST_PRIVATE]; omp_clauses->lists[OMP_LIST_PRIVATE] = p; --- 3160,3168 ---- if (! pointer_set_insert (omp_current_ctx->private_iterators, sym)) { gfc_omp_clauses *omp_clauses = omp_current_ctx->code->ext.omp_clauses; ! gfc_omp_namelist *p; ! p = gfc_get_omp_namelist (); p->sym = sym; p->next = omp_clauses->lists[OMP_LIST_PRIVATE]; omp_clauses->lists[OMP_LIST_PRIVATE] = p; *************** resolve_omp_do (gfc_code *code) *** 1639,1649 **** { gfc_code *do_code, *c; int list, i, collapse; ! gfc_namelist *n; gfc_symbol *dovar; if (code->ext.omp_clauses) ! resolve_omp_clauses (code); do_code = code->block->next; collapse = code->ext.omp_clauses->collapse; --- 3175,3238 ---- { gfc_code *do_code, *c; int list, i, collapse; ! gfc_omp_namelist *n; gfc_symbol *dovar; + const char *name; + bool is_simd = false; + + switch (code->op) + { + case EXEC_OMP_DISTRIBUTE: name = "!$OMP DISTRIBUTE"; break; + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + name = "!$OMP DISTRIBUTE PARALLEL DO"; + break; + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + name = "!$OMP DISTRIBUTE PARALLEL DO SIMD"; + is_simd = true; + break; + case EXEC_OMP_DISTRIBUTE_SIMD: + name = "!$OMP DISTRIBUTE SIMD"; + is_simd = true; + break; + case EXEC_OMP_DO: name = "!$OMP DO"; break; + case EXEC_OMP_DO_SIMD: name = "!$OMP DO SIMD"; is_simd = true; break; + case EXEC_OMP_PARALLEL_DO: name = "!$OMP PARALLEL DO"; break; + case EXEC_OMP_PARALLEL_DO_SIMD: + name = "!$OMP PARALLEL DO SIMD"; + is_simd = true; + break; + case EXEC_OMP_SIMD: name = "!$OMP SIMD"; is_simd = true; break; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + name = "!$OMP TARGET TEAMS_DISTRIBUTE"; + break; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + name = "!$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO"; + break; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + name = "!$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD"; + is_simd = true; + break; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + name = "!$OMP TARGET TEAMS DISTRIBUTE SIMD"; + is_simd = true; + break; + case EXEC_OMP_TEAMS_DISTRIBUTE: name = "!$OMP TEAMS_DISTRIBUTE"; break; + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + name = "!$OMP TEAMS DISTRIBUTE PARALLEL DO"; + break; + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + name = "!$OMP TEAMS DISTRIBUTE PARALLEL DO SIMD"; + is_simd = true; + break; + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: + name = "!$OMP TEAMS DISTRIBUTE SIMD"; + is_simd = true; + break; + default: gcc_unreachable (); + } if (code->ext.omp_clauses) ! resolve_omp_clauses (code, &code->loc, code->ext.omp_clauses, NULL); do_code = code->block->next; collapse = code->ext.omp_clauses->collapse; *************** resolve_omp_do (gfc_code *code) *** 1653,1679 **** { if (do_code->op == EXEC_DO_WHILE) { ! gfc_error ("!$OMP DO cannot be a DO WHILE or DO without loop control " ! "at %L", &do_code->loc); break; } gcc_assert (do_code->op == EXEC_DO); if (do_code->ext.iterator->var->ts.type != BT_INTEGER) ! gfc_error ("!$OMP DO iteration variable must be of type integer at %L", ! &do_code->loc); dovar = do_code->ext.iterator->var->symtree->n.sym; if (dovar->attr.threadprivate) ! gfc_error ("!$OMP DO iteration variable must not be THREADPRIVATE " ! "at %L", &do_code->loc); if (code->ext.omp_clauses) for (list = 0; list < OMP_LIST_NUM; list++) ! if (list != OMP_LIST_PRIVATE && list != OMP_LIST_LASTPRIVATE) for (n = code->ext.omp_clauses->lists[list]; n; n = n->next) if (dovar == n->sym) { ! gfc_error ("!$OMP DO iteration variable present on clause " ! "other than PRIVATE or LASTPRIVATE at %L", ! &do_code->loc); break; } if (i > 1) --- 3242,3287 ---- { if (do_code->op == EXEC_DO_WHILE) { ! gfc_error ("%s cannot be a DO WHILE or DO without loop control " ! "at %L", name, &do_code->loc); ! break; ! } ! if (do_code->op == EXEC_DO_CONCURRENT) ! { ! gfc_error ("%s cannot be a DO CONCURRENT loop at %L", name, ! &do_code->loc); break; } gcc_assert (do_code->op == EXEC_DO); if (do_code->ext.iterator->var->ts.type != BT_INTEGER) ! gfc_error ("%s iteration variable must be of type integer at %L", ! name, &do_code->loc); dovar = do_code->ext.iterator->var->symtree->n.sym; if (dovar->attr.threadprivate) ! gfc_error ("%s iteration variable must not be THREADPRIVATE " ! "at %L", name, &do_code->loc); if (code->ext.omp_clauses) for (list = 0; list < OMP_LIST_NUM; list++) ! if (!is_simd ! ? (list != OMP_LIST_PRIVATE && list != OMP_LIST_LASTPRIVATE) ! : code->ext.omp_clauses->collapse > 1 ! ? (list != OMP_LIST_LASTPRIVATE) ! : (list != OMP_LIST_LINEAR)) for (n = code->ext.omp_clauses->lists[list]; n; n = n->next) if (dovar == n->sym) { ! if (!is_simd) ! gfc_error ("%s iteration variable present on clause " ! "other than PRIVATE or LASTPRIVATE at %L", ! name, &do_code->loc); ! else if (code->ext.omp_clauses->collapse > 1) ! gfc_error ("%s iteration variable present on clause " ! "other than LASTPRIVATE at %L", ! name, &do_code->loc); ! else ! gfc_error ("%s iteration variable present on clause " ! "other than LINEAR at %L", ! name, &do_code->loc); break; } if (i > 1) *************** resolve_omp_do (gfc_code *code) *** 1689,1696 **** || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->end) || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->step)) { ! gfc_error ("!$OMP DO collapsed loops don't form rectangular iteration space at %L", ! &do_code->loc); break; } if (j < i) --- 3297,3304 ---- || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->end) || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->step)) { ! gfc_error ("%s collapsed loops don't form rectangular " ! "iteration space at %L", name, &do_code->loc); break; } if (j < i) *************** resolve_omp_do (gfc_code *code) *** 1703,1710 **** for (c = do_code->next; c; c = c->next) if (c->op != EXEC_NOP && c->op != EXEC_CONTINUE) { ! gfc_error ("collapsed !$OMP DO loops not perfectly nested at %L", ! &c->loc); break; } if (c) --- 3311,3318 ---- for (c = do_code->next; c; c = c->next) if (c->op != EXEC_NOP && c->op != EXEC_CONTINUE) { ! gfc_error ("collapsed %s loops not perfectly nested at %L", ! name, &c->loc); break; } if (c) *************** resolve_omp_do (gfc_code *code) *** 1712,1727 **** do_code = do_code->block; if (do_code->op != EXEC_DO && do_code->op != EXEC_DO_WHILE) { ! gfc_error ("not enough DO loops for collapsed !$OMP DO at %L", ! &code->loc); break; } do_code = do_code->next; if (do_code == NULL || (do_code->op != EXEC_DO && do_code->op != EXEC_DO_WHILE)) { ! gfc_error ("not enough DO loops for collapsed !$OMP DO at %L", ! &code->loc); break; } } --- 3320,3335 ---- do_code = do_code->block; if (do_code->op != EXEC_DO && do_code->op != EXEC_DO_WHILE) { ! gfc_error ("not enough DO loops for collapsed %s at %L", ! name, &code->loc); break; } do_code = do_code->next; if (do_code == NULL || (do_code->op != EXEC_DO && do_code->op != EXEC_DO_WHILE)) { ! gfc_error ("not enough DO loops for collapsed %s at %L", ! name, &code->loc); break; } } *************** gfc_resolve_omp_directive (gfc_code *cod *** 1739,1757 **** switch (code->op) { case EXEC_OMP_DO: case EXEC_OMP_PARALLEL_DO: resolve_omp_do (code); break; ! case EXEC_OMP_WORKSHARE: case EXEC_OMP_PARALLEL_WORKSHARE: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_SECTIONS: case EXEC_OMP_SINGLE: case EXEC_OMP_TASK: if (code->ext.omp_clauses) ! resolve_omp_clauses (code); break; case EXEC_OMP_ATOMIC: resolve_omp_atomic (code); --- 3347,3394 ---- switch (code->op) { + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: + case EXEC_OMP_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: resolve_omp_do (code); break; ! case EXEC_OMP_CANCEL: case EXEC_OMP_PARALLEL_WORKSHARE: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_SECTIONS: case EXEC_OMP_SINGLE: + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_DATA: + case EXEC_OMP_TARGET_TEAMS: case EXEC_OMP_TASK: + case EXEC_OMP_TEAMS: + case EXEC_OMP_WORKSHARE: if (code->ext.omp_clauses) ! resolve_omp_clauses (code, &code->loc, code->ext.omp_clauses, NULL); ! break; ! case EXEC_OMP_TARGET_UPDATE: ! if (code->ext.omp_clauses) ! resolve_omp_clauses (code, &code->loc, code->ext.omp_clauses, NULL); ! if (code->ext.omp_clauses == NULL ! || (code->ext.omp_clauses->lists[OMP_LIST_TO] == NULL ! && code->ext.omp_clauses->lists[OMP_LIST_FROM] == NULL)) ! gfc_error ("OMP TARGET UPDATE at %L requires at least one TO or " ! "FROM clause", &code->loc); break; case EXEC_OMP_ATOMIC: resolve_omp_atomic (code); *************** gfc_resolve_omp_directive (gfc_code *cod *** 1760,1762 **** --- 3397,3561 ---- break; } } + + /* Resolve !$omp declare simd constructs in NS. */ + + void + gfc_resolve_omp_declare_simd (gfc_namespace *ns) + { + gfc_omp_declare_simd *ods; + + for (ods = ns->omp_declare_simd; ods; ods = ods->next) + { + if (ods->proc_name != ns->proc_name) + gfc_error ("!$OMP DECLARE SIMD should refer to containing procedure " + "'%s' at %L", ns->proc_name->name, &ods->where); + if (ods->clauses) + resolve_omp_clauses (NULL, &ods->where, ods->clauses, ns); + } + } + + struct omp_udr_callback_data + { + gfc_omp_udr *omp_udr; + bool is_initializer; + }; + + static int + omp_udr_callback (gfc_expr **e, int *walk_subtrees ATTRIBUTE_UNUSED, + void *data) + { + struct omp_udr_callback_data *cd = (struct omp_udr_callback_data *) data; + if ((*e)->expr_type == EXPR_VARIABLE) + { + if (cd->is_initializer) + { + if ((*e)->symtree->n.sym != cd->omp_udr->omp_priv + && (*e)->symtree->n.sym != cd->omp_udr->omp_orig) + gfc_error ("Variable other than OMP_PRIV or OMP_ORIG used in " + "INITIALIZER clause of !$OMP DECLARE REDUCTION at %L", + &(*e)->where); + } + else + { + if ((*e)->symtree->n.sym != cd->omp_udr->omp_out + && (*e)->symtree->n.sym != cd->omp_udr->omp_in) + gfc_error ("Variable other than OMP_OUT or OMP_IN used in " + "combiner of !$OMP DECLARE REDUCTION at %L", + &(*e)->where); + } + } + return 0; + } + + /* Resolve !$omp declare reduction constructs. */ + + static void + gfc_resolve_omp_udr (gfc_omp_udr *omp_udr) + { + gfc_actual_arglist *a; + const char *predef_name = NULL; + + switch (omp_udr->rop) + { + case OMP_REDUCTION_PLUS: + case OMP_REDUCTION_TIMES: + case OMP_REDUCTION_MINUS: + case OMP_REDUCTION_AND: + case OMP_REDUCTION_OR: + case OMP_REDUCTION_EQV: + case OMP_REDUCTION_NEQV: + case OMP_REDUCTION_MAX: + case OMP_REDUCTION_USER: + break; + default: + gfc_error ("Invalid operator for !$OMP DECLARE REDUCTION %s at %L", + omp_udr->name, &omp_udr->where); + return; + } + + if (gfc_omp_udr_predef (omp_udr->rop, omp_udr->name, + &omp_udr->ts, &predef_name)) + { + if (predef_name) + gfc_error_now ("Redefinition of predefined %s " + "!$OMP DECLARE REDUCTION at %L", + predef_name, &omp_udr->where); + else + gfc_error_now ("Redefinition of predefined " + "!$OMP DECLARE REDUCTION at %L", &omp_udr->where); + return; + } + + if (omp_udr->ts.type == BT_CHARACTER + && omp_udr->ts.u.cl->length + && omp_udr->ts.u.cl->length->expr_type != EXPR_CONSTANT) + { + gfc_error ("CHARACTER length in !$OMP DECLARE REDUCTION %s not " + "constant at %L", omp_udr->name, &omp_udr->where); + return; + } + + struct omp_udr_callback_data cd; + cd.omp_udr = omp_udr; + cd.is_initializer = false; + gfc_code_walker (&omp_udr->combiner_ns->code, gfc_dummy_code_callback, + omp_udr_callback, &cd); + if (omp_udr->combiner_ns->code->op == EXEC_CALL) + { + for (a = omp_udr->combiner_ns->code->ext.actual; a; a = a->next) + if (a->expr == NULL) + break; + if (a) + gfc_error ("Subroutine call with alternate returns in combiner " + "of !$OMP DECLARE REDUCTION at %L", + &omp_udr->combiner_ns->code->loc); + } + if (omp_udr->initializer_ns) + { + cd.is_initializer = true; + gfc_code_walker (&omp_udr->initializer_ns->code, gfc_dummy_code_callback, + omp_udr_callback, &cd); + if (omp_udr->initializer_ns->code->op == EXEC_CALL) + { + for (a = omp_udr->initializer_ns->code->ext.actual; a; a = a->next) + if (a->expr == NULL) + break; + if (a) + gfc_error ("Subroutine call with alternate returns in " + "INITIALIZER clause of !$OMP DECLARE REDUCTION " + "at %L", &omp_udr->initializer_ns->code->loc); + for (a = omp_udr->initializer_ns->code->ext.actual; a; a = a->next) + if (a->expr + && a->expr->expr_type == EXPR_VARIABLE + && a->expr->symtree->n.sym == omp_udr->omp_priv + && a->expr->ref == NULL) + break; + if (a == NULL) + gfc_error ("One of actual subroutine arguments in INITIALIZER " + "clause of !$OMP DECLARE REDUCTION must be OMP_PRIV " + "at %L", &omp_udr->initializer_ns->code->loc); + } + } + else if (omp_udr->ts.type == BT_DERIVED + && !gfc_has_default_initializer (omp_udr->ts.u.derived)) + { + gfc_error ("Missing INITIALIZER clause for !$OMP DECLARE REDUCTION " + "of derived type without default initializer at %L", + &omp_udr->where); + return; + } + } + + void + gfc_resolve_omp_udrs (gfc_symtree *st) + { + gfc_omp_udr *omp_udr; + + if (st == NULL) + return; + gfc_resolve_omp_udrs (st->left); + gfc_resolve_omp_udrs (st->right); + for (omp_udr = st->n.omp_udr; omp_udr; omp_udr = omp_udr->next) + gfc_resolve_omp_udr (omp_udr); + } diff -Nrcpad gcc-4.9.0/gcc/fortran/parse.c gcc-4.9.1/gcc/fortran/parse.c *** gcc-4.9.0/gcc/fortran/parse.c Wed Mar 19 21:03:14 2014 --- gcc-4.9.1/gcc/fortran/parse.c Mon Jun 30 16:35:48 2014 *************** match_word (const char *str, match (*sub *** 74,79 **** --- 74,107 ---- } + /* Like match_word, but if str is matched, set a flag that it + was matched. */ + static match + match_word_omp_simd (const char *str, match (*subr) (void), locus *old_locus, + bool *simd_matched) + { + match m; + + if (str != NULL) + { + m = gfc_match (str); + if (m != MATCH_YES) + return m; + *simd_matched = true; + } + + m = (*subr) (); + + if (m != MATCH_YES) + { + gfc_current_locus = *old_locus; + reject_statement (); + } + + return m; + } + + /* Load symbols from all USE statements encountered in this scoping unit. */ static void *************** use_modules (void) *** 103,109 **** if (match_word (keyword, subr, &old_locus) == MATCH_YES) \ return st; \ else \ ! undo_new_statement (); \ } while (0); --- 131,137 ---- if (match_word (keyword, subr, &old_locus) == MATCH_YES) \ return st; \ else \ ! undo_new_statement (); \ } while (0); *************** decode_statement (void) *** 531,541 **** --- 559,592 ---- return ST_NONE; } + /* Like match, but set a flag simd_matched if keyword matched. */ + #define matchs(keyword, subr, st) \ + do { \ + if (match_word_omp_simd (keyword, subr, &old_locus, \ + &simd_matched) == MATCH_YES) \ + return st; \ + else \ + undo_new_statement (); \ + } while (0); + + /* Like match, but don't match anything if not -fopenmp. */ + #define matcho(keyword, subr, st) \ + do { \ + if (!gfc_option.gfc_flag_openmp) \ + ; \ + else if (match_word (keyword, subr, &old_locus) \ + == MATCH_YES) \ + return st; \ + else \ + undo_new_statement (); \ + } while (0); + static gfc_statement decode_omp_directive (void) { locus old_locus; char c; + bool simd_matched = false; gfc_enforce_clean_symbol_state (); *************** decode_omp_directive (void) *** 560,636 **** c = gfc_peek_ascii_char (); switch (c) { case 'a': ! match ("atomic", gfc_match_omp_atomic, ST_OMP_ATOMIC); break; case 'b': ! match ("barrier", gfc_match_omp_barrier, ST_OMP_BARRIER); break; case 'c': ! match ("critical", gfc_match_omp_critical, ST_OMP_CRITICAL); break; case 'd': ! match ("do", gfc_match_omp_do, ST_OMP_DO); break; case 'e': ! match ("end atomic", gfc_match_omp_eos, ST_OMP_END_ATOMIC); ! match ("end critical", gfc_match_omp_critical, ST_OMP_END_CRITICAL); ! match ("end do", gfc_match_omp_end_nowait, ST_OMP_END_DO); ! match ("end master", gfc_match_omp_eos, ST_OMP_END_MASTER); ! match ("end ordered", gfc_match_omp_eos, ST_OMP_END_ORDERED); ! match ("end parallel do", gfc_match_omp_eos, ST_OMP_END_PARALLEL_DO); ! match ("end parallel sections", gfc_match_omp_eos, ! ST_OMP_END_PARALLEL_SECTIONS); ! match ("end parallel workshare", gfc_match_omp_eos, ! ST_OMP_END_PARALLEL_WORKSHARE); ! match ("end parallel", gfc_match_omp_eos, ST_OMP_END_PARALLEL); ! match ("end sections", gfc_match_omp_end_nowait, ST_OMP_END_SECTIONS); ! match ("end single", gfc_match_omp_end_single, ST_OMP_END_SINGLE); ! match ("end task", gfc_match_omp_eos, ST_OMP_END_TASK); ! match ("end workshare", gfc_match_omp_end_nowait, ! ST_OMP_END_WORKSHARE); break; case 'f': ! match ("flush", gfc_match_omp_flush, ST_OMP_FLUSH); break; case 'm': ! match ("master", gfc_match_omp_master, ST_OMP_MASTER); break; case 'o': ! match ("ordered", gfc_match_omp_ordered, ST_OMP_ORDERED); break; case 'p': ! match ("parallel do", gfc_match_omp_parallel_do, ST_OMP_PARALLEL_DO); ! match ("parallel sections", gfc_match_omp_parallel_sections, ! ST_OMP_PARALLEL_SECTIONS); ! match ("parallel workshare", gfc_match_omp_parallel_workshare, ! ST_OMP_PARALLEL_WORKSHARE); ! match ("parallel", gfc_match_omp_parallel, ST_OMP_PARALLEL); break; case 's': ! match ("sections", gfc_match_omp_sections, ST_OMP_SECTIONS); ! match ("section", gfc_match_omp_eos, ST_OMP_SECTION); ! match ("single", gfc_match_omp_single, ST_OMP_SINGLE); break; case 't': ! match ("task", gfc_match_omp_task, ST_OMP_TASK); ! match ("taskwait", gfc_match_omp_taskwait, ST_OMP_TASKWAIT); ! match ("taskyield", gfc_match_omp_taskyield, ST_OMP_TASKYIELD); ! match ("threadprivate", gfc_match_omp_threadprivate, ! ST_OMP_THREADPRIVATE); break; case 'w': ! match ("workshare", gfc_match_omp_workshare, ST_OMP_WORKSHARE); break; } /* All else has failed, so give up. See if any of the matchers has ! stored an error message of some sort. */ ! if (gfc_error_check () == 0) ! gfc_error_now ("Unclassifiable OpenMP directive at %C"); reject_statement (); --- 611,777 ---- c = gfc_peek_ascii_char (); + /* match is for directives that should be recognized only if + -fopenmp, matchs for directives that should be recognized + if either -fopenmp or -fopenmp-simd. */ switch (c) { case 'a': ! matcho ("atomic", gfc_match_omp_atomic, ST_OMP_ATOMIC); break; case 'b': ! matcho ("barrier", gfc_match_omp_barrier, ST_OMP_BARRIER); break; case 'c': ! matcho ("cancellation% point", gfc_match_omp_cancellation_point, ! ST_OMP_CANCELLATION_POINT); ! matcho ("cancel", gfc_match_omp_cancel, ST_OMP_CANCEL); ! matcho ("critical", gfc_match_omp_critical, ST_OMP_CRITICAL); break; case 'd': ! matchs ("declare reduction", gfc_match_omp_declare_reduction, ! ST_OMP_DECLARE_REDUCTION); ! matchs ("declare simd", gfc_match_omp_declare_simd, ! ST_OMP_DECLARE_SIMD); ! matcho ("declare target", gfc_match_omp_declare_target, ! ST_OMP_DECLARE_TARGET); ! matchs ("distribute parallel do simd", ! gfc_match_omp_distribute_parallel_do_simd, ! ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD); ! matcho ("distribute parallel do", gfc_match_omp_distribute_parallel_do, ! ST_OMP_DISTRIBUTE_PARALLEL_DO); ! matchs ("distribute simd", gfc_match_omp_distribute_simd, ! ST_OMP_DISTRIBUTE_SIMD); ! matcho ("distribute", gfc_match_omp_distribute, ST_OMP_DISTRIBUTE); ! matchs ("do simd", gfc_match_omp_do_simd, ST_OMP_DO_SIMD); ! matcho ("do", gfc_match_omp_do, ST_OMP_DO); break; case 'e': ! matcho ("end atomic", gfc_match_omp_eos, ST_OMP_END_ATOMIC); ! matcho ("end critical", gfc_match_omp_critical, ST_OMP_END_CRITICAL); ! matchs ("end distribute parallel do simd", gfc_match_omp_eos, ! ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD); ! matcho ("end distribute parallel do", gfc_match_omp_eos, ! ST_OMP_END_DISTRIBUTE_PARALLEL_DO); ! matchs ("end distribute simd", gfc_match_omp_eos, ! ST_OMP_END_DISTRIBUTE_SIMD); ! matcho ("end distribute", gfc_match_omp_eos, ST_OMP_END_DISTRIBUTE); ! matchs ("end do simd", gfc_match_omp_end_nowait, ST_OMP_END_DO_SIMD); ! matcho ("end do", gfc_match_omp_end_nowait, ST_OMP_END_DO); ! matchs ("end simd", gfc_match_omp_eos, ST_OMP_END_SIMD); ! matcho ("end master", gfc_match_omp_eos, ST_OMP_END_MASTER); ! matcho ("end ordered", gfc_match_omp_eos, ST_OMP_END_ORDERED); ! matchs ("end parallel do simd", gfc_match_omp_eos, ! ST_OMP_END_PARALLEL_DO_SIMD); ! matcho ("end parallel do", gfc_match_omp_eos, ST_OMP_END_PARALLEL_DO); ! matcho ("end parallel sections", gfc_match_omp_eos, ! ST_OMP_END_PARALLEL_SECTIONS); ! matcho ("end parallel workshare", gfc_match_omp_eos, ! ST_OMP_END_PARALLEL_WORKSHARE); ! matcho ("end parallel", gfc_match_omp_eos, ST_OMP_END_PARALLEL); ! matcho ("end sections", gfc_match_omp_end_nowait, ST_OMP_END_SECTIONS); ! matcho ("end single", gfc_match_omp_end_single, ST_OMP_END_SINGLE); ! matcho ("end target data", gfc_match_omp_eos, ST_OMP_END_TARGET_DATA); ! matchs ("end target teams distribute parallel do simd", ! gfc_match_omp_eos, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD); ! matcho ("end target teams distribute parallel do", gfc_match_omp_eos, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO); ! matchs ("end target teams distribute simd", gfc_match_omp_eos, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD); ! matcho ("end target teams distribute", gfc_match_omp_eos, ! ST_OMP_END_TARGET_TEAMS_DISTRIBUTE); ! matcho ("end target teams", gfc_match_omp_eos, ST_OMP_END_TARGET_TEAMS); ! matcho ("end target", gfc_match_omp_eos, ST_OMP_END_TARGET); ! matcho ("end taskgroup", gfc_match_omp_eos, ST_OMP_END_TASKGROUP); ! matcho ("end task", gfc_match_omp_eos, ST_OMP_END_TASK); ! matchs ("end teams distribute parallel do simd", gfc_match_omp_eos, ! ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD); ! matcho ("end teams distribute parallel do", gfc_match_omp_eos, ! ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO); ! matchs ("end teams distribute simd", gfc_match_omp_eos, ! ST_OMP_END_TEAMS_DISTRIBUTE_SIMD); ! matcho ("end teams distribute", gfc_match_omp_eos, ! ST_OMP_END_TEAMS_DISTRIBUTE); ! matcho ("end teams", gfc_match_omp_eos, ST_OMP_END_TEAMS); ! matcho ("end workshare", gfc_match_omp_end_nowait, ! ST_OMP_END_WORKSHARE); break; case 'f': ! matcho ("flush", gfc_match_omp_flush, ST_OMP_FLUSH); break; case 'm': ! matcho ("master", gfc_match_omp_master, ST_OMP_MASTER); break; case 'o': ! matcho ("ordered", gfc_match_omp_ordered, ST_OMP_ORDERED); break; case 'p': ! matchs ("parallel do simd", gfc_match_omp_parallel_do_simd, ! ST_OMP_PARALLEL_DO_SIMD); ! matcho ("parallel do", gfc_match_omp_parallel_do, ST_OMP_PARALLEL_DO); ! matcho ("parallel sections", gfc_match_omp_parallel_sections, ! ST_OMP_PARALLEL_SECTIONS); ! matcho ("parallel workshare", gfc_match_omp_parallel_workshare, ! ST_OMP_PARALLEL_WORKSHARE); ! matcho ("parallel", gfc_match_omp_parallel, ST_OMP_PARALLEL); break; case 's': ! matcho ("sections", gfc_match_omp_sections, ST_OMP_SECTIONS); ! matcho ("section", gfc_match_omp_eos, ST_OMP_SECTION); ! matchs ("simd", gfc_match_omp_simd, ST_OMP_SIMD); ! matcho ("single", gfc_match_omp_single, ST_OMP_SINGLE); break; case 't': ! matcho ("target data", gfc_match_omp_target_data, ST_OMP_TARGET_DATA); ! matchs ("target teams distribute parallel do simd", ! gfc_match_omp_target_teams_distribute_parallel_do_simd, ! ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD); ! matcho ("target teams distribute parallel do", ! gfc_match_omp_target_teams_distribute_parallel_do, ! ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO); ! matchs ("target teams distribute simd", ! gfc_match_omp_target_teams_distribute_simd, ! ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD); ! matcho ("target teams distribute", gfc_match_omp_target_teams_distribute, ! ST_OMP_TARGET_TEAMS_DISTRIBUTE); ! matcho ("target teams", gfc_match_omp_target_teams, ST_OMP_TARGET_TEAMS); ! matcho ("target update", gfc_match_omp_target_update, ! ST_OMP_TARGET_UPDATE); ! matcho ("target", gfc_match_omp_target, ST_OMP_TARGET); ! matcho ("taskgroup", gfc_match_omp_taskgroup, ST_OMP_TASKGROUP); ! matcho ("taskwait", gfc_match_omp_taskwait, ST_OMP_TASKWAIT); ! matcho ("taskyield", gfc_match_omp_taskyield, ST_OMP_TASKYIELD); ! matcho ("task", gfc_match_omp_task, ST_OMP_TASK); ! matchs ("teams distribute parallel do simd", ! gfc_match_omp_teams_distribute_parallel_do_simd, ! ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD); ! matcho ("teams distribute parallel do", ! gfc_match_omp_teams_distribute_parallel_do, ! ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO); ! matchs ("teams distribute simd", gfc_match_omp_teams_distribute_simd, ! ST_OMP_TEAMS_DISTRIBUTE_SIMD); ! matcho ("teams distribute", gfc_match_omp_teams_distribute, ! ST_OMP_TEAMS_DISTRIBUTE); ! matcho ("teams", gfc_match_omp_teams, ST_OMP_TEAMS); ! matcho ("threadprivate", gfc_match_omp_threadprivate, ! ST_OMP_THREADPRIVATE); break; case 'w': ! matcho ("workshare", gfc_match_omp_workshare, ST_OMP_WORKSHARE); break; } /* All else has failed, so give up. See if any of the matchers has ! stored an error message of some sort. Don't error out if ! not -fopenmp and simd_matched is false, i.e. if a directive other ! than one marked with match has been seen. */ ! if (gfc_option.gfc_flag_openmp || simd_matched) ! { ! if (gfc_error_check () == 0) ! gfc_error_now ("Unclassifiable OpenMP directive at %C"); ! } reject_statement (); *************** next_free (void) *** 753,759 **** return decode_gcc_attribute (); } ! else if (c == '$' && gfc_option.gfc_flag_openmp) { int i; --- 894,902 ---- return decode_gcc_attribute (); } ! else if (c == '$' ! && (gfc_option.gfc_flag_openmp ! || gfc_option.gfc_flag_openmp_simd)) { int i; *************** next_fixed (void) *** 842,848 **** return decode_gcc_attribute (); } ! else if (c == '$' && gfc_option.gfc_flag_openmp) { for (i = 0; i < 4; i++, c = gfc_next_char_literal (NONSTRING)) gcc_assert ((char) gfc_wide_tolower (c) == "$omp"[i]); --- 985,993 ---- return decode_gcc_attribute (); } ! else if (c == '$' ! && (gfc_option.gfc_flag_openmp ! || gfc_option.gfc_flag_openmp_simd)) { for (i = 0; i < 4; i++, c = gfc_next_char_literal (NONSTRING)) gcc_assert ((char) gfc_wide_tolower (c) == "$omp"[i]); *************** next_statement (void) *** 1013,1020 **** case ST_ASSIGNMENT: case ST_ARITHMETIC_IF: case ST_WHERE: case ST_FORALL: \ case ST_LABEL_ASSIGNMENT: case ST_FLUSH: case ST_OMP_FLUSH: \ case ST_OMP_BARRIER: case ST_OMP_TASKWAIT: case ST_OMP_TASKYIELD: \ ! case ST_ERROR_STOP: case ST_SYNC_ALL: case ST_SYNC_IMAGES: \ ! case ST_SYNC_MEMORY: case ST_LOCK: case ST_UNLOCK /* Statements that mark other executable statements. */ --- 1158,1166 ---- case ST_ASSIGNMENT: case ST_ARITHMETIC_IF: case ST_WHERE: case ST_FORALL: \ case ST_LABEL_ASSIGNMENT: case ST_FLUSH: case ST_OMP_FLUSH: \ case ST_OMP_BARRIER: case ST_OMP_TASKWAIT: case ST_OMP_TASKYIELD: \ ! case ST_OMP_CANCEL: case ST_OMP_CANCELLATION_POINT: \ ! case ST_OMP_TARGET_UPDATE: case ST_ERROR_STOP: case ST_SYNC_ALL: \ ! case ST_SYNC_IMAGES: case ST_SYNC_MEMORY: case ST_LOCK: case ST_UNLOCK /* Statements that mark other executable statements. */ *************** next_statement (void) *** 1026,1039 **** case ST_OMP_CRITICAL: case ST_OMP_MASTER: case ST_OMP_SINGLE: \ case ST_OMP_DO: case ST_OMP_PARALLEL_DO: case ST_OMP_ATOMIC: \ case ST_OMP_WORKSHARE: case ST_OMP_PARALLEL_WORKSHARE: \ ! case ST_OMP_TASK: case ST_CRITICAL /* Declaration statements */ #define case_decl case ST_ATTR_DECL: case ST_COMMON: case ST_DATA_DECL: \ case ST_EQUIVALENCE: case ST_NAMELIST: case ST_STATEMENT_FUNCTION: \ case ST_TYPE: case ST_INTERFACE: case ST_OMP_THREADPRIVATE: \ ! case ST_PROCEDURE /* Block end statements. Errors associated with interchanging these are detected in gfc_match_end(). */ --- 1172,1199 ---- case ST_OMP_CRITICAL: case ST_OMP_MASTER: case ST_OMP_SINGLE: \ case ST_OMP_DO: case ST_OMP_PARALLEL_DO: case ST_OMP_ATOMIC: \ case ST_OMP_WORKSHARE: case ST_OMP_PARALLEL_WORKSHARE: \ ! case ST_OMP_TASK: case ST_OMP_TASKGROUP: case ST_OMP_SIMD: \ ! case ST_OMP_DO_SIMD: case ST_OMP_PARALLEL_DO_SIMD: case ST_OMP_TARGET: \ ! case ST_OMP_TARGET_DATA: case ST_OMP_TARGET_TEAMS: \ ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE: \ ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: \ ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: \ ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: \ ! case ST_OMP_TEAMS: case ST_OMP_TEAMS_DISTRIBUTE: \ ! case ST_OMP_TEAMS_DISTRIBUTE_SIMD: \ ! case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: \ ! case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: case ST_OMP_DISTRIBUTE: \ ! case ST_OMP_DISTRIBUTE_SIMD: case ST_OMP_DISTRIBUTE_PARALLEL_DO: \ ! case ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: \ ! case ST_CRITICAL /* Declaration statements */ #define case_decl case ST_ATTR_DECL: case ST_COMMON: case ST_DATA_DECL: \ case ST_EQUIVALENCE: case ST_NAMELIST: case ST_STATEMENT_FUNCTION: \ case ST_TYPE: case ST_INTERFACE: case ST_OMP_THREADPRIVATE: \ ! case ST_PROCEDURE: case ST_OMP_DECLARE_SIMD: case ST_OMP_DECLARE_REDUCTION: \ ! case ST_OMP_DECLARE_TARGET /* Block end statements. Errors associated with interchanging these are detected in gfc_match_end(). */ *************** gfc_ascii_statement (gfc_statement st) *** 1524,1544 **** --- 1684,1752 ---- case ST_OMP_BARRIER: p = "!$OMP BARRIER"; break; + case ST_OMP_CANCEL: + p = "!$OMP CANCEL"; + break; + case ST_OMP_CANCELLATION_POINT: + p = "!$OMP CANCELLATION POINT"; + break; case ST_OMP_CRITICAL: p = "!$OMP CRITICAL"; break; + case ST_OMP_DECLARE_REDUCTION: + p = "!$OMP DECLARE REDUCTION"; + break; + case ST_OMP_DECLARE_SIMD: + p = "!$OMP DECLARE SIMD"; + break; + case ST_OMP_DECLARE_TARGET: + p = "!$OMP DECLARE TARGET"; + break; + case ST_OMP_DISTRIBUTE: + p = "!$OMP DISTRIBUTE"; + break; + case ST_OMP_DISTRIBUTE_PARALLEL_DO: + p = "!$OMP DISTRIBUTE PARALLEL DO"; + break; + case ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + p = "!$OMP DISTRIBUTE PARALLEL DO SIMD"; + break; + case ST_OMP_DISTRIBUTE_SIMD: + p = "!$OMP DISTRIBUTE SIMD"; + break; case ST_OMP_DO: p = "!$OMP DO"; break; + case ST_OMP_DO_SIMD: + p = "!$OMP DO SIMD"; + break; case ST_OMP_END_ATOMIC: p = "!$OMP END ATOMIC"; break; case ST_OMP_END_CRITICAL: p = "!$OMP END CRITICAL"; break; + case ST_OMP_END_DISTRIBUTE: + p = "!$OMP END DISTRIBUTE"; + break; + case ST_OMP_END_DISTRIBUTE_PARALLEL_DO: + p = "!$OMP END DISTRIBUTE PARALLEL DO"; + break; + case ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD: + p = "!$OMP END DISTRIBUTE PARALLEL DO SIMD"; + break; + case ST_OMP_END_DISTRIBUTE_SIMD: + p = "!$OMP END DISTRIBUTE SIMD"; + break; case ST_OMP_END_DO: p = "!$OMP END DO"; break; + case ST_OMP_END_DO_SIMD: + p = "!$OMP END DO SIMD"; + break; + case ST_OMP_END_SIMD: + p = "!$OMP END SIMD"; + break; case ST_OMP_END_MASTER: p = "!$OMP END MASTER"; break; *************** gfc_ascii_statement (gfc_statement st) *** 1551,1556 **** --- 1759,1767 ---- case ST_OMP_END_PARALLEL_DO: p = "!$OMP END PARALLEL DO"; break; + case ST_OMP_END_PARALLEL_DO_SIMD: + p = "!$OMP END PARALLEL DO SIMD"; + break; case ST_OMP_END_PARALLEL_SECTIONS: p = "!$OMP END PARALLEL SECTIONS"; break; *************** gfc_ascii_statement (gfc_statement st) *** 1566,1571 **** --- 1777,1821 ---- case ST_OMP_END_TASK: p = "!$OMP END TASK"; break; + case ST_OMP_END_TARGET: + p = "!$OMP END TARGET"; + break; + case ST_OMP_END_TARGET_DATA: + p = "!$OMP END TARGET DATA"; + break; + case ST_OMP_END_TARGET_TEAMS: + p = "!$OMP END TARGET TEAMS"; + break; + case ST_OMP_END_TARGET_TEAMS_DISTRIBUTE: + p = "!$OMP END TARGET TEAMS DISTRIBUTE"; + break; + case ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + p = "!$OMP END TARGET TEAMS DISTRIBUTE PARALLEL DO"; + break; + case ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + p = "!$OMP END TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD"; + break; + case ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD: + p = "!$OMP END TARGET TEAMS DISTRIBUTE SIMD"; + break; + case ST_OMP_END_TASKGROUP: + p = "!$OMP END TASKGROUP"; + break; + case ST_OMP_END_TEAMS: + p = "!$OMP END TEAMS"; + break; + case ST_OMP_END_TEAMS_DISTRIBUTE: + p = "!$OMP END TEAMS DISTRIBUTE"; + break; + case ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO: + p = "!$OMP END TEAMS DISTRIBUTE PARALLEL DO"; + break; + case ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + p = "!$OMP END TEAMS DISTRIBUTE PARALLEL DO SIMD"; + break; + case ST_OMP_END_TEAMS_DISTRIBUTE_SIMD: + p = "!$OMP END TEAMS DISTRIBUTE SIMD"; + break; case ST_OMP_END_WORKSHARE: p = "!$OMP END WORKSHARE"; break; *************** gfc_ascii_statement (gfc_statement st) *** 1584,1589 **** --- 1834,1842 ---- case ST_OMP_PARALLEL_DO: p = "!$OMP PARALLEL DO"; break; + case ST_OMP_PARALLEL_DO_SIMD: + p = "!$OMP PARALLEL DO SIMD"; + break; case ST_OMP_PARALLEL_SECTIONS: p = "!$OMP PARALLEL SECTIONS"; break; *************** gfc_ascii_statement (gfc_statement st) *** 1596,1613 **** --- 1849,1911 ---- case ST_OMP_SECTION: p = "!$OMP SECTION"; break; + case ST_OMP_SIMD: + p = "!$OMP SIMD"; + break; case ST_OMP_SINGLE: p = "!$OMP SINGLE"; break; + case ST_OMP_TARGET: + p = "!$OMP TARGET"; + break; + case ST_OMP_TARGET_DATA: + p = "!$OMP TARGET DATA"; + break; + case ST_OMP_TARGET_TEAMS: + p = "!$OMP TARGET TEAMS"; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE: + p = "!$OMP TARGET TEAMS DISTRIBUTE"; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + p = "!$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO"; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + p = "!$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD"; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + p = "!$OMP TARGET TEAMS DISTRIBUTE SIMD"; + break; + case ST_OMP_TARGET_UPDATE: + p = "!$OMP TARGET UPDATE"; + break; case ST_OMP_TASK: p = "!$OMP TASK"; break; + case ST_OMP_TASKGROUP: + p = "!$OMP TASKGROUP"; + break; case ST_OMP_TASKWAIT: p = "!$OMP TASKWAIT"; break; case ST_OMP_TASKYIELD: p = "!$OMP TASKYIELD"; break; + case ST_OMP_TEAMS: + p = "!$OMP TEAMS"; + break; + case ST_OMP_TEAMS_DISTRIBUTE: + p = "!$OMP TEAMS DISTRIBUTE"; + break; + case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + p = "!$OMP TEAMS DISTRIBUTE PARALLEL DO"; + break; + case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + p = "!$OMP TEAMS DISTRIBUTE PARALLEL DO SIMD"; + break; + case ST_OMP_TEAMS_DISTRIBUTE_SIMD: + p = "!$OMP TEAMS DISTRIBUTE SIMD"; + break; case ST_OMP_THREADPRIVATE: p = "!$OMP THREADPRIVATE"; break; *************** parse_omp_do (gfc_statement omp_st) *** 3578,3584 **** pop_state (); st = next_statement (); ! if (st == (omp_st == ST_OMP_DO ? ST_OMP_END_DO : ST_OMP_END_PARALLEL_DO)) { if (new_st.op == EXEC_OMP_END_NOWAIT) cp->ext.omp_clauses->nowait |= new_st.ext.omp_bool; --- 3876,3928 ---- pop_state (); st = next_statement (); ! gfc_statement omp_end_st = ST_OMP_END_DO; ! switch (omp_st) ! { ! case ST_OMP_DISTRIBUTE: omp_end_st = ST_OMP_END_DISTRIBUTE; break; ! case ST_OMP_DISTRIBUTE_PARALLEL_DO: ! omp_end_st = ST_OMP_END_DISTRIBUTE_PARALLEL_DO; ! break; ! case ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: ! omp_end_st = ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD; ! break; ! case ST_OMP_DISTRIBUTE_SIMD: ! omp_end_st = ST_OMP_END_DISTRIBUTE_SIMD; ! break; ! case ST_OMP_DO: omp_end_st = ST_OMP_END_DO; break; ! case ST_OMP_DO_SIMD: omp_end_st = ST_OMP_END_DO_SIMD; break; ! case ST_OMP_PARALLEL_DO: omp_end_st = ST_OMP_END_PARALLEL_DO; break; ! case ST_OMP_PARALLEL_DO_SIMD: ! omp_end_st = ST_OMP_END_PARALLEL_DO_SIMD; ! break; ! case ST_OMP_SIMD: omp_end_st = ST_OMP_END_SIMD; break; ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE: ! omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE; ! break; ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: ! omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO; ! break; ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: ! omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD; ! break; ! case ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: ! omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD; ! break; ! case ST_OMP_TEAMS_DISTRIBUTE: ! omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE; ! break; ! case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: ! omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO; ! break; ! case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: ! omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD; ! break; ! case ST_OMP_TEAMS_DISTRIBUTE_SIMD: ! omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE_SIMD; ! break; ! default: gcc_unreachable (); ! } ! if (st == omp_end_st) { if (new_st.op == EXEC_OMP_END_NOWAIT) cp->ext.omp_clauses->nowait |= new_st.ext.omp_bool; *************** parse_omp_atomic (void) *** 3610,3616 **** np = new_level (cp); np->op = cp->op; np->block = NULL; ! count = 1 + (cp->ext.omp_atomic == GFC_OMP_ATOMIC_CAPTURE); while (count) { --- 3954,3961 ---- np = new_level (cp); np->op = cp->op; np->block = NULL; ! count = 1 + ((cp->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) ! == GFC_OMP_ATOMIC_CAPTURE); while (count) { *************** parse_omp_atomic (void) *** 3636,3642 **** gfc_warning_check (); st = next_statement (); } ! else if (cp->ext.omp_atomic == GFC_OMP_ATOMIC_CAPTURE) gfc_error ("Missing !$OMP END ATOMIC after !$OMP ATOMIC CAPTURE at %C"); return st; } --- 3981,3988 ---- gfc_warning_check (); st = next_statement (); } ! else if ((cp->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) ! == GFC_OMP_ATOMIC_CAPTURE) gfc_error ("Missing !$OMP END ATOMIC after !$OMP ATOMIC CAPTURE at %C"); return st; } *************** parse_omp_structured_block (gfc_statemen *** 3682,3690 **** --- 4028,4087 ---- case ST_OMP_SINGLE: omp_end_st = ST_OMP_END_SINGLE; break; + case ST_OMP_TARGET: + omp_end_st = ST_OMP_END_TARGET; + break; + case ST_OMP_TARGET_DATA: + omp_end_st = ST_OMP_END_TARGET_DATA; + break; + case ST_OMP_TARGET_TEAMS: + omp_end_st = ST_OMP_END_TARGET_TEAMS; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE: + omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD; + break; + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + omp_end_st = ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD; + break; case ST_OMP_TASK: omp_end_st = ST_OMP_END_TASK; break; + case ST_OMP_TASKGROUP: + omp_end_st = ST_OMP_END_TASKGROUP; + break; + case ST_OMP_TEAMS: + omp_end_st = ST_OMP_END_TEAMS; + break; + case ST_OMP_TEAMS_DISTRIBUTE: + omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE; + break; + case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO; + break; + case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD; + break; + case ST_OMP_TEAMS_DISTRIBUTE_SIMD: + omp_end_st = ST_OMP_END_TEAMS_DISTRIBUTE_SIMD; + break; + case ST_OMP_DISTRIBUTE: + omp_end_st = ST_OMP_END_DISTRIBUTE; + break; + case ST_OMP_DISTRIBUTE_PARALLEL_DO: + omp_end_st = ST_OMP_END_DISTRIBUTE_PARALLEL_DO; + break; + case ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + omp_end_st = ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD; + break; + case ST_OMP_DISTRIBUTE_SIMD: + omp_end_st = ST_OMP_END_DISTRIBUTE_SIMD; + break; case ST_OMP_WORKSHARE: omp_end_st = ST_OMP_END_WORKSHARE; break; *************** parse_omp_structured_block (gfc_statemen *** 3744,3749 **** --- 4141,4147 ---- break; case ST_OMP_PARALLEL_DO: + case ST_OMP_PARALLEL_DO_SIMD: st = parse_omp_do (st); continue; *************** parse_executable (gfc_statement st) *** 3916,3922 **** --- 4314,4325 ---- case ST_OMP_CRITICAL: case ST_OMP_MASTER: case ST_OMP_SINGLE: + case ST_OMP_TARGET: + case ST_OMP_TARGET_DATA: + case ST_OMP_TARGET_TEAMS: + case ST_OMP_TEAMS: case ST_OMP_TASK: + case ST_OMP_TASKGROUP: parse_omp_structured_block (st, false); break; *************** parse_executable (gfc_statement st) *** 3925,3932 **** --- 4328,4350 ---- parse_omp_structured_block (st, true); break; + case ST_OMP_DISTRIBUTE: + case ST_OMP_DISTRIBUTE_PARALLEL_DO: + case ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case ST_OMP_DISTRIBUTE_SIMD: case ST_OMP_DO: + case ST_OMP_DO_SIMD: case ST_OMP_PARALLEL_DO: + case ST_OMP_PARALLEL_DO_SIMD: + case ST_OMP_SIMD: + case ST_OMP_TARGET_TEAMS_DISTRIBUTE: + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case ST_OMP_TEAMS_DISTRIBUTE: + case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case ST_OMP_TEAMS_DISTRIBUTE_SIMD: st = parse_omp_do (st); if (st == ST_IMPLIED_ENDDO) return st; diff -Nrcpad gcc-4.9.0/gcc/fortran/resolve.c gcc-4.9.1/gcc/fortran/resolve.c *** gcc-4.9.0/gcc/fortran/resolve.c Thu Mar 20 06:53:01 2014 --- gcc-4.9.1/gcc/fortran/resolve.c Mon Jun 30 16:35:48 2014 *************** typedef enum seq_type *** 40,46 **** seq_type; /* Stack to keep track of the nesting of blocks as we move through the ! code. See resolve_branch() and resolve_code(). */ typedef struct code_stack { --- 40,46 ---- seq_type; /* Stack to keep track of the nesting of blocks as we move through the ! code. See resolve_branch() and gfc_resolve_code(). */ typedef struct code_stack { *************** resolve_function (gfc_expr *expr) *** 2887,2893 **** /* See if function is already resolved. */ ! if (expr->value.function.name != NULL) { if (expr->ts.type == BT_UNKNOWN) expr->ts = sym->ts; --- 2887,2894 ---- /* See if function is already resolved. */ ! if (expr->value.function.name != NULL ! || expr->value.function.isym != NULL) { if (expr->ts.type == BT_UNKNOWN) expr->ts = sym->ts; *************** resolve_variable (gfc_expr *e) *** 4884,4890 **** if (check_assumed_size_reference (sym, e)) return false; ! /* Deal with forward references to entries during resolve_code, to satisfy, at least partially, 12.5.2.5. */ if (gfc_current_ns->entries && current_entry_id == sym->entry_id --- 4885,4891 ---- if (check_assumed_size_reference (sym, e)) return false; ! /* Deal with forward references to entries during gfc_resolve_code, to satisfy, at least partially, 12.5.2.5. */ if (gfc_current_ns->entries && current_entry_id == sym->entry_id *************** resolve_block_construct (gfc_code* code) *** 8926,8933 **** /* Resolve lists of blocks found in IF, SELECT CASE, WHERE, FORALL, GOTO and DO code nodes. */ - static void resolve_code (gfc_code *, gfc_namespace *); - void gfc_resolve_blocks (gfc_code *b, gfc_namespace *ns) { --- 8927,8932 ---- *************** gfc_resolve_blocks (gfc_code *b, gfc_nam *** 8979,8996 **** --- 8978,9016 ---- case EXEC_OMP_ATOMIC: case EXEC_OMP_CRITICAL: + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_MASTER: case EXEC_OMP_ORDERED: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_PARALLEL_WORKSHARE: case EXEC_OMP_SECTIONS: + case EXEC_OMP_SIMD: case EXEC_OMP_SINGLE: + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_DATA: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TARGET_UPDATE: case EXEC_OMP_TASK: + case EXEC_OMP_TASKGROUP: case EXEC_OMP_TASKWAIT: case EXEC_OMP_TASKYIELD: + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: case EXEC_OMP_WORKSHARE: break; *************** gfc_resolve_blocks (gfc_code *b, gfc_nam *** 8998,9004 **** gfc_internal_error ("gfc_resolve_blocks(): Bad block type"); } ! resolve_code (b->next, ns); } } --- 9018,9024 ---- gfc_internal_error ("gfc_resolve_blocks(): Bad block type"); } ! gfc_resolve_code (b->next, ns); } } *************** nonscalar_typebound_assign (gfc_symbol * *** 9411,9417 **** The pointer assignments are taken care of by the intrinsic assignment of the structure itself. This function recursively adds defined assignments where required. The recursion is accomplished ! by calling resolve_code. When the lhs in a defined assignment has intent INOUT, we need a temporary for the lhs. In pseudo-code: --- 9431,9437 ---- The pointer assignments are taken care of by the intrinsic assignment of the structure itself. This function recursively adds defined assignments where required. The recursion is accomplished ! by calling gfc_resolve_code. When the lhs in a defined assignment has intent INOUT, we need a temporary for the lhs. In pseudo-code: *************** generate_component_assignments (gfc_code *** 9529,9537 **** comp1, comp2, (*code)->loc); /* Convert the assignment if there is a defined assignment for ! this type. Otherwise, using the call from resolve_code, recurse into its components. */ ! resolve_code (this_code, ns); if (this_code->op == EXEC_ASSIGN_CALL) { --- 9549,9557 ---- comp1, comp2, (*code)->loc); /* Convert the assignment if there is a defined assignment for ! this type. Otherwise, using the call from gfc_resolve_code, recurse into its components. */ ! gfc_resolve_code (this_code, ns); if (this_code->op == EXEC_ASSIGN_CALL) { *************** generate_component_assignments (gfc_code *** 9695,9702 **** /* Given a block of code, recursively resolve everything pointed to by this code block. */ ! static void ! resolve_code (gfc_code *code, gfc_namespace *ns) { int omp_workshare_save; int forall_save, do_concurrent_save; --- 9715,9722 ---- /* Given a block of code, recursively resolve everything pointed to by this code block. */ ! void ! gfc_resolve_code (gfc_code *code, gfc_namespace *ns) { int omp_workshare_save; int forall_save, do_concurrent_save; *************** resolve_code (gfc_code *code, gfc_namesp *** 9733,9745 **** --- 9753,9780 ---- break; case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: case EXEC_OMP_TASK: + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: omp_workshare_save = omp_workshare_flag; omp_workshare_flag = 0; gfc_resolve_omp_parallel_blocks (code, ns); break; + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: + case EXEC_OMP_SIMD: gfc_resolve_omp_do_blocks (code, ns); break; case EXEC_SELECT_TYPE: *************** resolve_code (gfc_code *code, gfc_namesp *** 9960,9966 **** case EXEC_DO_WHILE: if (code->expr1 == NULL) ! gfc_internal_error ("resolve_code(): No expression on DO WHILE"); if (t && (code->expr1->rank != 0 || code->expr1->ts.type != BT_LOGICAL)) --- 9995,10002 ---- case EXEC_DO_WHILE: if (code->expr1 == NULL) ! gfc_internal_error ("gfc_resolve_code(): No expression on " ! "DO WHILE"); if (t && (code->expr1->rank != 0 || code->expr1->ts.type != BT_LOGICAL)) *************** resolve_code (gfc_code *code, gfc_namesp *** 10054,10077 **** case EXEC_OMP_ATOMIC: case EXEC_OMP_BARRIER: case EXEC_OMP_CRITICAL: case EXEC_OMP_FLUSH: case EXEC_OMP_DO: case EXEC_OMP_MASTER: case EXEC_OMP_ORDERED: case EXEC_OMP_SECTIONS: case EXEC_OMP_SINGLE: case EXEC_OMP_TASKWAIT: case EXEC_OMP_TASKYIELD: case EXEC_OMP_WORKSHARE: gfc_resolve_omp_directive (code, ns); break; case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_PARALLEL_WORKSHARE: - case EXEC_OMP_TASK: omp_workshare_save = omp_workshare_flag; omp_workshare_flag = 0; gfc_resolve_omp_directive (code, ns); --- 10090,10136 ---- case EXEC_OMP_ATOMIC: case EXEC_OMP_BARRIER: + case EXEC_OMP_CANCEL: + case EXEC_OMP_CANCELLATION_POINT: case EXEC_OMP_CRITICAL: case EXEC_OMP_FLUSH: + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_MASTER: case EXEC_OMP_ORDERED: case EXEC_OMP_SECTIONS: + case EXEC_OMP_SIMD: case EXEC_OMP_SINGLE: + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_DATA: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TARGET_UPDATE: + case EXEC_OMP_TASK: + case EXEC_OMP_TASKGROUP: case EXEC_OMP_TASKWAIT: case EXEC_OMP_TASKYIELD: + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: case EXEC_OMP_WORKSHARE: gfc_resolve_omp_directive (code, ns); break; case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_PARALLEL_WORKSHARE: omp_workshare_save = omp_workshare_flag; omp_workshare_flag = 0; gfc_resolve_omp_directive (code, ns); *************** resolve_code (gfc_code *code, gfc_namesp *** 10079,10085 **** break; default: ! gfc_internal_error ("resolve_code(): Bad statement code"); } } --- 10138,10144 ---- break; default: ! gfc_internal_error ("gfc_resolve_code(): Bad statement code"); } } *************** resolve_fl_variable (gfc_symbol *sym, in *** 10779,10785 **** } /* Constraints on deferred type parameter. */ ! if (sym->ts.deferred && !(sym->attr.pointer || sym->attr.allocatable)) { gfc_error ("Entity '%s' at %L has a deferred type parameter and " "requires either the pointer or allocatable attribute", --- 10838,10847 ---- } /* Constraints on deferred type parameter. */ ! if (sym->ts.deferred ! && !(sym->attr.pointer ! || sym->attr.allocatable ! || sym->attr.omp_udr_artificial_var)) { gfc_error ("Entity '%s' at %L has a deferred type parameter and " "requires either the pointer or allocatable attribute", *************** resolve_fl_variable (gfc_symbol *sym, in *** 10794,10800 **** dummy arguments. */ e = sym->ts.u.cl->length; if (e == NULL && !sym->attr.dummy && !sym->attr.result ! && !sym->ts.deferred && !sym->attr.select_type_temporary) { gfc_error ("Entity with assumed character length at %L must be a " "dummy argument or a PARAMETER", &sym->declared_at); --- 10856,10863 ---- dummy arguments. */ e = sym->ts.u.cl->length; if (e == NULL && !sym->attr.dummy && !sym->attr.result ! && !sym->ts.deferred && !sym->attr.select_type_temporary ! && !sym->attr.omp_udr_artificial_var) { gfc_error ("Entity with assumed character length at %L must be a " "dummy argument or a PARAMETER", &sym->declared_at); *************** resolve_fl_procedure (gfc_symbol *sym, i *** 11200,11214 **** the requirements of the standard for procedures used as finalizers. */ static bool ! gfc_resolve_finalizers (gfc_symbol* derived) { gfc_finalizer* list; gfc_finalizer** prev_link; /* For removing wrong entries from the list. */ bool result = true; bool seen_scalar = false; if (!derived->f2k_derived || !derived->f2k_derived->finalizers) ! return true; /* Walk over the list of finalizer-procedures, check them, and if any one does not fit in with the standard's definition, print an error and remove --- 11263,11298 ---- the requirements of the standard for procedures used as finalizers. */ static bool ! gfc_resolve_finalizers (gfc_symbol* derived, bool *finalizable) { gfc_finalizer* list; gfc_finalizer** prev_link; /* For removing wrong entries from the list. */ bool result = true; bool seen_scalar = false; + gfc_symbol *vtab; + gfc_component *c; + /* Return early when not finalizable. Additionally, ensure that derived-type + components have a their finalizables resolved. */ if (!derived->f2k_derived || !derived->f2k_derived->finalizers) ! { ! bool has_final = false; ! for (c = derived->components; c; c = c->next) ! if (c->ts.type == BT_DERIVED ! && !c->attr.pointer && !c->attr.proc_pointer && !c->attr.allocatable) ! { ! bool has_final2 = false; ! if (!gfc_resolve_finalizers (c->ts.u.derived, &has_final)) ! return false; /* Error. */ ! has_final = has_final || has_final2; ! } ! if (!has_final) ! { ! if (finalizable) ! *finalizable = false; ! return true; ! } ! } /* Walk over the list of finalizer-procedures, check them, and if any one does not fit in with the standard's definition, print an error and remove *************** gfc_resolve_finalizers (gfc_symbol* deri *** 11330,11341 **** /* Remove wrong nodes immediately from the list so we don't risk any troubles in the future when they might fail later expectations. */ error: - result = false; i = list; *prev_link = list->next; gfc_free_finalizer (i); } /* Warn if we haven't seen a scalar finalizer procedure (but we know there were nodes in the list, must have been for arrays. It is surely a good idea to have a scalar version there if there's something to finalize. */ --- 11414,11428 ---- /* Remove wrong nodes immediately from the list so we don't risk any troubles in the future when they might fail later expectations. */ error: i = list; *prev_link = list->next; gfc_free_finalizer (i); + result = false; } + if (result == false) + return false; + /* Warn if we haven't seen a scalar finalizer procedure (but we know there were nodes in the list, must have been for arrays. It is surely a good idea to have a scalar version there if there's something to finalize. */ *************** error: *** 11344,11351 **** " defined at %L, suggest also scalar one", derived->name, &derived->declared_at); ! gfc_find_derived_vtab (derived); ! return result; } --- 11431,11444 ---- " defined at %L, suggest also scalar one", derived->name, &derived->declared_at); ! vtab = gfc_find_derived_vtab (derived); ! c = vtab->ts.u.derived->components->next->next->next->next->next; ! gfc_set_sym_referenced (c->initializer->symtree->n.sym); ! ! if (finalizable) ! *finalizable = true; ! ! return true; } *************** resolve_fl_derived (gfc_symbol *sym) *** 12513,12519 **** return false; /* Resolve the finalizer procedures. */ ! if (!gfc_resolve_finalizers (sym)) return false; if (sym->attr.is_class && sym->ts.u.derived == NULL) --- 12606,12612 ---- return false; /* Resolve the finalizer procedures. */ ! if (!gfc_resolve_finalizers (sym, NULL)) return false; if (sym->attr.is_class && sym->ts.u.derived == NULL) *************** resolve_symbol (gfc_symbol *sym) *** 13399,13404 **** --- 13492,13509 ---- || sym->ns->proc_name->attr.flavor != FL_MODULE))) gfc_error ("Threadprivate at %L isn't SAVEd", &sym->declared_at); + /* Check omp declare target restrictions. */ + if (sym->attr.omp_declare_target + && sym->attr.flavor == FL_VARIABLE + && !sym->attr.save + && !sym->ns->save_all + && (!sym->attr.in_common + && sym->module == NULL + && (sym->ns->proc_name == NULL + || sym->ns->proc_name->attr.flavor != FL_MODULE))) + gfc_error ("!$OMP DECLARE TARGET variable '%s' at %L isn't SAVEd", + sym->name, &sym->declared_at); + /* If we have come this far we can apply default-initializers, as described in 14.7.5, to those variables that have not already been assigned one. */ *************** gfc_resolve_uops (gfc_symtree *symtree) *** 14496,14502 **** assign types to all intermediate expressions, make sure that all assignments are to compatible types and figure out which names refer to which functions or subroutines. It doesn't check code ! block, which is handled by resolve_code. */ static void resolve_types (gfc_namespace *ns) --- 14601,14607 ---- assign types to all intermediate expressions, make sure that all assignments are to compatible types and figure out which names refer to which functions or subroutines. It doesn't check code ! block, which is handled by gfc_resolve_code. */ static void resolve_types (gfc_namespace *ns) *************** resolve_types (gfc_namespace *ns) *** 14577,14587 **** gfc_resolve_uops (ns->uop_root); gfc_current_ns = old_ns; } ! /* Call resolve_code recursively. */ static void resolve_codes (gfc_namespace *ns) --- 14682,14696 ---- gfc_resolve_uops (ns->uop_root); + gfc_resolve_omp_declare_simd (ns); + + gfc_resolve_omp_udrs (ns->omp_udr_root); + gfc_current_ns = old_ns; } ! /* Call gfc_resolve_code recursively. */ static void resolve_codes (gfc_namespace *ns) *************** resolve_codes (gfc_namespace *ns) *** 14607,14613 **** old_obstack = labels_obstack; bitmap_obstack_initialize (&labels_obstack); ! resolve_code (ns->code, ns); bitmap_obstack_release (&labels_obstack); labels_obstack = old_obstack; --- 14716,14722 ---- old_obstack = labels_obstack; bitmap_obstack_initialize (&labels_obstack); ! gfc_resolve_code (ns->code, ns); bitmap_obstack_release (&labels_obstack); labels_obstack = old_obstack; diff -Nrcpad gcc-4.9.0/gcc/fortran/scanner.c gcc-4.9.1/gcc/fortran/scanner.c *** gcc-4.9.0/gcc/fortran/scanner.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/scanner.c Mon Jun 30 16:35:48 2014 *************** skip_free_comments (void) *** 752,758 **** 2) handle OpenMP conditional compilation, where !$ should be treated as 2 spaces (for initial lines only if followed by space). */ ! if (gfc_option.gfc_flag_openmp && at_bol) { locus old_loc = gfc_current_locus; if (next_char () == '$') --- 752,759 ---- 2) handle OpenMP conditional compilation, where !$ should be treated as 2 spaces (for initial lines only if followed by space). */ ! if ((gfc_option.gfc_flag_openmp ! || gfc_option.gfc_flag_openmp_simd) && at_bol) { locus old_loc = gfc_current_locus; if (next_char () == '$') *************** skip_fixed_comments (void) *** 878,884 **** && continue_line < gfc_linebuf_linenum (gfc_current_locus.lb)) continue_line = gfc_linebuf_linenum (gfc_current_locus.lb); ! if (gfc_option.gfc_flag_openmp) { if (next_char () == '$') { --- 879,885 ---- && continue_line < gfc_linebuf_linenum (gfc_current_locus.lb)) continue_line = gfc_linebuf_linenum (gfc_current_locus.lb); ! if (gfc_option.gfc_flag_openmp || gfc_option.gfc_flag_openmp_simd) { if (next_char () == '$') { *************** include_line (gfc_char_t *line) *** 1821,1827 **** c = line; ! if (gfc_option.gfc_flag_openmp) { if (gfc_current_form == FORM_FREE) { --- 1822,1828 ---- c = line; ! if (gfc_option.gfc_flag_openmp || gfc_option.gfc_flag_openmp_simd) { if (gfc_current_form == FORM_FREE) { diff -Nrcpad gcc-4.9.0/gcc/fortran/st.c gcc-4.9.1/gcc/fortran/st.c *** gcc-4.9.0/gcc/fortran/st.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/st.c Mon Jun 30 16:35:48 2014 *************** gfc_free_statement (gfc_code *p) *** 185,198 **** --- 185,220 ---- gfc_free_forall_iterator (p->ext.forall_iterator); break; + case EXEC_OMP_CANCEL: + case EXEC_OMP_CANCELLATION_POINT: + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_END_SINGLE: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_SECTIONS: + case EXEC_OMP_SIMD: case EXEC_OMP_SINGLE: + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_DATA: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TARGET_UPDATE: case EXEC_OMP_TASK: + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: case EXEC_OMP_WORKSHARE: case EXEC_OMP_PARALLEL_WORKSHARE: gfc_free_omp_clauses (p->ext.omp_clauses); *************** gfc_free_statement (gfc_code *p) *** 203,209 **** break; case EXEC_OMP_FLUSH: ! gfc_free_namelist (p->ext.omp_namelist); break; case EXEC_OMP_ATOMIC: --- 225,231 ---- break; case EXEC_OMP_FLUSH: ! gfc_free_omp_namelist (p->ext.omp_namelist); break; case EXEC_OMP_ATOMIC: *************** gfc_free_statement (gfc_code *p) *** 211,216 **** --- 233,239 ---- case EXEC_OMP_MASTER: case EXEC_OMP_ORDERED: case EXEC_OMP_END_NOWAIT: + case EXEC_OMP_TASKGROUP: case EXEC_OMP_TASKWAIT: case EXEC_OMP_TASKYIELD: break; diff -Nrcpad gcc-4.9.0/gcc/fortran/symbol.c gcc-4.9.1/gcc/fortran/symbol.c *** gcc-4.9.0/gcc/fortran/symbol.c Wed Mar 19 21:03:14 2014 --- gcc-4.9.1/gcc/fortran/symbol.c Mon Jun 30 16:35:48 2014 *************** check_conflict (symbol_attribute *attr, *** 367,372 **** --- 367,373 ---- *asynchronous = "ASYNCHRONOUS", *codimension = "CODIMENSION", *contiguous = "CONTIGUOUS", *generic = "GENERIC"; static const char *threadprivate = "THREADPRIVATE"; + static const char *omp_declare_target = "OMP DECLARE TARGET"; const char *a1, *a2; int standard; *************** check_conflict (symbol_attribute *attr, *** 453,458 **** --- 454,460 ---- conf (dummy, entry); conf (dummy, intrinsic); conf (dummy, threadprivate); + conf (dummy, omp_declare_target); conf (pointer, target); conf (pointer, intrinsic); conf (pointer, elemental); *************** check_conflict (symbol_attribute *attr, *** 495,500 **** --- 497,503 ---- conf (in_equivalence, entry); conf (in_equivalence, allocatable); conf (in_equivalence, threadprivate); + conf (in_equivalence, omp_declare_target); conf (dummy, result); conf (entry, result); *************** check_conflict (symbol_attribute *attr, *** 543,548 **** --- 546,552 ---- conf (cray_pointee, in_common); conf (cray_pointee, in_equivalence); conf (cray_pointee, threadprivate); + conf (cray_pointee, omp_declare_target); conf (data, dummy); conf (data, function); *************** check_conflict (symbol_attribute *attr, *** 596,601 **** --- 600,607 ---- conf (proc_pointer, abstract) + conf (entry, omp_declare_target) + a1 = gfc_code2string (flavors, attr->flavor); if (attr->in_namelist *************** check_conflict (symbol_attribute *attr, *** 631,636 **** --- 637,643 ---- conf2 (function); conf2 (subroutine); conf2 (threadprivate); + conf2 (omp_declare_target); if (attr->access == ACCESS_PUBLIC || attr->access == ACCESS_PRIVATE) { *************** check_conflict (symbol_attribute *attr, *** 712,717 **** --- 719,725 ---- conf2 (subroutine); conf2 (threadprivate); conf2 (result); + conf2 (omp_declare_target); if (attr->intent != INTENT_UNKNOWN) { *************** gfc_add_threadprivate (symbol_attribute *** 1207,1212 **** --- 1215,1236 ---- bool + gfc_add_omp_declare_target (symbol_attribute *attr, const char *name, + locus *where) + { + + if (check_used (attr, name, where)) + return false; + + if (attr->omp_declare_target) + return true; + + attr->omp_declare_target = 1; + return check_conflict (attr, name, where); + } + + + bool gfc_add_target (symbol_attribute *attr, locus *where) { *************** gfc_copy_attr (symbol_attribute *dest, s *** 1761,1766 **** --- 1785,1793 ---- if (src->threadprivate && !gfc_add_threadprivate (dest, NULL, where)) goto fail; + if (src->omp_declare_target + && !gfc_add_omp_declare_target (dest, NULL, where)) + goto fail; if (src->target && !gfc_add_target (dest, where)) goto fail; if (src->dummy && !gfc_add_dummy (dest, NULL, where)) *************** gfc_get_uop (const char *name) *** 2450,2466 **** { gfc_user_op *uop; gfc_symtree *st; ! st = gfc_find_symtree (gfc_current_ns->uop_root, name); if (st != NULL) return st->n.uop; ! st = gfc_new_symtree (&gfc_current_ns->uop_root, name); uop = st->n.uop = XCNEW (gfc_user_op); uop->name = gfc_get_string (name); uop->access = ACCESS_UNKNOWN; ! uop->ns = gfc_current_ns; return uop; } --- 2477,2496 ---- { gfc_user_op *uop; gfc_symtree *st; + gfc_namespace *ns = gfc_current_ns; ! if (ns->omp_udr_ns) ! ns = ns->parent; ! st = gfc_find_symtree (ns->uop_root, name); if (st != NULL) return st->n.uop; ! st = gfc_new_symtree (&ns->uop_root, name); uop = st->n.uop = XCNEW (gfc_user_op); uop->name = gfc_get_string (name); uop->access = ACCESS_UNKNOWN; ! uop->ns = ns; return uop; } *************** gfc_get_sym_tree (const char *name, gfc_ *** 2771,2776 **** --- 2801,2812 ---- /* Try to find the symbol in ns. */ st = gfc_find_symtree (ns->sym_root, name); + if (st == NULL && ns->omp_udr_ns) + { + ns = ns->parent; + st = gfc_find_symtree (ns->sym_root, name); + } + if (st == NULL) { /* If not there, create a new symbol. */ *************** free_common_tree (gfc_symtree * common_t *** 3269,3274 **** --- 3305,3327 ---- } + /* Recursive function that deletes an entire tree and all the common + head structures it points to. */ + + static void + free_omp_udr_tree (gfc_symtree * omp_udr_tree) + { + if (omp_udr_tree == NULL) + return; + + free_omp_udr_tree (omp_udr_tree->left); + free_omp_udr_tree (omp_udr_tree->right); + + gfc_free_omp_udr (omp_udr_tree->n.omp_udr); + free (omp_udr_tree); + } + + /* Recursive function that deletes an entire tree and all the user operator nodes that it contains. */ *************** gfc_free_namespace (gfc_namespace *ns) *** 3465,3473 **** --- 3518,3528 ---- free_sym_tree (ns->sym_root); free_uop_tree (ns->uop_root); free_common_tree (ns->common_root); + free_omp_udr_tree (ns->omp_udr_root); free_tb_tree (ns->tb_sym_root); free_tb_tree (ns->tb_uop_root); gfc_free_finalizer_list (ns->finalizers); + gfc_free_omp_declare_simd_list (ns->omp_declare_simd); gfc_free_charlen (ns->cl_list, NULL); free_st_labels (ns->st_labels); diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-array.c gcc-4.9.1/gcc/fortran/trans-array.c *** gcc-4.9.0/gcc/fortran/trans-array.c Sun Apr 13 11:55:49 2014 --- gcc-4.9.1/gcc/fortran/trans-array.c Mon Jun 30 16:35:48 2014 *************** gfc_trans_dealloc_allocated (tree descri *** 7389,7396 **** /* This helper function calculates the size in words of a full array. */ ! static tree ! get_full_array_size (stmtblock_t *block, tree decl, int rank) { tree idx; tree nelems; --- 7389,7396 ---- /* This helper function calculates the size in words of a full array. */ ! tree ! gfc_full_array_size (stmtblock_t *block, tree decl, int rank) { tree idx; tree nelems; *************** get_full_array_size (stmtblock_t *block, *** 7416,7422 **** static tree duplicate_allocatable (tree dest, tree src, tree type, int rank, ! bool no_malloc, tree str_sz) { tree tmp; tree size; --- 7416,7422 ---- static tree duplicate_allocatable (tree dest, tree src, tree type, int rank, ! bool no_malloc, bool no_memcpy, tree str_sz) { tree tmp; tree size; *************** duplicate_allocatable (tree dest, tree s *** 7450,7458 **** gfc_add_expr_to_block (&block, tmp); } ! tmp = builtin_decl_explicit (BUILT_IN_MEMCPY); ! tmp = build_call_expr_loc (input_location, tmp, 3, dest, src, ! fold_convert (size_type_node, size)); } else { --- 7450,7462 ---- gfc_add_expr_to_block (&block, tmp); } ! if (!no_memcpy) ! { ! tmp = builtin_decl_explicit (BUILT_IN_MEMCPY); ! tmp = build_call_expr_loc (input_location, tmp, 3, dest, src, ! fold_convert (size_type_node, size)); ! gfc_add_expr_to_block (&block, tmp); ! } } else { *************** duplicate_allocatable (tree dest, tree s *** 7461,7467 **** gfc_init_block (&block); if (rank) ! nelems = get_full_array_size (&block, src, rank); else nelems = gfc_index_one_node; --- 7465,7471 ---- gfc_init_block (&block); if (rank) ! nelems = gfc_full_array_size (&block, src, rank); else nelems = gfc_index_one_node; *************** duplicate_allocatable (tree dest, tree s *** 7481,7494 **** /* We know the temporary and the value will be the same length, so can use memcpy. */ ! tmp = builtin_decl_explicit (BUILT_IN_MEMCPY); ! tmp = build_call_expr_loc (input_location, ! tmp, 3, gfc_conv_descriptor_data_get (dest), ! gfc_conv_descriptor_data_get (src), ! fold_convert (size_type_node, size)); } - gfc_add_expr_to_block (&block, tmp); tmp = gfc_finish_block (&block); /* Null the destination if the source is null; otherwise do --- 7485,7501 ---- /* We know the temporary and the value will be the same length, so can use memcpy. */ ! if (!no_memcpy) ! { ! tmp = builtin_decl_explicit (BUILT_IN_MEMCPY); ! tmp = build_call_expr_loc (input_location, tmp, 3, ! gfc_conv_descriptor_data_get (dest), ! gfc_conv_descriptor_data_get (src), ! fold_convert (size_type_node, size)); ! gfc_add_expr_to_block (&block, tmp); ! } } tmp = gfc_finish_block (&block); /* Null the destination if the source is null; otherwise do *************** duplicate_allocatable (tree dest, tree s *** 7510,7516 **** tree gfc_duplicate_allocatable (tree dest, tree src, tree type, int rank) { ! return duplicate_allocatable (dest, src, type, rank, false, NULL_TREE); } --- 7517,7524 ---- tree gfc_duplicate_allocatable (tree dest, tree src, tree type, int rank) { ! return duplicate_allocatable (dest, src, type, rank, false, false, ! NULL_TREE); } *************** gfc_duplicate_allocatable (tree dest, tr *** 7519,7525 **** tree gfc_copy_allocatable_data (tree dest, tree src, tree type, int rank) { ! return duplicate_allocatable (dest, src, type, rank, true, NULL_TREE); } --- 7527,7542 ---- tree gfc_copy_allocatable_data (tree dest, tree src, tree type, int rank) { ! return duplicate_allocatable (dest, src, type, rank, true, false, ! NULL_TREE); ! } ! ! /* Allocate dest to the same size as src, but don't copy anything. */ ! ! tree ! gfc_duplicate_allocatable_nocopy (tree dest, tree src, tree type, int rank) ! { ! return duplicate_allocatable (dest, src, type, rank, false, true, NULL_TREE); } *************** structure_alloc_comps (gfc_symbol * der_ *** 7579,7585 **** /* Use the descriptor for an allocatable array. Since this is a full array reference, we only need the descriptor information from dimension = rank. */ ! tmp = get_full_array_size (&fnblock, decl, rank); tmp = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, tmp, gfc_index_one_node); --- 7596,7602 ---- /* Use the descriptor for an allocatable array. Since this is a full array reference, we only need the descriptor information from dimension = rank. */ ! tmp = gfc_full_array_size (&fnblock, decl, rank); tmp = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, tmp, gfc_index_one_node); *************** structure_alloc_comps (gfc_symbol * der_ *** 7938,7944 **** gfc_add_expr_to_block (&fnblock, tmp); size = size_of_string_in_bytes (c->ts.kind, len); tmp = duplicate_allocatable (dcmp, comp, ctype, rank, ! false, size); gfc_add_expr_to_block (&fnblock, tmp); } else if (c->attr.allocatable && !c->attr.proc_pointer --- 7955,7961 ---- gfc_add_expr_to_block (&fnblock, tmp); size = size_of_string_in_bytes (c->ts.kind, len); tmp = duplicate_allocatable (dcmp, comp, ctype, rank, ! false, false, size); gfc_add_expr_to_block (&fnblock, tmp); } else if (c->attr.allocatable && !c->attr.proc_pointer diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-array.h gcc-4.9.1/gcc/fortran/trans-array.h *** gcc-4.9.0/gcc/fortran/trans-array.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/trans-array.h Mon Jun 30 16:35:48 2014 *************** void gfc_trans_g77_array (gfc_symbol *, *** 44,53 **** --- 44,57 ---- /* Generate code to deallocate an array, if it is allocated. */ tree gfc_trans_dealloc_allocated (tree, bool, gfc_expr *); + tree gfc_full_array_size (stmtblock_t *, tree, int); + tree gfc_duplicate_allocatable (tree dest, tree src, tree type, int rank); tree gfc_copy_allocatable_data (tree dest, tree src, tree type, int rank); + tree gfc_duplicate_allocatable_nocopy (tree, tree, tree, int); + tree gfc_nullify_alloc_comp (gfc_symbol *, tree, int); tree gfc_deallocate_alloc_comp (gfc_symbol *, tree, int); diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-common.c gcc-4.9.1/gcc/fortran/trans-common.c *** gcc-4.9.0/gcc/fortran/trans-common.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/trans-common.c Mon Jun 30 16:35:48 2014 *************** build_common_decl (gfc_common_head *com, *** 456,461 **** --- 456,466 ---- if (com->threadprivate) DECL_TLS_MODEL (decl) = decl_default_tls_model (decl); + if (com->omp_declare_target) + DECL_ATTRIBUTES (decl) + = tree_cons (get_identifier ("omp declare target"), + NULL_TREE, DECL_ATTRIBUTES (decl)); + /* Place the back end declaration for this common block in GLOBAL_BINDING_LEVEL. */ gfc_map_of_all_commons[identifier] = pushdecl_top_level (decl); *************** create_common (gfc_common_head *com, seg *** 705,710 **** --- 710,716 ---- TREE_ADDRESSABLE (var_decl) = 1; /* Fake variables are not visible from other translation units. */ TREE_PUBLIC (var_decl) = 0; + gfc_finish_decl_attrs (var_decl, &s->sym->attr); /* To preserve identifier names in COMMON, chain to procedure scope unless at top level in a module definition. */ diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-decl.c gcc-4.9.1/gcc/fortran/trans-decl.c *** gcc-4.9.0/gcc/fortran/trans-decl.c Tue Feb 18 22:09:39 2014 --- gcc-4.9.1/gcc/fortran/trans-decl.c Mon Jun 30 16:35:48 2014 *************** gfc_finish_decl (tree decl) *** 496,501 **** --- 496,524 ---- } + /* Handle setting of GFC_DECL_SCALAR* on DECL. */ + + void + gfc_finish_decl_attrs (tree decl, symbol_attribute *attr) + { + if (!attr->dimension && !attr->codimension) + { + /* Handle scalar allocatable variables. */ + if (attr->allocatable) + { + gfc_allocate_lang_decl (decl); + GFC_DECL_SCALAR_ALLOCATABLE (decl) = 1; + } + /* Handle scalar pointer variables. */ + if (attr->pointer) + { + gfc_allocate_lang_decl (decl); + GFC_DECL_SCALAR_POINTER (decl) = 1; + } + } + } + + /* Apply symbol attributes to a variable, and add it to the function scope. */ static void *************** gfc_finish_var_decl (tree decl, gfc_symb *** 607,612 **** --- 630,637 ---- if (sym->attr.threadprivate && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) DECL_TLS_MODEL (decl) = decl_default_tls_model (decl); + + gfc_finish_decl_attrs (decl, &sym->attr); } *************** gfc_finish_var_decl (tree decl, gfc_symb *** 615,622 **** void gfc_allocate_lang_decl (tree decl) { ! DECL_LANG_SPECIFIC (decl) = ggc_alloc_cleared_lang_decl(sizeof ! (struct lang_decl)); } /* Remember a symbol to generate initialization/cleanup code at function --- 640,648 ---- void gfc_allocate_lang_decl (tree decl) { ! if (DECL_LANG_SPECIFIC (decl) == NULL) ! DECL_LANG_SPECIFIC (decl) ! = ggc_alloc_cleared_lang_decl (sizeof (struct lang_decl)); } /* Remember a symbol to generate initialization/cleanup code at function *************** add_attributes_to_decl (symbol_attribute *** 1192,1197 **** --- 1218,1227 ---- list = chainon (list, attr); } + if (sym_attr.omp_declare_target) + list = tree_cons (get_identifier ("omp declare target"), + NULL_TREE, list); + return list; } *************** gfc_get_symbol_decl (gfc_symbol * sym) *** 1518,1523 **** --- 1548,1556 ---- && !sym->attr.select_type_temporary) DECL_BY_REFERENCE (decl) = 1; + if (sym->attr.associate_var) + GFC_DECL_ASSOCIATE_VAR_P (decl) = 1; + if (sym->attr.vtab || (sym->name[0] == '_' && strncmp ("__def_init", sym->name, 10) == 0)) TREE_READONLY (decl) = 1; *************** module_sym: *** 1850,1855 **** --- 1883,1893 ---- if (DECL_CONTEXT (fndecl) == NULL_TREE) pushdecl_top_level (fndecl); + if (sym->formal_ns + && sym->formal_ns->proc_name == sym + && sym->formal_ns->omp_declare_simd) + gfc_trans_omp_declare_simd (sym->formal_ns); + return fndecl; } *************** create_function_arglist (gfc_symbol * sy *** 2232,2237 **** --- 2270,2276 ---- DECL_BY_REFERENCE (parm) = 1; gfc_finish_decl (parm); + gfc_finish_decl_attrs (parm, &f->sym->attr); f->sym->backend_decl = parm; *************** gfc_create_function_decl (gfc_namespace *** 2544,2549 **** --- 2583,2591 ---- /* Now create the read argument list. */ create_function_arglist (ns->proc_name); + + if (ns->omp_declare_simd) + gfc_trans_omp_declare_simd (ns); } /* Return the decl used to hold the function return value. If *************** gfc_get_fake_result_decl (gfc_symbol * s *** 2672,2677 **** --- 2714,2720 ---- TREE_ADDRESSABLE (decl) = 1; layout_decl (decl, 0); + gfc_finish_decl_attrs (decl, &sym->attr); if (parent_flag) gfc_add_decl_to_parent_function (decl); *************** gfc_create_module_variable (gfc_symbol * *** 4237,4244 **** } /* Don't generate variables from other modules. Variables from ! COMMONs will already have been generated. */ ! if (sym->attr.use_assoc || sym->attr.in_common) return; /* Equivalenced variables arrive here after creation. */ --- 4280,4287 ---- } /* Don't generate variables from other modules. Variables from ! COMMONs and Cray pointees will already have been generated. */ ! if (sym->attr.use_assoc || sym->attr.in_common || sym->attr.cray_pointee) return; /* Equivalenced variables arrive here after creation. */ diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-expr.c gcc-4.9.1/gcc/fortran/trans-expr.c *** gcc-4.9.0/gcc/fortran/trans-expr.c Sun Apr 13 11:55:49 2014 --- gcc-4.9.1/gcc/fortran/trans-expr.c Mon Jul 7 20:00:49 2014 *************** gfc_conv_expr_reference (gfc_se * se, gf *** 6472,6477 **** --- 6472,6491 ---- /* Take the address of that value. */ se->expr = gfc_build_addr_expr (NULL_TREE, var); + if (expr->ts.type == BT_DERIVED && expr->rank + && !gfc_is_finalizable (expr->ts.u.derived, NULL) + && expr->ts.u.derived->attr.alloc_comp + && expr->expr_type != EXPR_VARIABLE) + { + tree tmp; + + tmp = build_fold_indirect_ref_loc (input_location, se->expr); + tmp = gfc_deallocate_alloc_comp (expr->ts.u.derived, tmp, expr->rank); + + /* The components shall be deallocated before + their containing entity. */ + gfc_prepend_expr_to_block (&se->post, tmp); + } } *************** fcncall_realloc_result (gfc_se *se, int *** 7251,7257 **** res_desc = gfc_evaluate_now (desc, &se->pre); gfc_conv_descriptor_data_set (&se->pre, res_desc, null_pointer_node); ! se->expr = gfc_build_addr_expr (TREE_TYPE (se->expr), res_desc); /* Free the lhs after the function call and copy the result data to the lhs descriptor. */ --- 7265,7271 ---- res_desc = gfc_evaluate_now (desc, &se->pre); gfc_conv_descriptor_data_set (&se->pre, res_desc, null_pointer_node); ! se->expr = gfc_build_addr_expr (NULL_TREE, res_desc); /* Free the lhs after the function call and copy the result data to the lhs descriptor. */ diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-openmp.c gcc-4.9.1/gcc/fortran/trans-openmp.c *** gcc-4.9.0/gcc/fortran/trans-openmp.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/trans-openmp.c Mon Jun 30 16:35:48 2014 *************** gfc_omp_privatize_by_reference (const_tr *** 53,61 **** if (TREE_CODE (type) == POINTER_TYPE) { /* Array POINTER/ALLOCATABLE have aggregate types, all user variables ! that have POINTER_TYPE type and don't have GFC_POINTER_TYPE_P ! set are supposed to be privatized by reference. */ ! if (GFC_POINTER_TYPE_P (type)) return false; if (!DECL_ARTIFICIAL (decl) --- 53,65 ---- if (TREE_CODE (type) == POINTER_TYPE) { /* Array POINTER/ALLOCATABLE have aggregate types, all user variables ! that have POINTER_TYPE type and aren't scalar pointers, scalar ! allocatables, Cray pointees or C pointers are supposed to be ! privatized by reference. */ ! if (GFC_DECL_GET_SCALAR_POINTER (decl) ! || GFC_DECL_GET_SCALAR_ALLOCATABLE (decl) ! || GFC_DECL_CRAY_POINTEE (decl) ! || VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))) return false; if (!DECL_ARTIFICIAL (decl) *************** gfc_omp_privatize_by_reference (const_tr *** 77,82 **** --- 81,99 ---- enum omp_clause_default_kind gfc_omp_predetermined_sharing (tree decl) { + /* Associate names preserve the association established during ASSOCIATE. + As they are implemented either as pointers to the selector or array + descriptor and shouldn't really change in the ASSOCIATE region, + this decl can be either shared or firstprivate. If it is a pointer, + use firstprivate, as it is cheaper that way, otherwise make it shared. */ + if (GFC_DECL_ASSOCIATE_VAR_P (decl)) + { + if (TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE) + return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE; + else + return OMP_CLAUSE_DEFAULT_SHARED; + } + if (DECL_ARTIFICIAL (decl) && ! GFC_DECL_RESULT (decl) && ! (DECL_LANG_SPECIFIC (decl) *************** gfc_omp_report_decl (tree decl) *** 135,140 **** --- 152,192 ---- return decl; } + /* Return true if TYPE has any allocatable components. */ + + static bool + gfc_has_alloc_comps (tree type, tree decl) + { + tree field, ftype; + + if (POINTER_TYPE_P (type)) + { + if (GFC_DECL_GET_SCALAR_ALLOCATABLE (decl)) + type = TREE_TYPE (type); + else if (GFC_DECL_GET_SCALAR_POINTER (decl)) + return false; + } + + while (GFC_DESCRIPTOR_TYPE_P (type) || GFC_ARRAY_TYPE_P (type)) + type = gfc_get_element_type (type); + + if (TREE_CODE (type) != RECORD_TYPE) + return false; + + for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) + { + ftype = TREE_TYPE (field); + if (GFC_DECL_GET_SCALAR_ALLOCATABLE (field)) + return true; + if (GFC_DESCRIPTOR_TYPE_P (ftype) + && GFC_TYPE_ARRAY_AKIND (ftype) == GFC_ARRAY_ALLOCATABLE) + return true; + if (gfc_has_alloc_comps (ftype, field)) + return true; + } + return false; + } + /* Return true if DECL in private clause needs OMP_CLAUSE_PRIVATE_OUTER_REF on the private clause. */ bool *************** gfc_omp_private_outer_ref (tree decl) *** 146,213 **** && GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_ALLOCATABLE) return true; return false; } /* Return code to initialize DECL with its default constructor, or NULL if there's nothing to do. */ tree gfc_omp_clause_default_ctor (tree clause, tree decl, tree outer) { ! tree type = TREE_TYPE (decl), rank, size, esize, ptr, cond, then_b, else_b; stmtblock_t block, cond_block; ! if (! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! return NULL; ! if (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_REDUCTION) ! return NULL; ! gcc_assert (outer != NULL); ! gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_PRIVATE ! || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LASTPRIVATE); ! /* Allocatable arrays in PRIVATE clauses need to be set to "not currently allocated" allocation status if outer array is "not currently allocated", otherwise should be allocated. */ gfc_start_block (&block); gfc_init_block (&cond_block); ! gfc_add_modify (&cond_block, decl, outer); ! rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (decl, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, ! size, gfc_conv_descriptor_lbound_get (decl, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, gfc_conv_descriptor_stride_get (decl, rank)); ! esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), &cond_block); ! ptr = gfc_create_var (pvoid_type_node, NULL); gfc_allocate_using_malloc (&cond_block, ptr, size, NULL_TREE); ! gfc_conv_descriptor_data_set (&cond_block, decl, ptr); ! then_b = gfc_finish_block (&cond_block); ! gfc_init_block (&cond_block); ! gfc_conv_descriptor_data_set (&cond_block, decl, null_pointer_node); ! else_b = gfc_finish_block (&cond_block); ! cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! fold_convert (pvoid_type_node, ! gfc_conv_descriptor_data_get (outer)), ! null_pointer_node); ! gfc_add_expr_to_block (&block, build3_loc (input_location, COND_EXPR, ! void_type_node, cond, then_b, else_b)); return gfc_finish_block (&block); } --- 198,532 ---- && GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_ALLOCATABLE) return true; + if (GFC_DECL_GET_SCALAR_ALLOCATABLE (decl)) + return true; + + if (gfc_omp_privatize_by_reference (decl)) + type = TREE_TYPE (type); + + if (gfc_has_alloc_comps (type, decl)) + return true; + return false; } + /* Callback for gfc_omp_unshare_expr. */ + + static tree + gfc_omp_unshare_expr_r (tree *tp, int *walk_subtrees, void *) + { + tree t = *tp; + enum tree_code code = TREE_CODE (t); + + /* Stop at types, decls, constants like copy_tree_r. */ + if (TREE_CODE_CLASS (code) == tcc_type + || TREE_CODE_CLASS (code) == tcc_declaration + || TREE_CODE_CLASS (code) == tcc_constant + || code == BLOCK) + *walk_subtrees = 0; + else if (handled_component_p (t) + || TREE_CODE (t) == MEM_REF) + { + *tp = unshare_expr (t); + *walk_subtrees = 0; + } + + return NULL_TREE; + } + + /* Unshare in expr anything that the FE which normally doesn't + care much about tree sharing (because during gimplification + everything is unshared) could cause problems with tree sharing + at omp-low.c time. */ + + static tree + gfc_omp_unshare_expr (tree expr) + { + walk_tree (&expr, gfc_omp_unshare_expr_r, NULL, NULL); + return expr; + } + + enum walk_alloc_comps + { + WALK_ALLOC_COMPS_DTOR, + WALK_ALLOC_COMPS_DEFAULT_CTOR, + WALK_ALLOC_COMPS_COPY_CTOR + }; + + /* Handle allocatable components in OpenMP clauses. */ + + static tree + gfc_walk_alloc_comps (tree decl, tree dest, tree var, + enum walk_alloc_comps kind) + { + stmtblock_t block, tmpblock; + tree type = TREE_TYPE (decl), then_b, tem, field; + gfc_init_block (&block); + + if (GFC_ARRAY_TYPE_P (type) || GFC_DESCRIPTOR_TYPE_P (type)) + { + if (GFC_DESCRIPTOR_TYPE_P (type)) + { + gfc_init_block (&tmpblock); + tem = gfc_full_array_size (&tmpblock, decl, + GFC_TYPE_ARRAY_RANK (type)); + then_b = gfc_finish_block (&tmpblock); + gfc_add_expr_to_block (&block, gfc_omp_unshare_expr (then_b)); + tem = gfc_omp_unshare_expr (tem); + tem = fold_build2_loc (input_location, MINUS_EXPR, + gfc_array_index_type, tem, + gfc_index_one_node); + } + else + { + if (!TYPE_DOMAIN (type) + || TYPE_MAX_VALUE (TYPE_DOMAIN (type)) == NULL_TREE + || TYPE_MIN_VALUE (TYPE_DOMAIN (type)) == error_mark_node + || TYPE_MAX_VALUE (TYPE_DOMAIN (type)) == error_mark_node) + { + tem = fold_build2 (EXACT_DIV_EXPR, sizetype, + TYPE_SIZE_UNIT (type), + TYPE_SIZE_UNIT (TREE_TYPE (type))); + tem = size_binop (MINUS_EXPR, tem, size_one_node); + } + else + tem = array_type_nelts (type); + tem = fold_convert (gfc_array_index_type, tem); + } + + tree nelems = gfc_evaluate_now (tem, &block); + tree index = gfc_create_var (gfc_array_index_type, "S"); + + gfc_init_block (&tmpblock); + tem = gfc_conv_array_data (decl); + tree declvar = build_fold_indirect_ref_loc (input_location, tem); + tree declvref = gfc_build_array_ref (declvar, index, NULL); + tree destvar, destvref = NULL_TREE; + if (dest) + { + tem = gfc_conv_array_data (dest); + destvar = build_fold_indirect_ref_loc (input_location, tem); + destvref = gfc_build_array_ref (destvar, index, NULL); + } + gfc_add_expr_to_block (&tmpblock, + gfc_walk_alloc_comps (declvref, destvref, + var, kind)); + + gfc_loopinfo loop; + gfc_init_loopinfo (&loop); + loop.dimen = 1; + loop.from[0] = gfc_index_zero_node; + loop.loopvar[0] = index; + loop.to[0] = nelems; + gfc_trans_scalarizing_loops (&loop, &tmpblock); + gfc_add_block_to_block (&block, &loop.pre); + return gfc_finish_block (&block); + } + else if (GFC_DECL_GET_SCALAR_ALLOCATABLE (var)) + { + decl = build_fold_indirect_ref_loc (input_location, decl); + if (dest) + dest = build_fold_indirect_ref_loc (input_location, dest); + type = TREE_TYPE (decl); + } + + gcc_assert (TREE_CODE (type) == RECORD_TYPE); + for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) + { + tree ftype = TREE_TYPE (field); + tree declf, destf = NULL_TREE; + bool has_alloc_comps = gfc_has_alloc_comps (ftype, field); + if ((!GFC_DESCRIPTOR_TYPE_P (ftype) + || GFC_TYPE_ARRAY_AKIND (ftype) != GFC_ARRAY_ALLOCATABLE) + && !GFC_DECL_GET_SCALAR_ALLOCATABLE (field) + && !has_alloc_comps) + continue; + declf = fold_build3_loc (input_location, COMPONENT_REF, ftype, + decl, field, NULL_TREE); + if (dest) + destf = fold_build3_loc (input_location, COMPONENT_REF, ftype, + dest, field, NULL_TREE); + + tem = NULL_TREE; + switch (kind) + { + case WALK_ALLOC_COMPS_DTOR: + break; + case WALK_ALLOC_COMPS_DEFAULT_CTOR: + if (GFC_DESCRIPTOR_TYPE_P (ftype) + && GFC_TYPE_ARRAY_AKIND (ftype) == GFC_ARRAY_ALLOCATABLE) + { + gfc_add_modify (&block, unshare_expr (destf), + unshare_expr (declf)); + tem = gfc_duplicate_allocatable_nocopy + (destf, declf, ftype, + GFC_TYPE_ARRAY_RANK (ftype)); + } + else if (GFC_DECL_GET_SCALAR_ALLOCATABLE (field)) + tem = gfc_duplicate_allocatable_nocopy (destf, declf, ftype, 0); + break; + case WALK_ALLOC_COMPS_COPY_CTOR: + if (GFC_DESCRIPTOR_TYPE_P (ftype) + && GFC_TYPE_ARRAY_AKIND (ftype) == GFC_ARRAY_ALLOCATABLE) + tem = gfc_duplicate_allocatable (destf, declf, ftype, + GFC_TYPE_ARRAY_RANK (ftype)); + else if (GFC_DECL_GET_SCALAR_ALLOCATABLE (field)) + tem = gfc_duplicate_allocatable (destf, declf, ftype, 0); + break; + } + if (tem) + gfc_add_expr_to_block (&block, gfc_omp_unshare_expr (tem)); + if (has_alloc_comps) + { + gfc_init_block (&tmpblock); + gfc_add_expr_to_block (&tmpblock, + gfc_walk_alloc_comps (declf, destf, + field, kind)); + then_b = gfc_finish_block (&tmpblock); + if (GFC_DESCRIPTOR_TYPE_P (ftype) + && GFC_TYPE_ARRAY_AKIND (ftype) == GFC_ARRAY_ALLOCATABLE) + tem = gfc_conv_descriptor_data_get (unshare_expr (declf)); + else if (GFC_DECL_GET_SCALAR_ALLOCATABLE (field)) + tem = unshare_expr (declf); + else + tem = NULL_TREE; + if (tem) + { + tem = fold_convert (pvoid_type_node, tem); + tem = fold_build2_loc (input_location, NE_EXPR, + boolean_type_node, tem, + null_pointer_node); + then_b = build3_loc (input_location, COND_EXPR, void_type_node, + tem, then_b, + build_empty_stmt (input_location)); + } + gfc_add_expr_to_block (&block, then_b); + } + if (kind == WALK_ALLOC_COMPS_DTOR) + { + if (GFC_DESCRIPTOR_TYPE_P (ftype) + && GFC_TYPE_ARRAY_AKIND (ftype) == GFC_ARRAY_ALLOCATABLE) + { + tem = gfc_trans_dealloc_allocated (unshare_expr (declf), + false, NULL); + gfc_add_expr_to_block (&block, gfc_omp_unshare_expr (tem)); + } + else if (GFC_DECL_GET_SCALAR_ALLOCATABLE (field)) + { + tem = gfc_call_free (unshare_expr (declf)); + gfc_add_expr_to_block (&block, gfc_omp_unshare_expr (tem)); + } + } + } + + return gfc_finish_block (&block); + } + /* Return code to initialize DECL with its default constructor, or NULL if there's nothing to do. */ tree gfc_omp_clause_default_ctor (tree clause, tree decl, tree outer) { ! tree type = TREE_TYPE (decl), size, ptr, cond, then_b, else_b; stmtblock_t block, cond_block; ! gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_PRIVATE ! || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LASTPRIVATE ! || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR ! || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_REDUCTION); ! if ((! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))) ! { ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! gcc_assert (outer); ! gfc_start_block (&block); ! tree tem = gfc_walk_alloc_comps (outer, decl, ! OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_DEFAULT_CTOR); ! gfc_add_expr_to_block (&block, tem); ! return gfc_finish_block (&block); ! } ! return NULL_TREE; ! } ! gcc_assert (outer != NULL_TREE); ! /* Allocatable arrays and scalars in PRIVATE clauses need to be set to "not currently allocated" allocation status if outer array is "not currently allocated", otherwise should be allocated. */ gfc_start_block (&block); gfc_init_block (&cond_block); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! { ! gfc_add_modify (&cond_block, decl, outer); ! tree rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (decl, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, ! size, ! gfc_conv_descriptor_lbound_get (decl, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, ! gfc_array_index_type, size, ! gfc_conv_descriptor_stride_get (decl, rank)); ! tree esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = unshare_expr (size); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), ! &cond_block); ! } ! else ! size = fold_convert (size_type_node, TYPE_SIZE_UNIT (TREE_TYPE (type))); ptr = gfc_create_var (pvoid_type_node, NULL); gfc_allocate_using_malloc (&cond_block, ptr, size, NULL_TREE); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! gfc_conv_descriptor_data_set (&cond_block, unshare_expr (decl), ptr); ! else ! gfc_add_modify (&cond_block, unshare_expr (decl), ! fold_convert (TREE_TYPE (decl), ptr)); ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! tree tem = gfc_walk_alloc_comps (outer, decl, ! OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_DEFAULT_CTOR); ! gfc_add_expr_to_block (&cond_block, tem); ! } then_b = gfc_finish_block (&cond_block); ! /* Reduction clause requires allocated ALLOCATABLE. */ ! if (OMP_CLAUSE_CODE (clause) != OMP_CLAUSE_REDUCTION) ! { ! gfc_init_block (&cond_block); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! gfc_conv_descriptor_data_set (&cond_block, unshare_expr (decl), ! null_pointer_node); ! else ! gfc_add_modify (&cond_block, unshare_expr (decl), ! build_zero_cst (TREE_TYPE (decl))); ! else_b = gfc_finish_block (&cond_block); ! tree tem = fold_convert (pvoid_type_node, ! GFC_DESCRIPTOR_TYPE_P (type) ! ? gfc_conv_descriptor_data_get (outer) : outer); ! tem = unshare_expr (tem); ! cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! tem, null_pointer_node); ! gfc_add_expr_to_block (&block, ! build3_loc (input_location, COND_EXPR, ! void_type_node, cond, then_b, ! else_b)); ! } ! else ! gfc_add_expr_to_block (&block, then_b); return gfc_finish_block (&block); } *************** gfc_omp_clause_default_ctor (tree clause *** 217,231 **** tree gfc_omp_clause_copy_ctor (tree clause, tree dest, tree src) { ! tree type = TREE_TYPE (dest), ptr, size, esize, rank, call; tree cond, then_b, else_b; stmtblock_t block, cond_block; ! if (! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! return build2_v (MODIFY_EXPR, dest, src); ! gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_FIRSTPRIVATE); /* Allocatable arrays in FIRSTPRIVATE clauses need to be allocated and copied from SRC. */ --- 536,564 ---- tree gfc_omp_clause_copy_ctor (tree clause, tree dest, tree src) { ! tree type = TREE_TYPE (dest), ptr, size, call; tree cond, then_b, else_b; stmtblock_t block, cond_block; ! gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_FIRSTPRIVATE ! || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR); ! if ((! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))) ! { ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! gfc_start_block (&block); ! gfc_add_modify (&block, dest, src); ! tree tem = gfc_walk_alloc_comps (src, dest, OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_COPY_CTOR); ! gfc_add_expr_to_block (&block, tem); ! return gfc_finish_block (&block); ! } ! else ! return build2_v (MODIFY_EXPR, dest, src); ! } /* Allocatable arrays in FIRSTPRIVATE clauses need to be allocated and copied from SRC. */ *************** gfc_omp_clause_copy_ctor (tree clause, t *** 234,340 **** gfc_init_block (&cond_block); gfc_add_modify (&cond_block, dest, src); ! rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (dest, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, ! size, gfc_conv_descriptor_lbound_get (dest, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, gfc_conv_descriptor_stride_get (dest, rank)); ! esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), &cond_block); ! ptr = gfc_create_var (pvoid_type_node, NULL); gfc_allocate_using_malloc (&cond_block, ptr, size, NULL_TREE); ! gfc_conv_descriptor_data_set (&cond_block, dest, ptr); call = build_call_expr_loc (input_location, ! builtin_decl_explicit (BUILT_IN_MEMCPY), ! 3, ptr, ! fold_convert (pvoid_type_node, ! gfc_conv_descriptor_data_get (src)), ! size); gfc_add_expr_to_block (&cond_block, fold_convert (void_type_node, call)); then_b = gfc_finish_block (&cond_block); gfc_init_block (&cond_block); ! gfc_conv_descriptor_data_set (&cond_block, dest, null_pointer_node); else_b = gfc_finish_block (&cond_block); cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! fold_convert (pvoid_type_node, ! gfc_conv_descriptor_data_get (src)), ! null_pointer_node); ! gfc_add_expr_to_block (&block, build3_loc (input_location, COND_EXPR, ! void_type_node, cond, then_b, else_b)); return gfc_finish_block (&block); } ! /* Similarly, except use an assignment operator instead. */ tree ! gfc_omp_clause_assign_op (tree clause ATTRIBUTE_UNUSED, tree dest, tree src) { ! tree type = TREE_TYPE (dest), rank, size, esize, call; ! stmtblock_t block; ! if (! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! return build2_v (MODIFY_EXPR, dest, src); - /* Handle copying allocatable arrays. */ gfc_start_block (&block); ! rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (dest, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, ! size, gfc_conv_descriptor_lbound_get (dest, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, gfc_conv_descriptor_stride_get (dest, rank)); ! esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), &block); call = build_call_expr_loc (input_location, ! builtin_decl_explicit (BUILT_IN_MEMCPY), 3, ! fold_convert (pvoid_type_node, ! gfc_conv_descriptor_data_get (dest)), ! fold_convert (pvoid_type_node, ! gfc_conv_descriptor_data_get (src)), ! size); ! gfc_add_expr_to_block (&block, fold_convert (void_type_node, call)); return gfc_finish_block (&block); } /* Build and return code destructing DECL. Return NULL if nothing to be done. */ tree ! gfc_omp_clause_dtor (tree clause ATTRIBUTE_UNUSED, tree decl) { ! tree type = TREE_TYPE (decl); ! if (! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! return NULL; ! if (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_REDUCTION) ! return NULL; ! /* Allocatable arrays in FIRSTPRIVATE/LASTPRIVATE etc. clauses need ! to be deallocated if they were allocated. */ ! return gfc_trans_dealloc_allocated (decl, false, NULL); } --- 567,1117 ---- gfc_init_block (&cond_block); gfc_add_modify (&cond_block, dest, src); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! { ! tree rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (dest, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, ! size, ! gfc_conv_descriptor_lbound_get (dest, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, ! gfc_array_index_type, size, ! gfc_conv_descriptor_stride_get (dest, rank)); ! tree esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = unshare_expr (size); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), ! &cond_block); ! } ! else ! size = fold_convert (size_type_node, TYPE_SIZE_UNIT (TREE_TYPE (type))); ptr = gfc_create_var (pvoid_type_node, NULL); gfc_allocate_using_malloc (&cond_block, ptr, size, NULL_TREE); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! gfc_conv_descriptor_data_set (&cond_block, unshare_expr (dest), ptr); ! else ! gfc_add_modify (&cond_block, unshare_expr (dest), ! fold_convert (TREE_TYPE (dest), ptr)); + tree srcptr = GFC_DESCRIPTOR_TYPE_P (type) + ? gfc_conv_descriptor_data_get (src) : src; + srcptr = unshare_expr (srcptr); + srcptr = fold_convert (pvoid_type_node, srcptr); call = build_call_expr_loc (input_location, ! builtin_decl_explicit (BUILT_IN_MEMCPY), 3, ptr, ! srcptr, size); gfc_add_expr_to_block (&cond_block, fold_convert (void_type_node, call)); + if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) + { + tree tem = gfc_walk_alloc_comps (src, dest, + OMP_CLAUSE_DECL (clause), + WALK_ALLOC_COMPS_COPY_CTOR); + gfc_add_expr_to_block (&cond_block, tem); + } then_b = gfc_finish_block (&cond_block); gfc_init_block (&cond_block); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! gfc_conv_descriptor_data_set (&cond_block, unshare_expr (dest), ! null_pointer_node); ! else ! gfc_add_modify (&cond_block, unshare_expr (dest), ! build_zero_cst (TREE_TYPE (dest))); else_b = gfc_finish_block (&cond_block); cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! unshare_expr (srcptr), null_pointer_node); ! gfc_add_expr_to_block (&block, ! build3_loc (input_location, COND_EXPR, ! void_type_node, cond, then_b, else_b)); return gfc_finish_block (&block); } ! /* Similarly, except use an intrinsic or pointer assignment operator ! instead. */ tree ! gfc_omp_clause_assign_op (tree clause, tree dest, tree src) { ! tree type = TREE_TYPE (dest), ptr, size, call, nonalloc; ! tree cond, then_b, else_b; ! stmtblock_t block, cond_block, cond_block2, inner_block; ! if ((! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))) ! { ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! gfc_start_block (&block); ! /* First dealloc any allocatable components in DEST. */ ! tree tem = gfc_walk_alloc_comps (dest, NULL_TREE, ! OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_DTOR); ! gfc_add_expr_to_block (&block, tem); ! /* Then copy over toplevel data. */ ! gfc_add_modify (&block, dest, src); ! /* Finally allocate any allocatable components and copy. */ ! tem = gfc_walk_alloc_comps (src, dest, OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_COPY_CTOR); ! gfc_add_expr_to_block (&block, tem); ! return gfc_finish_block (&block); ! } ! else ! return build2_v (MODIFY_EXPR, dest, src); ! } gfc_start_block (&block); ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! then_b = gfc_walk_alloc_comps (dest, NULL_TREE, OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_DTOR); ! tree tem = fold_convert (pvoid_type_node, ! GFC_DESCRIPTOR_TYPE_P (type) ! ? gfc_conv_descriptor_data_get (dest) : dest); ! tem = unshare_expr (tem); ! cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! tem, null_pointer_node); ! tem = build3_loc (input_location, COND_EXPR, void_type_node, cond, ! then_b, build_empty_stmt (input_location)); ! gfc_add_expr_to_block (&block, tem); ! } ! ! gfc_init_block (&cond_block); ! ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! { ! tree rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (src, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, ! size, ! gfc_conv_descriptor_lbound_get (src, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, ! gfc_array_index_type, size, ! gfc_conv_descriptor_stride_get (src, rank)); ! tree esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = unshare_expr (size); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), ! &cond_block); ! } ! else ! size = fold_convert (size_type_node, TYPE_SIZE_UNIT (TREE_TYPE (type))); ! ptr = gfc_create_var (pvoid_type_node, NULL); ! ! tree destptr = GFC_DESCRIPTOR_TYPE_P (type) ! ? gfc_conv_descriptor_data_get (dest) : dest; ! destptr = unshare_expr (destptr); ! destptr = fold_convert (pvoid_type_node, destptr); ! gfc_add_modify (&cond_block, ptr, destptr); ! ! nonalloc = fold_build2_loc (input_location, EQ_EXPR, boolean_type_node, ! destptr, null_pointer_node); ! cond = nonalloc; ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! { ! int i; ! for (i = 0; i < GFC_TYPE_ARRAY_RANK (type); i++) ! { ! tree rank = gfc_rank_cst[i]; ! tree tem = gfc_conv_descriptor_ubound_get (src, rank); ! tem = fold_build2_loc (input_location, MINUS_EXPR, ! gfc_array_index_type, tem, ! gfc_conv_descriptor_lbound_get (src, rank)); ! tem = fold_build2_loc (input_location, PLUS_EXPR, ! gfc_array_index_type, tem, ! gfc_conv_descriptor_lbound_get (dest, rank)); ! tem = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! tem, gfc_conv_descriptor_ubound_get (dest, ! rank)); ! cond = fold_build2_loc (input_location, TRUTH_ORIF_EXPR, ! boolean_type_node, cond, tem); ! } ! } ! ! gfc_init_block (&cond_block2); ! ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! { ! gfc_init_block (&inner_block); ! gfc_allocate_using_malloc (&inner_block, ptr, size, NULL_TREE); ! then_b = gfc_finish_block (&inner_block); ! ! gfc_init_block (&inner_block); ! gfc_add_modify (&inner_block, ptr, ! gfc_call_realloc (&inner_block, ptr, size)); ! else_b = gfc_finish_block (&inner_block); ! ! gfc_add_expr_to_block (&cond_block2, ! build3_loc (input_location, COND_EXPR, ! void_type_node, ! unshare_expr (nonalloc), ! then_b, else_b)); ! gfc_add_modify (&cond_block2, dest, src); ! gfc_conv_descriptor_data_set (&cond_block2, unshare_expr (dest), ptr); ! } ! else ! { ! gfc_allocate_using_malloc (&cond_block2, ptr, size, NULL_TREE); ! gfc_add_modify (&cond_block2, unshare_expr (dest), ! fold_convert (type, ptr)); ! } ! then_b = gfc_finish_block (&cond_block2); ! else_b = build_empty_stmt (input_location); ! ! gfc_add_expr_to_block (&cond_block, ! build3_loc (input_location, COND_EXPR, ! void_type_node, unshare_expr (cond), ! then_b, else_b)); ! ! tree srcptr = GFC_DESCRIPTOR_TYPE_P (type) ! ? gfc_conv_descriptor_data_get (src) : src; ! srcptr = unshare_expr (srcptr); ! srcptr = fold_convert (pvoid_type_node, srcptr); call = build_call_expr_loc (input_location, ! builtin_decl_explicit (BUILT_IN_MEMCPY), 3, ptr, ! srcptr, size); ! gfc_add_expr_to_block (&cond_block, fold_convert (void_type_node, call)); ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! tree tem = gfc_walk_alloc_comps (src, dest, ! OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_COPY_CTOR); ! gfc_add_expr_to_block (&cond_block, tem); ! } ! then_b = gfc_finish_block (&cond_block); ! ! if (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_COPYIN) ! { ! gfc_init_block (&cond_block); ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! gfc_add_expr_to_block (&cond_block, ! gfc_trans_dealloc_allocated (unshare_expr (dest), ! false, NULL)); ! else ! { ! destptr = gfc_evaluate_now (destptr, &cond_block); ! gfc_add_expr_to_block (&cond_block, gfc_call_free (destptr)); ! gfc_add_modify (&cond_block, unshare_expr (dest), ! build_zero_cst (TREE_TYPE (dest))); ! } ! else_b = gfc_finish_block (&cond_block); ! ! cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! unshare_expr (srcptr), null_pointer_node); ! gfc_add_expr_to_block (&block, ! build3_loc (input_location, COND_EXPR, ! void_type_node, cond, ! then_b, else_b)); ! } ! else ! gfc_add_expr_to_block (&block, then_b); return gfc_finish_block (&block); } + static void + gfc_omp_linear_clause_add_loop (stmtblock_t *block, tree dest, tree src, + tree add, tree nelems) + { + stmtblock_t tmpblock; + tree desta, srca, index = gfc_create_var (gfc_array_index_type, "S"); + nelems = gfc_evaluate_now (nelems, block); + + gfc_init_block (&tmpblock); + if (TREE_CODE (TREE_TYPE (dest)) == ARRAY_TYPE) + { + desta = gfc_build_array_ref (dest, index, NULL); + srca = gfc_build_array_ref (src, index, NULL); + } + else + { + gcc_assert (POINTER_TYPE_P (TREE_TYPE (dest))); + tree idx = fold_build2 (MULT_EXPR, sizetype, + fold_convert (sizetype, index), + TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (dest)))); + desta = build_fold_indirect_ref (fold_build2 (POINTER_PLUS_EXPR, + TREE_TYPE (dest), dest, + idx)); + srca = build_fold_indirect_ref (fold_build2 (POINTER_PLUS_EXPR, + TREE_TYPE (src), src, + idx)); + } + gfc_add_modify (&tmpblock, desta, + fold_build2 (PLUS_EXPR, TREE_TYPE (desta), + srca, add)); + + gfc_loopinfo loop; + gfc_init_loopinfo (&loop); + loop.dimen = 1; + loop.from[0] = gfc_index_zero_node; + loop.loopvar[0] = index; + loop.to[0] = nelems; + gfc_trans_scalarizing_loops (&loop, &tmpblock); + gfc_add_block_to_block (block, &loop.pre); + } + + /* Build and return code for a constructor of DEST that initializes + it to SRC plus ADD (ADD is scalar integer). */ + + tree + gfc_omp_clause_linear_ctor (tree clause, tree dest, tree src, tree add) + { + tree type = TREE_TYPE (dest), ptr, size, nelems = NULL_TREE; + stmtblock_t block; + + gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR); + + gfc_start_block (&block); + add = gfc_evaluate_now (add, &block); + + if ((! GFC_DESCRIPTOR_TYPE_P (type) + || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) + && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))) + { + gcc_assert (TREE_CODE (type) == ARRAY_TYPE); + if (!TYPE_DOMAIN (type) + || TYPE_MAX_VALUE (TYPE_DOMAIN (type)) == NULL_TREE + || TYPE_MIN_VALUE (TYPE_DOMAIN (type)) == error_mark_node + || TYPE_MAX_VALUE (TYPE_DOMAIN (type)) == error_mark_node) + { + nelems = fold_build2 (EXACT_DIV_EXPR, sizetype, + TYPE_SIZE_UNIT (type), + TYPE_SIZE_UNIT (TREE_TYPE (type))); + nelems = size_binop (MINUS_EXPR, nelems, size_one_node); + } + else + nelems = array_type_nelts (type); + nelems = fold_convert (gfc_array_index_type, nelems); + + gfc_omp_linear_clause_add_loop (&block, dest, src, add, nelems); + return gfc_finish_block (&block); + } + + /* Allocatable arrays in LINEAR clauses need to be allocated + and copied from SRC. */ + gfc_add_modify (&block, dest, src); + if (GFC_DESCRIPTOR_TYPE_P (type)) + { + tree rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; + size = gfc_conv_descriptor_ubound_get (dest, rank); + size = fold_build2_loc (input_location, MINUS_EXPR, gfc_array_index_type, + size, + gfc_conv_descriptor_lbound_get (dest, rank)); + size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, + size, gfc_index_one_node); + if (GFC_TYPE_ARRAY_RANK (type) > 1) + size = fold_build2_loc (input_location, MULT_EXPR, + gfc_array_index_type, size, + gfc_conv_descriptor_stride_get (dest, rank)); + tree esize = fold_convert (gfc_array_index_type, + TYPE_SIZE_UNIT (gfc_get_element_type (type))); + nelems = gfc_evaluate_now (unshare_expr (size), &block); + size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, + nelems, unshare_expr (esize)); + size = gfc_evaluate_now (fold_convert (size_type_node, size), + &block); + nelems = fold_build2_loc (input_location, MINUS_EXPR, + gfc_array_index_type, nelems, + gfc_index_one_node); + } + else + size = fold_convert (size_type_node, TYPE_SIZE_UNIT (TREE_TYPE (type))); + ptr = gfc_create_var (pvoid_type_node, NULL); + gfc_allocate_using_malloc (&block, ptr, size, NULL_TREE); + if (GFC_DESCRIPTOR_TYPE_P (type)) + { + gfc_conv_descriptor_data_set (&block, unshare_expr (dest), ptr); + tree etype = gfc_get_element_type (type); + ptr = fold_convert (build_pointer_type (etype), ptr); + tree srcptr = gfc_conv_descriptor_data_get (unshare_expr (src)); + srcptr = fold_convert (build_pointer_type (etype), srcptr); + gfc_omp_linear_clause_add_loop (&block, ptr, srcptr, add, nelems); + } + else + { + gfc_add_modify (&block, unshare_expr (dest), + fold_convert (TREE_TYPE (dest), ptr)); + ptr = fold_convert (TREE_TYPE (dest), ptr); + tree dstm = build_fold_indirect_ref (ptr); + tree srcm = build_fold_indirect_ref (unshare_expr (src)); + gfc_add_modify (&block, dstm, + fold_build2 (PLUS_EXPR, TREE_TYPE (add), srcm, add)); + } + return gfc_finish_block (&block); + } + /* Build and return code destructing DECL. Return NULL if nothing to be done. */ tree ! gfc_omp_clause_dtor (tree clause, tree decl) { ! tree type = TREE_TYPE (decl), tem; ! if ((! GFC_DESCRIPTOR_TYPE_P (type) ! || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE) ! && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))) ! { ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! return gfc_walk_alloc_comps (decl, NULL_TREE, ! OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_DTOR); ! return NULL_TREE; ! } ! if (GFC_DESCRIPTOR_TYPE_P (type)) ! /* Allocatable arrays in FIRSTPRIVATE/LASTPRIVATE etc. clauses need ! to be deallocated if they were allocated. */ ! tem = gfc_trans_dealloc_allocated (decl, false, NULL); ! else ! tem = gfc_call_free (decl); ! tem = gfc_omp_unshare_expr (tem); ! if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause))) ! { ! stmtblock_t block; ! tree then_b; ! ! gfc_init_block (&block); ! gfc_add_expr_to_block (&block, ! gfc_walk_alloc_comps (decl, NULL_TREE, ! OMP_CLAUSE_DECL (clause), ! WALK_ALLOC_COMPS_DTOR)); ! gfc_add_expr_to_block (&block, tem); ! then_b = gfc_finish_block (&block); ! ! tem = fold_convert (pvoid_type_node, ! GFC_DESCRIPTOR_TYPE_P (type) ! ? gfc_conv_descriptor_data_get (decl) : decl); ! tem = unshare_expr (tem); ! tree cond = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, ! tem, null_pointer_node); ! tem = build3_loc (input_location, COND_EXPR, void_type_node, cond, ! then_b, build_empty_stmt (input_location)); ! } ! return tem; ! } ! ! ! void ! gfc_omp_finish_clause (tree c, gimple_seq *pre_p) ! { ! if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_MAP) ! return; ! ! tree decl = OMP_CLAUSE_DECL (c); ! tree c2 = NULL_TREE, c3 = NULL_TREE, c4 = NULL_TREE; ! if (POINTER_TYPE_P (TREE_TYPE (decl))) ! { ! if (!gfc_omp_privatize_by_reference (decl) ! && !GFC_DECL_GET_SCALAR_POINTER (decl) ! && !GFC_DECL_GET_SCALAR_ALLOCATABLE (decl) ! && !GFC_DECL_CRAY_POINTEE (decl) ! && !GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))) ! return; ! c4 = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (c4) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (c4) = decl; ! OMP_CLAUSE_SIZE (c4) = size_int (0); ! decl = build_fold_indirect_ref (decl); ! OMP_CLAUSE_DECL (c) = decl; ! OMP_CLAUSE_SIZE (c) = NULL_TREE; ! } ! if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl))) ! { ! stmtblock_t block; ! gfc_start_block (&block); ! tree type = TREE_TYPE (decl); ! tree ptr = gfc_conv_descriptor_data_get (decl); ! ptr = fold_convert (build_pointer_type (char_type_node), ptr); ! ptr = build_fold_indirect_ref (ptr); ! OMP_CLAUSE_DECL (c) = ptr; ! c2 = build_omp_clause (input_location, OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (c2) = OMP_CLAUSE_MAP_TO_PSET; ! OMP_CLAUSE_DECL (c2) = decl; ! OMP_CLAUSE_SIZE (c2) = TYPE_SIZE_UNIT (type); ! c3 = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (c3) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (c3) = gfc_conv_descriptor_data_get (decl); ! OMP_CLAUSE_SIZE (c3) = size_int (0); ! tree size = create_tmp_var (gfc_array_index_type, NULL); ! tree elemsz = TYPE_SIZE_UNIT (gfc_get_element_type (type)); ! elemsz = fold_convert (gfc_array_index_type, elemsz); ! if (GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_POINTER ! || GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_POINTER_CONT) ! { ! stmtblock_t cond_block; ! tree tem, then_b, else_b, zero, cond; ! ! gfc_init_block (&cond_block); ! tem = gfc_full_array_size (&cond_block, decl, ! GFC_TYPE_ARRAY_RANK (type)); ! gfc_add_modify (&cond_block, size, tem); ! gfc_add_modify (&cond_block, size, ! fold_build2 (MULT_EXPR, gfc_array_index_type, ! size, elemsz)); ! then_b = gfc_finish_block (&cond_block); ! gfc_init_block (&cond_block); ! zero = build_int_cst (gfc_array_index_type, 0); ! gfc_add_modify (&cond_block, size, zero); ! else_b = gfc_finish_block (&cond_block); ! tem = gfc_conv_descriptor_data_get (decl); ! tem = fold_convert (pvoid_type_node, tem); ! cond = fold_build2_loc (input_location, NE_EXPR, ! boolean_type_node, tem, null_pointer_node); ! gfc_add_expr_to_block (&block, build3_loc (input_location, COND_EXPR, ! void_type_node, cond, ! then_b, else_b)); ! } ! else ! { ! gfc_add_modify (&block, size, ! gfc_full_array_size (&block, decl, ! GFC_TYPE_ARRAY_RANK (type))); ! gfc_add_modify (&block, size, ! fold_build2 (MULT_EXPR, gfc_array_index_type, ! size, elemsz)); ! } ! OMP_CLAUSE_SIZE (c) = size; ! tree stmt = gfc_finish_block (&block); ! gimplify_and_add (stmt, pre_p); ! } ! tree last = c; ! if (OMP_CLAUSE_SIZE (c) == NULL_TREE) ! OMP_CLAUSE_SIZE (c) ! = DECL_P (decl) ? DECL_SIZE_UNIT (decl) ! : TYPE_SIZE_UNIT (TREE_TYPE (decl)); ! if (c2) ! { ! OMP_CLAUSE_CHAIN (c2) = OMP_CLAUSE_CHAIN (last); ! OMP_CLAUSE_CHAIN (last) = c2; ! last = c2; ! } ! if (c3) ! { ! OMP_CLAUSE_CHAIN (c3) = OMP_CLAUSE_CHAIN (last); ! OMP_CLAUSE_CHAIN (last) = c3; ! last = c3; ! } ! if (c4) ! { ! OMP_CLAUSE_CHAIN (c4) = OMP_CLAUSE_CHAIN (last); ! OMP_CLAUSE_CHAIN (last) = c4; ! last = c4; ! } } *************** gfc_trans_add_clause (tree node, tree ta *** 427,434 **** } static tree ! gfc_trans_omp_variable (gfc_symbol *sym) { tree t = gfc_get_symbol_decl (sym); tree parent_decl; int parent_flag; --- 1204,1236 ---- } static tree ! gfc_trans_omp_variable (gfc_symbol *sym, bool declare_simd) { + if (declare_simd) + { + int cnt = 0; + gfc_symbol *proc_sym; + gfc_formal_arglist *f; + + gcc_assert (sym->attr.dummy); + proc_sym = sym->ns->proc_name; + if (proc_sym->attr.entry_master) + ++cnt; + if (gfc_return_by_reference (proc_sym)) + { + ++cnt; + if (proc_sym->ts.type == BT_CHARACTER) + ++cnt; + } + for (f = gfc_sym_get_dummy_args (proc_sym); f; f = f->next) + if (f->sym == sym) + break; + else if (f->sym) + ++cnt; + gcc_assert (f); + return build_int_cst (integer_type_node, cnt); + } + tree t = gfc_get_symbol_decl (sym); tree parent_decl; int parent_flag; *************** gfc_trans_omp_variable (gfc_symbol *sym) *** 442,448 **** entry_master = sym->attr.result && sym->ns->proc_name->attr.entry_master && !gfc_return_by_reference (sym->ns->proc_name); ! parent_decl = DECL_CONTEXT (current_function_decl); if ((t == parent_decl && return_value) || (sym->ns && sym->ns->proc_name --- 1244,1251 ---- entry_master = sym->attr.result && sym->ns->proc_name->attr.entry_master && !gfc_return_by_reference (sym->ns->proc_name); ! parent_decl = current_function_decl ! ? DECL_CONTEXT (current_function_decl) : NULL_TREE; if ((t == parent_decl && return_value) || (sym->ns && sym->ns->proc_name *************** gfc_trans_omp_variable (gfc_symbol *sym) *** 481,493 **** } static tree ! gfc_trans_omp_variable_list (enum omp_clause_code code, gfc_namelist *namelist, ! tree list) { for (; namelist != NULL; namelist = namelist->next) ! if (namelist->sym->attr.referenced) { ! tree t = gfc_trans_omp_variable (namelist->sym); if (t != error_mark_node) { tree node = build_omp_clause (input_location, code); --- 1284,1297 ---- } static tree ! gfc_trans_omp_variable_list (enum omp_clause_code code, ! gfc_omp_namelist *namelist, tree list, ! bool declare_simd) { for (; namelist != NULL; namelist = namelist->next) ! if (namelist->sym->attr.referenced || declare_simd) { ! tree t = gfc_trans_omp_variable (namelist->sym, declare_simd); if (t != error_mark_node) { tree node = build_omp_clause (input_location, code); *************** gfc_trans_omp_variable_list (enum omp_cl *** 498,515 **** return list; } static void ! gfc_trans_omp_array_reduction (tree c, gfc_symbol *sym, locus where) { gfc_symtree *root1 = NULL, *root2 = NULL, *root3 = NULL, *root4 = NULL; gfc_symtree *symtree1, *symtree2, *symtree3, *symtree4 = NULL; gfc_symbol init_val_sym, outer_sym, intrinsic_sym; gfc_expr *e1, *e2, *e3, *e4; gfc_ref *ref; tree decl, backend_decl, stmt, type, outer_decl; locus old_loc = gfc_current_locus; const char *iname; bool t; decl = OMP_CLAUSE_DECL (c); gfc_current_locus = where; --- 1302,1340 ---- return list; } + struct omp_udr_find_orig_data + { + gfc_omp_udr *omp_udr; + bool omp_orig_seen; + }; + + static int + omp_udr_find_orig (gfc_expr **e, int *walk_subtrees ATTRIBUTE_UNUSED, + void *data) + { + struct omp_udr_find_orig_data *cd = (struct omp_udr_find_orig_data *) data; + if ((*e)->expr_type == EXPR_VARIABLE + && (*e)->symtree->n.sym == cd->omp_udr->omp_orig) + cd->omp_orig_seen = true; + + return 0; + } + static void ! gfc_trans_omp_array_reduction_or_udr (tree c, gfc_omp_namelist *n, locus where) { + gfc_symbol *sym = n->sym; gfc_symtree *root1 = NULL, *root2 = NULL, *root3 = NULL, *root4 = NULL; gfc_symtree *symtree1, *symtree2, *symtree3, *symtree4 = NULL; gfc_symbol init_val_sym, outer_sym, intrinsic_sym; + gfc_symbol omp_var_copy[4]; gfc_expr *e1, *e2, *e3, *e4; gfc_ref *ref; tree decl, backend_decl, stmt, type, outer_decl; locus old_loc = gfc_current_locus; const char *iname; bool t; + gfc_omp_udr *udr = n->udr ? n->udr->udr : NULL; decl = OMP_CLAUSE_DECL (c); gfc_current_locus = where; *************** gfc_trans_omp_array_reduction (tree c, g *** 532,543 **** init_val_sym.attr.referenced = 1; init_val_sym.declared_at = where; init_val_sym.attr.flavor = FL_VARIABLE; ! backend_decl = omp_reduction_init (c, gfc_sym_type (&init_val_sym)); init_val_sym.backend_decl = backend_decl; /* Create a fake symbol for the outer array reference. */ outer_sym = *sym; ! outer_sym.as = gfc_copy_array_spec (sym->as); outer_sym.attr.dummy = 0; outer_sym.attr.result = 0; outer_sym.attr.flavor = FL_VARIABLE; --- 1357,1385 ---- init_val_sym.attr.referenced = 1; init_val_sym.declared_at = where; init_val_sym.attr.flavor = FL_VARIABLE; ! if (OMP_CLAUSE_REDUCTION_CODE (c) != ERROR_MARK) ! backend_decl = omp_reduction_init (c, gfc_sym_type (&init_val_sym)); ! else if (udr->initializer_ns) ! backend_decl = NULL; ! else ! switch (sym->ts.type) ! { ! case BT_LOGICAL: ! case BT_INTEGER: ! case BT_REAL: ! case BT_COMPLEX: ! backend_decl = build_zero_cst (gfc_sym_type (&init_val_sym)); ! break; ! default: ! backend_decl = NULL_TREE; ! break; ! } init_val_sym.backend_decl = backend_decl; /* Create a fake symbol for the outer array reference. */ outer_sym = *sym; ! if (sym->as) ! outer_sym.as = gfc_copy_array_spec (sym->as); outer_sym.attr.dummy = 0; outer_sym.attr.result = 0; outer_sym.attr.flavor = FL_VARIABLE; *************** gfc_trans_omp_array_reduction (tree c, g *** 558,585 **** symtree3->n.sym = &outer_sym; gcc_assert (symtree3 == root3); /* Create expressions. */ e1 = gfc_get_expr (); e1->expr_type = EXPR_VARIABLE; e1->where = where; e1->symtree = symtree1; e1->ts = sym->ts; ! e1->ref = ref = gfc_get_ref (); ! ref->type = REF_ARRAY; ! ref->u.ar.where = where; ! ref->u.ar.as = sym->as; ! ref->u.ar.type = AR_FULL; ! ref->u.ar.dimen = 0; t = gfc_resolve_expr (e1); gcc_assert (t); ! e2 = gfc_get_expr (); ! e2->expr_type = EXPR_VARIABLE; ! e2->where = where; ! e2->symtree = symtree2; ! e2->ts = sym->ts; ! t = gfc_resolve_expr (e2); ! gcc_assert (t); e3 = gfc_copy_expr (e1); e3->symtree = symtree3; --- 1400,1474 ---- symtree3->n.sym = &outer_sym; gcc_assert (symtree3 == root3); + memset (omp_var_copy, 0, sizeof omp_var_copy); + if (udr) + { + omp_var_copy[0] = *udr->omp_out; + omp_var_copy[1] = *udr->omp_in; + *udr->omp_out = outer_sym; + *udr->omp_in = *sym; + if (udr->initializer_ns) + { + omp_var_copy[2] = *udr->omp_priv; + omp_var_copy[3] = *udr->omp_orig; + *udr->omp_priv = *sym; + *udr->omp_orig = outer_sym; + } + } + /* Create expressions. */ e1 = gfc_get_expr (); e1->expr_type = EXPR_VARIABLE; e1->where = where; e1->symtree = symtree1; e1->ts = sym->ts; ! if (sym->attr.dimension) ! { ! e1->ref = ref = gfc_get_ref (); ! ref->type = REF_ARRAY; ! ref->u.ar.where = where; ! ref->u.ar.as = sym->as; ! ref->u.ar.type = AR_FULL; ! ref->u.ar.dimen = 0; ! } t = gfc_resolve_expr (e1); gcc_assert (t); ! e2 = NULL; ! if (backend_decl != NULL_TREE) ! { ! e2 = gfc_get_expr (); ! e2->expr_type = EXPR_VARIABLE; ! e2->where = where; ! e2->symtree = symtree2; ! e2->ts = sym->ts; ! t = gfc_resolve_expr (e2); ! gcc_assert (t); ! } ! else if (udr->initializer_ns == NULL) ! { ! gcc_assert (sym->ts.type == BT_DERIVED); ! e2 = gfc_default_initializer (&sym->ts); ! gcc_assert (e2); ! t = gfc_resolve_expr (e2); ! gcc_assert (t); ! } ! else if (n->udr->initializer->op == EXEC_ASSIGN) ! { ! e2 = gfc_copy_expr (n->udr->initializer->expr2); ! t = gfc_resolve_expr (e2); ! gcc_assert (t); ! } ! if (udr && udr->initializer_ns) ! { ! struct omp_udr_find_orig_data cd; ! cd.omp_udr = udr; ! cd.omp_orig_seen = false; ! gfc_code_walker (&n->udr->initializer, ! gfc_dummy_code_callback, omp_udr_find_orig, &cd); ! if (cd.omp_orig_seen) ! OMP_CLAUSE_REDUCTION_OMP_ORIG_REF (c) = 1; ! } e3 = gfc_copy_expr (e1); e3->symtree = symtree3; *************** gfc_trans_omp_array_reduction (tree c, g *** 587,592 **** --- 1476,1482 ---- gcc_assert (t); iname = NULL; + e4 = NULL; switch (OMP_CLAUSE_REDUCTION_CODE (c)) { case PLUS_EXPR: *************** gfc_trans_omp_array_reduction (tree c, g *** 623,628 **** --- 1513,1530 ---- case BIT_XOR_EXPR: iname = "ieor"; break; + case ERROR_MARK: + if (n->udr->combiner->op == EXEC_ASSIGN) + { + gfc_free_expr (e3); + e3 = gfc_copy_expr (n->udr->combiner->expr1); + e4 = gfc_copy_expr (n->udr->combiner->expr2); + t = gfc_resolve_expr (e3); + gcc_assert (t); + t = gfc_resolve_expr (e4); + gcc_assert (t); + } + break; default: gcc_unreachable (); } *************** gfc_trans_omp_array_reduction (tree c, g *** 646,703 **** e4->expr_type = EXPR_FUNCTION; e4->where = where; e4->symtree = symtree4; - e4->value.function.isym = gfc_find_function (iname); e4->value.function.actual = gfc_get_actual_arglist (); e4->value.function.actual->expr = e3; e4->value.function.actual->next = gfc_get_actual_arglist (); e4->value.function.actual->next->expr = e1; } ! /* e1 and e3 have been stored as arguments of e4, avoid sharing. */ ! e1 = gfc_copy_expr (e1); ! e3 = gfc_copy_expr (e3); ! t = gfc_resolve_expr (e4); ! gcc_assert (t); /* Create the init statement list. */ pushlevel (); ! if (GFC_DESCRIPTOR_TYPE_P (type) ! && GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_ALLOCATABLE) ! { ! /* If decl is an allocatable array, it needs to be allocated ! with the same bounds as the outer var. */ ! tree rank, size, esize, ptr; ! stmtblock_t block; ! ! gfc_start_block (&block); ! ! gfc_add_modify (&block, decl, outer_sym.backend_decl); ! rank = gfc_rank_cst[GFC_TYPE_ARRAY_RANK (type) - 1]; ! size = gfc_conv_descriptor_ubound_get (decl, rank); ! size = fold_build2_loc (input_location, MINUS_EXPR, ! gfc_array_index_type, size, ! gfc_conv_descriptor_lbound_get (decl, rank)); ! size = fold_build2_loc (input_location, PLUS_EXPR, gfc_array_index_type, ! size, gfc_index_one_node); ! if (GFC_TYPE_ARRAY_RANK (type) > 1) ! size = fold_build2_loc (input_location, MULT_EXPR, ! gfc_array_index_type, size, ! gfc_conv_descriptor_stride_get (decl, rank)); ! esize = fold_convert (gfc_array_index_type, ! TYPE_SIZE_UNIT (gfc_get_element_type (type))); ! size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, ! size, esize); ! size = gfc_evaluate_now (fold_convert (size_type_node, size), &block); ! ! ptr = gfc_create_var (pvoid_type_node, NULL); ! gfc_allocate_using_malloc (&block, ptr, size, NULL_TREE); ! gfc_conv_descriptor_data_set (&block, decl, ptr); ! ! gfc_add_expr_to_block (&block, gfc_trans_assignment (e1, e2, false, ! false)); ! stmt = gfc_finish_block (&block); ! } ! else stmt = gfc_trans_assignment (e1, e2, false, false); if (TREE_CODE (stmt) != BIND_EXPR) stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); else --- 1548,1574 ---- e4->expr_type = EXPR_FUNCTION; e4->where = where; e4->symtree = symtree4; e4->value.function.actual = gfc_get_actual_arglist (); e4->value.function.actual->expr = e3; e4->value.function.actual->next = gfc_get_actual_arglist (); e4->value.function.actual->next->expr = e1; } ! if (OMP_CLAUSE_REDUCTION_CODE (c) != ERROR_MARK) ! { ! /* e1 and e3 have been stored as arguments of e4, avoid sharing. */ ! e1 = gfc_copy_expr (e1); ! e3 = gfc_copy_expr (e3); ! t = gfc_resolve_expr (e4); ! gcc_assert (t); ! } /* Create the init statement list. */ pushlevel (); ! if (e2) stmt = gfc_trans_assignment (e1, e2, false, false); + else + stmt = gfc_trans_call (n->udr->initializer, false, + NULL_TREE, NULL_TREE, false); if (TREE_CODE (stmt) != BIND_EXPR) stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); else *************** gfc_trans_omp_array_reduction (tree c, g *** 706,727 **** /* Create the merge statement list. */ pushlevel (); ! if (GFC_DESCRIPTOR_TYPE_P (type) ! && GFC_TYPE_ARRAY_AKIND (type) == GFC_ARRAY_ALLOCATABLE) ! { ! /* If decl is an allocatable array, it needs to be deallocated ! afterwards. */ ! stmtblock_t block; ! ! gfc_start_block (&block); ! gfc_add_expr_to_block (&block, gfc_trans_assignment (e3, e4, false, ! true)); ! gfc_add_expr_to_block (&block, gfc_trans_dealloc_allocated (decl, false, ! NULL)); ! stmt = gfc_finish_block (&block); ! } ! else stmt = gfc_trans_assignment (e3, e4, false, true); if (TREE_CODE (stmt) != BIND_EXPR) stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); else --- 1577,1587 ---- /* Create the merge statement list. */ pushlevel (); ! if (e4) stmt = gfc_trans_assignment (e3, e4, false, true); + else + stmt = gfc_trans_call (n->udr->combiner, false, + NULL_TREE, NULL_TREE, false); if (TREE_CODE (stmt) != BIND_EXPR) stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); else *************** gfc_trans_omp_array_reduction (tree c, g *** 734,765 **** gfc_current_locus = old_loc; gfc_free_expr (e1); ! gfc_free_expr (e2); gfc_free_expr (e3); ! gfc_free_expr (e4); free (symtree1); free (symtree2); free (symtree3); free (symtree4); ! gfc_free_array_spec (outer_sym.as); } static tree ! gfc_trans_omp_reduction_list (gfc_namelist *namelist, tree list, ! enum tree_code reduction_code, locus where) { for (; namelist != NULL; namelist = namelist->next) if (namelist->sym->attr.referenced) { ! tree t = gfc_trans_omp_variable (namelist->sym); if (t != error_mark_node) { tree node = build_omp_clause (where.lb->location, OMP_CLAUSE_REDUCTION); OMP_CLAUSE_DECL (node) = t; ! OMP_CLAUSE_REDUCTION_CODE (node) = reduction_code; ! if (namelist->sym->attr.dimension) ! gfc_trans_omp_array_reduction (node, namelist->sym, where); list = gfc_trans_add_clause (node, list); } } --- 1594,1684 ---- gfc_current_locus = old_loc; gfc_free_expr (e1); ! if (e2) ! gfc_free_expr (e2); gfc_free_expr (e3); ! if (e4) ! gfc_free_expr (e4); free (symtree1); free (symtree2); free (symtree3); free (symtree4); ! if (outer_sym.as) ! gfc_free_array_spec (outer_sym.as); ! ! if (udr) ! { ! *udr->omp_out = omp_var_copy[0]; ! *udr->omp_in = omp_var_copy[1]; ! if (udr->initializer_ns) ! { ! *udr->omp_priv = omp_var_copy[2]; ! *udr->omp_orig = omp_var_copy[3]; ! } ! } } static tree ! gfc_trans_omp_reduction_list (gfc_omp_namelist *namelist, tree list, ! locus where) { for (; namelist != NULL; namelist = namelist->next) if (namelist->sym->attr.referenced) { ! tree t = gfc_trans_omp_variable (namelist->sym, false); if (t != error_mark_node) { tree node = build_omp_clause (where.lb->location, OMP_CLAUSE_REDUCTION); OMP_CLAUSE_DECL (node) = t; ! switch (namelist->u.reduction_op) ! { ! case OMP_REDUCTION_PLUS: ! OMP_CLAUSE_REDUCTION_CODE (node) = PLUS_EXPR; ! break; ! case OMP_REDUCTION_MINUS: ! OMP_CLAUSE_REDUCTION_CODE (node) = MINUS_EXPR; ! break; ! case OMP_REDUCTION_TIMES: ! OMP_CLAUSE_REDUCTION_CODE (node) = MULT_EXPR; ! break; ! case OMP_REDUCTION_AND: ! OMP_CLAUSE_REDUCTION_CODE (node) = TRUTH_ANDIF_EXPR; ! break; ! case OMP_REDUCTION_OR: ! OMP_CLAUSE_REDUCTION_CODE (node) = TRUTH_ORIF_EXPR; ! break; ! case OMP_REDUCTION_EQV: ! OMP_CLAUSE_REDUCTION_CODE (node) = EQ_EXPR; ! break; ! case OMP_REDUCTION_NEQV: ! OMP_CLAUSE_REDUCTION_CODE (node) = NE_EXPR; ! break; ! case OMP_REDUCTION_MAX: ! OMP_CLAUSE_REDUCTION_CODE (node) = MAX_EXPR; ! break; ! case OMP_REDUCTION_MIN: ! OMP_CLAUSE_REDUCTION_CODE (node) = MIN_EXPR; ! break; ! case OMP_REDUCTION_IAND: ! OMP_CLAUSE_REDUCTION_CODE (node) = BIT_AND_EXPR; ! break; ! case OMP_REDUCTION_IOR: ! OMP_CLAUSE_REDUCTION_CODE (node) = BIT_IOR_EXPR; ! break; ! case OMP_REDUCTION_IEOR: ! OMP_CLAUSE_REDUCTION_CODE (node) = BIT_XOR_EXPR; ! break; ! case OMP_REDUCTION_USER: ! OMP_CLAUSE_REDUCTION_CODE (node) = ERROR_MARK; ! break; ! default: ! gcc_unreachable (); ! } ! if (namelist->sym->attr.dimension ! || namelist->u.reduction_op == OMP_REDUCTION_USER ! || namelist->sym->attr.allocatable) ! gfc_trans_omp_array_reduction_or_udr (node, namelist, where); list = gfc_trans_add_clause (node, list); } } *************** gfc_trans_omp_reduction_list (gfc_nameli *** 768,774 **** static tree gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, ! locus where) { tree omp_clauses = NULL_TREE, chunk_size, c; int list; --- 1687,1693 ---- static tree gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, ! locus where, bool declare_simd = false) { tree omp_clauses = NULL_TREE, chunk_size, c; int list; *************** gfc_trans_omp_clauses (stmtblock_t *bloc *** 780,841 **** for (list = 0; list < OMP_LIST_NUM; list++) { ! gfc_namelist *n = clauses->lists[list]; if (n == NULL) continue; - if (list >= OMP_LIST_REDUCTION_FIRST - && list <= OMP_LIST_REDUCTION_LAST) - { - enum tree_code reduction_code; - switch (list) - { - case OMP_LIST_PLUS: - reduction_code = PLUS_EXPR; - break; - case OMP_LIST_MULT: - reduction_code = MULT_EXPR; - break; - case OMP_LIST_SUB: - reduction_code = MINUS_EXPR; - break; - case OMP_LIST_AND: - reduction_code = TRUTH_ANDIF_EXPR; - break; - case OMP_LIST_OR: - reduction_code = TRUTH_ORIF_EXPR; - break; - case OMP_LIST_EQV: - reduction_code = EQ_EXPR; - break; - case OMP_LIST_NEQV: - reduction_code = NE_EXPR; - break; - case OMP_LIST_MAX: - reduction_code = MAX_EXPR; - break; - case OMP_LIST_MIN: - reduction_code = MIN_EXPR; - break; - case OMP_LIST_IAND: - reduction_code = BIT_AND_EXPR; - break; - case OMP_LIST_IOR: - reduction_code = BIT_IOR_EXPR; - break; - case OMP_LIST_IEOR: - reduction_code = BIT_XOR_EXPR; - break; - default: - gcc_unreachable (); - } - omp_clauses - = gfc_trans_omp_reduction_list (n, omp_clauses, reduction_code, - where); - continue; - } switch (list) { case OMP_LIST_PRIVATE: clause_code = OMP_CLAUSE_PRIVATE; goto add_clause; --- 1699,1713 ---- for (list = 0; list < OMP_LIST_NUM; list++) { ! gfc_omp_namelist *n = clauses->lists[list]; if (n == NULL) continue; switch (list) { + case OMP_LIST_REDUCTION: + omp_clauses = gfc_trans_omp_reduction_list (n, omp_clauses, where); + break; case OMP_LIST_PRIVATE: clause_code = OMP_CLAUSE_PRIVATE; goto add_clause; *************** gfc_trans_omp_clauses (stmtblock_t *bloc *** 853,862 **** goto add_clause; case OMP_LIST_COPYPRIVATE: clause_code = OMP_CLAUSE_COPYPRIVATE; /* FALLTHROUGH */ add_clause: omp_clauses ! = gfc_trans_omp_variable_list (clause_code, n, omp_clauses); break; default: break; --- 1725,2135 ---- goto add_clause; case OMP_LIST_COPYPRIVATE: clause_code = OMP_CLAUSE_COPYPRIVATE; + goto add_clause; + case OMP_LIST_UNIFORM: + clause_code = OMP_CLAUSE_UNIFORM; /* FALLTHROUGH */ add_clause: omp_clauses ! = gfc_trans_omp_variable_list (clause_code, n, omp_clauses, ! declare_simd); ! break; ! case OMP_LIST_ALIGNED: ! for (; n != NULL; n = n->next) ! if (n->sym->attr.referenced || declare_simd) ! { ! tree t = gfc_trans_omp_variable (n->sym, declare_simd); ! if (t != error_mark_node) ! { ! tree node = build_omp_clause (input_location, ! OMP_CLAUSE_ALIGNED); ! OMP_CLAUSE_DECL (node) = t; ! if (n->expr) ! { ! tree alignment_var; ! ! if (block == NULL) ! alignment_var = gfc_conv_constant_to_tree (n->expr); ! else ! { ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, n->expr); ! gfc_add_block_to_block (block, &se.pre); ! alignment_var = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! } ! OMP_CLAUSE_ALIGNED_ALIGNMENT (node) = alignment_var; ! } ! omp_clauses = gfc_trans_add_clause (node, omp_clauses); ! } ! } ! break; ! case OMP_LIST_LINEAR: ! { ! gfc_expr *last_step_expr = NULL; ! tree last_step = NULL_TREE; ! ! for (; n != NULL; n = n->next) ! { ! if (n->expr) ! { ! last_step_expr = n->expr; ! last_step = NULL_TREE; ! } ! if (n->sym->attr.referenced || declare_simd) ! { ! tree t = gfc_trans_omp_variable (n->sym, declare_simd); ! if (t != error_mark_node) ! { ! tree node = build_omp_clause (input_location, ! OMP_CLAUSE_LINEAR); ! OMP_CLAUSE_DECL (node) = t; ! if (last_step_expr && last_step == NULL_TREE) ! { ! if (block == NULL) ! last_step ! = gfc_conv_constant_to_tree (last_step_expr); ! else ! { ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, last_step_expr); ! gfc_add_block_to_block (block, &se.pre); ! last_step = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! } ! } ! OMP_CLAUSE_LINEAR_STEP (node) ! = fold_convert (gfc_typenode_for_spec (&n->sym->ts), ! last_step); ! if (n->sym->attr.dimension || n->sym->attr.allocatable) ! OMP_CLAUSE_LINEAR_ARRAY (node) = 1; ! omp_clauses = gfc_trans_add_clause (node, omp_clauses); ! } ! } ! } ! } ! break; ! case OMP_LIST_DEPEND: ! for (; n != NULL; n = n->next) ! { ! if (!n->sym->attr.referenced) ! continue; ! ! tree node = build_omp_clause (input_location, OMP_CLAUSE_DEPEND); ! if (n->expr == NULL || n->expr->ref->u.ar.type == AR_FULL) ! { ! tree decl = gfc_get_symbol_decl (n->sym); ! if (gfc_omp_privatize_by_reference (decl)) ! decl = build_fold_indirect_ref (decl); ! if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl))) ! { ! decl = gfc_conv_descriptor_data_get (decl); ! decl = fold_convert (build_pointer_type (char_type_node), ! decl); ! decl = build_fold_indirect_ref (decl); ! } ! else if (DECL_P (decl)) ! TREE_ADDRESSABLE (decl) = 1; ! OMP_CLAUSE_DECL (node) = decl; ! } ! else ! { ! tree ptr; ! gfc_init_se (&se, NULL); ! if (n->expr->ref->u.ar.type == AR_ELEMENT) ! { ! gfc_conv_expr_reference (&se, n->expr); ! ptr = se.expr; ! } ! else ! { ! gfc_conv_expr_descriptor (&se, n->expr); ! ptr = gfc_conv_array_data (se.expr); ! } ! gfc_add_block_to_block (block, &se.pre); ! gfc_add_block_to_block (block, &se.post); ! ptr = fold_convert (build_pointer_type (char_type_node), ! ptr); ! OMP_CLAUSE_DECL (node) = build_fold_indirect_ref (ptr); ! } ! switch (n->u.depend_op) ! { ! case OMP_DEPEND_IN: ! OMP_CLAUSE_DEPEND_KIND (node) = OMP_CLAUSE_DEPEND_IN; ! break; ! case OMP_DEPEND_OUT: ! OMP_CLAUSE_DEPEND_KIND (node) = OMP_CLAUSE_DEPEND_OUT; ! break; ! case OMP_DEPEND_INOUT: ! OMP_CLAUSE_DEPEND_KIND (node) = OMP_CLAUSE_DEPEND_INOUT; ! break; ! default: ! gcc_unreachable (); ! } ! omp_clauses = gfc_trans_add_clause (node, omp_clauses); ! } ! break; ! case OMP_LIST_MAP: ! for (; n != NULL; n = n->next) ! { ! if (!n->sym->attr.referenced) ! continue; ! ! tree node = build_omp_clause (input_location, OMP_CLAUSE_MAP); ! tree node2 = NULL_TREE; ! tree node3 = NULL_TREE; ! tree node4 = NULL_TREE; ! tree decl = gfc_get_symbol_decl (n->sym); ! if (DECL_P (decl)) ! TREE_ADDRESSABLE (decl) = 1; ! if (n->expr == NULL || n->expr->ref->u.ar.type == AR_FULL) ! { ! if (POINTER_TYPE_P (TREE_TYPE (decl))) ! { ! node4 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node4) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (node4) = decl; ! OMP_CLAUSE_SIZE (node4) = size_int (0); ! decl = build_fold_indirect_ref (decl); ! } ! if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl))) ! { ! tree type = TREE_TYPE (decl); ! tree ptr = gfc_conv_descriptor_data_get (decl); ! ptr = fold_convert (build_pointer_type (char_type_node), ! ptr); ! ptr = build_fold_indirect_ref (ptr); ! OMP_CLAUSE_DECL (node) = ptr; ! node2 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node2) = OMP_CLAUSE_MAP_TO_PSET; ! OMP_CLAUSE_DECL (node2) = decl; ! OMP_CLAUSE_SIZE (node2) = TYPE_SIZE_UNIT (type); ! node3 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node3) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (node3) ! = gfc_conv_descriptor_data_get (decl); ! OMP_CLAUSE_SIZE (node3) = size_int (0); ! if (n->sym->attr.pointer) ! { ! stmtblock_t cond_block; ! tree size ! = gfc_create_var (gfc_array_index_type, NULL); ! tree tem, then_b, else_b, zero, cond; ! ! gfc_init_block (&cond_block); ! tem ! = gfc_full_array_size (&cond_block, decl, ! GFC_TYPE_ARRAY_RANK (type)); ! gfc_add_modify (&cond_block, size, tem); ! then_b = gfc_finish_block (&cond_block); ! gfc_init_block (&cond_block); ! zero = build_int_cst (gfc_array_index_type, 0); ! gfc_add_modify (&cond_block, size, zero); ! else_b = gfc_finish_block (&cond_block); ! tem = gfc_conv_descriptor_data_get (decl); ! tem = fold_convert (pvoid_type_node, tem); ! cond = fold_build2_loc (input_location, NE_EXPR, ! boolean_type_node, ! tem, null_pointer_node); ! gfc_add_expr_to_block (block, ! build3_loc (input_location, ! COND_EXPR, ! void_type_node, ! cond, then_b, ! else_b)); ! OMP_CLAUSE_SIZE (node) = size; ! } ! else ! OMP_CLAUSE_SIZE (node) ! = gfc_full_array_size (block, decl, ! GFC_TYPE_ARRAY_RANK (type)); ! tree elemsz ! = TYPE_SIZE_UNIT (gfc_get_element_type (type)); ! elemsz = fold_convert (gfc_array_index_type, elemsz); ! OMP_CLAUSE_SIZE (node) ! = fold_build2 (MULT_EXPR, gfc_array_index_type, ! OMP_CLAUSE_SIZE (node), elemsz); ! } ! else ! OMP_CLAUSE_DECL (node) = decl; ! } ! else ! { ! tree ptr, ptr2; ! gfc_init_se (&se, NULL); ! if (n->expr->ref->u.ar.type == AR_ELEMENT) ! { ! gfc_conv_expr_reference (&se, n->expr); ! gfc_add_block_to_block (block, &se.pre); ! ptr = se.expr; ! OMP_CLAUSE_SIZE (node) ! = TYPE_SIZE_UNIT (TREE_TYPE (ptr)); ! } ! else ! { ! gfc_conv_expr_descriptor (&se, n->expr); ! ptr = gfc_conv_array_data (se.expr); ! tree type = TREE_TYPE (se.expr); ! gfc_add_block_to_block (block, &se.pre); ! OMP_CLAUSE_SIZE (node) ! = gfc_full_array_size (block, se.expr, ! GFC_TYPE_ARRAY_RANK (type)); ! tree elemsz ! = TYPE_SIZE_UNIT (gfc_get_element_type (type)); ! elemsz = fold_convert (gfc_array_index_type, elemsz); ! OMP_CLAUSE_SIZE (node) ! = fold_build2 (MULT_EXPR, gfc_array_index_type, ! OMP_CLAUSE_SIZE (node), elemsz); ! } ! gfc_add_block_to_block (block, &se.post); ! ptr = fold_convert (build_pointer_type (char_type_node), ! ptr); ! OMP_CLAUSE_DECL (node) = build_fold_indirect_ref (ptr); ! ! if (POINTER_TYPE_P (TREE_TYPE (decl)) ! && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))) ! { ! node4 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node4) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (node4) = decl; ! OMP_CLAUSE_SIZE (node4) = size_int (0); ! decl = build_fold_indirect_ref (decl); ! } ! ptr = fold_convert (sizetype, ptr); ! if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl))) ! { ! tree type = TREE_TYPE (decl); ! ptr2 = gfc_conv_descriptor_data_get (decl); ! node2 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node2) = OMP_CLAUSE_MAP_TO_PSET; ! OMP_CLAUSE_DECL (node2) = decl; ! OMP_CLAUSE_SIZE (node2) = TYPE_SIZE_UNIT (type); ! node3 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node3) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (node3) ! = gfc_conv_descriptor_data_get (decl); ! } ! else ! { ! if (TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE) ! ptr2 = build_fold_addr_expr (decl); ! else ! { ! gcc_assert (POINTER_TYPE_P (TREE_TYPE (decl))); ! ptr2 = decl; ! } ! node3 = build_omp_clause (input_location, ! OMP_CLAUSE_MAP); ! OMP_CLAUSE_MAP_KIND (node3) = OMP_CLAUSE_MAP_POINTER; ! OMP_CLAUSE_DECL (node3) = decl; ! } ! ptr2 = fold_convert (sizetype, ptr2); ! OMP_CLAUSE_SIZE (node3) ! = fold_build2 (MINUS_EXPR, sizetype, ptr, ptr2); ! } ! switch (n->u.map_op) ! { ! case OMP_MAP_ALLOC: ! OMP_CLAUSE_MAP_KIND (node) = OMP_CLAUSE_MAP_ALLOC; ! break; ! case OMP_MAP_TO: ! OMP_CLAUSE_MAP_KIND (node) = OMP_CLAUSE_MAP_TO; ! break; ! case OMP_MAP_FROM: ! OMP_CLAUSE_MAP_KIND (node) = OMP_CLAUSE_MAP_FROM; ! break; ! case OMP_MAP_TOFROM: ! OMP_CLAUSE_MAP_KIND (node) = OMP_CLAUSE_MAP_TOFROM; ! break; ! default: ! gcc_unreachable (); ! } ! omp_clauses = gfc_trans_add_clause (node, omp_clauses); ! if (node2) ! omp_clauses = gfc_trans_add_clause (node2, omp_clauses); ! if (node3) ! omp_clauses = gfc_trans_add_clause (node3, omp_clauses); ! if (node4) ! omp_clauses = gfc_trans_add_clause (node4, omp_clauses); ! } ! break; ! case OMP_LIST_TO: ! case OMP_LIST_FROM: ! for (; n != NULL; n = n->next) ! { ! if (!n->sym->attr.referenced) ! continue; ! ! tree node = build_omp_clause (input_location, ! list == OMP_LIST_TO ! ? OMP_CLAUSE_TO : OMP_CLAUSE_FROM); ! if (n->expr == NULL || n->expr->ref->u.ar.type == AR_FULL) ! { ! tree decl = gfc_get_symbol_decl (n->sym); ! if (gfc_omp_privatize_by_reference (decl)) ! decl = build_fold_indirect_ref (decl); ! if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl))) ! { ! tree type = TREE_TYPE (decl); ! tree ptr = gfc_conv_descriptor_data_get (decl); ! ptr = fold_convert (build_pointer_type (char_type_node), ! ptr); ! ptr = build_fold_indirect_ref (ptr); ! OMP_CLAUSE_DECL (node) = ptr; ! OMP_CLAUSE_SIZE (node) ! = gfc_full_array_size (block, decl, ! GFC_TYPE_ARRAY_RANK (type)); ! tree elemsz ! = TYPE_SIZE_UNIT (gfc_get_element_type (type)); ! elemsz = fold_convert (gfc_array_index_type, elemsz); ! OMP_CLAUSE_SIZE (node) ! = fold_build2 (MULT_EXPR, gfc_array_index_type, ! OMP_CLAUSE_SIZE (node), elemsz); ! } ! else ! OMP_CLAUSE_DECL (node) = decl; ! } ! else ! { ! tree ptr; ! gfc_init_se (&se, NULL); ! if (n->expr->ref->u.ar.type == AR_ELEMENT) ! { ! gfc_conv_expr_reference (&se, n->expr); ! ptr = se.expr; ! gfc_add_block_to_block (block, &se.pre); ! OMP_CLAUSE_SIZE (node) ! = TYPE_SIZE_UNIT (TREE_TYPE (ptr)); ! } ! else ! { ! gfc_conv_expr_descriptor (&se, n->expr); ! ptr = gfc_conv_array_data (se.expr); ! tree type = TREE_TYPE (se.expr); ! gfc_add_block_to_block (block, &se.pre); ! OMP_CLAUSE_SIZE (node) ! = gfc_full_array_size (block, se.expr, ! GFC_TYPE_ARRAY_RANK (type)); ! tree elemsz ! = TYPE_SIZE_UNIT (gfc_get_element_type (type)); ! elemsz = fold_convert (gfc_array_index_type, elemsz); ! OMP_CLAUSE_SIZE (node) ! = fold_build2 (MULT_EXPR, gfc_array_index_type, ! OMP_CLAUSE_SIZE (node), elemsz); ! } ! gfc_add_block_to_block (block, &se.post); ! ptr = fold_convert (build_pointer_type (char_type_node), ! ptr); ! OMP_CLAUSE_DECL (node) = build_fold_indirect_ref (ptr); ! } ! omp_clauses = gfc_trans_add_clause (node, omp_clauses); ! } break; default: break; *************** gfc_trans_omp_clauses (stmtblock_t *bloc *** 1000,1006 **** omp_clauses = gfc_trans_add_clause (c, omp_clauses); } ! return omp_clauses; } /* Like gfc_trans_code, but force creation of a BIND_EXPR around it. */ --- 2273,2418 ---- omp_clauses = gfc_trans_add_clause (c, omp_clauses); } ! if (clauses->inbranch) ! { ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_INBRANCH); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! if (clauses->notinbranch) ! { ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_NOTINBRANCH); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! switch (clauses->cancel) ! { ! case OMP_CANCEL_UNKNOWN: ! break; ! case OMP_CANCEL_PARALLEL: ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_PARALLEL); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! break; ! case OMP_CANCEL_SECTIONS: ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_SECTIONS); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! break; ! case OMP_CANCEL_DO: ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_FOR); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! break; ! case OMP_CANCEL_TASKGROUP: ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_TASKGROUP); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! break; ! } ! ! if (clauses->proc_bind != OMP_PROC_BIND_UNKNOWN) ! { ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_PROC_BIND); ! switch (clauses->proc_bind) ! { ! case OMP_PROC_BIND_MASTER: ! OMP_CLAUSE_PROC_BIND_KIND (c) = OMP_CLAUSE_PROC_BIND_MASTER; ! break; ! case OMP_PROC_BIND_SPREAD: ! OMP_CLAUSE_PROC_BIND_KIND (c) = OMP_CLAUSE_PROC_BIND_SPREAD; ! break; ! case OMP_PROC_BIND_CLOSE: ! OMP_CLAUSE_PROC_BIND_KIND (c) = OMP_CLAUSE_PROC_BIND_CLOSE; ! break; ! default: ! gcc_unreachable (); ! } ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! if (clauses->safelen_expr) ! { ! tree safelen_var; ! ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, clauses->safelen_expr); ! gfc_add_block_to_block (block, &se.pre); ! safelen_var = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_SAFELEN); ! OMP_CLAUSE_SAFELEN_EXPR (c) = safelen_var; ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! if (clauses->simdlen_expr) ! { ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_SIMDLEN); ! OMP_CLAUSE_SIMDLEN_EXPR (c) ! = gfc_conv_constant_to_tree (clauses->simdlen_expr); ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! if (clauses->num_teams) ! { ! tree num_teams; ! ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, clauses->num_teams); ! gfc_add_block_to_block (block, &se.pre); ! num_teams = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_NUM_TEAMS); ! OMP_CLAUSE_NUM_TEAMS_EXPR (c) = num_teams; ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! if (clauses->device) ! { ! tree device; ! ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, clauses->device); ! gfc_add_block_to_block (block, &se.pre); ! device = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_DEVICE); ! OMP_CLAUSE_DEVICE_ID (c) = device; ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! if (clauses->thread_limit) ! { ! tree thread_limit; ! ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, clauses->thread_limit); ! gfc_add_block_to_block (block, &se.pre); ! thread_limit = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_THREAD_LIMIT); ! OMP_CLAUSE_THREAD_LIMIT_EXPR (c) = thread_limit; ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! chunk_size = NULL_TREE; ! if (clauses->dist_chunk_size) ! { ! gfc_init_se (&se, NULL); ! gfc_conv_expr (&se, clauses->dist_chunk_size); ! gfc_add_block_to_block (block, &se.pre); ! chunk_size = gfc_evaluate_now (se.expr, block); ! gfc_add_block_to_block (block, &se.post); ! } ! ! if (clauses->dist_sched_kind != OMP_SCHED_NONE) ! { ! c = build_omp_clause (where.lb->location, OMP_CLAUSE_DIST_SCHEDULE); ! OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR (c) = chunk_size; ! omp_clauses = gfc_trans_add_clause (c, omp_clauses); ! } ! ! return nreverse (omp_clauses); } /* Like gfc_trans_code, but force creation of a BIND_EXPR around it. */ *************** gfc_trans_omp_atomic (gfc_code *code) *** 1045,1050 **** --- 2457,2463 ---- enum tree_code op = ERROR_MARK; enum tree_code aop = OMP_ATOMIC; bool var_on_left = false; + bool seq_cst = (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_SEQ_CST) != 0; code = code->block->next; gcc_assert (code->op == EXEC_ASSIGN); *************** gfc_trans_omp_atomic (gfc_code *code) *** 1060,1066 **** && expr2->value.function.isym->id == GFC_ISYM_CONVERSION) expr2 = expr2->value.function.actual->expr; ! switch (atomic_code->ext.omp_atomic) { case GFC_OMP_ATOMIC_READ: gfc_conv_expr (&vse, code->expr1); --- 2473,2479 ---- && expr2->value.function.isym->id == GFC_ISYM_CONVERSION) expr2 = expr2->value.function.actual->expr; ! switch (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) { case GFC_OMP_ATOMIC_READ: gfc_conv_expr (&vse, code->expr1); *************** gfc_trans_omp_atomic (gfc_code *code) *** 1072,1077 **** --- 2485,2491 ---- lhsaddr = gfc_build_addr_expr (NULL, lse.expr); x = build1 (OMP_ATOMIC_READ, type, lhsaddr); + OMP_ATOMIC_SEQ_CST (x) = seq_cst; x = convert (TREE_TYPE (vse.expr), x); gfc_add_modify (&block, vse.expr, x); *************** gfc_trans_omp_atomic (gfc_code *code) *** 1107,1113 **** type = TREE_TYPE (lse.expr); lhsaddr = gfc_build_addr_expr (NULL, lse.expr); ! if (atomic_code->ext.omp_atomic == GFC_OMP_ATOMIC_WRITE) { gfc_conv_expr (&rse, expr2); gfc_add_block_to_block (&block, &rse.pre); --- 2521,2529 ---- type = TREE_TYPE (lse.expr); lhsaddr = gfc_build_addr_expr (NULL, lse.expr); ! if (((atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) ! == GFC_OMP_ATOMIC_WRITE) ! || (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_SWAP)) { gfc_conv_expr (&rse, expr2); gfc_add_block_to_block (&block, &rse.pre); *************** gfc_trans_omp_atomic (gfc_code *code) *** 1229,1235 **** lhsaddr = save_expr (lhsaddr); rhs = gfc_evaluate_now (rse.expr, &block); ! if (atomic_code->ext.omp_atomic == GFC_OMP_ATOMIC_WRITE) x = rhs; else { --- 2645,2653 ---- lhsaddr = save_expr (lhsaddr); rhs = gfc_evaluate_now (rse.expr, &block); ! if (((atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) ! == GFC_OMP_ATOMIC_WRITE) ! || (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_SWAP)) x = rhs; else { *************** gfc_trans_omp_atomic (gfc_code *code) *** 1252,1257 **** --- 2670,2676 ---- if (aop == OMP_ATOMIC) { x = build2_v (OMP_ATOMIC, lhsaddr, convert (type, x)); + OMP_ATOMIC_SEQ_CST (x) = seq_cst; gfc_add_expr_to_block (&block, x); } else *************** gfc_trans_omp_atomic (gfc_code *code) *** 1273,1278 **** --- 2692,2698 ---- gfc_add_block_to_block (&block, &lse.pre); } x = build2 (aop, type, lhsaddr, convert (type, x)); + OMP_ATOMIC_SEQ_CST (x) = seq_cst; x = convert (TREE_TYPE (vse.expr), x); gfc_add_modify (&block, vse.expr, x); } *************** gfc_trans_omp_barrier (void) *** 1288,1293 **** --- 2708,2770 ---- } static tree + gfc_trans_omp_cancel (gfc_code *code) + { + int mask = 0; + tree ifc = boolean_true_node; + stmtblock_t block; + switch (code->ext.omp_clauses->cancel) + { + case OMP_CANCEL_PARALLEL: mask = 1; break; + case OMP_CANCEL_DO: mask = 2; break; + case OMP_CANCEL_SECTIONS: mask = 4; break; + case OMP_CANCEL_TASKGROUP: mask = 8; break; + default: gcc_unreachable (); + } + gfc_start_block (&block); + if (code->ext.omp_clauses->if_expr) + { + gfc_se se; + tree if_var; + + gfc_init_se (&se, NULL); + gfc_conv_expr (&se, code->ext.omp_clauses->if_expr); + gfc_add_block_to_block (&block, &se.pre); + if_var = gfc_evaluate_now (se.expr, &block); + gfc_add_block_to_block (&block, &se.post); + tree type = TREE_TYPE (if_var); + ifc = fold_build2_loc (input_location, NE_EXPR, + boolean_type_node, if_var, + build_zero_cst (type)); + } + tree decl = builtin_decl_explicit (BUILT_IN_GOMP_CANCEL); + tree c_bool_type = TREE_TYPE (TREE_TYPE (decl)); + ifc = fold_convert (c_bool_type, ifc); + gfc_add_expr_to_block (&block, + build_call_expr_loc (input_location, decl, 2, + build_int_cst (integer_type_node, + mask), ifc)); + return gfc_finish_block (&block); + } + + static tree + gfc_trans_omp_cancellation_point (gfc_code *code) + { + int mask = 0; + switch (code->ext.omp_clauses->cancel) + { + case OMP_CANCEL_PARALLEL: mask = 1; break; + case OMP_CANCEL_DO: mask = 2; break; + case OMP_CANCEL_SECTIONS: mask = 4; break; + case OMP_CANCEL_TASKGROUP: mask = 8; break; + default: gcc_unreachable (); + } + tree decl = builtin_decl_explicit (BUILT_IN_GOMP_CANCELLATION_POINT); + return build_call_expr_loc (input_location, decl, 1, + build_int_cst (integer_type_node, mask)); + } + + static tree gfc_trans_omp_critical (gfc_code *code) { tree name = NULL_TREE, stmt; *************** typedef struct dovar_init_d { *** 1304,1310 **** static tree ! gfc_trans_omp_do (gfc_code *code, stmtblock_t *pblock, gfc_omp_clauses *do_clauses, tree par_clauses) { gfc_se se; --- 2781,2787 ---- static tree ! gfc_trans_omp_do (gfc_code *code, gfc_exec_op op, stmtblock_t *pblock, gfc_omp_clauses *do_clauses, tree par_clauses) { gfc_se se; *************** gfc_trans_omp_do (gfc_code *code, stmtbl *** 1344,1357 **** if (clauses) { ! gfc_namelist *n; ! for (n = clauses->lists[OMP_LIST_LASTPRIVATE]; n != NULL; ! n = n->next) ! if (code->ext.iterator->var->symtree->n.sym == n->sym) ! break; if (n != NULL) dovar_found = 1; ! else if (n == NULL) for (n = clauses->lists[OMP_LIST_PRIVATE]; n != NULL; n = n->next) if (code->ext.iterator->var->symtree->n.sym == n->sym) break; --- 2821,2836 ---- if (clauses) { ! gfc_omp_namelist *n = NULL; ! if (op != EXEC_OMP_DISTRIBUTE) ! for (n = clauses->lists[(op == EXEC_OMP_SIMD && collapse == 1) ! ? OMP_LIST_LINEAR : OMP_LIST_LASTPRIVATE]; ! n != NULL; n = n->next) ! if (code->ext.iterator->var->symtree->n.sym == n->sym) ! break; if (n != NULL) dovar_found = 1; ! else if (n == NULL && op != EXEC_OMP_SIMD) for (n = clauses->lists[OMP_LIST_PRIVATE]; n != NULL; n = n->next) if (code->ext.iterator->var->symtree->n.sym == n->sym) break; *************** gfc_trans_omp_do (gfc_code *code, stmtbl *** 1393,1399 **** } else dovar_decl ! = gfc_trans_omp_variable (code->ext.iterator->var->symtree->n.sym); /* Loop body. */ if (simple) --- 2872,2879 ---- } else dovar_decl ! = gfc_trans_omp_variable (code->ext.iterator->var->symtree->n.sym, ! false); /* Loop body. */ if (simple) *************** gfc_trans_omp_do (gfc_code *code, stmtbl *** 1447,1457 **** if (!dovar_found) { ! tmp = build_omp_clause (input_location, OMP_CLAUSE_PRIVATE); OMP_CLAUSE_DECL (tmp) = dovar_decl; omp_clauses = gfc_trans_add_clause (tmp, omp_clauses); } ! else if (dovar_found == 2) { tree c = NULL; --- 2927,2950 ---- if (!dovar_found) { ! if (op == EXEC_OMP_SIMD) ! { ! if (collapse == 1) ! { ! tmp = build_omp_clause (input_location, OMP_CLAUSE_LINEAR); ! OMP_CLAUSE_LINEAR_STEP (tmp) = step; ! } ! else ! tmp = build_omp_clause (input_location, OMP_CLAUSE_LASTPRIVATE); ! if (!simple) ! dovar_found = 2; ! } ! else ! tmp = build_omp_clause (input_location, OMP_CLAUSE_PRIVATE); OMP_CLAUSE_DECL (tmp) = dovar_decl; omp_clauses = gfc_trans_add_clause (tmp, omp_clauses); } ! if (dovar_found == 2) { tree c = NULL; *************** gfc_trans_omp_do (gfc_code *code, stmtbl *** 1475,1482 **** OMP_CLAUSE_LASTPRIVATE_STMT (c) = tmp; break; } } ! if (c == NULL && par_clauses != NULL) { for (c = par_clauses; c ; c = OMP_CLAUSE_CHAIN (c)) if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE --- 2968,2981 ---- OMP_CLAUSE_LASTPRIVATE_STMT (c) = tmp; break; } + else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR + && OMP_CLAUSE_DECL (c) == dovar_decl) + { + OMP_CLAUSE_LINEAR_STMT (c) = tmp; + break; + } } ! if (c == NULL && op == EXEC_OMP_DO && par_clauses != NULL) { for (c = par_clauses; c ; c = OMP_CLAUSE_CHAIN (c)) if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE *************** gfc_trans_omp_do (gfc_code *code, stmtbl *** 1496,1502 **** } if (!simple) { ! tmp = build_omp_clause (input_location, OMP_CLAUSE_PRIVATE); OMP_CLAUSE_DECL (tmp) = count; omp_clauses = gfc_trans_add_clause (tmp, omp_clauses); } --- 2995,3011 ---- } if (!simple) { ! if (op != EXEC_OMP_SIMD) ! tmp = build_omp_clause (input_location, OMP_CLAUSE_PRIVATE); ! else if (collapse == 1) ! { ! tmp = build_omp_clause (input_location, OMP_CLAUSE_LINEAR); ! OMP_CLAUSE_LINEAR_STEP (tmp) = step; ! OMP_CLAUSE_LINEAR_NO_COPYIN (tmp) = 1; ! OMP_CLAUSE_LINEAR_NO_COPYOUT (tmp) = 1; ! } ! else ! tmp = build_omp_clause (input_location, OMP_CLAUSE_LASTPRIVATE); OMP_CLAUSE_DECL (tmp) = count; omp_clauses = gfc_trans_add_clause (tmp, omp_clauses); } *************** gfc_trans_omp_do (gfc_code *code, stmtbl *** 1538,1544 **** } /* End of loop body. */ ! stmt = make_node (OMP_FOR); TREE_TYPE (stmt) = void_type_node; OMP_FOR_BODY (stmt) = gfc_finish_block (&body); --- 3047,3059 ---- } /* End of loop body. */ ! switch (op) ! { ! case EXEC_OMP_SIMD: stmt = make_node (OMP_SIMD); break; ! case EXEC_OMP_DO: stmt = make_node (OMP_FOR); break; ! case EXEC_OMP_DISTRIBUTE: stmt = make_node (OMP_DISTRIBUTE); break; ! default: gcc_unreachable (); ! } TREE_TYPE (stmt) = void_type_node; OMP_FOR_BODY (stmt) = gfc_finish_block (&body); *************** gfc_trans_omp_parallel (gfc_code *code) *** 1589,1629 **** return gfc_finish_block (&block); } ! static tree ! gfc_trans_omp_parallel_do (gfc_code *code) { ! stmtblock_t block, *pblock = NULL; ! gfc_omp_clauses parallel_clauses, do_clauses; ! tree stmt, omp_clauses = NULL_TREE; ! gfc_start_block (&block); ! memset (&do_clauses, 0, sizeof (do_clauses)); if (code->ext.omp_clauses != NULL) { ! memcpy (¶llel_clauses, code->ext.omp_clauses, ! sizeof (parallel_clauses)); ! do_clauses.sched_kind = parallel_clauses.sched_kind; ! do_clauses.chunk_size = parallel_clauses.chunk_size; ! do_clauses.ordered = parallel_clauses.ordered; ! do_clauses.collapse = parallel_clauses.collapse; ! parallel_clauses.sched_kind = OMP_SCHED_NONE; ! parallel_clauses.chunk_size = NULL; ! parallel_clauses.ordered = false; ! parallel_clauses.collapse = 0; ! omp_clauses = gfc_trans_omp_clauses (&block, ¶llel_clauses, ! code->loc); } ! do_clauses.nowait = true; ! if (!do_clauses.ordered && do_clauses.sched_kind != OMP_SCHED_STATIC) ! pblock = █ else ! pushlevel (); ! stmt = gfc_trans_omp_do (code, pblock, &do_clauses, omp_clauses); ! if (TREE_CODE (stmt) != BIND_EXPR) ! stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); else ! poplevel (0, 0); stmt = build2_loc (input_location, OMP_PARALLEL, void_type_node, stmt, omp_clauses); OMP_PARALLEL_COMBINED (stmt) = 1; --- 3104,3455 ---- return gfc_finish_block (&block); } ! enum { ! GFC_OMP_SPLIT_SIMD, ! GFC_OMP_SPLIT_DO, ! GFC_OMP_SPLIT_PARALLEL, ! GFC_OMP_SPLIT_DISTRIBUTE, ! GFC_OMP_SPLIT_TEAMS, ! GFC_OMP_SPLIT_TARGET, ! GFC_OMP_SPLIT_NUM ! }; ! enum ! { ! GFC_OMP_MASK_SIMD = (1 << GFC_OMP_SPLIT_SIMD), ! GFC_OMP_MASK_DO = (1 << GFC_OMP_SPLIT_DO), ! GFC_OMP_MASK_PARALLEL = (1 << GFC_OMP_SPLIT_PARALLEL), ! GFC_OMP_MASK_DISTRIBUTE = (1 << GFC_OMP_SPLIT_DISTRIBUTE), ! GFC_OMP_MASK_TEAMS = (1 << GFC_OMP_SPLIT_TEAMS), ! GFC_OMP_MASK_TARGET = (1 << GFC_OMP_SPLIT_TARGET) ! }; ! static void ! gfc_split_omp_clauses (gfc_code *code, ! gfc_omp_clauses clausesa[GFC_OMP_SPLIT_NUM]) ! { ! int mask = 0, innermost = 0; ! memset (clausesa, 0, GFC_OMP_SPLIT_NUM * sizeof (gfc_omp_clauses)); ! switch (code->op) ! { ! case EXEC_OMP_DISTRIBUTE: ! innermost = GFC_OMP_SPLIT_DISTRIBUTE; ! break; ! case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: ! mask = GFC_OMP_MASK_DISTRIBUTE | GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO; ! innermost = GFC_OMP_SPLIT_DO; ! break; ! case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: ! mask = GFC_OMP_MASK_DISTRIBUTE | GFC_OMP_MASK_PARALLEL ! | GFC_OMP_MASK_DO | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_DISTRIBUTE_SIMD: ! mask = GFC_OMP_MASK_DISTRIBUTE | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_DO: ! innermost = GFC_OMP_SPLIT_DO; ! break; ! case EXEC_OMP_DO_SIMD: ! mask = GFC_OMP_MASK_DO | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_PARALLEL: ! innermost = GFC_OMP_SPLIT_PARALLEL; ! break; ! case EXEC_OMP_PARALLEL_DO: ! mask = GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO; ! innermost = GFC_OMP_SPLIT_DO; ! break; ! case EXEC_OMP_PARALLEL_DO_SIMD: ! mask = GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_SIMD: ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_TARGET: ! innermost = GFC_OMP_SPLIT_TARGET; ! break; ! case EXEC_OMP_TARGET_TEAMS: ! mask = GFC_OMP_MASK_TARGET | GFC_OMP_MASK_TEAMS; ! innermost = GFC_OMP_SPLIT_TEAMS; ! break; ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: ! mask = GFC_OMP_MASK_TARGET | GFC_OMP_MASK_TEAMS ! | GFC_OMP_MASK_DISTRIBUTE; ! innermost = GFC_OMP_SPLIT_DISTRIBUTE; ! break; ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: ! mask = GFC_OMP_MASK_TARGET | GFC_OMP_MASK_TEAMS | GFC_OMP_MASK_DISTRIBUTE ! | GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO; ! innermost = GFC_OMP_SPLIT_DO; ! break; ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: ! mask = GFC_OMP_MASK_TARGET | GFC_OMP_MASK_TEAMS | GFC_OMP_MASK_DISTRIBUTE ! | GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: ! mask = GFC_OMP_MASK_TARGET | GFC_OMP_MASK_TEAMS ! | GFC_OMP_MASK_DISTRIBUTE | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_TEAMS: ! innermost = GFC_OMP_SPLIT_TEAMS; ! break; ! case EXEC_OMP_TEAMS_DISTRIBUTE: ! mask = GFC_OMP_MASK_TEAMS | GFC_OMP_MASK_DISTRIBUTE; ! innermost = GFC_OMP_SPLIT_DISTRIBUTE; ! break; ! case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: ! mask = GFC_OMP_MASK_TEAMS | GFC_OMP_MASK_DISTRIBUTE ! | GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO; ! innermost = GFC_OMP_SPLIT_DO; ! break; ! case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: ! mask = GFC_OMP_MASK_TEAMS | GFC_OMP_MASK_DISTRIBUTE ! | GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: ! mask = GFC_OMP_MASK_TEAMS | GFC_OMP_MASK_DISTRIBUTE | GFC_OMP_MASK_SIMD; ! innermost = GFC_OMP_SPLIT_SIMD; ! break; ! default: ! gcc_unreachable (); ! } ! if (mask == 0) ! { ! clausesa[innermost] = *code->ext.omp_clauses; ! return; ! } if (code->ext.omp_clauses != NULL) { ! if (mask & GFC_OMP_MASK_TARGET) ! { ! /* First the clauses that are unique to some constructs. */ ! clausesa[GFC_OMP_SPLIT_TARGET].lists[OMP_LIST_MAP] ! = code->ext.omp_clauses->lists[OMP_LIST_MAP]; ! clausesa[GFC_OMP_SPLIT_TARGET].device ! = code->ext.omp_clauses->device; ! } ! if (mask & GFC_OMP_MASK_TEAMS) ! { ! /* First the clauses that are unique to some constructs. */ ! clausesa[GFC_OMP_SPLIT_TEAMS].num_teams ! = code->ext.omp_clauses->num_teams; ! clausesa[GFC_OMP_SPLIT_TEAMS].thread_limit ! = code->ext.omp_clauses->thread_limit; ! /* Shared and default clauses are allowed on parallel and teams. */ ! clausesa[GFC_OMP_SPLIT_TEAMS].lists[OMP_LIST_SHARED] ! = code->ext.omp_clauses->lists[OMP_LIST_SHARED]; ! clausesa[GFC_OMP_SPLIT_TEAMS].default_sharing ! = code->ext.omp_clauses->default_sharing; ! } ! if (mask & GFC_OMP_MASK_DISTRIBUTE) ! { ! /* First the clauses that are unique to some constructs. */ ! clausesa[GFC_OMP_SPLIT_DISTRIBUTE].dist_sched_kind ! = code->ext.omp_clauses->dist_sched_kind; ! clausesa[GFC_OMP_SPLIT_DISTRIBUTE].dist_chunk_size ! = code->ext.omp_clauses->dist_chunk_size; ! /* Duplicate collapse. */ ! clausesa[GFC_OMP_SPLIT_DISTRIBUTE].collapse ! = code->ext.omp_clauses->collapse; ! } ! if (mask & GFC_OMP_MASK_PARALLEL) ! { ! /* First the clauses that are unique to some constructs. */ ! clausesa[GFC_OMP_SPLIT_PARALLEL].lists[OMP_LIST_COPYIN] ! = code->ext.omp_clauses->lists[OMP_LIST_COPYIN]; ! clausesa[GFC_OMP_SPLIT_PARALLEL].num_threads ! = code->ext.omp_clauses->num_threads; ! clausesa[GFC_OMP_SPLIT_PARALLEL].proc_bind ! = code->ext.omp_clauses->proc_bind; ! /* Shared and default clauses are allowed on parallel and teams. */ ! clausesa[GFC_OMP_SPLIT_PARALLEL].lists[OMP_LIST_SHARED] ! = code->ext.omp_clauses->lists[OMP_LIST_SHARED]; ! clausesa[GFC_OMP_SPLIT_PARALLEL].default_sharing ! = code->ext.omp_clauses->default_sharing; ! } ! if (mask & GFC_OMP_MASK_DO) ! { ! /* First the clauses that are unique to some constructs. */ ! clausesa[GFC_OMP_SPLIT_DO].ordered ! = code->ext.omp_clauses->ordered; ! clausesa[GFC_OMP_SPLIT_DO].sched_kind ! = code->ext.omp_clauses->sched_kind; ! clausesa[GFC_OMP_SPLIT_DO].chunk_size ! = code->ext.omp_clauses->chunk_size; ! clausesa[GFC_OMP_SPLIT_DO].nowait ! = code->ext.omp_clauses->nowait; ! /* Duplicate collapse. */ ! clausesa[GFC_OMP_SPLIT_DO].collapse ! = code->ext.omp_clauses->collapse; ! } ! if (mask & GFC_OMP_MASK_SIMD) ! { ! clausesa[GFC_OMP_SPLIT_SIMD].safelen_expr ! = code->ext.omp_clauses->safelen_expr; ! clausesa[GFC_OMP_SPLIT_SIMD].lists[OMP_LIST_LINEAR] ! = code->ext.omp_clauses->lists[OMP_LIST_LINEAR]; ! clausesa[GFC_OMP_SPLIT_SIMD].lists[OMP_LIST_ALIGNED] ! = code->ext.omp_clauses->lists[OMP_LIST_ALIGNED]; ! /* Duplicate collapse. */ ! clausesa[GFC_OMP_SPLIT_SIMD].collapse ! = code->ext.omp_clauses->collapse; ! } ! /* Private clause is supported on all constructs but target, ! it is enough to put it on the innermost one. For ! !$ omp do put it on parallel though, ! as that's what we did for OpenMP 3.1. */ ! clausesa[innermost == GFC_OMP_SPLIT_DO ! ? (int) GFC_OMP_SPLIT_PARALLEL ! : innermost].lists[OMP_LIST_PRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_PRIVATE]; ! /* Firstprivate clause is supported on all constructs but ! target and simd. Put it on the outermost of those and ! duplicate on parallel. */ ! if (mask & GFC_OMP_MASK_TEAMS) ! clausesa[GFC_OMP_SPLIT_TEAMS].lists[OMP_LIST_FIRSTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_FIRSTPRIVATE]; ! else if (mask & GFC_OMP_MASK_DISTRIBUTE) ! clausesa[GFC_OMP_SPLIT_DISTRIBUTE].lists[OMP_LIST_FIRSTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_FIRSTPRIVATE]; ! if (mask & GFC_OMP_MASK_PARALLEL) ! clausesa[GFC_OMP_SPLIT_PARALLEL].lists[OMP_LIST_FIRSTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_FIRSTPRIVATE]; ! else if (mask & GFC_OMP_MASK_DO) ! clausesa[GFC_OMP_SPLIT_DO].lists[OMP_LIST_FIRSTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_FIRSTPRIVATE]; ! /* Lastprivate is allowed on do and simd. In ! parallel do{, simd} we actually want to put it on ! parallel rather than do. */ ! if (mask & GFC_OMP_MASK_PARALLEL) ! clausesa[GFC_OMP_SPLIT_PARALLEL].lists[OMP_LIST_LASTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_LASTPRIVATE]; ! else if (mask & GFC_OMP_MASK_DO) ! clausesa[GFC_OMP_SPLIT_DO].lists[OMP_LIST_LASTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_LASTPRIVATE]; ! if (mask & GFC_OMP_MASK_SIMD) ! clausesa[GFC_OMP_SPLIT_SIMD].lists[OMP_LIST_LASTPRIVATE] ! = code->ext.omp_clauses->lists[OMP_LIST_LASTPRIVATE]; ! /* Reduction is allowed on simd, do, parallel and teams. ! Duplicate it on all of them, but omit on do if ! parallel is present. */ ! if (mask & GFC_OMP_MASK_TEAMS) ! clausesa[GFC_OMP_SPLIT_TEAMS].lists[OMP_LIST_REDUCTION] ! = code->ext.omp_clauses->lists[OMP_LIST_REDUCTION]; ! if (mask & GFC_OMP_MASK_PARALLEL) ! clausesa[GFC_OMP_SPLIT_PARALLEL].lists[OMP_LIST_REDUCTION] ! = code->ext.omp_clauses->lists[OMP_LIST_REDUCTION]; ! else if (mask & GFC_OMP_MASK_DO) ! clausesa[GFC_OMP_SPLIT_DO].lists[OMP_LIST_REDUCTION] ! = code->ext.omp_clauses->lists[OMP_LIST_REDUCTION]; ! if (mask & GFC_OMP_MASK_SIMD) ! clausesa[GFC_OMP_SPLIT_SIMD].lists[OMP_LIST_REDUCTION] ! = code->ext.omp_clauses->lists[OMP_LIST_REDUCTION]; ! /* FIXME: This is currently being discussed. */ ! if (mask & GFC_OMP_MASK_PARALLEL) ! clausesa[GFC_OMP_SPLIT_PARALLEL].if_expr ! = code->ext.omp_clauses->if_expr; ! else ! clausesa[GFC_OMP_SPLIT_TARGET].if_expr ! = code->ext.omp_clauses->if_expr; } ! if ((mask & (GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO)) ! == (GFC_OMP_MASK_PARALLEL | GFC_OMP_MASK_DO)) ! clausesa[GFC_OMP_SPLIT_DO].nowait = true; ! } ! ! static tree ! gfc_trans_omp_do_simd (gfc_code *code, stmtblock_t *pblock, ! gfc_omp_clauses *clausesa, tree omp_clauses) ! { ! stmtblock_t block; ! gfc_omp_clauses clausesa_buf[GFC_OMP_SPLIT_NUM]; ! tree stmt, body, omp_do_clauses = NULL_TREE; ! ! if (pblock == NULL) ! gfc_start_block (&block); else ! gfc_init_block (&block); ! ! if (clausesa == NULL) ! { ! clausesa = clausesa_buf; ! gfc_split_omp_clauses (code, clausesa); ! } ! if (gfc_option.gfc_flag_openmp) ! omp_do_clauses ! = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_DO], code->loc); ! body = gfc_trans_omp_do (code, EXEC_OMP_SIMD, pblock ? pblock : &block, ! &clausesa[GFC_OMP_SPLIT_SIMD], omp_clauses); ! if (pblock == NULL) ! { ! if (TREE_CODE (body) != BIND_EXPR) ! body = build3_v (BIND_EXPR, NULL, body, poplevel (1, 0)); ! else ! poplevel (0, 0); ! } ! else if (TREE_CODE (body) != BIND_EXPR) ! body = build3_v (BIND_EXPR, NULL, body, NULL_TREE); ! if (gfc_option.gfc_flag_openmp) ! { ! stmt = make_node (OMP_FOR); ! TREE_TYPE (stmt) = void_type_node; ! OMP_FOR_BODY (stmt) = body; ! OMP_FOR_CLAUSES (stmt) = omp_do_clauses; ! } else ! stmt = body; ! gfc_add_expr_to_block (&block, stmt); ! return gfc_finish_block (&block); ! } ! ! static tree ! gfc_trans_omp_parallel_do (gfc_code *code, stmtblock_t *pblock, ! gfc_omp_clauses *clausesa) ! { ! stmtblock_t block, *new_pblock = pblock; ! gfc_omp_clauses clausesa_buf[GFC_OMP_SPLIT_NUM]; ! tree stmt, omp_clauses = NULL_TREE; ! ! if (pblock == NULL) ! gfc_start_block (&block); ! else ! gfc_init_block (&block); ! ! if (clausesa == NULL) ! { ! clausesa = clausesa_buf; ! gfc_split_omp_clauses (code, clausesa); ! } ! omp_clauses ! = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_PARALLEL], ! code->loc); ! if (pblock == NULL) ! { ! if (!clausesa[GFC_OMP_SPLIT_DO].ordered ! && clausesa[GFC_OMP_SPLIT_DO].sched_kind != OMP_SCHED_STATIC) ! new_pblock = █ ! else ! pushlevel (); ! } ! stmt = gfc_trans_omp_do (code, EXEC_OMP_DO, new_pblock, ! &clausesa[GFC_OMP_SPLIT_DO], omp_clauses); ! if (pblock == NULL) ! { ! if (TREE_CODE (stmt) != BIND_EXPR) ! stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); ! else ! poplevel (0, 0); ! } ! else if (TREE_CODE (stmt) != BIND_EXPR) ! stmt = build3_v (BIND_EXPR, NULL, stmt, NULL_TREE); stmt = build2_loc (input_location, OMP_PARALLEL, void_type_node, stmt, omp_clauses); OMP_PARALLEL_COMBINED (stmt) = 1; *************** gfc_trans_omp_parallel_do (gfc_code *cod *** 1632,1637 **** --- 3458,3507 ---- } static tree + gfc_trans_omp_parallel_do_simd (gfc_code *code, stmtblock_t *pblock, + gfc_omp_clauses *clausesa) + { + stmtblock_t block; + gfc_omp_clauses clausesa_buf[GFC_OMP_SPLIT_NUM]; + tree stmt, omp_clauses = NULL_TREE; + + if (pblock == NULL) + gfc_start_block (&block); + else + gfc_init_block (&block); + + if (clausesa == NULL) + { + clausesa = clausesa_buf; + gfc_split_omp_clauses (code, clausesa); + } + if (gfc_option.gfc_flag_openmp) + omp_clauses + = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_PARALLEL], + code->loc); + if (pblock == NULL) + pushlevel (); + stmt = gfc_trans_omp_do_simd (code, pblock, clausesa, omp_clauses); + if (pblock == NULL) + { + if (TREE_CODE (stmt) != BIND_EXPR) + stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); + else + poplevel (0, 0); + } + else if (TREE_CODE (stmt) != BIND_EXPR) + stmt = build3_v (BIND_EXPR, NULL, stmt, NULL_TREE); + if (gfc_option.gfc_flag_openmp) + { + stmt = build2_loc (input_location, OMP_PARALLEL, void_type_node, stmt, + omp_clauses); + OMP_PARALLEL_COMBINED (stmt) = 1; + } + gfc_add_expr_to_block (&block, stmt); + return gfc_finish_block (&block); + } + + static tree gfc_trans_omp_parallel_sections (gfc_code *code) { stmtblock_t block; *************** gfc_trans_omp_task (gfc_code *code) *** 1743,1748 **** --- 3613,3625 ---- } static tree + gfc_trans_omp_taskgroup (gfc_code *code) + { + tree stmt = gfc_trans_code (code->block->next); + return build1_loc (input_location, OMP_TASKGROUP, void_type_node, stmt); + } + + static tree gfc_trans_omp_taskwait (void) { tree decl = builtin_decl_explicit (BUILT_IN_GOMP_TASKWAIT); *************** gfc_trans_omp_taskyield (void) *** 1757,1762 **** --- 3634,3803 ---- } static tree + gfc_trans_omp_distribute (gfc_code *code, gfc_omp_clauses *clausesa) + { + stmtblock_t block; + gfc_omp_clauses clausesa_buf[GFC_OMP_SPLIT_NUM]; + tree stmt, omp_clauses = NULL_TREE; + + gfc_start_block (&block); + if (clausesa == NULL) + { + clausesa = clausesa_buf; + gfc_split_omp_clauses (code, clausesa); + } + if (gfc_option.gfc_flag_openmp) + omp_clauses + = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_DISTRIBUTE], + code->loc); + switch (code->op) + { + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE: + /* This is handled in gfc_trans_omp_do. */ + gcc_unreachable (); + break; + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + stmt = gfc_trans_omp_parallel_do (code, &block, clausesa); + if (TREE_CODE (stmt) != BIND_EXPR) + stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); + else + poplevel (0, 0); + break; + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + stmt = gfc_trans_omp_parallel_do_simd (code, &block, clausesa); + if (TREE_CODE (stmt) != BIND_EXPR) + stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); + else + poplevel (0, 0); + break; + case EXEC_OMP_DISTRIBUTE_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: + stmt = gfc_trans_omp_do (code, EXEC_OMP_SIMD, &block, + &clausesa[GFC_OMP_SPLIT_SIMD], NULL_TREE); + if (TREE_CODE (stmt) != BIND_EXPR) + stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0)); + else + poplevel (0, 0); + break; + default: + gcc_unreachable (); + } + if (gfc_option.gfc_flag_openmp) + { + tree distribute = make_node (OMP_DISTRIBUTE); + TREE_TYPE (distribute) = void_type_node; + OMP_FOR_BODY (distribute) = stmt; + OMP_FOR_CLAUSES (distribute) = omp_clauses; + stmt = distribute; + } + gfc_add_expr_to_block (&block, stmt); + return gfc_finish_block (&block); + } + + static tree + gfc_trans_omp_teams (gfc_code *code, gfc_omp_clauses *clausesa) + { + stmtblock_t block; + gfc_omp_clauses clausesa_buf[GFC_OMP_SPLIT_NUM]; + tree stmt, omp_clauses = NULL_TREE; + + gfc_start_block (&block); + if (clausesa == NULL) + { + clausesa = clausesa_buf; + gfc_split_omp_clauses (code, clausesa); + } + if (gfc_option.gfc_flag_openmp) + omp_clauses + = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_TEAMS], + code->loc); + switch (code->op) + { + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TEAMS: + stmt = gfc_trans_omp_code (code->block->next, true); + break; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE: + stmt = gfc_trans_omp_do (code, EXEC_OMP_DISTRIBUTE, NULL, + &clausesa[GFC_OMP_SPLIT_DISTRIBUTE], + NULL); + break; + default: + stmt = gfc_trans_omp_distribute (code, clausesa); + break; + } + stmt = build2_loc (input_location, OMP_TEAMS, void_type_node, stmt, + omp_clauses); + gfc_add_expr_to_block (&block, stmt); + return gfc_finish_block (&block); + } + + static tree + gfc_trans_omp_target (gfc_code *code) + { + stmtblock_t block; + gfc_omp_clauses clausesa[GFC_OMP_SPLIT_NUM]; + tree stmt, omp_clauses = NULL_TREE; + + gfc_start_block (&block); + gfc_split_omp_clauses (code, clausesa); + if (gfc_option.gfc_flag_openmp) + omp_clauses + = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_TARGET], + code->loc); + if (code->op == EXEC_OMP_TARGET) + stmt = gfc_trans_omp_code (code->block->next, true); + else + stmt = gfc_trans_omp_teams (code, clausesa); + if (TREE_CODE (stmt) != BIND_EXPR) + stmt = build3_v (BIND_EXPR, NULL, stmt, NULL_TREE); + if (gfc_option.gfc_flag_openmp) + stmt = build2_loc (input_location, OMP_TARGET, void_type_node, stmt, + omp_clauses); + gfc_add_expr_to_block (&block, stmt); + return gfc_finish_block (&block); + } + + static tree + gfc_trans_omp_target_data (gfc_code *code) + { + stmtblock_t block; + tree stmt, omp_clauses; + + gfc_start_block (&block); + omp_clauses = gfc_trans_omp_clauses (&block, code->ext.omp_clauses, + code->loc); + stmt = gfc_trans_omp_code (code->block->next, true); + stmt = build2_loc (input_location, OMP_TARGET_DATA, void_type_node, stmt, + omp_clauses); + gfc_add_expr_to_block (&block, stmt); + return gfc_finish_block (&block); + } + + static tree + gfc_trans_omp_target_update (gfc_code *code) + { + stmtblock_t block; + tree stmt, omp_clauses; + + gfc_start_block (&block); + omp_clauses = gfc_trans_omp_clauses (&block, code->ext.omp_clauses, + code->loc); + stmt = build1_loc (input_location, OMP_TARGET_UPDATE, void_type_node, + omp_clauses); + gfc_add_expr_to_block (&block, stmt); + return gfc_finish_block (&block); + } + + static tree gfc_trans_omp_workshare (gfc_code *code, gfc_omp_clauses *clauses) { tree res, tmp, stmt; *************** gfc_trans_omp_directive (gfc_code *code) *** 1923,1932 **** return gfc_trans_omp_atomic (code); case EXEC_OMP_BARRIER: return gfc_trans_omp_barrier (); case EXEC_OMP_CRITICAL: return gfc_trans_omp_critical (code); case EXEC_OMP_DO: ! return gfc_trans_omp_do (code, NULL, code->ext.omp_clauses, NULL); case EXEC_OMP_FLUSH: return gfc_trans_omp_flush (); case EXEC_OMP_MASTER: --- 3964,3986 ---- return gfc_trans_omp_atomic (code); case EXEC_OMP_BARRIER: return gfc_trans_omp_barrier (); + case EXEC_OMP_CANCEL: + return gfc_trans_omp_cancel (code); + case EXEC_OMP_CANCELLATION_POINT: + return gfc_trans_omp_cancellation_point (code); case EXEC_OMP_CRITICAL: return gfc_trans_omp_critical (code); + case EXEC_OMP_DISTRIBUTE: case EXEC_OMP_DO: ! case EXEC_OMP_SIMD: ! return gfc_trans_omp_do (code, code->op, NULL, code->ext.omp_clauses, ! NULL); ! case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: ! case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: ! case EXEC_OMP_DISTRIBUTE_SIMD: ! return gfc_trans_omp_distribute (code, NULL); ! case EXEC_OMP_DO_SIMD: ! return gfc_trans_omp_do_simd (code, NULL, NULL, NULL_TREE); case EXEC_OMP_FLUSH: return gfc_trans_omp_flush (); case EXEC_OMP_MASTER: *************** gfc_trans_omp_directive (gfc_code *code) *** 1936,1942 **** case EXEC_OMP_PARALLEL: return gfc_trans_omp_parallel (code); case EXEC_OMP_PARALLEL_DO: ! return gfc_trans_omp_parallel_do (code); case EXEC_OMP_PARALLEL_SECTIONS: return gfc_trans_omp_parallel_sections (code); case EXEC_OMP_PARALLEL_WORKSHARE: --- 3990,3998 ---- case EXEC_OMP_PARALLEL: return gfc_trans_omp_parallel (code); case EXEC_OMP_PARALLEL_DO: ! return gfc_trans_omp_parallel_do (code, NULL, NULL); ! case EXEC_OMP_PARALLEL_DO_SIMD: ! return gfc_trans_omp_parallel_do_simd (code, NULL, NULL); case EXEC_OMP_PARALLEL_SECTIONS: return gfc_trans_omp_parallel_sections (code); case EXEC_OMP_PARALLEL_WORKSHARE: *************** gfc_trans_omp_directive (gfc_code *code) *** 1945,1959 **** --- 4001,4053 ---- return gfc_trans_omp_sections (code, code->ext.omp_clauses); case EXEC_OMP_SINGLE: return gfc_trans_omp_single (code, code->ext.omp_clauses); + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + return gfc_trans_omp_target (code); + case EXEC_OMP_TARGET_DATA: + return gfc_trans_omp_target_data (code); + case EXEC_OMP_TARGET_UPDATE: + return gfc_trans_omp_target_update (code); case EXEC_OMP_TASK: return gfc_trans_omp_task (code); + case EXEC_OMP_TASKGROUP: + return gfc_trans_omp_taskgroup (code); case EXEC_OMP_TASKWAIT: return gfc_trans_omp_taskwait (); case EXEC_OMP_TASKYIELD: return gfc_trans_omp_taskyield (); + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: + return gfc_trans_omp_teams (code, NULL); case EXEC_OMP_WORKSHARE: return gfc_trans_omp_workshare (code, code->ext.omp_clauses); default: gcc_unreachable (); } } + + void + gfc_trans_omp_declare_simd (gfc_namespace *ns) + { + if (ns->entries) + return; + + gfc_omp_declare_simd *ods; + for (ods = ns->omp_declare_simd; ods; ods = ods->next) + { + tree c = gfc_trans_omp_clauses (NULL, ods->clauses, ods->where, true); + tree fndecl = ns->proc_name->backend_decl; + if (c != NULL_TREE) + c = tree_cons (NULL_TREE, c, NULL_TREE); + c = build_tree_list (get_identifier ("omp declare simd"), c); + TREE_CHAIN (c) = DECL_ATTRIBUTES (fndecl); + DECL_ATTRIBUTES (fndecl) = c; + } + } diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-stmt.c gcc-4.9.1/gcc/fortran/trans-stmt.c *** gcc-4.9.0/gcc/fortran/trans-stmt.c Sun Apr 13 11:55:49 2014 --- gcc-4.9.1/gcc/fortran/trans-stmt.c Mon Jun 9 14:45:32 2014 *************** trans_associate_var (gfc_symbol *sym, gf *** 1164,1176 **** { gfc_se se; tree desc; desc = sym->backend_decl; /* If association is to an expression, evaluate it and create temporary. Otherwise, get descriptor of target for pointer assignment. */ gfc_init_se (&se, NULL); ! if (sym->assoc->variable || e->expr_type == EXPR_ARRAY) { se.direct_byref = 1; se.use_offset = 1; --- 1164,1179 ---- { gfc_se se; tree desc; + bool cst_array_ctor; desc = sym->backend_decl; + cst_array_ctor = e->expr_type == EXPR_ARRAY + && gfc_constant_array_constructor_p (e->value.constructor); /* If association is to an expression, evaluate it and create temporary. Otherwise, get descriptor of target for pointer assignment. */ gfc_init_se (&se, NULL); ! if (sym->assoc->variable || cst_array_ctor) { se.direct_byref = 1; se.use_offset = 1; *************** trans_associate_var (gfc_symbol *sym, gf *** 1181,1187 **** /* If we didn't already do the pointer assignment, set associate-name descriptor to the one generated for the temporary. */ ! if (!sym->assoc->variable && e->expr_type != EXPR_ARRAY) { int dim; --- 1184,1190 ---- /* If we didn't already do the pointer assignment, set associate-name descriptor to the one generated for the temporary. */ ! if (!sym->assoc->variable && !cst_array_ctor) { int dim; diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-stmt.h gcc-4.9.1/gcc/fortran/trans-stmt.h *** gcc-4.9.0/gcc/fortran/trans-stmt.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/fortran/trans-stmt.h Mon Jun 30 16:35:48 2014 *************** tree gfc_trans_deallocate_array (tree); *** 63,68 **** --- 63,69 ---- /* trans-openmp.c */ tree gfc_trans_omp_directive (gfc_code *); + void gfc_trans_omp_declare_simd (gfc_namespace *); /* trans-io.c */ tree gfc_trans_open (gfc_code *); diff -Nrcpad gcc-4.9.0/gcc/fortran/trans-types.c gcc-4.9.1/gcc/fortran/trans-types.c *** gcc-4.9.0/gcc/fortran/trans-types.c Fri Apr 4 13:54:16 2014 --- gcc-4.9.1/gcc/fortran/trans-types.c Mon Jun 30 16:35:48 2014 *************** gfc_sym_type (gfc_symbol * sym) *** 2162,2170 **** restricted); byref = 0; } - - if (sym->attr.cray_pointee) - GFC_POINTER_TYPE_P (type) = 1; } else { --- 2162,2167 ---- *************** gfc_sym_type (gfc_symbol * sym) *** 2183,2190 **** if (sym->attr.allocatable || sym->attr.pointer || gfc_is_associate_pointer (sym)) type = gfc_build_pointer_type (sym, type); - if (sym->attr.pointer || sym->attr.cray_pointee) - GFC_POINTER_TYPE_P (type) = 1; } /* We currently pass all parameters by reference. --- 2180,2185 ---- *************** gfc_get_derived_type (gfc_symbol * deriv *** 2554,2559 **** --- 2549,2556 ---- else if (derived->declared_at.lb) gfc_set_decl_location (field, &derived->declared_at); + gfc_finish_decl_attrs (field, &c->attr); + DECL_PACKED (field) |= TYPE_PACKED (typenode); gcc_assert (field); diff -Nrcpad gcc-4.9.0/gcc/fortran/trans.c gcc-4.9.1/gcc/fortran/trans.c *** gcc-4.9.0/gcc/fortran/trans.c Tue Mar 18 11:31:04 2014 --- gcc-4.9.1/gcc/fortran/trans.c Mon Jun 30 16:35:48 2014 *************** trans_code (gfc_code * code, tree cond) *** 1848,1867 **** --- 1848,1890 ---- case EXEC_OMP_ATOMIC: case EXEC_OMP_BARRIER: + case EXEC_OMP_CANCEL: + case EXEC_OMP_CANCELLATION_POINT: case EXEC_OMP_CRITICAL: + case EXEC_OMP_DISTRIBUTE: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_DISTRIBUTE_SIMD: case EXEC_OMP_DO: + case EXEC_OMP_DO_SIMD: case EXEC_OMP_FLUSH: case EXEC_OMP_MASTER: case EXEC_OMP_ORDERED: case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: + case EXEC_OMP_PARALLEL_DO_SIMD: case EXEC_OMP_PARALLEL_SECTIONS: case EXEC_OMP_PARALLEL_WORKSHARE: case EXEC_OMP_SECTIONS: + case EXEC_OMP_SIMD: case EXEC_OMP_SINGLE: + case EXEC_OMP_TARGET: + case EXEC_OMP_TARGET_DATA: + case EXEC_OMP_TARGET_TEAMS: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + case EXEC_OMP_TARGET_UPDATE: case EXEC_OMP_TASK: + case EXEC_OMP_TASKGROUP: case EXEC_OMP_TASKWAIT: case EXEC_OMP_TASKYIELD: + case EXEC_OMP_TEAMS: + case EXEC_OMP_TEAMS_DISTRIBUTE: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: case EXEC_OMP_WORKSHARE: res = gfc_trans_omp_directive (code); break; diff -Nrcpad gcc-4.9.0/gcc/fortran/trans.h gcc-4.9.1/gcc/fortran/trans.h *** gcc-4.9.0/gcc/fortran/trans.h Sun Apr 13 11:55:49 2014 --- gcc-4.9.1/gcc/fortran/trans.h Mon Jun 30 16:35:48 2014 *************** void gfc_set_decl_assembler_name (tree, *** 547,552 **** --- 547,555 ---- /* Returns true if a variable of specified size should go on the stack. */ int gfc_can_put_var_on_stack (tree); + /* Set GFC_DECL_SCALAR_* on decl from sym if needed. */ + void gfc_finish_decl_attrs (tree, symbol_attribute *); + /* Allocate the lang-specific part of a decl node. */ void gfc_allocate_lang_decl (tree); *************** tree gfc_omp_report_decl (tree); *** 666,672 **** --- 669,677 ---- tree gfc_omp_clause_default_ctor (tree, tree, tree); tree gfc_omp_clause_copy_ctor (tree, tree, tree); tree gfc_omp_clause_assign_op (tree, tree, tree); + tree gfc_omp_clause_linear_ctor (tree, tree, tree, tree); tree gfc_omp_clause_dtor (tree, tree); + void gfc_omp_finish_clause (tree, gimple_seq *); bool gfc_omp_disregard_value_expr (tree, bool); bool gfc_omp_private_debug_clause (tree, bool); bool gfc_omp_private_outer_ref (tree); *************** struct GTY((variable_size)) lang_decl { *** 824,829 **** --- 829,836 ---- tree span; /* For assumed-shape coarrays. */ tree token, caf_offset; + unsigned int scalar_allocatable : 1; + unsigned int scalar_pointer : 1; }; *************** struct GTY((variable_size)) lang_decl { *** 834,839 **** --- 841,854 ---- #define GFC_DECL_CAF_OFFSET(node) DECL_LANG_SPECIFIC(node)->caf_offset #define GFC_DECL_SAVED_DESCRIPTOR(node) \ (DECL_LANG_SPECIFIC(node)->saved_descriptor) + #define GFC_DECL_SCALAR_ALLOCATABLE(node) \ + (DECL_LANG_SPECIFIC (node)->scalar_allocatable) + #define GFC_DECL_SCALAR_POINTER(node) \ + (DECL_LANG_SPECIFIC (node)->scalar_pointer) + #define GFC_DECL_GET_SCALAR_ALLOCATABLE(node) \ + (DECL_LANG_SPECIFIC (node) ? GFC_DECL_SCALAR_ALLOCATABLE (node) : 0) + #define GFC_DECL_GET_SCALAR_POINTER(node) \ + (DECL_LANG_SPECIFIC (node) ? GFC_DECL_SCALAR_POINTER (node) : 0) #define GFC_DECL_PACKED_ARRAY(node) DECL_LANG_FLAG_0(node) #define GFC_DECL_PARTIAL_PACKED_ARRAY(node) DECL_LANG_FLAG_1(node) #define GFC_DECL_ASSIGN(node) DECL_LANG_FLAG_2(node) *************** struct GTY((variable_size)) lang_decl { *** 841,854 **** #define GFC_DECL_CRAY_POINTEE(node) DECL_LANG_FLAG_4(node) #define GFC_DECL_RESULT(node) DECL_LANG_FLAG_5(node) #define GFC_DECL_SUBREF_ARRAY_P(node) DECL_LANG_FLAG_6(node) #define GFC_DECL_CLASS(node) DECL_LANG_FLAG_8(node) /* An array descriptor. */ #define GFC_DESCRIPTOR_TYPE_P(node) TYPE_LANG_FLAG_1(node) /* An array without a descriptor. */ #define GFC_ARRAY_TYPE_P(node) TYPE_LANG_FLAG_2(node) - /* Fortran POINTER type. */ - #define GFC_POINTER_TYPE_P(node) TYPE_LANG_FLAG_3(node) /* Fortran CLASS type. */ #define GFC_CLASS_TYPE_P(node) TYPE_LANG_FLAG_4(node) /* The GFC_TYPE_ARRAY_* members are present in both descriptor and --- 856,868 ---- #define GFC_DECL_CRAY_POINTEE(node) DECL_LANG_FLAG_4(node) #define GFC_DECL_RESULT(node) DECL_LANG_FLAG_5(node) #define GFC_DECL_SUBREF_ARRAY_P(node) DECL_LANG_FLAG_6(node) + #define GFC_DECL_ASSOCIATE_VAR_P(node) DECL_LANG_FLAG_7(node) #define GFC_DECL_CLASS(node) DECL_LANG_FLAG_8(node) /* An array descriptor. */ #define GFC_DESCRIPTOR_TYPE_P(node) TYPE_LANG_FLAG_1(node) /* An array without a descriptor. */ #define GFC_ARRAY_TYPE_P(node) TYPE_LANG_FLAG_2(node) /* Fortran CLASS type. */ #define GFC_CLASS_TYPE_P(node) TYPE_LANG_FLAG_4(node) /* The GFC_TYPE_ARRAY_* members are present in both descriptor and diff -Nrcpad gcc-4.9.0/gcc/function.c gcc-4.9.1/gcc/function.c *** gcc-4.9.0/gcc/function.c Thu Mar 13 18:01:48 2014 --- gcc-4.9.1/gcc/function.c Thu Jul 10 10:41:15 2014 *************** static int cfa_offset; *** 1347,1355 **** #define STACK_POINTER_OFFSET 0 #endif /* If not defined, pick an appropriate default for the offset of dynamically allocated memory depending on the value of ACCUMULATE_OUTGOING_ARGS, ! REG_PARM_STACK_SPACE, and OUTGOING_REG_PARM_STACK_SPACE. */ #ifndef STACK_DYNAMIC_OFFSET --- 1347,1359 ---- #define STACK_POINTER_OFFSET 0 #endif + #if defined (REG_PARM_STACK_SPACE) && !defined (INCOMING_REG_PARM_STACK_SPACE) + #define INCOMING_REG_PARM_STACK_SPACE REG_PARM_STACK_SPACE + #endif + /* If not defined, pick an appropriate default for the offset of dynamically allocated memory depending on the value of ACCUMULATE_OUTGOING_ARGS, ! INCOMING_REG_PARM_STACK_SPACE, and OUTGOING_REG_PARM_STACK_SPACE. */ #ifndef STACK_DYNAMIC_OFFSET *************** static int cfa_offset; *** 1361,1372 **** `crtl->outgoing_args_size'. Nevertheless, we must allow for it when allocating stack dynamic objects. */ ! #if defined(REG_PARM_STACK_SPACE) #define STACK_DYNAMIC_OFFSET(FNDECL) \ ((ACCUMULATE_OUTGOING_ARGS \ ? (crtl->outgoing_args_size \ + (OUTGOING_REG_PARM_STACK_SPACE ((!(FNDECL) ? NULL_TREE : TREE_TYPE (FNDECL))) ? 0 \ ! : REG_PARM_STACK_SPACE (FNDECL))) \ : 0) + (STACK_POINTER_OFFSET)) #else #define STACK_DYNAMIC_OFFSET(FNDECL) \ --- 1365,1376 ---- `crtl->outgoing_args_size'. Nevertheless, we must allow for it when allocating stack dynamic objects. */ ! #ifdef INCOMING_REG_PARM_STACK_SPACE #define STACK_DYNAMIC_OFFSET(FNDECL) \ ((ACCUMULATE_OUTGOING_ARGS \ ? (crtl->outgoing_args_size \ + (OUTGOING_REG_PARM_STACK_SPACE ((!(FNDECL) ? NULL_TREE : TREE_TYPE (FNDECL))) ? 0 \ ! : INCOMING_REG_PARM_STACK_SPACE (FNDECL))) \ : 0) + (STACK_POINTER_OFFSET)) #else #define STACK_DYNAMIC_OFFSET(FNDECL) \ *************** assign_parms_initialize_all (struct assi *** 2221,2228 **** #endif all->args_so_far = pack_cumulative_args (&all->args_so_far_v); ! #ifdef REG_PARM_STACK_SPACE ! all->reg_parm_stack_space = REG_PARM_STACK_SPACE (current_function_decl); #endif } --- 2225,2233 ---- #endif all->args_so_far = pack_cumulative_args (&all->args_so_far_v); ! #ifdef INCOMING_REG_PARM_STACK_SPACE ! all->reg_parm_stack_space ! = INCOMING_REG_PARM_STACK_SPACE (current_function_decl); #endif } *************** allocate_struct_function (tree fndecl, b *** 4536,4541 **** --- 4541,4547 ---- /* ??? This could be set on a per-function basis by the front-end but is this worth the hassle? */ cfun->can_throw_non_call_exceptions = flag_non_call_exceptions; + cfun->can_delete_dead_exceptions = flag_delete_dead_exceptions; } } diff -Nrcpad gcc-4.9.0/gcc/gengtype-lex.c gcc-4.9.1/gcc/gengtype-lex.c *** gcc-4.9.0/gcc/gengtype-lex.c Tue Apr 22 09:46:17 2014 --- gcc-4.9.1/gcc/gengtype-lex.c Wed Jul 16 10:07:46 2014 *************** int yy_flex_debug = 0; *** 1174,1180 **** #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2014 Free Software Foundation, Inc. --- 1174,1180 ---- #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2014 Free Software Foundation, Inc. *************** You should have received a copy of the G *** 1195,1201 **** along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" #ifdef GENERATOR_FILE #include "bconfig.h" #else --- 1195,1201 ---- along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" #ifdef GENERATOR_FILE #include "bconfig.h" #else *************** YY_DECL *** 1410,1416 **** register char *yy_cp, *yy_bp; register int yy_act; ! #line 65 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; --- 1410,1416 ---- register char *yy_cp, *yy_bp; register int yy_act; ! #line 65 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; *************** case 1: *** 1507,1513 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 76 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; --- 1507,1513 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 76 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; *************** case 2: *** 1519,1525 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 80 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1519,1525 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 80 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** case 3: *** 1531,1537 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 84 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; --- 1531,1537 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 84 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; *************** case 4: *** 1543,1549 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 88 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1543,1549 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 88 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** case 5: *** 1555,1561 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 92 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; --- 1555,1561 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 92 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; *************** case 6: *** 1567,1573 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 96 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; --- 1567,1573 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 96 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; *************** YY_RULE_SETUP *** 1578,1602 **** case 7: YY_RULE_SETUP ! #line 104 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 105 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 107 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 108 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: --- 1578,1602 ---- case 7: YY_RULE_SETUP ! #line 104 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 105 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 107 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 108 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: *************** case 11: *** 1605,1611 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 110 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: --- 1605,1611 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 110 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: *************** case 12: *** 1613,1626 **** *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 112 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 113 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ YY_RULE_SETUP ! #line 113 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; --- 1613,1626 ---- *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 112 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 113 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ YY_RULE_SETUP ! #line 113 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; *************** case 15: *** 1632,1638 **** (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 117 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 16: --- 1632,1638 ---- (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 117 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 16: *************** case 16: *** 1641,1647 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 118 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 17: --- 1641,1647 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 118 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 17: *************** case 17: *** 1650,1656 **** (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 119 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 18: --- 1650,1656 ---- (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 119 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 18: *************** case 18: *** 1659,1665 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: --- 1659,1665 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: *************** case 19: *** 1668,1674 **** (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 20: --- 1668,1674 ---- (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 20: *************** case 20: *** 1677,1683 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 21: --- 1677,1683 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 21: *************** case 21: *** 1686,1692 **** (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 22: --- 1686,1692 ---- (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 22: *************** case 22: *** 1695,1701 **** (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 23: --- 1695,1701 ---- (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 23: *************** case 23: *** 1704,1715 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 24: YY_RULE_SETUP ! #line 126 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 25: --- 1704,1715 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 24: YY_RULE_SETUP ! #line 126 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 25: *************** case 25: *** 1718,1724 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return PARAM_IS; --- 1718,1724 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return PARAM_IS; *************** case 26: *** 1729,1739 **** *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 133 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 133 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { size_t len; --- 1729,1739 ---- *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 133 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 133 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { size_t len; *************** case 28: *** 1751,1757 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 144 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; --- 1751,1757 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 144 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; *************** YY_RULE_SETUP *** 1760,1766 **** case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 149 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; --- 1760,1766 ---- case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 149 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; *************** YY_RULE_SETUP *** 1770,1776 **** case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 154 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; --- 1770,1776 ---- case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 154 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; *************** YY_RULE_SETUP *** 1779,1785 **** case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 158 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; --- 1779,1785 ---- case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 158 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; *************** YY_RULE_SETUP *** 1787,1810 **** YY_BREAK case 32: YY_RULE_SETUP ! #line 163 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 164 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 167 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 169 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } --- 1787,1810 ---- YY_BREAK case 32: YY_RULE_SETUP ! #line 163 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 164 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 167 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 169 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } *************** YY_RULE_SETUP *** 1812,1847 **** case 36: YY_RULE_SETUP ! #line 174 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 175 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 176 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 178 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 179 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 179 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 180 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: --- 1812,1847 ---- case 36: YY_RULE_SETUP ! #line 174 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 175 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 176 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 178 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 179 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 179 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 180 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: *************** case 43: *** 1850,1870 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 181 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 184 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 186 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 186 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: --- 1850,1870 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 181 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 184 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 186 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 186 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: *************** case 47: *** 1873,1897 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 187 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 190 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 191 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 194 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 194 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); --- 1873,1897 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 187 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 190 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 191 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 194 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 194 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); *************** YY_RULE_SETUP *** 1900,1911 **** case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 199 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 201 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1911 "gengtype-lex.c" --- 1900,1911 ---- case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 199 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 201 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1911 "gengtype-lex.c" *************** void yyfree (void * ptr ) *** 2872,2878 **** #define YYTABLES_NAME "yytables" ! #line 201 "/d/gcc-4.9.0/gcc-4.9.0/gcc/gengtype-lex.l" --- 2872,2878 ---- #define YYTABLES_NAME "yytables" ! #line 201 "/d/gcc-4.9.1/gcc-4.9.1/gcc/gengtype-lex.l" diff -Nrcpad gcc-4.9.0/gcc/gimple-low.c gcc-4.9.1/gcc/gimple-low.c *** gcc-4.9.0/gcc/gimple-low.c Fri Apr 4 11:52:35 2014 --- gcc-4.9.1/gcc/gimple-low.c Thu Jul 10 10:41:15 2014 *************** lower_builtin_setjmp (gimple_stmt_iterat *** 722,728 **** these builtins are modelled as non-local label jumps to the label that is passed to these two builtins, so pretend we have a non-local label during GIMPLE passes too. See PR60003. */ ! cfun->has_nonlocal_label = true; /* NEXT_LABEL is the label __builtin_longjmp will jump to. Its address is passed to both __builtin_setjmp_setup and __builtin_setjmp_receiver. */ --- 722,728 ---- these builtins are modelled as non-local label jumps to the label that is passed to these two builtins, so pretend we have a non-local label during GIMPLE passes too. See PR60003. */ ! cfun->has_nonlocal_label = 1; /* NEXT_LABEL is the label __builtin_longjmp will jump to. Its address is passed to both __builtin_setjmp_setup and __builtin_setjmp_receiver. */ diff -Nrcpad gcc-4.9.0/gcc/gimple-ssa-strength-reduction.c gcc-4.9.1/gcc/gimple-ssa-strength-reduction.c *** gcc-4.9.0/gcc/gimple-ssa-strength-reduction.c Wed Apr 2 22:07:30 2014 --- gcc-4.9.1/gcc/gimple-ssa-strength-reduction.c Fri May 2 21:49:26 2014 *************** create_mul_imm_cand (gimple gs, tree bas *** 1114,1128 **** X = Y * c ============================ X = (B + i') * (S * c) */ - base = base_cand->base_expr; - index = base_cand->index; temp = tree_to_double_int (base_cand->stride) * tree_to_double_int (stride_in); ! stride = double_int_to_tree (TREE_TYPE (stride_in), temp); ! ctype = base_cand->cand_type; ! if (has_single_use (base_in)) ! savings = (base_cand->dead_savings ! + stmt_cost (base_cand->cand_stmt, speed)); } else if (base_cand->kind == CAND_ADD && integer_onep (base_cand->stride)) { --- 1114,1131 ---- X = Y * c ============================ X = (B + i') * (S * c) */ temp = tree_to_double_int (base_cand->stride) * tree_to_double_int (stride_in); ! if (double_int_fits_to_tree_p (TREE_TYPE (stride_in), temp)) ! { ! base = base_cand->base_expr; ! index = base_cand->index; ! stride = double_int_to_tree (TREE_TYPE (stride_in), temp); ! ctype = base_cand->cand_type; ! if (has_single_use (base_in)) ! savings = (base_cand->dead_savings ! + stmt_cost (base_cand->cand_stmt, speed)); ! } } else if (base_cand->kind == CAND_ADD && integer_onep (base_cand->stride)) { diff -Nrcpad gcc-4.9.0/gcc/gimplify.c gcc-4.9.1/gcc/gimplify.c *** gcc-4.9.0/gcc/gimplify.c Fri Apr 4 11:52:35 2014 --- gcc-4.9.1/gcc/gimplify.c Mon Jun 30 16:35:48 2014 *************** struct gimplify_omp_ctx *** 138,143 **** --- 138,144 ---- enum omp_clause_default_kind default_kind; enum omp_region_type region_type; bool combined_loop; + bool distribute; }; static struct gimplify_ctx *gimplify_ctxp; *************** maybe_with_size_expr (tree *expr_p) *** 2169,2175 **** Store any side-effects in PRE_P. CALL_LOCATION is the location of the CALL_EXPR. */ ! static enum gimplify_status gimplify_arg (tree *arg_p, gimple_seq *pre_p, location_t call_location) { bool (*test) (tree); --- 2170,2176 ---- Store any side-effects in PRE_P. CALL_LOCATION is the location of the CALL_EXPR. */ ! enum gimplify_status gimplify_arg (tree *arg_p, gimple_seq *pre_p, location_t call_location) { bool (*test) (tree); *************** omp_notice_variable (struct gimplify_omp *** 5642,5647 **** --- 5643,5649 ---- n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl); if (ctx->region_type == ORT_TARGET) { + ret = lang_hooks.decls.omp_disregard_value_expr (decl, true); if (n == NULL) { if (!lang_hooks.types.omp_mappable_type (TREE_TYPE (decl))) *************** omp_notice_variable (struct gimplify_omp *** 5654,5661 **** omp_add_variable (ctx, decl, GOVD_MAP | flags); } else ! n->value |= flags; ! ret = lang_hooks.decls.omp_disregard_value_expr (decl, true); goto do_outer; } --- 5656,5667 ---- omp_add_variable (ctx, decl, GOVD_MAP | flags); } else ! { ! /* If nothing changed, there's nothing left to do. */ ! if ((n->value & flags) == flags) ! return ret; ! n->value |= flags; ! } goto do_outer; } *************** omp_notice_variable (struct gimplify_omp *** 5793,5799 **** to the contrary in the innermost scope, generate an error. */ static bool ! omp_is_private (struct gimplify_omp_ctx *ctx, tree decl, bool simd) { splay_tree_node n; --- 5799,5805 ---- to the contrary in the innermost scope, generate an error. */ static bool ! omp_is_private (struct gimplify_omp_ctx *ctx, tree decl, int simd) { splay_tree_node n; *************** omp_is_private (struct gimplify_omp_ctx *** 5827,5839 **** else if ((n->value & GOVD_REDUCTION) != 0) error ("iteration variable %qE should not be reduction", DECL_NAME (decl)); ! else if (simd && (n->value & GOVD_LASTPRIVATE) != 0) error ("iteration variable %qE should not be lastprivate", DECL_NAME (decl)); else if (simd && (n->value & GOVD_PRIVATE) != 0) error ("iteration variable %qE should not be private", DECL_NAME (decl)); ! else if (simd && (n->value & GOVD_LINEAR) != 0) error ("iteration variable %qE is predetermined linear", DECL_NAME (decl)); } --- 5833,5845 ---- else if ((n->value & GOVD_REDUCTION) != 0) error ("iteration variable %qE should not be reduction", DECL_NAME (decl)); ! else if (simd == 1 && (n->value & GOVD_LASTPRIVATE) != 0) error ("iteration variable %qE should not be lastprivate", DECL_NAME (decl)); else if (simd && (n->value & GOVD_PRIVATE) != 0) error ("iteration variable %qE should not be private", DECL_NAME (decl)); ! else if (simd == 2 && (n->value & GOVD_LINEAR) != 0) error ("iteration variable %qE is predetermined linear", DECL_NAME (decl)); } *************** gimplify_scan_omp_clauses (tree *list_p, *** 5941,5954 **** goto do_add; case OMP_CLAUSE_MAP: ! if (OMP_CLAUSE_SIZE (c) ! && gimplify_expr (&OMP_CLAUSE_SIZE (c), pre_p, ! NULL, is_gimple_val, fb_rvalue) == GS_ERROR) { remove = true; break; } - decl = OMP_CLAUSE_DECL (c); if (!DECL_P (decl)) { if (gimplify_expr (&OMP_CLAUSE_DECL (c), pre_p, --- 5947,5967 ---- goto do_add; case OMP_CLAUSE_MAP: ! decl = OMP_CLAUSE_DECL (c); ! if (error_operand_p (decl)) ! { ! remove = true; ! break; ! } ! if (OMP_CLAUSE_SIZE (c) == NULL_TREE) ! OMP_CLAUSE_SIZE (c) = DECL_P (decl) ? DECL_SIZE_UNIT (decl) ! : TYPE_SIZE_UNIT (TREE_TYPE (decl)); ! if (gimplify_expr (&OMP_CLAUSE_SIZE (c), pre_p, ! NULL, is_gimple_val, fb_rvalue) == GS_ERROR) { remove = true; break; } if (!DECL_P (decl)) { if (gimplify_expr (&OMP_CLAUSE_DECL (c), pre_p, *************** gimplify_scan_omp_clauses (tree *list_p, *** 5986,6000 **** case OMP_CLAUSE_TO: case OMP_CLAUSE_FROM: ! if (OMP_CLAUSE_SIZE (c) ! && gimplify_expr (&OMP_CLAUSE_SIZE (c), pre_p, ! NULL, is_gimple_val, fb_rvalue) == GS_ERROR) { remove = true; break; } ! decl = OMP_CLAUSE_DECL (c); ! if (error_operand_p (decl)) { remove = true; break; --- 5999,6015 ---- case OMP_CLAUSE_TO: case OMP_CLAUSE_FROM: ! decl = OMP_CLAUSE_DECL (c); ! if (error_operand_p (decl)) { remove = true; break; } ! if (OMP_CLAUSE_SIZE (c) == NULL_TREE) ! OMP_CLAUSE_SIZE (c) = DECL_P (decl) ? DECL_SIZE_UNIT (decl) ! : TYPE_SIZE_UNIT (TREE_TYPE (decl)); ! if (gimplify_expr (&OMP_CLAUSE_SIZE (c), pre_p, ! NULL, is_gimple_val, fb_rvalue) == GS_ERROR) { remove = true; break; *************** gimplify_scan_omp_clauses (tree *list_p, *** 6066,6071 **** --- 6081,6107 ---- gimplify_omp_ctxp = outer_ctx; } + else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR + && OMP_CLAUSE_LINEAR_STMT (c)) + { + gimplify_omp_ctxp = ctx; + push_gimplify_context (); + if (TREE_CODE (OMP_CLAUSE_LINEAR_STMT (c)) != BIND_EXPR) + { + tree bind = build3 (BIND_EXPR, void_type_node, NULL, + NULL, NULL); + TREE_SIDE_EFFECTS (bind) = 1; + BIND_EXPR_BODY (bind) = OMP_CLAUSE_LINEAR_STMT (c); + OMP_CLAUSE_LINEAR_STMT (c) = bind; + } + gimplify_and_add (OMP_CLAUSE_LINEAR_STMT (c), + &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c)); + pop_gimplify_context + (gimple_seq_first_stmt (OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c))); + OMP_CLAUSE_LINEAR_STMT (c) = NULL_TREE; + + gimplify_omp_ctxp = outer_ctx; + } if (notice_outer) goto do_notice; break; *************** gimplify_scan_omp_clauses (tree *list_p, *** 6148,6153 **** --- 6184,6195 ---- remove = true; break; } + if (gimplify_expr (&OMP_CLAUSE_ALIGNED_ALIGNMENT (c), pre_p, NULL, + is_gimple_val, fb_rvalue) == GS_ERROR) + { + remove = true; + break; + } if (!is_global_var (decl) && TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE) omp_add_variable (ctx, decl, GOVD_ALIGNED); *************** gimplify_scan_omp_clauses (tree *list_p, *** 6170,6182 **** gimplify_omp_ctxp = ctx; } /* For all variables that were not actually used within the context, remove PRIVATE, SHARED, and FIRSTPRIVATE clauses. */ static int gimplify_adjust_omp_clauses_1 (splay_tree_node n, void *data) { ! tree *list_p = (tree *) data; tree decl = (tree) n->key; unsigned flags = n->value; enum omp_clause_code code; --- 6212,6232 ---- gimplify_omp_ctxp = ctx; } + struct gimplify_adjust_omp_clauses_data + { + tree *list_p; + gimple_seq *pre_p; + }; + /* For all variables that were not actually used within the context, remove PRIVATE, SHARED, and FIRSTPRIVATE clauses. */ static int gimplify_adjust_omp_clauses_1 (splay_tree_node n, void *data) { ! tree *list_p = ((struct gimplify_adjust_omp_clauses_data *) data)->list_p; ! gimple_seq *pre_p ! = ((struct gimplify_adjust_omp_clauses_data *) data)->pre_p; tree decl = (tree) n->key; unsigned flags = n->value; enum omp_clause_code code; *************** gimplify_adjust_omp_clauses_1 (splay_tre *** 6269,6283 **** OMP_CLAUSE_CHAIN (nc) = OMP_CLAUSE_CHAIN (clause); OMP_CLAUSE_CHAIN (clause) = nc; } } *list_p = clause; ! lang_hooks.decls.omp_finish_clause (clause); ! return 0; } static void ! gimplify_adjust_omp_clauses (tree *list_p) { struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp; tree c, decl; --- 6319,6349 ---- OMP_CLAUSE_CHAIN (nc) = OMP_CLAUSE_CHAIN (clause); OMP_CLAUSE_CHAIN (clause) = nc; } + else + OMP_CLAUSE_SIZE (clause) = DECL_SIZE_UNIT (decl); + } + if (code == OMP_CLAUSE_FIRSTPRIVATE && (flags & GOVD_LASTPRIVATE) != 0) + { + tree nc = build_omp_clause (input_location, OMP_CLAUSE_LASTPRIVATE); + OMP_CLAUSE_DECL (nc) = decl; + OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE (nc) = 1; + OMP_CLAUSE_CHAIN (nc) = *list_p; + OMP_CLAUSE_CHAIN (clause) = nc; + struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp; + gimplify_omp_ctxp = ctx->outer_context; + lang_hooks.decls.omp_finish_clause (nc, pre_p); + gimplify_omp_ctxp = ctx; } *list_p = clause; ! struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp; ! gimplify_omp_ctxp = ctx->outer_context; ! lang_hooks.decls.omp_finish_clause (clause, pre_p); ! gimplify_omp_ctxp = ctx; return 0; } static void ! gimplify_adjust_omp_clauses (gimple_seq *pre_p, tree *list_p) { struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp; tree c, decl; *************** gimplify_adjust_omp_clauses (tree *list_ *** 6311,6328 **** if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR && ctx->outer_context && !(OMP_CLAUSE_LINEAR_NO_COPYIN (c) ! && OMP_CLAUSE_LINEAR_NO_COPYOUT (c)) ! && !is_global_var (decl)) { ! if (ctx->outer_context->region_type == ORT_COMBINED_PARALLEL) { n = splay_tree_lookup (ctx->outer_context->variables, (splay_tree_key) decl); if (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0) { ! int flags = OMP_CLAUSE_LINEAR_NO_COPYIN (c) ! ? GOVD_LASTPRIVATE : GOVD_SHARED; if (n == NULL) omp_add_variable (ctx->outer_context, decl, flags | GOVD_SEEN); --- 6377,6397 ---- if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR && ctx->outer_context && !(OMP_CLAUSE_LINEAR_NO_COPYIN (c) ! && OMP_CLAUSE_LINEAR_NO_COPYOUT (c))) { ! if (ctx->outer_context->combined_loop ! && !OMP_CLAUSE_LINEAR_NO_COPYIN (c)) { n = splay_tree_lookup (ctx->outer_context->variables, (splay_tree_key) decl); if (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0) { ! int flags = GOVD_FIRSTPRIVATE; ! /* #pragma omp distribute does not allow ! lastprivate clause. */ ! if (!ctx->outer_context->distribute) ! flags |= GOVD_LASTPRIVATE; if (n == NULL) omp_add_variable (ctx->outer_context, decl, flags | GOVD_SEEN); *************** gimplify_adjust_omp_clauses (tree *list_ *** 6330,6336 **** n->value |= flags | GOVD_SEEN; } } ! else omp_notice_variable (ctx->outer_context, decl, true); } } --- 6399,6405 ---- n->value |= flags | GOVD_SEEN; } } ! else if (!is_global_var (decl)) omp_notice_variable (ctx->outer_context, decl, true); } } *************** gimplify_adjust_omp_clauses (tree *list_ *** 6420,6425 **** --- 6489,6496 ---- OMP_CLAUSE_CHAIN (c) = nc; c = nc; } + else if (OMP_CLAUSE_SIZE (c) == NULL_TREE) + OMP_CLAUSE_SIZE (c) = DECL_SIZE_UNIT (decl); break; case OMP_CLAUSE_TO: *************** gimplify_adjust_omp_clauses (tree *list_ *** 6444,6449 **** --- 6515,6522 ---- OMP_CLAUSE_SIZE (c), true); } } + else if (OMP_CLAUSE_SIZE (c) == NULL_TREE) + OMP_CLAUSE_SIZE (c) = DECL_SIZE_UNIT (decl); break; case OMP_CLAUSE_REDUCTION: *************** gimplify_adjust_omp_clauses (tree *list_ *** 6479,6485 **** } /* Add in any implicit data sharing. */ ! splay_tree_foreach (ctx->variables, gimplify_adjust_omp_clauses_1, list_p); gimplify_omp_ctxp = ctx->outer_context; delete_omp_context (ctx); --- 6552,6561 ---- } /* Add in any implicit data sharing. */ ! struct gimplify_adjust_omp_clauses_data data; ! data.list_p = list_p; ! data.pre_p = pre_p; ! splay_tree_foreach (ctx->variables, gimplify_adjust_omp_clauses_1, &data); gimplify_omp_ctxp = ctx->outer_context; delete_omp_context (ctx); *************** gimplify_omp_parallel (tree *expr_p, gim *** 6510,6516 **** else pop_gimplify_context (NULL); ! gimplify_adjust_omp_clauses (&OMP_PARALLEL_CLAUSES (expr)); g = gimple_build_omp_parallel (body, OMP_PARALLEL_CLAUSES (expr), --- 6586,6592 ---- else pop_gimplify_context (NULL); ! gimplify_adjust_omp_clauses (pre_p, &OMP_PARALLEL_CLAUSES (expr)); g = gimple_build_omp_parallel (body, OMP_PARALLEL_CLAUSES (expr), *************** gimplify_omp_task (tree *expr_p, gimple_ *** 6546,6552 **** else pop_gimplify_context (NULL); ! gimplify_adjust_omp_clauses (&OMP_TASK_CLAUSES (expr)); g = gimple_build_omp_task (body, OMP_TASK_CLAUSES (expr), --- 6622,6628 ---- else pop_gimplify_context (NULL); ! gimplify_adjust_omp_clauses (pre_p, &OMP_TASK_CLAUSES (expr)); g = gimple_build_omp_task (body, OMP_TASK_CLAUSES (expr), *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6599,6608 **** orig_for_stmt = for_stmt = *expr_p; ! simd = TREE_CODE (for_stmt) == OMP_SIMD ! || TREE_CODE (for_stmt) == CILK_SIMD; gimplify_scan_omp_clauses (&OMP_FOR_CLAUSES (for_stmt), pre_p, simd ? ORT_SIMD : ORT_WORKSHARE); /* Handle OMP_FOR_INIT. */ for_pre_body = NULL; --- 6675,6686 ---- orig_for_stmt = for_stmt = *expr_p; ! simd = (TREE_CODE (for_stmt) == OMP_SIMD ! || TREE_CODE (for_stmt) == CILK_SIMD); gimplify_scan_omp_clauses (&OMP_FOR_CLAUSES (for_stmt), pre_p, simd ? ORT_SIMD : ORT_WORKSHARE); + if (TREE_CODE (for_stmt) == OMP_DISTRIBUTE) + gimplify_omp_ctxp->distribute = true; /* Handle OMP_FOR_INIT. */ for_pre_body = NULL; *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6656,6668 **** /* Make sure the iteration variable is private. */ tree c = NULL_TREE; if (orig_for_stmt != for_stmt) /* Do this only on innermost construct for combined ones. */; else if (simd) { splay_tree_node n = splay_tree_lookup (gimplify_omp_ctxp->variables, (splay_tree_key)decl); ! omp_is_private (gimplify_omp_ctxp, decl, simd); if (n != NULL && (n->value & GOVD_DATA_SHARE_CLASS) != 0) omp_notice_variable (gimplify_omp_ctxp, decl, true); else if (TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) == 1) --- 6734,6749 ---- /* Make sure the iteration variable is private. */ tree c = NULL_TREE; + tree c2 = NULL_TREE; if (orig_for_stmt != for_stmt) /* Do this only on innermost construct for combined ones. */; else if (simd) { splay_tree_node n = splay_tree_lookup (gimplify_omp_ctxp->variables, (splay_tree_key)decl); ! omp_is_private (gimplify_omp_ctxp, decl, ! 1 + (TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) ! != 1)); if (n != NULL && (n->value & GOVD_DATA_SHARE_CLASS) != 0) omp_notice_variable (gimplify_omp_ctxp, decl, true); else if (TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) == 1) *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6683,6717 **** bool lastprivate = (!has_decl_expr || !bitmap_bit_p (has_decl_expr, DECL_UID (decl))); c = build_omp_clause (input_location, lastprivate ? OMP_CLAUSE_LASTPRIVATE : OMP_CLAUSE_PRIVATE); OMP_CLAUSE_DECL (c) = decl; OMP_CLAUSE_CHAIN (c) = OMP_FOR_CLAUSES (for_stmt); omp_add_variable (gimplify_omp_ctxp, decl, (lastprivate ? GOVD_LASTPRIVATE : GOVD_PRIVATE) ! | GOVD_SEEN); c = NULL_TREE; } } ! else if (omp_is_private (gimplify_omp_ctxp, decl, simd)) omp_notice_variable (gimplify_omp_ctxp, decl, true); else omp_add_variable (gimplify_omp_ctxp, decl, GOVD_PRIVATE | GOVD_SEEN); /* If DECL is not a gimple register, create a temporary variable to act as an iteration counter. This is valid, since DECL cannot be ! modified in the body of the loop. */ if (orig_for_stmt != for_stmt) var = decl; ! else if (!is_gimple_reg (decl)) { var = create_tmp_var (TREE_TYPE (decl), get_name (decl)); TREE_OPERAND (t, 0) = var; gimplify_seq_add_stmt (&for_body, gimple_build_assign (decl, var)); ! omp_add_variable (gimplify_omp_ctxp, var, GOVD_PRIVATE | GOVD_SEEN); } else var = decl; --- 6764,6845 ---- bool lastprivate = (!has_decl_expr || !bitmap_bit_p (has_decl_expr, DECL_UID (decl))); + if (lastprivate + && gimplify_omp_ctxp->outer_context + && gimplify_omp_ctxp->outer_context->region_type + == ORT_WORKSHARE + && gimplify_omp_ctxp->outer_context->combined_loop + && !gimplify_omp_ctxp->outer_context->distribute) + { + struct gimplify_omp_ctx *outer + = gimplify_omp_ctxp->outer_context; + n = splay_tree_lookup (outer->variables, + (splay_tree_key) decl); + if (n != NULL + && (n->value & GOVD_DATA_SHARE_CLASS) == GOVD_LOCAL) + lastprivate = false; + else if (omp_check_private (outer, decl, false)) + error ("lastprivate variable %qE is private in outer " + "context", DECL_NAME (decl)); + else + { + omp_add_variable (outer, decl, + GOVD_LASTPRIVATE | GOVD_SEEN); + if (outer->outer_context) + omp_notice_variable (outer->outer_context, decl, true); + } + } c = build_omp_clause (input_location, lastprivate ? OMP_CLAUSE_LASTPRIVATE : OMP_CLAUSE_PRIVATE); OMP_CLAUSE_DECL (c) = decl; OMP_CLAUSE_CHAIN (c) = OMP_FOR_CLAUSES (for_stmt); + OMP_FOR_CLAUSES (for_stmt) = c; omp_add_variable (gimplify_omp_ctxp, decl, (lastprivate ? GOVD_LASTPRIVATE : GOVD_PRIVATE) ! | GOVD_EXPLICIT | GOVD_SEEN); c = NULL_TREE; } } ! else if (omp_is_private (gimplify_omp_ctxp, decl, 0)) omp_notice_variable (gimplify_omp_ctxp, decl, true); else omp_add_variable (gimplify_omp_ctxp, decl, GOVD_PRIVATE | GOVD_SEEN); /* If DECL is not a gimple register, create a temporary variable to act as an iteration counter. This is valid, since DECL cannot be ! modified in the body of the loop. Similarly for any iteration vars ! in simd with collapse > 1 where the iterator vars must be ! lastprivate. */ if (orig_for_stmt != for_stmt) var = decl; ! else if (!is_gimple_reg (decl) ! || (simd && TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) > 1)) { var = create_tmp_var (TREE_TYPE (decl), get_name (decl)); TREE_OPERAND (t, 0) = var; gimplify_seq_add_stmt (&for_body, gimple_build_assign (decl, var)); ! if (simd && TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) == 1) ! { ! c2 = build_omp_clause (input_location, OMP_CLAUSE_LINEAR); ! OMP_CLAUSE_LINEAR_NO_COPYIN (c2) = 1; ! OMP_CLAUSE_LINEAR_NO_COPYOUT (c2) = 1; ! OMP_CLAUSE_DECL (c2) = var; ! OMP_CLAUSE_CHAIN (c2) = OMP_FOR_CLAUSES (for_stmt); ! OMP_FOR_CLAUSES (for_stmt) = c2; ! omp_add_variable (gimplify_omp_ctxp, var, ! GOVD_LINEAR | GOVD_EXPLICIT | GOVD_SEEN); ! if (c == NULL_TREE) ! { ! c = c2; ! c2 = NULL_TREE; ! } ! } ! else ! omp_add_variable (gimplify_omp_ctxp, var, ! GOVD_PRIVATE | GOVD_SEEN); } else var = decl; *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6739,6746 **** case POSTINCREMENT_EXPR: { tree decl = TREE_OPERAND (t, 0); ! // c_omp_for_incr_canonicalize_ptr() should have been ! // called to massage things appropriately. gcc_assert (!POINTER_TYPE_P (TREE_TYPE (decl))); if (orig_for_stmt != for_stmt) --- 6867,6874 ---- case POSTINCREMENT_EXPR: { tree decl = TREE_OPERAND (t, 0); ! /* c_omp_for_incr_canonicalize_ptr() should have been ! called to massage things appropriately. */ gcc_assert (!POINTER_TYPE_P (TREE_TYPE (decl))); if (orig_for_stmt != for_stmt) *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6756,6761 **** --- 6884,6892 ---- case PREDECREMENT_EXPR: case POSTDECREMENT_EXPR: + /* c_omp_for_incr_canonicalize_ptr() should have been + called to massage things appropriately. */ + gcc_assert (!POINTER_TYPE_P (TREE_TYPE (decl))); if (orig_for_stmt != for_stmt) break; t = build_int_cst (TREE_TYPE (decl), -1); *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6796,6807 **** ret = MIN (ret, tret); if (c) { ! OMP_CLAUSE_LINEAR_STEP (c) = TREE_OPERAND (t, 1); if (TREE_CODE (t) == MINUS_EXPR) { - t = TREE_OPERAND (t, 1); - OMP_CLAUSE_LINEAR_STEP (c) - = fold_build1 (NEGATE_EXPR, TREE_TYPE (t), t); tret = gimplify_expr (&OMP_CLAUSE_LINEAR_STEP (c), &for_pre_body, NULL, is_gimple_val, fb_rvalue); --- 6927,6942 ---- ret = MIN (ret, tret); if (c) { ! tree step = TREE_OPERAND (t, 1); ! tree stept = TREE_TYPE (decl); ! if (POINTER_TYPE_P (stept)) ! stept = sizetype; ! step = fold_convert (stept, step); if (TREE_CODE (t) == MINUS_EXPR) + step = fold_build1 (NEGATE_EXPR, stept, step); + OMP_CLAUSE_LINEAR_STEP (c) = step; + if (step != TREE_OPERAND (t, 1)) { tret = gimplify_expr (&OMP_CLAUSE_LINEAR_STEP (c), &for_pre_body, NULL, is_gimple_val, fb_rvalue); *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6814,6826 **** gcc_unreachable (); } if ((var != decl || TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) > 1) && orig_for_stmt == for_stmt) { for (c = OMP_FOR_CLAUSES (for_stmt); c ; c = OMP_CLAUSE_CHAIN (c)) ! if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE ! && OMP_CLAUSE_DECL (c) == decl ! && OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c) == NULL) { t = TREE_VEC_ELT (OMP_FOR_INCR (for_stmt), i); gcc_assert (TREE_CODE (t) == MODIFY_EXPR); --- 6949,6970 ---- gcc_unreachable (); } + if (c2) + { + gcc_assert (c); + OMP_CLAUSE_LINEAR_STEP (c2) = OMP_CLAUSE_LINEAR_STEP (c); + } + if ((var != decl || TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)) > 1) && orig_for_stmt == for_stmt) { for (c = OMP_FOR_CLAUSES (for_stmt); c ; c = OMP_CLAUSE_CHAIN (c)) ! if (((OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE ! && OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c) == NULL) ! || (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR ! && !OMP_CLAUSE_LINEAR_NO_COPYOUT (c) ! && OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c) == NULL)) ! && OMP_CLAUSE_DECL (c) == decl) { t = TREE_VEC_ELT (OMP_FOR_INCR (for_stmt), i); gcc_assert (TREE_CODE (t) == MODIFY_EXPR); *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6832,6839 **** gcc_assert (TREE_OPERAND (t, 0) == var); t = build2 (TREE_CODE (t), TREE_TYPE (decl), decl, TREE_OPERAND (t, 1)); ! gimplify_assign (decl, t, ! &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c)); } } } --- 6976,6987 ---- gcc_assert (TREE_OPERAND (t, 0) == var); t = build2 (TREE_CODE (t), TREE_TYPE (decl), decl, TREE_OPERAND (t, 1)); ! gimple_seq *seq; ! if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE) ! seq = &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c); ! else ! seq = &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c); ! gimplify_assign (decl, t, seq); } } } *************** gimplify_omp_for (tree *expr_p, gimple_s *** 6855,6861 **** TREE_OPERAND (TREE_OPERAND (t, 1), 0) = var; } ! gimplify_adjust_omp_clauses (&OMP_FOR_CLAUSES (orig_for_stmt)); int kind; switch (TREE_CODE (orig_for_stmt)) --- 7003,7009 ---- TREE_OPERAND (TREE_OPERAND (t, 1), 0) = var; } ! gimplify_adjust_omp_clauses (pre_p, &OMP_FOR_CLAUSES (orig_for_stmt)); int kind; switch (TREE_CODE (orig_for_stmt)) *************** gimplify_omp_workshare (tree *expr_p, gi *** 6955,6961 **** } else gimplify_and_add (OMP_BODY (expr), &body); ! gimplify_adjust_omp_clauses (&OMP_CLAUSES (expr)); switch (TREE_CODE (expr)) { --- 7103,7109 ---- } else gimplify_and_add (OMP_BODY (expr), &body); ! gimplify_adjust_omp_clauses (pre_p, &OMP_CLAUSES (expr)); switch (TREE_CODE (expr)) { *************** gimplify_omp_target_update (tree *expr_p *** 6994,7000 **** gimplify_scan_omp_clauses (&OMP_TARGET_UPDATE_CLAUSES (expr), pre_p, ORT_WORKSHARE); ! gimplify_adjust_omp_clauses (&OMP_TARGET_UPDATE_CLAUSES (expr)); stmt = gimple_build_omp_target (NULL, GF_OMP_TARGET_KIND_UPDATE, OMP_TARGET_UPDATE_CLAUSES (expr)); --- 7142,7148 ---- gimplify_scan_omp_clauses (&OMP_TARGET_UPDATE_CLAUSES (expr), pre_p, ORT_WORKSHARE); ! gimplify_adjust_omp_clauses (pre_p, &OMP_TARGET_UPDATE_CLAUSES (expr)); stmt = gimple_build_omp_target (NULL, GF_OMP_TARGET_KIND_UPDATE, OMP_TARGET_UPDATE_CLAUSES (expr)); diff -Nrcpad gcc-4.9.0/gcc/gimplify.h gcc-4.9.1/gcc/gimplify.h *** gcc-4.9.0/gcc/gimplify.h Fri Apr 4 11:52:35 2014 --- gcc-4.9.1/gcc/gimplify.h Mon Jun 30 14:25:21 2014 *************** extern enum gimplify_status gimplify_exp *** 77,82 **** --- 77,83 ---- extern void gimplify_type_sizes (tree, gimple_seq *); extern void gimplify_one_sizepos (tree *, gimple_seq *); extern gimple gimplify_body (tree, bool); + extern enum gimplify_status gimplify_arg (tree *, gimple_seq *, location_t); extern void gimplify_function_tree (tree); extern enum gimplify_status gimplify_va_arg_expr (tree *, gimple_seq *, gimple_seq *); diff -Nrcpad gcc-4.9.0/gcc/go/ChangeLog gcc-4.9.1/gcc/go/ChangeLog *** gcc-4.9.0/gcc/go/ChangeLog Tue Apr 22 09:42:30 2014 --- gcc-4.9.1/gcc/go/ChangeLog Wed Jul 16 10:03:13 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/go/gofrontend/import-archive.cc gcc-4.9.1/gcc/go/gofrontend/import-archive.cc *** gcc-4.9.0/gcc/go/gofrontend/import-archive.cc Tue Feb 5 01:11:01 2013 --- gcc-4.9.1/gcc/go/gofrontend/import-archive.cc Wed Apr 30 02:38:13 2014 *************** Archive_file::interpret_header(const Arc *** 261,267 **** char size_string[size_string_size + 1]; memcpy(size_string, hdr->ar_size, size_string_size); char* ps = size_string + size_string_size; ! while (ps[-1] == ' ') --ps; *ps = '\0'; --- 261,267 ---- char size_string[size_string_size + 1]; memcpy(size_string, hdr->ar_size, size_string_size); char* ps = size_string + size_string_size; ! while (ps > size_string && ps[-1] == ' ') --ps; *ps = '\0'; diff -Nrcpad gcc-4.9.0/gcc/go/gofrontend/lex.cc gcc-4.9.1/gcc/go/gofrontend/lex.cc *** gcc-4.9.0/gcc/go/gofrontend/lex.cc Fri Oct 11 17:04:42 2013 --- gcc-4.9.1/gcc/go/gofrontend/lex.cc Tue Jul 8 20:49:59 2014 *************** Lex::next_token() *** 598,604 **** } else if (p[1] == '*') { ! this->lineoff_ = p - this->linebuf_; Location location = this->location(); if (!this->skip_c_comment()) return Token::make_invalid_token(location); --- 598,604 ---- } else if (p[1] == '*') { ! this->lineoff_ = p + 2 - this->linebuf_; Location location = this->location(); if (!this->skip_c_comment()) return Token::make_invalid_token(location); diff -Nrcpad gcc-4.9.0/gcc/go/gofrontend/types.cc gcc-4.9.1/gcc/go/gofrontend/types.cc *** gcc-4.9.0/gcc/go/gofrontend/types.cc Tue Jan 14 23:21:16 2014 --- gcc-4.9.1/gcc/go/gofrontend/types.cc Tue May 6 05:32:58 2014 *************** Type::finalize_methods(Gogo* gogo, const *** 8966,8974 **** Methods** all_methods) { *all_methods = NULL; ! Types_seen types_seen; ! Type::add_methods_for_type(type, NULL, 0, false, false, &types_seen, ! all_methods); Type::build_stub_methods(gogo, type, *all_methods, location); } --- 8966,8973 ---- Methods** all_methods) { *all_methods = NULL; ! std::vector seen; ! Type::add_methods_for_type(type, NULL, 0, false, false, &seen, all_methods); Type::build_stub_methods(gogo, type, *all_methods, location); } *************** Type::add_methods_for_type(const Type* t *** 8986,8992 **** unsigned int depth, bool is_embedded_pointer, bool needs_stub_method, ! Types_seen* types_seen, Methods** methods) { // Pointer types may not have methods. --- 8985,8991 ---- unsigned int depth, bool is_embedded_pointer, bool needs_stub_method, ! std::vector* seen, Methods** methods) { // Pointer types may not have methods. *************** Type::add_methods_for_type(const Type* t *** 8996,9014 **** const Named_type* nt = type->named_type(); if (nt != NULL) { ! std::pair ins = types_seen->insert(nt); ! if (!ins.second) ! return; ! } ! if (nt != NULL) ! Type::add_local_methods_for_type(nt, field_indexes, depth, ! is_embedded_pointer, needs_stub_method, ! methods); Type::add_embedded_methods_for_type(type, field_indexes, depth, is_embedded_pointer, needs_stub_method, ! types_seen, methods); // If we are called with depth > 0, then we are looking at an // anonymous field of a struct. If such a field has interface type, --- 8995,9018 ---- const Named_type* nt = type->named_type(); if (nt != NULL) { ! for (std::vector::const_iterator p = seen->begin(); ! p != seen->end(); ! ++p) ! { ! if (*p == nt) ! return; ! } ! seen->push_back(nt); ! ! Type::add_local_methods_for_type(nt, field_indexes, depth, ! is_embedded_pointer, needs_stub_method, ! methods); ! } Type::add_embedded_methods_for_type(type, field_indexes, depth, is_embedded_pointer, needs_stub_method, ! seen, methods); // If we are called with depth > 0, then we are looking at an // anonymous field of a struct. If such a field has interface type, *************** Type::add_methods_for_type(const Type* t *** 9017,9022 **** --- 9021,9029 ---- // following the usual rules for an interface type. if (depth > 0) Type::add_interface_methods_for_type(type, field_indexes, depth, methods); + + if (nt != NULL) + seen->pop_back(); } // Add the local methods for the named type NT to *METHODS. The *************** Type::add_embedded_methods_for_type(cons *** 9062,9068 **** unsigned int depth, bool is_embedded_pointer, bool needs_stub_method, ! Types_seen* types_seen, Methods** methods) { // Look for anonymous fields in TYPE. TYPE has fields if it is a --- 9069,9075 ---- unsigned int depth, bool is_embedded_pointer, bool needs_stub_method, ! std::vector* seen, Methods** methods) { // Look for anonymous fields in TYPE. TYPE has fields if it is a *************** Type::add_embedded_methods_for_type(cons *** 9106,9112 **** (needs_stub_method || is_pointer || i > 0), ! types_seen, methods); } } --- 9113,9119 ---- (needs_stub_method || is_pointer || i > 0), ! seen, methods); } } diff -Nrcpad gcc-4.9.0/gcc/go/gofrontend/types.h gcc-4.9.1/gcc/go/gofrontend/types.h *** gcc-4.9.0/gcc/go/gofrontend/types.h Tue Jan 14 23:21:16 2014 --- gcc-4.9.1/gcc/go/gofrontend/types.h Tue May 6 05:32:58 2014 *************** class Type *** 1171,1184 **** static tree build_receive_return_type(tree type); - // A hash table we use to avoid infinite recursion. - typedef Unordered_set_hash(const Named_type*, Type_hash_identical, - Type_identical) Types_seen; - // Add all methods for TYPE to the list of methods for THIS. static void add_methods_for_type(const Type* type, const Method::Field_indexes*, ! unsigned int depth, bool, bool, Types_seen*, Methods**); static void --- 1171,1181 ---- static tree build_receive_return_type(tree type); // Add all methods for TYPE to the list of methods for THIS. static void add_methods_for_type(const Type* type, const Method::Field_indexes*, ! unsigned int depth, bool, bool, ! std::vector*, Methods**); static void *************** class Type *** 1189,1195 **** static void add_embedded_methods_for_type(const Type* type, const Method::Field_indexes*, ! unsigned int depth, bool, bool, Types_seen*, Methods**); static void --- 1186,1193 ---- static void add_embedded_methods_for_type(const Type* type, const Method::Field_indexes*, ! unsigned int depth, bool, bool, ! std::vector*, Methods**); static void diff -Nrcpad gcc-4.9.0/gcc/graphite-scop-detection.c gcc-4.9.1/gcc/graphite-scop-detection.c *** gcc-4.9.0/gcc/graphite-scop-detection.c Thu Apr 3 13:43:23 2014 --- gcc-4.9.1/gcc/graphite-scop-detection.c Wed May 28 12:46:39 2014 *************** graphite_can_represent_scev (tree scev) *** 219,225 **** --- 219,232 ---- switch (TREE_CODE (scev)) { + case NEGATE_EXPR: + case BIT_NOT_EXPR: + CASE_CONVERT: + case NON_LVALUE_EXPR: + return graphite_can_represent_scev (TREE_OPERAND (scev, 0)); + case PLUS_EXPR: + case POINTER_PLUS_EXPR: case MINUS_EXPR: return graphite_can_represent_scev (TREE_OPERAND (scev, 0)) && graphite_can_represent_scev (TREE_OPERAND (scev, 1)); *************** graphite_can_represent_scev (tree scev) *** 241,253 **** if (!evolution_function_right_is_integer_cst (scev) || !graphite_can_represent_init (scev)) return false; default: break; } /* Only affine functions can be represented. */ ! if (!scev_is_linear_expression (scev)) return false; return true; --- 248,262 ---- if (!evolution_function_right_is_integer_cst (scev) || !graphite_can_represent_init (scev)) return false; + return graphite_can_represent_scev (CHREC_LEFT (scev)); default: break; } /* Only affine functions can be represented. */ ! if (tree_contains_chrecs (scev, NULL) ! || !scev_is_linear_expression (scev)) return false; return true; *************** scopdet_basic_block_info (basic_block bb *** 465,472 **** result.exits = false; /* Mark bbs terminating a SESE region difficult, if they start ! a condition. */ ! if (!single_succ_p (bb)) result.difficult = true; else result.exit = single_succ (bb); --- 474,483 ---- result.exits = false; /* Mark bbs terminating a SESE region difficult, if they start ! a condition or if the block it exits to cannot be split ! with make_forwarder_block. */ ! if (!single_succ_p (bb) ! || bb_has_abnormal_pred (single_succ (bb))) result.difficult = true; else result.exit = single_succ (bb); diff -Nrcpad gcc-4.9.0/gcc/ipa-cp.c gcc-4.9.1/gcc/ipa-cp.c *** gcc-4.9.0/gcc/ipa-cp.c Thu Apr 3 09:35:41 2014 --- gcc-4.9.1/gcc/ipa-cp.c Thu Jun 26 14:33:06 2014 *************** determine_versionability (struct cgraph_ *** 433,438 **** --- 433,440 ---- else if (!opt_for_fn (node->decl, optimize) || !opt_for_fn (node->decl, flag_ipa_cp)) reason = "non-optimized function"; + else if (node->tm_clone) + reason = "transactional memory clone"; else if (lookup_attribute ("omp declare simd", DECL_ATTRIBUTES (node->decl))) { /* Ideally we should clone the SIMD clones themselves and create *************** ipa_get_indirect_edge_target_1 (struct c *** 1587,1601 **** && DECL_FUNCTION_CODE (target) == BUILT_IN_UNREACHABLE) || !possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! { ! if (dump_file) ! fprintf (dump_file, ! "Type inconsident devirtualization: %s/%i->%s\n", ! ie->caller->name (), ie->caller->order, ! IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target))); ! target = builtin_decl_implicit (BUILT_IN_UNREACHABLE); ! cgraph_get_create_node (target); ! } return target; } } --- 1589,1595 ---- && DECL_FUNCTION_CODE (target) == BUILT_IN_UNREACHABLE) || !possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! target = ipa_impossible_devirt_target (ie, target); return target; } } *************** ipa_get_indirect_edge_target_1 (struct c *** 1629,1635 **** if (targets.length () == 1) target = targets[0]->decl; else ! target = builtin_decl_implicit (BUILT_IN_UNREACHABLE); } else { --- 1623,1629 ---- if (targets.length () == 1) target = targets[0]->decl; else ! target = ipa_impossible_devirt_target (ie, NULL_TREE); } else { *************** ipa_get_indirect_edge_target_1 (struct c *** 1643,1657 **** if (target && !possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! { ! if (dump_file) ! fprintf (dump_file, ! "Type inconsident devirtualization: %s/%i->%s\n", ! ie->caller->name (), ie->caller->order, ! IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target))); ! target = builtin_decl_implicit (BUILT_IN_UNREACHABLE); ! cgraph_get_create_node (target); ! } return target; } --- 1637,1643 ---- if (target && !possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! target = ipa_impossible_devirt_target (ie, target); return target; } *************** cgraph_edge_brings_value_p (struct cgrap *** 2482,2488 **** struct ipcp_value_source *src) { struct ipa_node_params *caller_info = IPA_NODE_REF (cs->caller); ! struct ipa_node_params *dst_info = IPA_NODE_REF (cs->callee); if ((dst_info->ipcp_orig_node && !dst_info->is_all_contexts_clone) || caller_info->node_dead) --- 2468,2475 ---- struct ipcp_value_source *src) { struct ipa_node_params *caller_info = IPA_NODE_REF (cs->caller); ! cgraph_node *real_dest = cgraph_function_node (cs->callee); ! struct ipa_node_params *dst_info = IPA_NODE_REF (real_dest); if ((dst_info->ipcp_orig_node && !dst_info->is_all_contexts_clone) || caller_info->node_dead) diff -Nrcpad gcc-4.9.0/gcc/ipa-devirt.c gcc-4.9.1/gcc/ipa-devirt.c *** gcc-4.9.0/gcc/ipa-devirt.c Tue Apr 8 05:35:11 2014 --- gcc-4.9.1/gcc/ipa-devirt.c Fri Jun 13 14:34:14 2014 *************** give_up: *** 987,992 **** --- 987,1003 ---- context->outer_type = expected_type; context->offset = 0; context->maybe_derived_type = true; + context->maybe_in_construction = true; + /* POD can be changed to an instance of a polymorphic type by + placement new. Here we play safe and assume that any + non-polymorphic type is POD. */ + if ((TREE_CODE (type) != RECORD_TYPE + || !TYPE_BINFO (type) + || !polymorphic_type_binfo_p (TYPE_BINFO (type))) + && (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST + || (offset + tree_to_uhwi (TYPE_SIZE (expected_type)) <= + tree_to_uhwi (TYPE_SIZE (type))))) + return true; return false; } *************** possible_polymorphic_call_targets (tree *** 1438,1443 **** --- 1449,1456 ---- { if (completep) *completep = false; + if (cache_token) + *cache_token = NULL; if (nonconstruction_targetsp) *nonconstruction_targetsp = 0; return nodes; *************** possible_polymorphic_call_targets (tree *** 1448,1453 **** --- 1461,1468 ---- { if (completep) *completep = true; + if (cache_token) + *cache_token = NULL; if (nonconstruction_targetsp) *nonconstruction_targetsp = 0; return nodes; *************** possible_polymorphic_call_targets (tree *** 1461,1466 **** --- 1476,1483 ---- { if (completep) *completep = false; + if (cache_token) + *cache_token = NULL; if (nonconstruction_targetsp) *nonconstruction_targetsp = 0; return nodes; diff -Nrcpad gcc-4.9.0/gcc/ipa-inline-transform.c gcc-4.9.1/gcc/ipa-inline-transform.c *** gcc-4.9.0/gcc/ipa-inline-transform.c Fri Apr 4 14:11:06 2014 --- gcc-4.9.1/gcc/ipa-inline-transform.c Wed May 21 05:40:09 2014 *************** clone_inlined_nodes (struct cgraph_edge *** 214,219 **** --- 214,220 ---- it is NULL. If UPDATE_OVERALL_SUMMARY is false, do not bother to recompute overall size of caller after inlining. Caller is required to eventually do it via inline_update_overall_summary. + If callee_removed is non-NULL, set it to true if we removed callee node. Return true iff any new callgraph edges were discovered as a result of inlining. */ *************** clone_inlined_nodes (struct cgraph_edge *** 221,227 **** bool inline_call (struct cgraph_edge *e, bool update_original, vec *new_edges, ! int *overall_size, bool update_overall_summary) { int old_size = 0, new_size = 0; struct cgraph_node *to = NULL; --- 222,229 ---- bool inline_call (struct cgraph_edge *e, bool update_original, vec *new_edges, ! int *overall_size, bool update_overall_summary, ! bool *callee_removed) { int old_size = 0, new_size = 0; struct cgraph_node *to = NULL; *************** inline_call (struct cgraph_edge *e, bool *** 260,265 **** --- 262,269 ---- { next_alias = cgraph_alias_target (alias); cgraph_remove_node (alias); + if (callee_removed) + *callee_removed = true; alias = next_alias; } else diff -Nrcpad gcc-4.9.0/gcc/ipa-inline.c gcc-4.9.1/gcc/ipa-inline.c *** gcc-4.9.0/gcc/ipa-inline.c Fri Apr 4 14:11:06 2014 --- gcc-4.9.1/gcc/ipa-inline.c Wed May 21 05:40:09 2014 *************** static bool *** 1961,1966 **** --- 1961,1968 ---- inline_to_all_callers (struct cgraph_node *node, void *data) { int *num_calls = (int *)data; + bool callee_removed = false; + while (node->callers && !node->global.inlined_to) { struct cgraph_node *caller = node->callers->caller; *************** inline_to_all_callers (struct cgraph_nod *** 1977,1983 **** inline_summary (node->callers->caller)->size); } ! inline_call (node->callers, true, NULL, NULL, true); if (dump_file) fprintf (dump_file, " Inlined into %s which now has %i size\n", --- 1979,1985 ---- inline_summary (node->callers->caller)->size); } ! inline_call (node->callers, true, NULL, NULL, true, &callee_removed); if (dump_file) fprintf (dump_file, " Inlined into %s which now has %i size\n", *************** inline_to_all_callers (struct cgraph_nod *** 1987,1994 **** { if (dump_file) fprintf (dump_file, "New calls found; giving up.\n"); ! return true; } } return false; } --- 1989,1998 ---- { if (dump_file) fprintf (dump_file, "New calls found; giving up.\n"); ! return callee_removed; } + if (callee_removed) + return true; } return false; } *************** ipa_inline (void) *** 2107,2114 **** int num_calls = 0; cgraph_for_node_and_aliases (node, sum_callers, &num_calls, true); ! cgraph_for_node_and_aliases (node, inline_to_all_callers, ! &num_calls, true); remove_functions = true; } } --- 2111,2119 ---- int num_calls = 0; cgraph_for_node_and_aliases (node, sum_callers, &num_calls, true); ! while (cgraph_for_node_and_aliases (node, inline_to_all_callers, ! &num_calls, true)) ! ; remove_functions = true; } } diff -Nrcpad gcc-4.9.0/gcc/ipa-inline.h gcc-4.9.1/gcc/ipa-inline.h *** gcc-4.9.0/gcc/ipa-inline.h Fri Mar 28 19:50:28 2014 --- gcc-4.9.1/gcc/ipa-inline.h Wed May 21 05:40:09 2014 *************** void compute_inline_parameters (struct c *** 234,240 **** bool speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining); /* In ipa-inline-transform.c */ ! bool inline_call (struct cgraph_edge *, bool, vec *, int *, bool); unsigned int inline_transform (struct cgraph_node *); void clone_inlined_nodes (struct cgraph_edge *e, bool, bool, int *, int freq_scale); --- 234,241 ---- bool speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining); /* In ipa-inline-transform.c */ ! bool inline_call (struct cgraph_edge *, bool, vec *, int *, bool, ! bool *callee_removed = NULL); unsigned int inline_transform (struct cgraph_node *); void clone_inlined_nodes (struct cgraph_edge *e, bool, bool, int *, int freq_scale); diff -Nrcpad gcc-4.9.0/gcc/ipa-prop.c gcc-4.9.1/gcc/ipa-prop.c *** gcc-4.9.0/gcc/ipa-prop.c Fri Mar 14 10:49:05 2014 --- gcc-4.9.1/gcc/ipa-prop.c Thu Jun 26 14:33:06 2014 *************** try_make_edge_direct_simple_call (struct *** 2701,2706 **** --- 2701,2729 ---- return cs; } + /* Return the target to be used in cases of impossible devirtualization. IE + and target (the latter can be NULL) are dumped when dumping is enabled. */ + + tree + ipa_impossible_devirt_target (struct cgraph_edge *ie, tree target) + { + if (dump_file) + { + if (target) + fprintf (dump_file, + "Type inconsistent devirtualization: %s/%i->%s\n", + ie->caller->name (), ie->caller->order, + IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target))); + else + fprintf (dump_file, + "No devirtualization target in %s/%i\n", + ie->caller->name (), ie->caller->order); + } + tree new_target = builtin_decl_implicit (BUILT_IN_UNREACHABLE); + cgraph_get_create_node (new_target); + return new_target; + } + /* Try to find a destination for indirect edge IE that corresponds to a virtual call based on a formal parameter which is described by jump function JFUNC and if it can be determined, make it direct and return the direct edge. *************** try_make_edge_direct_virtual_call (struc *** 2735,2749 **** && DECL_FUNCTION_CODE (target) == BUILT_IN_UNREACHABLE) || !possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! { ! if (dump_file) ! fprintf (dump_file, ! "Type inconsident devirtualization: %s/%i->%s\n", ! ie->caller->name (), ie->caller->order, ! IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target))); ! target = builtin_decl_implicit (BUILT_IN_UNREACHABLE); ! cgraph_get_create_node (target); ! } return ipa_make_edge_direct_to_target (ie, target); } } --- 2758,2764 ---- && DECL_FUNCTION_CODE (target) == BUILT_IN_UNREACHABLE) || !possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! target = ipa_impossible_devirt_target (ie, target); return ipa_make_edge_direct_to_target (ie, target); } } *************** try_make_edge_direct_virtual_call (struc *** 2773,2782 **** if (targets.length () == 1) target = targets[0]->decl; else ! { ! target = builtin_decl_implicit (BUILT_IN_UNREACHABLE); ! cgraph_get_create_node (target); ! } } else { --- 2788,2794 ---- if (targets.length () == 1) target = targets[0]->decl; else ! target = ipa_impossible_devirt_target (ie, NULL_TREE); } else { *************** try_make_edge_direct_virtual_call (struc *** 2791,2800 **** if (target) { ! #ifdef ENABLE_CHECKING ! gcc_assert (possible_polymorphic_call_target_p ! (ie, cgraph_get_node (target))); ! #endif return ipa_make_edge_direct_to_target (ie, target); } else --- 2803,2810 ---- if (target) { ! if (!possible_polymorphic_call_target_p (ie, cgraph_get_node (target))) ! target = ipa_impossible_devirt_target (ie, target); return ipa_make_edge_direct_to_target (ie, target); } else *************** update_indirect_edges_after_inlining (st *** 2877,2892 **** else if (jfunc->type == IPA_JF_PASS_THROUGH && ipa_get_jf_pass_through_operation (jfunc) == NOP_EXPR) { ! if (ici->agg_contents ! && !ipa_get_jf_pass_through_agg_preserved (jfunc)) ici->param_index = -1; else ici->param_index = ipa_get_jf_pass_through_formal_id (jfunc); } else if (jfunc->type == IPA_JF_ANCESTOR) { ! if (ici->agg_contents ! && !ipa_get_jf_ancestor_agg_preserved (jfunc)) ici->param_index = -1; else { --- 2887,2906 ---- else if (jfunc->type == IPA_JF_PASS_THROUGH && ipa_get_jf_pass_through_operation (jfunc) == NOP_EXPR) { ! if ((ici->agg_contents ! && !ipa_get_jf_pass_through_agg_preserved (jfunc)) ! || (ici->polymorphic ! && !ipa_get_jf_pass_through_type_preserved (jfunc))) ici->param_index = -1; else ici->param_index = ipa_get_jf_pass_through_formal_id (jfunc); } else if (jfunc->type == IPA_JF_ANCESTOR) { ! if ((ici->agg_contents ! && !ipa_get_jf_ancestor_agg_preserved (jfunc)) ! || (ici->polymorphic ! && !ipa_get_jf_ancestor_type_preserved (jfunc))) ici->param_index = -1; else { *************** ipa_modify_formal_parameters (tree fndec *** 3650,3655 **** --- 3664,3670 ---- TREE_TYPE (fndecl) = new_type; DECL_VIRTUAL_P (fndecl) = 0; + DECL_LANG_SPECIFIC (fndecl) = NULL; otypes.release (); oparms.release (); } diff -Nrcpad gcc-4.9.0/gcc/ipa-prop.h gcc-4.9.1/gcc/ipa-prop.h *** gcc-4.9.0/gcc/ipa-prop.h Wed Feb 19 07:42:06 2014 --- gcc-4.9.1/gcc/ipa-prop.h Thu Jun 26 14:33:06 2014 *************** tree ipa_get_indirect_edge_target (struc *** 585,590 **** --- 585,591 ---- struct cgraph_edge *ipa_make_edge_direct_to_target (struct cgraph_edge *, tree); tree ipa_binfo_from_known_type_jfunc (struct ipa_jump_func *); tree ipa_intraprocedural_devirtualization (gimple); + tree ipa_impossible_devirt_target (struct cgraph_edge *, tree); /* Functions related to both. */ void ipa_analyze_node (struct cgraph_node *); diff -Nrcpad gcc-4.9.0/gcc/ipa.c gcc-4.9.1/gcc/ipa.c *** gcc-4.9.0/gcc/ipa.c Thu Apr 10 18:57:48 2014 --- gcc-4.9.1/gcc/ipa.c Mon May 19 02:47:31 2014 *************** symtab_remove_unreachable_nodes (bool be *** 415,421 **** || !DECL_EXTERNAL (e->callee->decl) || e->callee->alias || before_inlining_p)) ! pointer_set_insert (reachable, e->callee); enqueue_node (e->callee, &first, reachable); } --- 415,432 ---- || !DECL_EXTERNAL (e->callee->decl) || e->callee->alias || before_inlining_p)) ! { ! /* Be sure that we will not optimize out alias target ! body. */ ! if (DECL_EXTERNAL (e->callee->decl) ! && e->callee->alias ! && before_inlining_p) ! { ! pointer_set_insert (reachable, ! cgraph_function_node (e->callee)); ! } ! pointer_set_insert (reachable, e->callee); ! } enqueue_node (e->callee, &first, reachable); } *************** symtab_remove_unreachable_nodes (bool be *** 506,511 **** --- 517,523 ---- if (!node->in_other_partition) node->local.local = false; cgraph_node_remove_callees (node); + symtab_remove_from_same_comdat_group (node); ipa_remove_all_references (&node->ref_list); changed = true; } *************** symtab_remove_unreachable_nodes (bool be *** 561,566 **** --- 573,580 ---- vnode->analyzed = false; vnode->aux = NULL; + symtab_remove_from_same_comdat_group (vnode); + /* Keep body if it may be useful for constant folding. */ if ((init = ctor_for_folding (vnode->decl)) == error_mark_node) varpool_remove_initializer (vnode); *************** address_taken_from_non_vtable_p (symtab_ *** 697,702 **** --- 711,718 ---- static bool comdat_can_be_unshared_p_1 (symtab_node *node) { + if (!node->externally_visible) + return true; /* When address is taken, we don't know if equality comparison won't break eventually. Exception are virutal functions, C++ constructors/destructors and vtables, where this is not possible by diff -Nrcpad gcc-4.9.0/gcc/ira-costs.c gcc-4.9.1/gcc/ira-costs.c *** gcc-4.9.0/gcc/ira-costs.c Tue Jan 14 19:08:32 2014 --- gcc-4.9.1/gcc/ira-costs.c Thu May 22 21:10:26 2014 *************** record_reg_classes (int n_alts, int n_op *** 407,412 **** --- 407,414 ---- int alt; int i, j, k; int insn_allows_mem[MAX_RECOG_OPERANDS]; + move_table *move_in_cost, *move_out_cost; + short (*mem_cost)[2]; for (i = 0; i < n_ops; i++) insn_allows_mem[i] = 0; *************** record_reg_classes (int n_alts, int n_op *** 517,557 **** bool in_p = recog_data.operand_type[i] != OP_OUT; bool out_p = recog_data.operand_type[i] != OP_IN; enum reg_class op_class = classes[i]; - move_table *move_in_cost, *move_out_cost; ira_init_register_move_cost_if_necessary (mode); if (! in_p) { ira_assert (out_p); ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_out_cost[op_class][rclass] * frequency; } } else if (! out_p) { ira_assert (in_p); ! move_in_cost = ira_may_move_in_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_in_cost[rclass][op_class] * frequency; } } else { ! move_in_cost = ira_may_move_in_cost[mode]; ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) { ! rclass = cost_classes[k]; ! pp_costs[k] = ((move_in_cost[rclass][op_class] ! + move_out_cost[op_class][rclass]) ! * frequency); } } --- 519,596 ---- bool in_p = recog_data.operand_type[i] != OP_OUT; bool out_p = recog_data.operand_type[i] != OP_IN; enum reg_class op_class = classes[i]; ira_init_register_move_cost_if_necessary (mode); if (! in_p) { ira_assert (out_p); ! if (op_class == NO_REGS) { ! mem_cost = ira_memory_move_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = mem_cost[rclass][0] * frequency; ! } ! } ! else ! { ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_out_cost[op_class][rclass] * frequency; ! } } } else if (! out_p) { ira_assert (in_p); ! if (op_class == NO_REGS) { ! mem_cost = ira_memory_move_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = mem_cost[rclass][1] * frequency; ! } ! } ! else ! { ! move_in_cost = ira_may_move_in_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_in_cost[rclass][op_class] * frequency; ! } } } else { ! if (op_class == NO_REGS) { ! mem_cost = ira_memory_move_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = ((mem_cost[rclass][0] ! + mem_cost[rclass][1]) ! * frequency); ! } ! } ! else ! { ! move_in_cost = ira_may_move_in_cost[mode]; ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = ((move_in_cost[rclass][op_class] ! + move_out_cost[op_class][rclass]) ! * frequency); ! } } } *************** record_reg_classes (int n_alts, int n_op *** 762,771 **** into that class. */ if (REG_P (op) && REGNO (op) >= FIRST_PSEUDO_REGISTER) { ! if (classes[i] == NO_REGS) { /* We must always fail if the operand is a REG, but ! we did not find a suitable class. Otherwise we may perform an uninitialized read from this_op_costs after the `continue' statement --- 801,811 ---- into that class. */ if (REG_P (op) && REGNO (op) >= FIRST_PSEUDO_REGISTER) { ! if (classes[i] == NO_REGS && ! allows_mem[i]) { /* We must always fail if the operand is a REG, but ! we did not find a suitable class and memory is ! not allowed. Otherwise we may perform an uninitialized read from this_op_costs after the `continue' statement *************** record_reg_classes (int n_alts, int n_op *** 782,832 **** bool in_p = recog_data.operand_type[i] != OP_OUT; bool out_p = recog_data.operand_type[i] != OP_IN; enum reg_class op_class = classes[i]; - move_table *move_in_cost, *move_out_cost; ira_init_register_move_cost_if_necessary (mode); if (! in_p) { ira_assert (out_p); ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_out_cost[op_class][rclass] * frequency; } } else if (! out_p) { ira_assert (in_p); ! move_in_cost = ira_may_move_in_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_in_cost[rclass][op_class] * frequency; } } else { ! move_in_cost = ira_may_move_in_cost[mode]; ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) { ! rclass = cost_classes[k]; ! pp_costs[k] = ((move_in_cost[rclass][op_class] ! + move_out_cost[op_class][rclass]) ! * frequency); } } ! /* If the alternative actually allows memory, make ! things a bit cheaper since we won't need an extra ! insn to load it. */ ! pp->mem_cost ! = ((out_p ? ira_memory_move_cost[mode][op_class][0] : 0) ! + (in_p ? ira_memory_move_cost[mode][op_class][1] : 0) ! - allows_mem[i]) * frequency; /* If we have assigned a class to this allocno in our first pass, add a cost to this alternative corresponding to what we would add if this --- 822,915 ---- bool in_p = recog_data.operand_type[i] != OP_OUT; bool out_p = recog_data.operand_type[i] != OP_IN; enum reg_class op_class = classes[i]; ira_init_register_move_cost_if_necessary (mode); if (! in_p) { ira_assert (out_p); ! if (op_class == NO_REGS) { ! mem_cost = ira_memory_move_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = mem_cost[rclass][0] * frequency; ! } ! } ! else ! { ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_out_cost[op_class][rclass] * frequency; ! } } } else if (! out_p) { ira_assert (in_p); ! if (op_class == NO_REGS) { ! mem_cost = ira_memory_move_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = mem_cost[rclass][1] * frequency; ! } ! } ! else ! { ! move_in_cost = ira_may_move_in_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] ! = move_in_cost[rclass][op_class] * frequency; ! } } } else { ! if (op_class == NO_REGS) { ! mem_cost = ira_memory_move_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = ((mem_cost[rclass][0] ! + mem_cost[rclass][1]) ! * frequency); ! } ! } ! else ! { ! move_in_cost = ira_may_move_in_cost[mode]; ! move_out_cost = ira_may_move_out_cost[mode]; ! for (k = cost_classes_ptr->num - 1; k >= 0; k--) ! { ! rclass = cost_classes[k]; ! pp_costs[k] = ((move_in_cost[rclass][op_class] ! + move_out_cost[op_class][rclass]) ! * frequency); ! } } } ! if (op_class == NO_REGS) ! /* Although we don't need insn to reload from ! memory, still accessing memory is usually more ! expensive than a register. */ ! pp->mem_cost = frequency; ! else ! /* If the alternative actually allows memory, make ! things a bit cheaper since we won't need an ! extra insn to load it. */ ! pp->mem_cost ! = ((out_p ? ira_memory_move_cost[mode][op_class][0] : 0) ! + (in_p ? ira_memory_move_cost[mode][op_class][1] : 0) ! - allows_mem[i]) * frequency; /* If we have assigned a class to this allocno in our first pass, add a cost to this alternative corresponding to what we would add if this *************** record_reg_classes (int n_alts, int n_op *** 836,850 **** enum reg_class pref_class = pref[COST_INDEX (REGNO (op))]; if (pref_class == NO_REGS) alt_cost += ((out_p ! ? ira_memory_move_cost[mode][op_class][0] : 0) + (in_p ! ? ira_memory_move_cost[mode][op_class][1] : 0)); else if (ira_reg_class_intersect[pref_class][op_class] == NO_REGS) ! alt_cost += ira_register_move_cost[mode][pref_class][op_class]; } } } --- 919,946 ---- enum reg_class pref_class = pref[COST_INDEX (REGNO (op))]; if (pref_class == NO_REGS) + { + if (op_class != NO_REGS) + alt_cost + += ((out_p + ? ira_memory_move_cost[mode][op_class][0] + : 0) + + (in_p + ? ira_memory_move_cost[mode][op_class][1] + : 0)); + } + else if (op_class == NO_REGS) alt_cost += ((out_p ! ? ira_memory_move_cost[mode][pref_class][1] ! : 0) + (in_p ! ? ira_memory_move_cost[mode][pref_class][0] : 0)); else if (ira_reg_class_intersect[pref_class][op_class] == NO_REGS) ! alt_cost += (ira_register_move_cost ! [mode][pref_class][op_class]); } } } diff -Nrcpad gcc-4.9.0/gcc/java/ChangeLog gcc-4.9.1/gcc/java/ChangeLog *** gcc-4.9.0/gcc/java/ChangeLog Tue Apr 22 09:42:45 2014 --- gcc-4.9.1/gcc/java/ChangeLog Wed Jul 16 10:03:34 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/langhooks-def.h gcc-4.9.1/gcc/langhooks-def.h *** gcc-4.9.0/gcc/langhooks-def.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/langhooks-def.h Mon Jun 30 16:35:48 2014 *************** extern bool lhd_handle_option (size_t, c *** 74,79 **** --- 74,80 ---- extern int lhd_gimplify_expr (tree *, gimple_seq *, gimple_seq *); extern enum omp_clause_default_kind lhd_omp_predetermined_sharing (tree); extern tree lhd_omp_assignment (tree, tree, tree); + extern void lhd_omp_finish_clause (tree, gimple_seq *); struct gimplify_omp_ctx; extern void lhd_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, tree); *************** extern tree lhd_make_node (enum tree_cod *** 211,218 **** #define LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR hook_tree_tree_tree_tree_null #define LANG_HOOKS_OMP_CLAUSE_COPY_CTOR lhd_omp_assignment #define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP lhd_omp_assignment #define LANG_HOOKS_OMP_CLAUSE_DTOR hook_tree_tree_tree_null ! #define LANG_HOOKS_OMP_FINISH_CLAUSE hook_void_tree #define LANG_HOOKS_DECLS { \ LANG_HOOKS_GLOBAL_BINDINGS_P, \ --- 212,220 ---- #define LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR hook_tree_tree_tree_tree_null #define LANG_HOOKS_OMP_CLAUSE_COPY_CTOR lhd_omp_assignment #define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP lhd_omp_assignment + #define LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR NULL #define LANG_HOOKS_OMP_CLAUSE_DTOR hook_tree_tree_tree_null ! #define LANG_HOOKS_OMP_FINISH_CLAUSE lhd_omp_finish_clause #define LANG_HOOKS_DECLS { \ LANG_HOOKS_GLOBAL_BINDINGS_P, \ *************** extern tree lhd_make_node (enum tree_cod *** 234,239 **** --- 236,242 ---- LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR, \ LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, \ LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, \ + LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR, \ LANG_HOOKS_OMP_CLAUSE_DTOR, \ LANG_HOOKS_OMP_FINISH_CLAUSE \ } diff -Nrcpad gcc-4.9.0/gcc/langhooks.c gcc-4.9.1/gcc/langhooks.c *** gcc-4.9.0/gcc/langhooks.c Fri Mar 7 08:46:13 2014 --- gcc-4.9.1/gcc/langhooks.c Mon Jun 30 16:35:48 2014 *************** lhd_omp_assignment (tree clause ATTRIBUT *** 515,520 **** --- 515,527 ---- return build2 (MODIFY_EXPR, TREE_TYPE (dst), dst, src); } + /* Finalize clause C. */ + + void + lhd_omp_finish_clause (tree, gimple_seq *) + { + } + /* Register language specific type size variables as potentially OpenMP firstprivate variables. */ diff -Nrcpad gcc-4.9.0/gcc/langhooks.h gcc-4.9.1/gcc/langhooks.h *** gcc-4.9.0/gcc/langhooks.h Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/langhooks.h Mon Jun 30 16:35:48 2014 *************** struct lang_hooks_for_decls *** 219,230 **** /* Similarly, except use an assignment operator instead. */ tree (*omp_clause_assign_op) (tree clause, tree dst, tree src); /* Build and return code destructing DECL. Return NULL if nothing to be done. */ tree (*omp_clause_dtor) (tree clause, tree decl); /* Do language specific checking on an implicitly determined clause. */ ! void (*omp_finish_clause) (tree clause); }; /* Language hooks related to LTO serialization. */ --- 219,234 ---- /* Similarly, except use an assignment operator instead. */ tree (*omp_clause_assign_op) (tree clause, tree dst, tree src); + /* Build and return code for a constructor of DST that sets it to + SRC + ADD. */ + tree (*omp_clause_linear_ctor) (tree clause, tree dst, tree src, tree add); + /* Build and return code destructing DECL. Return NULL if nothing to be done. */ tree (*omp_clause_dtor) (tree clause, tree decl); /* Do language specific checking on an implicitly determined clause. */ ! void (*omp_finish_clause) (tree clause, gimple_seq *pre_p); }; /* Language hooks related to LTO serialization. */ diff -Nrcpad gcc-4.9.0/gcc/loop-init.c gcc-4.9.1/gcc/loop-init.c *** gcc-4.9.0/gcc/loop-init.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/loop-init.c Wed Apr 23 08:25:56 2014 *************** loop_optimizer_init (unsigned flags) *** 94,113 **** else { bool recorded_exits = loops_state_satisfies_p (LOOPS_HAVE_RECORDED_EXITS); gcc_assert (cfun->curr_properties & PROP_loops); /* Ensure that the dominators are computed, like flow_loops_find does. */ calculate_dominance_info (CDI_DOMINATORS); - if (loops_state_satisfies_p (LOOPS_NEED_FIXUP)) - { - loops_state_clear (~0U); - fix_loop_structure (NULL); - } - #ifdef ENABLE_CHECKING ! else verify_loop_structure (); #endif --- 94,108 ---- else { bool recorded_exits = loops_state_satisfies_p (LOOPS_HAVE_RECORDED_EXITS); + bool needs_fixup = loops_state_satisfies_p (LOOPS_NEED_FIXUP); gcc_assert (cfun->curr_properties & PROP_loops); /* Ensure that the dominators are computed, like flow_loops_find does. */ calculate_dominance_info (CDI_DOMINATORS); #ifdef ENABLE_CHECKING ! if (!needs_fixup) verify_loop_structure (); #endif *************** loop_optimizer_init (unsigned flags) *** 115,120 **** --- 110,123 ---- if (recorded_exits) release_recorded_exits (); loops_state_clear (~0U); + + if (needs_fixup) + { + /* Apply LOOPS_MAY_HAVE_MULTIPLE_LATCHES early as fix_loop_structure + re-applies flags. */ + loops_state_set (flags & LOOPS_MAY_HAVE_MULTIPLE_LATCHES); + fix_loop_structure (NULL); + } } /* Apply flags to loops. */ diff -Nrcpad gcc-4.9.0/gcc/lra-constraints.c gcc-4.9.1/gcc/lra-constraints.c *** gcc-4.9.0/gcc/lra-constraints.c Wed Apr 2 20:55:02 2014 --- gcc-4.9.1/gcc/lra-constraints.c Mon Jun 16 21:40:28 2014 *************** insert_move_for_subreg (rtx *before, rtx *** 1231,1236 **** --- 1231,1238 ---- } } + static int valid_address_p (enum machine_mode mode, rtx addr, addr_space_t as); + /* Make reloads for subreg in operand NOP with internal subreg mode REG_MODE, add new reloads for further processing. Return true if any reload was generated. */ *************** simplify_operand_subreg (int nop, enum m *** 1261,1270 **** equivalences in function lra_constraints) and because for spilled pseudos we allocate stack memory enough for the biggest corresponding paradoxical subreg. */ ! if ((MEM_P (reg) ! && (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (reg)) ! || MEM_ALIGN (reg) >= GET_MODE_ALIGNMENT (mode))) ! || (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER)) { alter_subreg (curr_id->operand_loc[nop], false); return true; --- 1263,1288 ---- equivalences in function lra_constraints) and because for spilled pseudos we allocate stack memory enough for the biggest corresponding paradoxical subreg. */ ! if (MEM_P (reg) ! && (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (reg)) ! || MEM_ALIGN (reg) >= GET_MODE_ALIGNMENT (mode))) ! { ! rtx subst, old = *curr_id->operand_loc[nop]; ! ! alter_subreg (curr_id->operand_loc[nop], false); ! subst = *curr_id->operand_loc[nop]; ! lra_assert (MEM_P (subst)); ! if (! valid_address_p (GET_MODE (reg), XEXP (reg, 0), ! MEM_ADDR_SPACE (reg)) ! || valid_address_p (GET_MODE (subst), XEXP (subst, 0), ! MEM_ADDR_SPACE (subst))) ! return true; ! /* If the address was valid and became invalid, prefer to reload ! the memory. Typical case is when the index scale should ! correspond the memory. */ ! *curr_id->operand_loc[nop] = old; ! } ! else if (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER) { alter_subreg (curr_id->operand_loc[nop], false); return true; *************** equiv_address_substitution (struct addre *** 2787,2795 **** Add reloads to the lists *BEFORE and *AFTER. We might need to add reloads to *AFTER because of inc/dec, {pre, post} modify in the ! address. Return true for any RTL change. */ static bool ! process_address (int nop, rtx *before, rtx *after) { struct address_info ad; rtx new_reg; --- 2805,2818 ---- Add reloads to the lists *BEFORE and *AFTER. We might need to add reloads to *AFTER because of inc/dec, {pre, post} modify in the ! address. Return true for any RTL change. ! ! The function is a helper function which does not produce all ! transformations which can be necessary. It does just basic steps. ! To do all necessary transformations use function ! process_address. */ static bool ! process_address_1 (int nop, rtx *before, rtx *after) { struct address_info ad; rtx new_reg; *************** process_address (int nop, rtx *before, r *** 2972,2977 **** --- 2995,3007 ---- *ad.inner = simplify_gen_binary (PLUS, GET_MODE (new_reg), new_reg, *ad.index); } + else if (get_index_scale (&ad) == 1) + { + /* The last transformation to one reg will be made in + curr_insn_transform function. */ + end_sequence (); + return false; + } else { /* base + scale * index => base + new_reg, *************** process_address (int nop, rtx *before, r *** 2989,2994 **** --- 3019,3036 ---- return true; } + /* Do address reloads until it is necessary. Use process_address_1 as + a helper function. Return true for any RTL changes. */ + static bool + process_address (int nop, rtx *before, rtx *after) + { + bool res = false; + + while (process_address_1 (nop, before, after)) + res = true; + return res; + } + /* Emit insns to reload VALUE into a new register. VALUE is an auto-increment or auto-decrement RTX whose operand is a register or memory location; so reloading involves incrementing that location. *************** curr_insn_transform (void) *** 3273,3279 **** change_p = true; lra_update_dup (curr_id, i); } ! if (change_p) /* If we've changed the instruction then any alternative that we chose previously may no longer be valid. */ --- 3315,3321 ---- change_p = true; lra_update_dup (curr_id, i); } ! if (change_p) /* If we've changed the instruction then any alternative that we chose previously may no longer be valid. */ diff -Nrcpad gcc-4.9.0/gcc/lra-eliminations.c gcc-4.9.1/gcc/lra-eliminations.c *** gcc-4.9.0/gcc/lra-eliminations.c Thu Jan 2 22:23:26 2014 --- gcc-4.9.1/gcc/lra-eliminations.c Fri May 23 01:52:28 2014 *************** lra_eliminate_regs_1 (rtx insn, rtx x, e *** 565,570 **** --- 565,580 ---- alter_subreg (&x, false); return x; } + else if (! subst_p) + { + /* LRA can transform subregs itself. So don't call + simplify_gen_subreg until LRA transformations are + finished. Function simplify_gen_subreg can do + non-trivial transformations (like truncation) which + might make LRA work to fail. */ + SUBREG_REG (x) = new_rtx; + return x; + } else return simplify_gen_subreg (GET_MODE (x), new_rtx, GET_MODE (new_rtx), SUBREG_BYTE (x)); diff -Nrcpad gcc-4.9.0/gcc/lto/ChangeLog gcc-4.9.1/gcc/lto/ChangeLog *** gcc-4.9.0/gcc/lto/ChangeLog Tue Apr 22 09:42:48 2014 --- gcc-4.9.1/gcc/lto/ChangeLog Wed Jul 16 10:03:40 2014 *************** *** 1,3 **** --- 1,12 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-04-22 Jan Hubicka + + PR lto/61012 + * lto-symtab.c (lto_symtab_merge_decls_1): + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/lto/lto-symtab.c gcc-4.9.1/gcc/lto/lto-symtab.c *** gcc-4.9.0/gcc/lto/lto-symtab.c Tue Feb 4 05:50:18 2014 --- gcc-4.9.1/gcc/lto/lto-symtab.c Thu May 22 05:35:32 2014 *************** lto_symtab_merge_decls_1 (symtab_node *f *** 453,459 **** cgraph or a varpool node. */ if (!prevailing) { ! prevailing = first; /* For variables chose with a priority variant with vnode attached (i.e. from unit where external declaration of variable is actually used). --- 453,464 ---- cgraph or a varpool node. */ if (!prevailing) { ! for (prevailing = first; ! prevailing; prevailing = prevailing->next_sharing_asm_name) ! if (lto_symtab_symbol_p (prevailing)) ! break; ! if (!prevailing) ! return; /* For variables chose with a priority variant with vnode attached (i.e. from unit where external declaration of variable is actually used). diff -Nrcpad gcc-4.9.0/gcc/lto-streamer-out.c gcc-4.9.1/gcc/lto-streamer-out.c *** gcc-4.9.0/gcc/lto-streamer-out.c Thu Apr 3 14:27:02 2014 --- gcc-4.9.1/gcc/lto-streamer-out.c Wed Apr 23 08:31:48 2014 *************** copy_function (struct cgraph_node *node) *** 2022,2027 **** --- 2022,2050 ---- lto_end_section (); } + /* Wrap symbol references in *TP inside a type-preserving MEM_REF. */ + + static tree + wrap_refs (tree *tp, int *ws, void *) + { + tree t = *tp; + if (handled_component_p (t) + && TREE_CODE (TREE_OPERAND (t, 0)) == VAR_DECL) + { + tree decl = TREE_OPERAND (t, 0); + tree ptrtype = build_pointer_type (TREE_TYPE (decl)); + TREE_OPERAND (t, 0) = build2 (MEM_REF, TREE_TYPE (decl), + build1 (ADDR_EXPR, ptrtype, decl), + build_int_cst (ptrtype, 0)); + TREE_THIS_VOLATILE (TREE_OPERAND (t, 0)) = TREE_THIS_VOLATILE (decl); + *ws = 0; + } + else if (TREE_CODE (t) == CONSTRUCTOR) + ; + else if (!EXPR_P (t)) + *ws = 0; + return NULL_TREE; + } /* Main entry point from the pass manager. */ *************** lto_output (void) *** 2043,2066 **** for (i = 0; i < n_nodes; i++) { symtab_node *snode = lto_symtab_encoder_deref (encoder, i); ! cgraph_node *node = dyn_cast (snode); ! if (node ! && lto_symtab_encoder_encode_body_p (encoder, node) ! && !node->alias) { #ifdef ENABLE_CHECKING ! gcc_assert (!bitmap_bit_p (output, DECL_UID (node->decl))); ! bitmap_set_bit (output, DECL_UID (node->decl)); #endif ! decl_state = lto_new_out_decl_state (); ! lto_push_out_decl_state (decl_state); ! if (gimple_has_body_p (node->decl) || !flag_wpa) ! output_function (node); ! else ! copy_function (node); ! gcc_assert (lto_get_out_decl_state () == decl_state); ! lto_pop_out_decl_state (); ! lto_record_function_out_decl_state (node->decl, decl_state); } } --- 2066,2098 ---- for (i = 0; i < n_nodes; i++) { symtab_node *snode = lto_symtab_encoder_deref (encoder, i); ! if (cgraph_node *node = dyn_cast (snode)) { + if (lto_symtab_encoder_encode_body_p (encoder, node) + && !node->alias) + { #ifdef ENABLE_CHECKING ! gcc_assert (!bitmap_bit_p (output, DECL_UID (node->decl))); ! bitmap_set_bit (output, DECL_UID (node->decl)); #endif ! decl_state = lto_new_out_decl_state (); ! lto_push_out_decl_state (decl_state); ! if (gimple_has_body_p (node->decl) || !flag_wpa) ! output_function (node); ! else ! copy_function (node); ! gcc_assert (lto_get_out_decl_state () == decl_state); ! lto_pop_out_decl_state (); ! lto_record_function_out_decl_state (node->decl, decl_state); ! } ! } ! else if (varpool_node *node = dyn_cast (snode)) ! { ! /* Wrap symbol references inside the ctor in a type ! preserving MEM_REF. */ ! tree ctor = DECL_INITIAL (node->decl); ! if (ctor && !in_lto_p) ! walk_tree (&ctor, wrap_refs, NULL, NULL); } } diff -Nrcpad gcc-4.9.0/gcc/objc/ChangeLog gcc-4.9.1/gcc/objc/ChangeLog *** gcc-4.9.0/gcc/objc/ChangeLog Tue Apr 22 09:42:57 2014 --- gcc-4.9.1/gcc/objc/ChangeLog Wed Jul 16 10:03:51 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/objcp/ChangeLog gcc-4.9.1/gcc/objcp/ChangeLog *** gcc-4.9.0/gcc/objcp/ChangeLog Tue Apr 22 09:43:06 2014 --- gcc-4.9.1/gcc/objcp/ChangeLog Wed Jul 16 10:04:03 2014 *************** *** 1,3 **** --- 1,7 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/omp-low.c gcc-4.9.1/gcc/omp-low.c *** gcc-4.9.0/gcc/omp-low.c Thu Mar 27 13:18:52 2014 --- gcc-4.9.1/gcc/omp-low.c Mon Jun 30 16:35:48 2014 *************** scan_sharing_clauses (tree clauses, omp_ *** 1509,1519 **** break; case OMP_CLAUSE_SHARED: /* Ignore shared directives in teams construct. */ if (gimple_code (ctx->stmt) == GIMPLE_OMP_TEAMS) ! break; gcc_assert (is_taskreg_ctx (ctx)); - decl = OMP_CLAUSE_DECL (c); gcc_assert (!COMPLETE_TYPE_P (TREE_TYPE (decl)) || !is_variable_sized (decl)); /* Global variables don't need to be copied, --- 1509,1527 ---- break; case OMP_CLAUSE_SHARED: + decl = OMP_CLAUSE_DECL (c); /* Ignore shared directives in teams construct. */ if (gimple_code (ctx->stmt) == GIMPLE_OMP_TEAMS) ! { ! /* Global variables don't need to be copied, ! the receiver side will use them directly. */ ! tree odecl = maybe_lookup_decl_in_outer_ctx (decl, ctx); ! if (is_global_var (odecl)) ! break; ! insert_decl_map (&ctx->cb, decl, odecl); ! break; ! } gcc_assert (is_taskreg_ctx (ctx)); gcc_assert (!COMPLETE_TYPE_P (TREE_TYPE (decl)) || !is_variable_sized (decl)); /* Global variables don't need to be copied, *************** scan_sharing_clauses (tree clauses, omp_ *** 1670,1675 **** --- 1678,1688 ---- } else { + if (ctx->outer) + { + scan_omp_op (&OMP_CLAUSE_DECL (c), ctx->outer); + decl = OMP_CLAUSE_DECL (c); + } gcc_assert (!splay_tree_lookup (ctx->field_map, (splay_tree_key) decl)); tree field *************** scan_sharing_clauses (tree clauses, omp_ *** 1730,1735 **** --- 1743,1751 ---- if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_REDUCTION && OMP_CLAUSE_REDUCTION_PLACEHOLDER (c)) scan_array_reductions = true; + else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR + && OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c)) + scan_array_reductions = true; break; case OMP_CLAUSE_SHARED: *************** scan_sharing_clauses (tree clauses, omp_ *** 1816,1821 **** --- 1832,1840 ---- else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE && OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c)) scan_omp (&OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c), ctx); + else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR + && OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c)) + scan_omp (&OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c), ctx); } /* Create a new name for omp child function. Returns an identifier. */ *************** scan_omp_parallel (gimple_stmt_iterator *** 1997,2002 **** --- 2016,2022 ---- tree temp = create_tmp_var (type, NULL); tree c = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE__LOOPTEMP_); + insert_decl_map (&outer_ctx->cb, temp, temp); OMP_CLAUSE_DECL (c) = temp; OMP_CLAUSE_CHAIN (c) = gimple_omp_parallel_clauses (stmt); gimple_omp_parallel_set_clauses (stmt, c); *************** check_omp_nesting_restrictions (gimple s *** 2494,2499 **** --- 2514,2536 ---- return false; } break; + case GIMPLE_OMP_TARGET: + for (; ctx != NULL; ctx = ctx->outer) + if (gimple_code (ctx->stmt) == GIMPLE_OMP_TARGET + && gimple_omp_target_kind (ctx->stmt) == GF_OMP_TARGET_KIND_REGION) + { + const char *name; + switch (gimple_omp_target_kind (stmt)) + { + case GF_OMP_TARGET_KIND_REGION: name = "target"; break; + case GF_OMP_TARGET_KIND_DATA: name = "target data"; break; + case GF_OMP_TARGET_KIND_UPDATE: name = "target update"; break; + default: gcc_unreachable (); + } + warning_at (gimple_location (stmt), 0, + "%s construct inside of target region", name); + } + break; default: break; } *************** lower_rec_simd_input_clauses (tree new_v *** 2961,2968 **** { tree c = find_omp_clause (gimple_omp_for_clauses (ctx->stmt), OMP_CLAUSE_SAFELEN); ! if (c ! && compare_tree_int (OMP_CLAUSE_SAFELEN_EXPR (c), max_vf) == -1) max_vf = tree_to_shwi (OMP_CLAUSE_SAFELEN_EXPR (c)); } if (max_vf > 1) --- 2998,3007 ---- { tree c = find_omp_clause (gimple_omp_for_clauses (ctx->stmt), OMP_CLAUSE_SAFELEN); ! if (c && TREE_CODE (OMP_CLAUSE_SAFELEN_EXPR (c)) != INTEGER_CST) ! max_vf = 1; ! else if (c && compare_tree_int (OMP_CLAUSE_SAFELEN_EXPR (c), ! max_vf) == -1) max_vf = tree_to_shwi (OMP_CLAUSE_SAFELEN_EXPR (c)); } if (max_vf > 1) *************** lower_rec_simd_input_clauses (tree new_v *** 2994,2999 **** --- 3033,3059 ---- return true; } + /* Helper function of lower_rec_input_clauses. For a reference + in simd reduction, add an underlying variable it will reference. */ + + static void + handle_simd_reference (location_t loc, tree new_vard, gimple_seq *ilist) + { + tree z = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (new_vard))); + if (TREE_CONSTANT (z)) + { + const char *name = NULL; + if (DECL_NAME (new_vard)) + name = IDENTIFIER_POINTER (DECL_NAME (new_vard)); + + z = create_tmp_var_raw (TREE_TYPE (TREE_TYPE (new_vard)), name); + gimple_add_tmp_var (z); + TREE_ADDRESSABLE (z) = 1; + z = build_fold_addr_expr_loc (loc, z); + gimplify_assign (new_vard, z, ilist); + } + } + /* Generate code to implement the input clauses, FIRSTPRIVATE and COPYIN, from the receiver (aka child) side and initializers for REFERENCE_TYPE private variables. Initialization statements go in ILIST, while calls *************** lower_rec_input_clauses (tree clauses, g *** 3025,3035 **** for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c)) switch (OMP_CLAUSE_CODE (c)) { case OMP_CLAUSE_REDUCTION: case OMP_CLAUSE_PRIVATE: case OMP_CLAUSE_FIRSTPRIVATE: case OMP_CLAUSE_LASTPRIVATE: - case OMP_CLAUSE_LINEAR: if (is_variable_sized (OMP_CLAUSE_DECL (c))) max_vf = 1; break; --- 3085,3098 ---- for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c)) switch (OMP_CLAUSE_CODE (c)) { + case OMP_CLAUSE_LINEAR: + if (OMP_CLAUSE_LINEAR_ARRAY (c)) + max_vf = 1; + /* FALLTHRU */ case OMP_CLAUSE_REDUCTION: case OMP_CLAUSE_PRIVATE: case OMP_CLAUSE_FIRSTPRIVATE: case OMP_CLAUSE_LASTPRIVATE: if (is_variable_sized (OMP_CLAUSE_DECL (c))) max_vf = 1; break; *************** lower_rec_input_clauses (tree clauses, g *** 3085,3090 **** --- 3148,3160 ---- if (pass != 0) continue; } + /* Even without corresponding firstprivate, if + decl is Fortran allocatable, it needs outer var + reference. */ + else if (pass == 0 + && lang_hooks.decls.omp_private_outer_ref + (OMP_CLAUSE_DECL (c))) + lastprivate_firstprivate = true; break; case OMP_CLAUSE_ALIGNED: if (pass == 0) *************** lower_rec_input_clauses (tree clauses, g *** 3185,3197 **** } else if (TREE_CONSTANT (x)) { ! /* For reduction with placeholder in SIMD loop, ! defer adding the initialization of the reference, ! because if we decide to use SIMD array for it, ! the initilization could cause expansion ICE. */ ! if (c_kind == OMP_CLAUSE_REDUCTION ! && OMP_CLAUSE_REDUCTION_PLACEHOLDER (c) ! && is_simd) x = NULL_TREE; else { --- 3255,3265 ---- } else if (TREE_CONSTANT (x)) { ! /* For reduction in SIMD loop, defer adding the ! initialization of the reference, because if we decide ! to use SIMD array for it, the initilization could cause ! expansion ICE. */ ! if (c_kind == OMP_CLAUSE_REDUCTION && is_simd) x = NULL_TREE; else { *************** lower_rec_input_clauses (tree clauses, g *** 3350,3383 **** if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR && gimple_omp_for_combined_into_p (ctx->stmt)) { ! tree stept = POINTER_TYPE_P (TREE_TYPE (x)) ! ? sizetype : TREE_TYPE (x); ! tree t = fold_convert (stept, ! OMP_CLAUSE_LINEAR_STEP (c)); ! tree c = find_omp_clause (clauses, ! OMP_CLAUSE__LOOPTEMP_); ! gcc_assert (c); ! tree l = OMP_CLAUSE_DECL (c); ! if (fd->collapse == 1) ! { ! tree n1 = fd->loop.n1; ! tree step = fd->loop.step; ! tree itype = TREE_TYPE (l); ! if (POINTER_TYPE_P (itype)) ! itype = signed_type_for (itype); ! l = fold_build2 (MINUS_EXPR, itype, l, n1); ! if (TYPE_UNSIGNED (itype) ! && fd->loop.cond_code == GT_EXPR) ! l = fold_build2 (TRUNC_DIV_EXPR, itype, ! fold_build1 (NEGATE_EXPR, ! itype, l), ! fold_build1 (NEGATE_EXPR, ! itype, step)); ! else ! l = fold_build2 (TRUNC_DIV_EXPR, itype, l, step); ! } t = fold_build2 (MULT_EXPR, stept, fold_convert (stept, l), t); if (POINTER_TYPE_P (TREE_TYPE (x))) x = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (x), x, t); --- 3418,3454 ---- if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR && gimple_omp_for_combined_into_p (ctx->stmt)) { ! tree t = OMP_CLAUSE_LINEAR_STEP (c); ! tree stept = TREE_TYPE (t); ! tree ct = find_omp_clause (clauses, ! OMP_CLAUSE__LOOPTEMP_); ! gcc_assert (ct); ! tree l = OMP_CLAUSE_DECL (ct); ! tree n1 = fd->loop.n1; ! tree step = fd->loop.step; ! tree itype = TREE_TYPE (l); ! if (POINTER_TYPE_P (itype)) ! itype = signed_type_for (itype); ! l = fold_build2 (MINUS_EXPR, itype, l, n1); ! if (TYPE_UNSIGNED (itype) ! && fd->loop.cond_code == GT_EXPR) ! l = fold_build2 (TRUNC_DIV_EXPR, itype, ! fold_build1 (NEGATE_EXPR, itype, l), ! fold_build1 (NEGATE_EXPR, ! itype, step)); ! else ! l = fold_build2 (TRUNC_DIV_EXPR, itype, l, step); t = fold_build2 (MULT_EXPR, stept, fold_convert (stept, l), t); + + if (OMP_CLAUSE_LINEAR_ARRAY (c)) + { + x = lang_hooks.decls.omp_clause_linear_ctor + (c, new_var, x, t); + gimplify_and_add (x, ilist); + goto do_dtor; + } + if (POINTER_TYPE_P (TREE_TYPE (x))) x = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (x), x, t); *************** lower_rec_input_clauses (tree clauses, g *** 3401,3410 **** = gimple_build_assign (unshare_expr (lvar), iv); gsi_insert_before_without_update (&gsi, g, GSI_SAME_STMT); ! tree stept = POINTER_TYPE_P (TREE_TYPE (x)) ! ? sizetype : TREE_TYPE (x); ! tree t = fold_convert (stept, ! OMP_CLAUSE_LINEAR_STEP (c)); enum tree_code code = PLUS_EXPR; if (POINTER_TYPE_P (TREE_TYPE (new_var))) code = POINTER_PLUS_EXPR; --- 3472,3478 ---- = gimple_build_assign (unshare_expr (lvar), iv); gsi_insert_before_without_update (&gsi, g, GSI_SAME_STMT); ! tree t = OMP_CLAUSE_LINEAR_STEP (c); enum tree_code code = PLUS_EXPR; if (POINTER_TYPE_P (TREE_TYPE (new_var))) code = POINTER_PLUS_EXPR; *************** lower_rec_input_clauses (tree clauses, g *** 3520,3544 **** But if they aren't used, we need to emit the deferred initialization now. */ else if (is_reference (var) && is_simd) ! { ! tree z ! = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (new_vard))); ! if (TREE_CONSTANT (z)) ! { ! const char *name = NULL; ! if (DECL_NAME (var)) ! name = IDENTIFIER_POINTER (DECL_NAME (new_vard)); ! ! z = create_tmp_var_raw ! (TREE_TYPE (TREE_TYPE (new_vard)), name); ! gimple_add_tmp_var (z); ! TREE_ADDRESSABLE (z) = 1; ! z = build_fold_addr_expr_loc (clause_loc, z); ! gimplify_assign (new_vard, z, ilist); ! } ! } x = lang_hooks.decls.omp_clause_default_ctor ! (c, new_var, unshare_expr (x)); if (x) gimplify_and_add (x, ilist); if (OMP_CLAUSE_REDUCTION_GIMPLE_INIT (c)) --- 3588,3597 ---- But if they aren't used, we need to emit the deferred initialization now. */ else if (is_reference (var) && is_simd) ! handle_simd_reference (clause_loc, new_vard, ilist); x = lang_hooks.decls.omp_clause_default_ctor ! (c, unshare_expr (new_var), ! build_outer_var_ref (var, ctx)); if (x) gimplify_and_add (x, ilist); if (OMP_CLAUSE_REDUCTION_GIMPLE_INIT (c)) *************** lower_rec_input_clauses (tree clauses, g *** 3569,3574 **** --- 3622,3634 ---- if (code == MINUS_EXPR) code = PLUS_EXPR; + tree new_vard = new_var; + if (is_simd && is_reference (var)) + { + gcc_assert (TREE_CODE (new_var) == MEM_REF); + new_vard = TREE_OPERAND (new_var, 0); + gcc_assert (DECL_P (new_vard)); + } if (is_simd && lower_rec_simd_input_clauses (new_var, ctx, max_vf, idx, lane, ivar, lvar)) *************** lower_rec_input_clauses (tree clauses, g *** 3580,3588 **** --- 3640,3657 ---- x = build2 (code, TREE_TYPE (ref), ref, ivar); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &llist[1]); + + if (new_vard != new_var) + { + SET_DECL_VALUE_EXPR (new_vard, + build_fold_addr_expr (lvar)); + DECL_HAS_VALUE_EXPR_P (new_vard) = 1; + } } else { + if (is_reference (var) && is_simd) + handle_simd_reference (clause_loc, new_vard, ilist); gimplify_assign (new_var, x, ilist); if (is_simd) { *************** lower_rec_input_clauses (tree clauses, g *** 3683,3690 **** tree c = find_omp_clause (gimple_omp_for_clauses (ctx->stmt), OMP_CLAUSE_SAFELEN); if (c == NULL_TREE ! || compare_tree_int (OMP_CLAUSE_SAFELEN_EXPR (c), ! max_vf) == 1) { c = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE_SAFELEN); OMP_CLAUSE_SAFELEN_EXPR (c) = build_int_cst (integer_type_node, --- 3752,3760 ---- tree c = find_omp_clause (gimple_omp_for_clauses (ctx->stmt), OMP_CLAUSE_SAFELEN); if (c == NULL_TREE ! || (TREE_CODE (OMP_CLAUSE_SAFELEN_EXPR (c)) == INTEGER_CST ! && compare_tree_int (OMP_CLAUSE_SAFELEN_EXPR (c), ! max_vf) == 1)) { c = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE_SAFELEN); OMP_CLAUSE_SAFELEN_EXPR (c) = build_int_cst (integer_type_node, *************** lower_lastprivate_clauses (tree clauses, *** 3803,3808 **** --- 3873,3886 ---- OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c)); OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c) = NULL; } + else if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINEAR + && OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c)) + { + lower_omp (&OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c), ctx); + gimple_seq_add_seq (stmt_list, + OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c)); + OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c) = NULL; + } x = build_outer_var_ref (var, ctx); if (is_reference (var)) *************** expand_omp_for_generic (struct omp_regio *** 5570,5575 **** --- 5648,5659 ---- { stmt = gimple_build_assign (endvar, iend); gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); + if (useless_type_conversion_p (TREE_TYPE (fd->loop.v), TREE_TYPE (iend))) + stmt = gimple_build_assign (fd->loop.v, iend); + else + stmt = gimple_build_assign_with_ops (NOP_EXPR, fd->loop.v, iend, + NULL_TREE); + gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); } if (fd->collapse > 1) expand_omp_for_init_vars (fd, &gsi, counts, inner_stmt, startvar); *************** expand_omp_for_static_nochunk (struct om *** 5986,5991 **** --- 6070,6081 ---- { stmt = gimple_build_assign (endvar, e); gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); + if (useless_type_conversion_p (TREE_TYPE (fd->loop.v), TREE_TYPE (e))) + stmt = gimple_build_assign (fd->loop.v, e); + else + stmt = gimple_build_assign_with_ops (NOP_EXPR, fd->loop.v, e, + NULL_TREE); + gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); } if (fd->collapse > 1) expand_omp_for_init_vars (fd, &gsi, counts, inner_stmt, startvar); *************** expand_omp_for_static_chunk (struct omp_ *** 6371,6376 **** --- 6461,6472 ---- { stmt = gimple_build_assign (endvar, e); gsi_insert_after (&si, stmt, GSI_CONTINUE_LINKING); + if (useless_type_conversion_p (TREE_TYPE (fd->loop.v), TREE_TYPE (e))) + stmt = gimple_build_assign (fd->loop.v, e); + else + stmt = gimple_build_assign_with_ops (NOP_EXPR, fd->loop.v, e, + NULL_TREE); + gsi_insert_after (&si, stmt, GSI_CONTINUE_LINKING); } if (fd->collapse > 1) expand_omp_for_init_vars (fd, &si, counts, inner_stmt, startvar); *************** expand_omp_simd (struct omp_region *regi *** 6822,6829 **** else { safelen = OMP_CLAUSE_SAFELEN_EXPR (safelen); ! if (!tree_fits_uhwi_p (safelen) ! || tree_to_uhwi (safelen) > INT_MAX) loop->safelen = INT_MAX; else loop->safelen = tree_to_uhwi (safelen); --- 6918,6927 ---- else { safelen = OMP_CLAUSE_SAFELEN_EXPR (safelen); ! if (TREE_CODE (safelen) != INTEGER_CST) ! loop->safelen = 0; ! else if (!tree_fits_uhwi_p (safelen) ! || tree_to_uhwi (safelen) > INT_MAX) loop->safelen = INT_MAX; else loop->safelen = tree_to_uhwi (safelen); *************** maybe_add_implicit_barrier_cancel (omp_c *** 8389,8398 **** && gimple_code (ctx->outer->stmt) == GIMPLE_OMP_PARALLEL && ctx->outer->cancellable) { ! tree lhs = create_tmp_var (boolean_type_node, NULL); gimple_omp_return_set_lhs (omp_return, lhs); tree fallthru_label = create_artificial_label (UNKNOWN_LOCATION); ! gimple g = gimple_build_cond (NE_EXPR, lhs, boolean_false_node, ctx->outer->cancel_label, fallthru_label); gimple_seq_add_stmt (body, g); gimple_seq_add_stmt (body, gimple_build_label (fallthru_label)); --- 8487,8500 ---- && gimple_code (ctx->outer->stmt) == GIMPLE_OMP_PARALLEL && ctx->outer->cancellable) { ! tree fndecl = builtin_decl_explicit (BUILT_IN_GOMP_CANCEL); ! tree c_bool_type = TREE_TYPE (TREE_TYPE (fndecl)); ! tree lhs = create_tmp_var (c_bool_type, NULL); gimple_omp_return_set_lhs (omp_return, lhs); tree fallthru_label = create_artificial_label (UNKNOWN_LOCATION); ! gimple g = gimple_build_cond (NE_EXPR, lhs, ! fold_convert (c_bool_type, ! boolean_false_node), ctx->outer->cancel_label, fallthru_label); gimple_seq_add_stmt (body, g); gimple_seq_add_stmt (body, gimple_build_label (fallthru_label)); *************** lower_omp_for (gimple_stmt_iterator *gsi *** 8989,8995 **** OMP_CLAUSE__LOOPTEMP_); } else ! temp = create_tmp_var (type, NULL); *pc = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE__LOOPTEMP_); OMP_CLAUSE_DECL (*pc) = temp; pc = &OMP_CLAUSE_CHAIN (*pc); --- 9091,9100 ---- OMP_CLAUSE__LOOPTEMP_); } else ! { ! temp = create_tmp_var (type, NULL); ! insert_decl_map (&ctx->outer->cb, temp, temp); ! } *pc = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE__LOOPTEMP_); OMP_CLAUSE_DECL (*pc) = temp; pc = &OMP_CLAUSE_CHAIN (*pc); *************** lower_omp_1 (gimple_stmt_iterator *gsi_p *** 10098,10118 **** } break; } - tree lhs; - lhs = create_tmp_var (boolean_type_node, NULL); if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_GOMP_BARRIER) { fndecl = builtin_decl_explicit (BUILT_IN_GOMP_BARRIER_CANCEL); gimple_call_set_fndecl (stmt, fndecl); gimple_call_set_fntype (stmt, TREE_TYPE (fndecl)); } gimple_call_set_lhs (stmt, lhs); tree fallthru_label; fallthru_label = create_artificial_label (UNKNOWN_LOCATION); gimple g; g = gimple_build_label (fallthru_label); gsi_insert_after (gsi_p, g, GSI_SAME_STMT); ! g = gimple_build_cond (NE_EXPR, lhs, boolean_false_node, cctx->cancel_label, fallthru_label); gsi_insert_after (gsi_p, g, GSI_SAME_STMT); break; --- 10203,10225 ---- } break; } if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_GOMP_BARRIER) { fndecl = builtin_decl_explicit (BUILT_IN_GOMP_BARRIER_CANCEL); gimple_call_set_fndecl (stmt, fndecl); gimple_call_set_fntype (stmt, TREE_TYPE (fndecl)); } + tree lhs; + lhs = create_tmp_var (TREE_TYPE (TREE_TYPE (fndecl)), NULL); gimple_call_set_lhs (stmt, lhs); tree fallthru_label; fallthru_label = create_artificial_label (UNKNOWN_LOCATION); gimple g; g = gimple_build_label (fallthru_label); gsi_insert_after (gsi_p, g, GSI_SAME_STMT); ! g = gimple_build_cond (NE_EXPR, lhs, ! fold_convert (TREE_TYPE (lhs), ! boolean_false_node), cctx->cancel_label, fallthru_label); gsi_insert_after (gsi_p, g, GSI_SAME_STMT); break; *************** static tree *** 11291,11335 **** ipa_simd_modify_stmt_ops (tree *tp, int *walk_subtrees, void *data) { struct walk_stmt_info *wi = (struct walk_stmt_info *) data; ! if (!SSA_VAR_P (*tp)) { - /* Make sure we treat subtrees as a RHS. This makes sure that - when examining the `*foo' in *foo=x, the `foo' get treated as - a use properly. */ - wi->is_lhs = false; - wi->val_only = true; if (TYPE_P (*tp)) *walk_subtrees = 0; - return NULL_TREE; } - struct modify_stmt_info *info = (struct modify_stmt_info *) wi->info; - struct ipa_parm_adjustment *cand - = ipa_get_adjustment_candidate (&tp, NULL, info->adjustments, true); - if (!cand) - return NULL_TREE; - - tree t = *tp; - tree repl = make_ssa_name (TREE_TYPE (t), NULL); ! gimple stmt; ! gimple_stmt_iterator gsi = gsi_for_stmt (info->stmt); ! if (wi->is_lhs) { ! stmt = gimple_build_assign (unshare_expr (cand->new_decl), repl); ! gsi_insert_after (&gsi, stmt, GSI_SAME_STMT); ! SSA_NAME_DEF_STMT (repl) = info->stmt; } ! else { ! /* You'd think we could skip the extra SSA variable when ! wi->val_only=true, but we may have `*var' which will get ! replaced into `*var_array[iter]' and will likely be something ! not gimple. */ ! stmt = gimple_build_assign (repl, unshare_expr (cand->new_decl)); gsi_insert_before (&gsi, stmt, GSI_SAME_STMT); } ! ! if (!useless_type_conversion_p (TREE_TYPE (*tp), TREE_TYPE (repl))) { tree vce = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (*tp), repl); *tp = vce; --- 11398,11450 ---- ipa_simd_modify_stmt_ops (tree *tp, int *walk_subtrees, void *data) { struct walk_stmt_info *wi = (struct walk_stmt_info *) data; ! struct modify_stmt_info *info = (struct modify_stmt_info *) wi->info; ! tree *orig_tp = tp; ! if (TREE_CODE (*tp) == ADDR_EXPR) ! tp = &TREE_OPERAND (*tp, 0); ! struct ipa_parm_adjustment *cand = NULL; ! if (TREE_CODE (*tp) == PARM_DECL) ! cand = ipa_get_adjustment_candidate (&tp, NULL, info->adjustments, true); ! else { if (TYPE_P (*tp)) *walk_subtrees = 0; } ! tree repl = NULL_TREE; ! if (cand) ! repl = unshare_expr (cand->new_decl); ! else { ! if (tp != orig_tp) ! { ! *walk_subtrees = 0; ! bool modified = info->modified; ! info->modified = false; ! walk_tree (tp, ipa_simd_modify_stmt_ops, wi, wi->pset); ! if (!info->modified) ! { ! info->modified = modified; ! return NULL_TREE; ! } ! info->modified = modified; ! repl = *tp; ! } ! else ! return NULL_TREE; } ! ! if (tp != orig_tp) { ! repl = build_fold_addr_expr (repl); ! gimple stmt ! = gimple_build_assign (make_ssa_name (TREE_TYPE (repl), NULL), repl); ! repl = gimple_assign_lhs (stmt); ! gimple_stmt_iterator gsi = gsi_for_stmt (info->stmt); gsi_insert_before (&gsi, stmt, GSI_SAME_STMT); + *orig_tp = repl; } ! else if (!useless_type_conversion_p (TREE_TYPE (*tp), TREE_TYPE (repl))) { tree vce = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (*tp), repl); *tp = vce; *************** ipa_simd_modify_stmt_ops (tree *tp, int *** 11338,11345 **** *tp = repl; info->modified = true; - wi->is_lhs = false; - wi->val_only = true; return NULL_TREE; } --- 11453,11458 ---- *************** ipa_simd_modify_function_body (struct cg *** 11358,11364 **** tree retval_array, tree iter) { basic_block bb; ! unsigned int i, j; /* Re-use the adjustments array, but this time use it to replace every function argument use to an offset into the corresponding --- 11471,11477 ---- tree retval_array, tree iter) { basic_block bb; ! unsigned int i, j, l; /* Re-use the adjustments array, but this time use it to replace every function argument use to an offset into the corresponding *************** ipa_simd_modify_function_body (struct cg *** 11381,11386 **** --- 11494,11539 ---- j += node->simdclone->simdlen / TYPE_VECTOR_SUBPARTS (vectype) - 1; } + l = adjustments.length (); + for (i = 1; i < num_ssa_names; i++) + { + tree name = ssa_name (i); + if (name + && SSA_NAME_VAR (name) + && TREE_CODE (SSA_NAME_VAR (name)) == PARM_DECL) + { + for (j = 0; j < l; j++) + if (SSA_NAME_VAR (name) == adjustments[j].base + && adjustments[j].new_decl) + { + tree base_var; + if (adjustments[j].new_ssa_base == NULL_TREE) + { + base_var + = copy_var_decl (adjustments[j].base, + DECL_NAME (adjustments[j].base), + TREE_TYPE (adjustments[j].base)); + adjustments[j].new_ssa_base = base_var; + } + else + base_var = adjustments[j].new_ssa_base; + if (SSA_NAME_IS_DEFAULT_DEF (name)) + { + bb = single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun)); + gimple_stmt_iterator gsi = gsi_after_labels (bb); + tree new_decl = unshare_expr (adjustments[j].new_decl); + set_ssa_default_def (cfun, adjustments[j].base, NULL_TREE); + SET_SSA_NAME_VAR_OR_IDENTIFIER (name, base_var); + SSA_NAME_IS_DEFAULT_DEF (name) = 0; + gimple stmt = gimple_build_assign (name, new_decl); + gsi_insert_before (&gsi, stmt, GSI_SAME_STMT); + } + else + SET_SSA_NAME_VAR_OR_IDENTIFIER (name, base_var); + } + } + } + struct modify_stmt_info info; info.adjustments = adjustments; diff -Nrcpad gcc-4.9.0/gcc/opts.c gcc-4.9.1/gcc/opts.c *** gcc-4.9.0/gcc/opts.c Fri Mar 14 17:58:52 2014 --- gcc-4.9.1/gcc/opts.c Sat May 17 22:20:43 2014 *************** static const struct default_options defa *** 431,438 **** { OPT_LEVELS_1_PLUS, OPT_fguess_branch_probability, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fcprop_registers, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fforward_propagate, NULL, 1 }, ! { OPT_LEVELS_1_PLUS, OPT_fif_conversion, NULL, 1 }, ! { OPT_LEVELS_1_PLUS, OPT_fif_conversion2, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_pure_const, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_reference, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_profile, NULL, 1 }, --- 431,438 ---- { OPT_LEVELS_1_PLUS, OPT_fguess_branch_probability, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fcprop_registers, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fforward_propagate, NULL, 1 }, ! { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fif_conversion, NULL, 1 }, ! { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fif_conversion2, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_pure_const, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_reference, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_profile, NULL, 1 }, *************** common_handle_option (struct gcc_options *** 1501,1509 **** } if (! found) ! warning_at (loc, 0, ! "unrecognized argument to -fsanitize= option: %q.*s", ! (int) len, p); if (comma == NULL) break; --- 1501,1509 ---- } if (! found) ! error_at (loc, ! "unrecognized argument to -fsanitize= option: %q.*s", ! (int) len, p); if (comma == NULL) break; *************** common_handle_option (struct gcc_options *** 1740,1746 **** /* FIXME: Instrumentation we insert makes ipa-reference bitmaps quadratic. Disable the pass until better memory representation is done. */ ! if (!opts_set->x_flag_ipa_reference && opts->x_in_lto_p) opts->x_flag_ipa_reference = false; break; --- 1740,1746 ---- /* FIXME: Instrumentation we insert makes ipa-reference bitmaps quadratic. Disable the pass until better memory representation is done. */ ! if (!opts_set->x_flag_ipa_reference) opts->x_flag_ipa_reference = false; break; *************** common_handle_option (struct gcc_options *** 1820,1832 **** break; case OPT_g: ! /* -g by itself should force -g2. */ ! if (*arg == '\0') ! set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, "2", opts, opts_set, ! loc); ! else ! set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, arg, opts, opts_set, ! loc); break; case OPT_gcoff: --- 1820,1827 ---- break; case OPT_g: ! set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, arg, opts, opts_set, ! loc); break; case OPT_gcoff: *************** set_debug_level (enum debug_info_type ty *** 2076,2085 **** opts_set->x_write_symbols = type; } ! /* A debug flag without a level defaults to level 2. */ if (*arg == '\0') { ! if (!opts->x_debug_info_level) opts->x_debug_info_level = DINFO_LEVEL_NORMAL; } else --- 2071,2082 ---- opts_set->x_write_symbols = type; } ! /* A debug flag without a level defaults to level 2. ! If off or at level 1, set it to level 2, but if already ! at level 3, don't lower it. */ if (*arg == '\0') { ! if (opts->x_debug_info_level < DINFO_LEVEL_NORMAL) opts->x_debug_info_level = DINFO_LEVEL_NORMAL; } else diff -Nrcpad gcc-4.9.0/gcc/passes.c gcc-4.9.1/gcc/passes.c *** gcc-4.9.0/gcc/passes.c Fri Jan 17 14:19:55 2014 --- gcc-4.9.1/gcc/passes.c Fri Apr 25 07:48:06 2014 *************** execute_all_ipa_transforms (void) *** 2109,2128 **** } } - /* Callback for do_per_function to apply all IPA transforms. */ - - static void - apply_ipa_transforms (void *data) - { - struct cgraph_node *node = cgraph_get_node (current_function_decl); - if (!node->global.inlined_to && node->ipa_transforms_to_apply.exists ()) - { - *(bool *)data = true; - execute_all_ipa_transforms (); - rebuild_cgraph_edges (); - } - } - /* Check if PASS is explicitly disabled or enabled and return the gate status. FUNC is the function to be processed, and GATE_STATUS is the gate status determined by pass manager by --- 2109,2114 ---- *************** execute_one_pass (opt_pass *pass) *** 2194,2201 **** Apply all trnasforms first. */ if (pass->type == SIMPLE_IPA_PASS) { bool applied = false; ! do_per_function (apply_ipa_transforms, (void *)&applied); if (applied) symtab_remove_unreachable_nodes (true, dump_file); /* Restore current_pass. */ --- 2180,2205 ---- Apply all trnasforms first. */ if (pass->type == SIMPLE_IPA_PASS) { + struct cgraph_node *node; bool applied = false; ! FOR_EACH_DEFINED_FUNCTION (node) ! if (node->analyzed ! && cgraph_function_with_gimple_body_p (node) ! && (!node->clone_of || node->decl != node->clone_of->decl)) ! { ! if (!node->global.inlined_to ! && node->ipa_transforms_to_apply.exists ()) ! { ! cgraph_get_body (node); ! push_cfun (DECL_STRUCT_FUNCTION (node->decl)); ! execute_all_ipa_transforms (); ! rebuild_cgraph_edges (); ! free_dominance_info (CDI_DOMINATORS); ! free_dominance_info (CDI_POST_DOMINATORS); ! pop_cfun (); ! applied = true; ! } ! } if (applied) symtab_remove_unreachable_nodes (true, dump_file); /* Restore current_pass. */ diff -Nrcpad gcc-4.9.0/gcc/po/ChangeLog gcc-4.9.1/gcc/po/ChangeLog *** gcc-4.9.0/gcc/po/ChangeLog Tue Apr 22 09:43:03 2014 --- gcc-4.9.1/gcc/po/ChangeLog Wed Jul 16 10:03:59 2014 *************** *** 1,3 **** --- 1,15 ---- + 2014-07-16 Release Manager + + * GCC 4.9.1 released. + + 2014-05-14 Joseph Myers + + * zh_CN.po: Update. + + 2014-05-01 Joseph Myers + + * sv.po: Update. + 2014-04-22 Release Manager * GCC 4.9.0 released. diff -Nrcpad gcc-4.9.0/gcc/po/sv.gmo gcc-4.9.1/gcc/po/sv.gmo *** gcc-4.9.0/gcc/po/sv.gmo Tue Apr 22 10:29:42 2014 --- gcc-4.9.1/gcc/po/sv.gmo Wed Jul 16 10:51:52 2014 *************** p¶ŰpK’q4ŢqNr3b *** 1462,1557 **** ń; ü; w< *< *ł< $Ţ< *= <.= 8k= ¤= "ľ= á= ú= +> 5F> 6|> 2ł> 2ć> <? 2V? >‰? =Č? 5@ )<@ 7f@ ž@ ¸@ %Ó@ "ů@ A =A -^A "ŚA !ŻA %ŃA %÷A B ',B TB rB “B ¤B ÂB ßB ÷B C (C óM M2N n€N AďN F1O OxO KČO OP ?dP >¤P BăP I&Q EpQ E¶Q 4üQ z1R <¬R ;éR =%S 5cS M™S CçS O+T ‚{T DţT 8CU ‡|U 2V -7V xeV CŢV P"W IsW H˝W JX OQX LˇX ‰îX KxY ÄY RMZ D Z =ĺZ Z#[ I~[ <Č[ 8\ 8>\ 5w\ J­\ Jř\ MC] F‘] GŘ] A ^ Ib^ :¬^ Oç_ 7` HT` ť` +©` =Ő` 0a /Da 9ta ®a &ża -ća b Rb .qb g b 2c Z;c }–c Ad (Vd d ?žd IŢd %(e Ne Efe ¬e )Âe %ěe %f 18f -jf f ¸f &Řf ˙f g (g ±h Nđh ;?i {i 4śi Ńi çi .ýi v,j ,Łj "Đj Lój (@k Fik 6°k Fçk _.l Žl 7«l )ăl H m Vm 8lm 5Ąm Űm ńm $n ?6n 8vn `Żn o #o 46o ko ]o Xćo j?p ]Şp Sq W\q U´q U r S`r h´r Js :hs IŁs ]ís FKt K’t 9Ţt ?u WXu f°u +v Cv =`v žv ąv &Év &đv 6w ANw 2w =Ăw 'x 3)x 5]x 1“x 1Ĺx 4÷x 7,y Sdy :¸y 5óy G)z )qz ›z AŻz ;ńz G-{ Pu{ ^Ć{ V%| #||  | 7´| 8ě| "%} )H} Mr} :Ŕ} *ű} 2&~ LY~ K¦~ <ň~ L/ H| FĹ H € EU€ G›€ @〠<$ =a jź E ! ‚ ?P‚ v‚ K vS }Ę EH„ zŽ„ X … b… dä… jI† c´† U‡ >n‡ S­‡ = [? F› Aâ B$‰ .g‰ #–‰ -ş‰ 4č‰ AŠ "_Š $‚Š §Š +ÇŠ 8óŠ ,‹ 5G‹ %}‹ !Ł‹ ,Ĺ‹ ň‹ Ś ,-Ś #ZŚ )~Ś 3¨Ś ÜŚ -îŚ OŤ |lŤ SéŤ W=Ž K•Ž .Ꭰ;Ź \LŹ z©Ź =$ ?b :˘ tÝ !R‘ 7t‘ K¬‘ Rř‘ DK’ `’ Hń’ (:“ (c“ ,Ś“ pą“ '*” -R” €” 2•” Č” Cß” "#• F• d• )‚• 6¬• ă• #ü• W – 5x– A®– =đ– ).— 3X— CŚ— /Đ— ( .) 9X *’ 5˝ =ó )1™ 9[™ *•™ 0Ŕ™ /ń™ ,!š 6Nš F…š 6Ěš .› +2› I^› >¨› !ç› @ ś MJś .ś Çś áś "řś %ť 2Ať -tť )˘ť .Ěť /űť L+ž (xž 1ˇž Óž 2óž ?&ź )fź !ź =˛ź ?đź 50  2f  D™  3Ţ  9ˇ ,Lˇ Nyˇ 8ȡ 2˘ 34˘ (h˘ ‘˘ Ż˘ ͢ Dä˘ ;)Ł :eŁ L Ł EíŁ 93¤ Ym¤ AǤ = Ą ,GĄ +tĄ H Ą >éĄ >(¦ Zg¦ E¦ 7§ %@§ 6f§ =ť§ 9ۧ Z¨ ^p¨ XϨ ](© :†© 6Á© ^ř© LWŞ ]¤Ş 8« 4;« p« 4‘« $Ć« ;ë« 1'¬ %Y¬ A¬ /Á¬ Dń¬ /6­ Mf­ *´­ $ß­ &® ;+® g® I„® ,ή ]ű® 4YŻ -ŽŻ (ĽŻ +ĺŻ ° 30° d° )~° 2¨° =۰ <± !V± Px± 0ɱ "ú± ˛ I>˛ (˛ *±˛ ,ܲ , ł 76ł onł )Ţł A´ J´ Y´ w´ ‘´ 8«´ ä´ ó´ 3µ ECµ B‰µ +̵ >řµ @7¶ 4x¶ :­¶ Oč¶ 8· )S· 6}· 3´· Oč· &8¸ 6_¸ c–¸ \ú¸ CWą <›ą .Řą 1ş +9ş -eş M“ş 4áş +» ~B» ,Á» 'î» +Ľ :BĽ ;}Ľ 5ąĽ &ďĽ B˝ =Y˝ %—˝ 5˝˝ 1ó˝ (%ľ CNľ A’ľ AÔľ Dż 1[ż #Ťż ;±ż ,íż 0Ŕ >KŔ BŠŔ 2ÍŔ 5Á P6Á 6‡Á :ľÁ EůÁ J? 0ŠÂ .»Â ?ę ,*Ă 0WĂ Ă .§Ă ÖĂ #ńĂ Ä K*Ä vÄ *•Ä 'ŔÄ nčÄ WĹ kĹ ~Ĺ +ťĹ wÉĹ 7AĆ yĆ •Ć DłĆ řĆ %Ç 5Ç EKÇ ?‘Ç >ŃÇ #Č 24Č gČ ‡Č ˇČ ĽČ WÖČ &.É DUÉ EšÉ vŕÉ ZWĘ ˛Ę ÇĘ ŘĘ /ęĘ 3Ë NË mË GŽË JÖË 6!Ě XĚ .qĚ / Ě GĐĚ #Í p<Í ­Í ÉÍ 9âÍ TÎ /qÎ :ˇÎ $ÜÎ Ď 9Ď :YĎ ”Ď <¨Ď JĺĎ @0Đ qĐ ?‘Đ HŃĐ +Ń 6FŃ 7}Ń VµŃ K Ň CXŇ &śŇ ĂŇ äŇ ňŇ /Ó H>Ó "‡Ó 4ŞÓ $ßÓ %Ô *Ô 8JÔ 0Ô 7´Ô 4ěÔ !Ő aBŐ /¤Ő "ÔŐ *÷Ő @"Ö cÖ 2Ö &¶Ö ÝÖ ţÖ )× 3E× (y× +˘× %Î× *ô× $Ř 'DŘ *lŘ $—Ř )ĽŘ 5ćŘ Ů +4Ů +`Ů $ŚŮ ±Ů ĘŮ çŮ #Ú 3,Ú `Ú tÚ &“Ú 3şÚ îÚ & Ű &4Ű [Ű 8wŰ ,°Ű 0ÝŰ Ü (+Ü $TÜ yÜ —Ü µÜ #ÓÜ ÷Ü 1Ý HÝ ]Ý zÝ bŽÝ ńÝ . ! Ţ -9Ţ )gŢ 3‘Ţ 2ĹŢ &řŢ 5ß !Uß wß •ß Şß Ęß /äß Hŕ 0]ŕ (Žŕ -·ŕ $ĺŕ , ! á (7á /`á cá ;ôá )0â Zâ .qâ . â Ďâ !đâ ă &ă #:ă $^ă 8ă Ľă .Đă "˙ă "ä ?ä "^ä !ä Łä 1Ăä 5őä +ĺ #Aĺ 0eĺ †–ĺ -ć :Kć 7†ć Mľć X ç 8eç 0žç +Ďç ?űç 4;č 7pč P¨č :ůč 34é Rhé 6»é 8ňé 6+ę 9bę >śę 7Űę 3ë -Gë uë .–ë Ĺë Ţë ůë ;ě 1Uě ‡ě : ě !Űě 0ýě 3.í #bí ;†í /Âí 'ňí 1î -Lî 7zî 3˛î <ćî ;#ď 2_ď A’ď OÔď 3$đ 6Xđ 6Źđ 8Ćđ /˙đ &/ń IVń - ń @Îń =ň ;Mň !‰ň «ň #Áň ĺň .ó '3ó &[ó *‚ó ­ó Ćó ?ăó S#ô >wô i¶ô ) ő %Jő 3pő /¤ő $Ôő 'ůő $!ö Fö ,Xö 0…ö ¶ö NĚö $÷ @÷ 1Z÷ !Ś÷ ®÷ Ă÷ Z×÷ 42ř \gř ZÄř Oů Qoů kÁů R-ú a€ú gâú uJű XŔű \ü Vvü .Íü 0üü )-ý 3Wý 2‹ý &ľý 2ĺý 2ţ 'Kţ sţ Šţ Eˇţ .çţ '˙ (>˙ -g˙ #•˙ 1ą˙ ë˙ ! %) $O /t *¤ -Ď ;ý -9 g € ť /ą 2é ] z 8’ FË B /U <… ? # 0& W o Ž "Ż !Ň $ô  -2 '`  ¦ #ż %ă    &6 ] 5~ ´ #Ô ř  1/ 5a 4— -Ě ú &ţ )% O +h H” 8Ý $ *; 1f 6 =Ď ; ! -I ! -w ! Ą ! * ! &í ! ) 5> =t 8˛ #ë , L< W‰ Yá '; c x ' )° )Ú ( 7- (e Ž '« Ó "đ 0 +D 5p ¦ 2Ä (÷ B  +c (Ź 1¸ %ę " 3 R m #Ś (° Ů &í  s" 7– Î vß 4V ‹ Ž ’ ™ =ˇ =ß W Wu 8Í . 5 < I R c 7q © 9ą Dó 98 Gr ş Ř ů ' NB -‘ 8ż Ař :: "u - #Ć <ę +' S 4g 'ś +Ä &đ # $; #` #„ "¨ Ë $ě ' %9 _ &} ¤  )â /  < Y +u /ˇ 0Ń B ^E <¤ Cá 2% 2X ‹ « Á 1Ű %  3 M h K ?Ë # >/ 6n 4Ą 7Ú 9! AL! .Ž! 6˝! ,ô! 1!" 4S" " 2Ą" -Ř" # 1&# X# =`# !ž# "Ŕ# ă# !÷# #$ 8=$ 'v$ -ž$ Ě$ ć$ %  % % 1% D% [% v% =Š% ,Č% Iő% E?& …& *˘& !Í& ď& ö& 8ý& ! 6' 5A' w' )' Â' *á' / ( <( \( {( -“( .Á( $đ( ,) XB) ›) AĽ) 3ţ) !2* BT* —* °* &Ĺ* $ě* + ,+ -I+ *w+ ˘+ %Ŕ+ +ć+ *, 4=, "r, 3•, É, ! ć, #ń, - /- I- b- z- &„- 3«- 'ß- . $$. ,I. v. )—. dÁ. &/ */ 9/ H/ 'W/ 9/ !ą/ MŰ/ Y)0 Y0 RÝ0 W01 @1 IÉ1 E2 yY2 [Ó2 J/3 ^z3 NŮ3 ;(4 Ud4 ?ş4 Hú4 DC5 R5 TŰ5 O06 O€6 DĐ6 W7 gm7 HŐ7 M8 Ql8 Lľ8 j 9 Gv9 Hľ9 F: [N: KŞ: Kö: UB; T; Oí; o=< X­< S= DZ= Eź= Lĺ= R2> Z…> Sŕ> k4? H ? ]é? _G@ ‹§@ H3A I|A ]ĆA M$B [rB 7ÎB 5C $ŮS 8T %QT wT —T «T MÄT U A!U cU wU †U D•U ÚU ZéU ADV A†V VČV YW VyW SĐW $X V3X ŠX ŞX UąX SY OcY błY dZ {Z ,~Z 2«Z 'ŢZ [ [ ‚![ @¤[ kĺ[ ‡Q\ "Ů\ $ü\ 7!] 0Y] :Š] Ĺ] ä] 5^ ! 8^ ¨C^ 2ě^ 3_ (S_ N|_ :Ë_ :` ”A` mÖ` )Da ,na /›a ,Ëa .řa 'b u=b vłb 4*c M_c n­c 8d Ud .nd 5ťd (Ód +üd '(e /Pe €e že +»e -çe +f +Af )mf $—f ,Ľf Véf H@g I‰g +Óg 4˙g *4h 1_h ‘h ­h Ćh /Ţh 3i CBi 9†i 9Ŕi $úi ;j +[j ‡j 8¤j 2Ýj $k <5k rk 0…k ¶k KÉk _l ul ’l 5®l ]äl HBm -‹m Jąm >n BCn A†n JČn co Kwo KĂo 6p Fp dSp ¸p A:q ‡|q 6r 3;r Oor Fżr \s Ccs ?§s Uçs \=t Všt Lńt X>u $—u $Ľu (áu % ! v g0v Kv Cäv B(w Bkw 6®w @ĺw :&x ;ax 9ťx -×x Jy RPy RŁy =öy G4z 9|z =¶z @ôz G5{ K}{ jÉ{ `4| A•| 4×| @ } ,M} -z} /¨} OŘ} I(~ =r~ 6°~ Wç~ :? qz Dě 31€ ae€ aÇ€ C) 8m E¦ 8ě '%‚ M‚ `‚ as‚ +Ő‚ = [? F› Eâ Y(„ A‚„ NÄ„ @… *T… 9… 9ą… ?ó… ~3† _˛† D‡ IW‡ 0ˇ‡ <҇ J 9Z F” ;Ű J‰ Ib‰ 6¬‰ a㉠SEŠ L™Š EćŠ {,‹ {¨‹ 6$Ś '[Ś YŚ rÝŚ .PŤ ;Ť »Ť 9ÓŤ % Ž T3Ž WŽ 5஠ZŹ VqŹ >ČŹ 0 :8 Ms KÁ T ‘ 8b‘ S›‘ Vď‘ HF’ 8Ź’ 'Č’ ,đ’ “ 5;“ 5q“ H§“ Nđ“ D?” <„” -Á” 4ď” )$• 4N• )• r­• = – 7^– D–– 0Ű– . — +;— .g— <–— BÓ— @ ,W („ T­ 1™ /4™ 6d™ /›™ +Ë™ J÷™ 2Bš 4uš 4Şš @ßš ' › !H› j› /„› <´› Cń› J5ś ,€ś ,­ś .Úś * ť 4ť $Pť uť <’ť Ďť "çť 6 ! ž ;Až }ž E–ž %Üž Uź CXź :śź ן 6ńź 1(  $Z  *  ,Ş  C×  Uˇ qˇ 2ڎ żˇ *ࡠ: ˘ *F˘ /q˘ ˇ˘ (ľ˘ Hç˘ (0Ł #YŁ d}Ł ?⣠*"¤ EM¤ "“¤ ¶¤ @Ő¤ 7Ą ENĄ %”Ą 1şĄ RěĄ /?¦ 4o¦ 3¤¦ "ئ %ű¦ #!§ ,E§ 3r§ -¦§ Ô§ *î§ *¨ 5D¨ /z¨ ި "˨ î¨ 4 © 6B© ?y© :ą© 4ô© 8)Ş <bŞ źŞ M¸Ş )« 80« Hi« ˛« 4Ď« ?¬ 'D¬ #l¬ $¬ µ¬ Ô¬ Eđ¬ +6­ Eb­ =¨­ ć­ -® -2® `® 2s® 6¦® 'Ý® ?Ż 4EŻ CzŻ ľŻ CĚŻ ° (° G° b° v° ‚° ‹° ©° ł° 9Á° &ű° "± 4± B± V± d± l± u± ~± ڱ š± ! ˇ± ¬± ľ± ѱ á± ę± ó± ˛ ˛ #˛ 5˛ >˛ T˛ h˛ ! ~˛ ‰˛ &“˛ 4ş˛ 7ď˛ &'ł yNł zČł `C´ :¤´ dß´ /Dµ /tµ 6¤µ ۵ %őµ ¶ </¶ <l¶ 7©¶ -á¶ · H&· 2o· 3˘· Ö· -ć· 2¸ *G¸ 0r¸ -ُ Ѹ ?ä¸ 5$ą &Zą ą źą ľą 4׹ E ş URş e¨ş Ť» Oś» 'ě» 4Ľ 1IĽ L{Ľ 1ČĽ 9úĽ ?4˝ Ct˝ 3¸˝ (ě˝ ’ľ U¨ż –ţż •Ŕ q.Á ] Á RţÁ @Q ;’ Π?NĂ <ŽĂ IËĂ µÄ FËÄ fĹ wyĹ ZńĹ _LĆ U¬Ć 4Ç E7Ç 1}Ç "ŻÇ BŇÇ Č .Č KČ "bČ …Č ŁČ (şČ "ăČ (É $/É (TÉ &}É ¤É ÂÉ #ÝÉ (Ę -*Ę CXĘ =śĘ 2ÚĘ / Ë /=Ë 4mË Z˘Ë IýË GĚ KÉĚ <Í ORÍ N˘Í ańÍ 2SÎ N†Î :ŐÎ AĎ …RĎ aŘĎ Y:Đ )”Đ (ľĐ RçĐ ;:Ń 9vŃ +°Ń 1ÜŃ @Ň #OŇ FsŇ -şŇ LčŇ /5Ó *eÓ 6Ó 6ÇÓ ^ţÓ f]Ô BÄÔ KŐ >SŐ L’Ő KßŐ =+Ö liÖ 8ÖÖ 4× 5D× 5z× 7°× :č× +#Ř 'OŘ GwŘ CżŘ KŮ 2OŮ 6‚Ů %ąŮ CßŮ D#Ú IhÚ ˛Ú BÎÚ VŰ LhŰ µŰ 9ÖŰ 3Ü 4DÜ -yÜ 1§Ü ŮÜ %öÜ QÝ 7nÝ (¦Ý SĎÝ I#Ţ 5mŢ sŁŢ Bß #Zß 5~ß `´ß :ŕ 'Pŕ 2xŕ Q«ŕ Iýŕ PGá Uá Zîá ZIâ H¤â tíâ Ubă Q¸ă H ä YSä _­ä n ĺ Y|ĺ CÖĺ 8ć ESć I™ć [ăć `?ç = ç DŢç H#č Glč G´č 8üč 55é <ké P¨é =ůé J7ę P‚ę :Óę 5ë +Dë *pë W›ë 4óë -(ě VVě @­ě 5îě 8$í :]í >í <×í >î >Sî ;’î =Îî 2 ď F?ď 1†ď F¸ď H˙ď 1Hđ Ezđ 1Ŕđ ,ňđ .ń 2Nń /ń J±ń üń 7ň Nň ndň mÓň Aó 0Uó †ó uźó uô ‹ô z©ô t$ő 5™ő TĎő W$ö 7|ö 7´ö .ěö R÷ )n÷ /÷ 1Č÷ 'ú÷ z"ř 'ťř FĹř P ů 8]ů I–ů Fŕů I'ú Fqú C¸ú "üú ű c?ű NŁű 5ňű 4(ü O]ü 1­ü 1ßü Žý µ ý oVţ $Ćţ #ëţ ˙ )*˙ ST˙ F¨˙ Dď˙ ^4 /“ 7Ă Gű MC C‘ @Ő 7 ‡N 5Ö /  < )W B ]Ä &" !I k 3Ś 0Ŕ :ń O, N| 7Ë 2 6 #O 0s @¤ -ĺ  $) #N :r =­ së 9_ O™ Hé &2 *Y \„ =á  8 kV \ S >s V˛ 7 @A S‚ SÖ A* hl Ő 8č R! ot ~ä Fc !Ş PĚ A u_ TŐ J* Źu d _j KĘ _ rv qé o[ MË Q Nk Fş  ? U ?d +¤ 6Đ N 3V DŠ AĎ O .a 7 )Č 7ň ;* 9f 5  =Ö K M` D® (ó  $5 Z t Ś (˘ (Ë *ô # C ;R LŽ @Ű @ ] -q 7ź × 9ń ?+ Dk I° Lú (G p >€ $ż ä !ü  8> w B– CŮ C! 3a! •! 0«! 6Ü! !" 15" )g" ‘"  " =˛" >đ" 8/# h# I# NŇ# J!$ Vl$ ?Ă$ =% GA% 3‰% 5˝% @ó% 4& XT& J­& nř& sg' PŰ' S,( R€( 7Ó( 8 ) rD) 6·) 8î) 5'* B]* B * )ă* 1 + ?+ W+ j+ }+ AŤ+ AĎ+ 5, 1G, 4y, 1®, 1ŕ, B- 9U- /Ź- _ż- <. P\. >­. Bě. N// H~/ EÇ/ 0 0 7>0 3v0 Ş0 )Â0 Cě0 M01 '~1 >¦1 =ĺ1 8#2 <\2 L™2 ć2 Mř2 &F3 0m3 Fž3 Eĺ3 $+4 %P4 jv4 aá4 ?C5 ;5 :ż5 Aú5 ><6 V{6 #Ň6 cö6 @Z7 8›7 .Ô7 .8 ;28 9n8 ¨8 Ĺ8 Ü8 @đ8 E19 >w9 $¶9 Ű9 Lđ9 @=: :~: 7ą: ń: ,; 95; %o; /•; 8Ĺ; Aţ; K@< Ś< <«< =č< 6&= >]= Yś= <ö= M3> E> BÇ>  ? ? -1? &_? "†? ©? k»? :'@ b@ #r@ &–@ )˝@ ;ç@ 0#A 6TA 1‹A A˝A ^˙A /^B HŽB J×B M"C \pC jÍC Z8D r“D zE `E [âE :>F PyF BĘF * G "8G %[G -G #ŻG /ÓG MH QH =mH E«H TńH 4FI S{I EĎI KJ MaJ &ŻJ 8ÖJ =K ‡MK `ŐK ]6L Y”L AîL †0M @·M &řM rN M’N ?ŕN ^ O *O ZŞO #P )P fIP 9°P "ęP < Q oJQ şQ ×Q "ôQ R 8R +OR {R ’R ŞR ÂR áR S "S "CS "fS )‰S .łS EâS +(T +TT b€T uăT 5YU 9ŹU ˛ÉU K|V 7ČV @W =AW ‡W X P‹X [ÜX h8Y PˇY „ňY GwZ SżZ I[ -][ A‹[ sÍ[ oA\ 2±\ ä\ Iú\ MD] ’] Ą] 1»] !í] ^ %^ 3A^ /u^ HĄ^ Hî^ 7_ /S_ E_ XÉ_ G"` Zj` QĹ` da !|a !ža 4Ŕa őa Db 3Zb *Žb *ąb 0äb Bc Xc 3wc 9«c Iĺc :/d 6jd Nˇd .đd 9e Ye (ve )źe bÉe $,f xQf DĘf Lg A\g Džg ?ăg ^#h (‚h 3«h Zßh ):i 4di '™i KÁi 9 j 8Gj )€j -Şj (Řj Ik )Kk ;uk ±k -Çk ők -l =l )Vl €l ‘l 4Żl Bäl 7'm U_m 2µm 8čm /!n /Qn 0n ˛n /Än 4ôn /)o 6Yo -o )ľo Rčo D;p !€p X˘p űp Kq @_q  q 0¶q .çq +r ZBr )ťr 8Çr 's b(s v‹s ‚t ~…t @u EEu ż‹u ;Kv M‡v *Őv Jw 2Kw $~w Łw /·w (çw &x &7x *^x (‰x (˛x /Űx + y .7y -fy 0”y *Ĺy -đy /z "Nz Nqz >Ŕz Y˙z UY{ 4Ż{ Aä{ 6&| c]| tÁ| M6} L„} nŃ} A@~ [‚~ 6Ţ~ . <D 9 m» g)€ p‘€ ` Yc Z˝ M‚ of‚ HÖ‚ J |j #ç $ „ #0„ !T„ ]v„ SÔ„ >(… <g… 7¤… 5Ü… '† 6:† Vq† [Ȇ s$‡ ‡ O݇ 8˙‡ `8 ™ S° )‰ .‰ CN‰ +’‰ ľ‰ ܉ Fý‰ MDŠ (’Š F»Š ‹ ‹ 78‹ 2p‹ ŁŁ‹ #GŚ AkŚ ­Ś 0ĚŚ ,ýŚ **Ť UŤ 5tŤ ŞŤ ÄŤ ૠ7ůŤ ‡1Ž 5ąŽ xďŽ -hŹ –Ź 7¶Ź îŹ  ,& <S 8 ?É * ‘ 4‘ U‘ r‘ 8Ź‘ 6Č‘ 4˙‘ +4’ `’ ~’ ,—’ 1Ä’ ö’ @“ %X“ -~“ ;¬“ č“ 5 ” F?” 9†” kŔ” ?,• Dl• 9±• 0ë• V– 6s– Ş– (Ĺ– î– "— 1— GE— 4Ť— 9— ü—  4 0N 3 &ł "Ú %ý +#™ .O™ .~™ .­™ .Ü™ / š /;š 1kš 0ťš 0Κ 0˙š 00› 0a› 0’› 0Ă› 0ô› 0%ś 0Vś 0‡ś .¸ś .çś .ť .Eť .tť .Łť /Ňť .ž .1ž .`ž .Źž 0ľž 1ďž 0!ź 0Rź .ź .˛ź .áź .  .?  .n  .ť  .Ě  .ű  .*ˇ /Yˇ /‰ˇ -ąˇ .çˇ .˘ /E˘ /u˘ .Ą˘ .Ô˘ .Ł .2Ł 1aŁ -“Ł -ÁŁ (ďŁ :¤ 1S¤ 3…¤ 3ठ#í¤ ?Ą 8QĄ ,ŠĄ "·Ą 0ÚĄ ? ¦ 6K¦ K‚¦ ;Φ – ! § ;ˇ§ "ݧ 2¨ =3¨ $q¨ –¨ C·¨ 1ű¨ 0-© ^© )}© §© 1Ż© <á© 9Ş IXŞ H˘Ş äëŞ ?Đ« ެ Qź¬ Sń¬ GE­ @Ť­ 9έ P® GY® Iˇ® &ë® Ż (Ż $EŻ (jŻ !“Ż .µŻ &äŻ  ° !%° )G° #q° "•° ¸° !ٰ ű° +± &E± l± #‹± 'ݱ *×± &˛ 2)˛ :\˛ .—˛ $Ʋ ,ë˛ &ł 8?ł xł 5—ł Íł 0ęł )´ $E´ j´ B‡´ ZĘ´ 4%µ :Zµ 3•µ 0ɵ &úµ 3!¶ )U¶ b¶ fâ¶ ,I· @v· ?·· A÷· 9¸ >K¸ :Џ EŸ 8 ą <Dą 5ą 7·ą <ďą ;,ş Ghş =°ş 9îş %(» N» ,i» +–» 7» )ú» 2$Ľ )WĽ Ľ 0ŹĽ ŔĽ ÓĽ B㼠&˝ =˝ )P˝ 1z˝ $¬˝ Ń˝ Dŕ˝ _%ľ D…ľ -Ęľ břľ W[ż ]łż =Ŕ ,OŔ 8|Ŕ 8µŔ +îŔ 0Á KÁ wjÁ =âÁ &  +G 3s 0§Â :Ř 3Ă 5GĂ +}Ă ?©Ă géĂ JQÄ QśÄ 4îÄ )#Ĺ -MĹ ${Ĺ C Ĺ 1äĹ 8Ć ;OĆ q‹Ć 8ýĆ :6Ç qÇ ‚Ç 0›Ç &ĚÇ (óÇ (Č .EČ HtČ 0˝Č îČ É &É ::É 6uÉ :¬É %çÉ * Ę #8Ę \Ę 1yĘ '«Ę 8ÓĘ H Ë UË /oË źË .»Ë .ęË 9Ě BSĚ 2–Ě ÉĚ +éĚ (Í `>Í ]źÍ $ýÍ !"Î ;DÎ (€Î $©Î %ÎÎ ôÎ -Ď ,@Ď "mĎ Ď <±Ď "îĎ -Đ *?Đ jĐ +†Đ ˛Đ *ĎĐ KúĐ EFŃ /ŚŃ %ĽŃ âŃ Ň " Ň /CŇ .sŇ ˘Ň "şŇ 7ÝŇ Ó 2Ó CMÓ V‘Ó pčÓ ŠYÔ RäÔ l7Ő ¤Ő ;ĹŐ 1Ö 3Ö -TÖ ;‚Ö !ľÖ <ŕÖ $× B× *^× ,‰× +¶× â× *Ř H,Ř uŘ %‘Ř ·Ř ×Ř DőŘ @:Ů I{Ů )ĹŮ %ďŮ Ú a.Ú 0Ú 0ÁÚ SňÚ +FŰ _rŰ )ŇŰ +üŰ (Ü IÜ iÜ Ü ¦Ü LÂÜ "Ý $2Ý WWÝ 6ŻÝ )ćÝ #Ţ 04Ţ eŢ &Ţ !ŞŢ $ĚŢ 7ńŢ =)ß 2gß 7šß Ňß .ęß (ŕ ;Bŕ !~ŕ  ŕ *Ŕŕ ëŕ =á &Fá Cmá ±á 8Ęá *â *.â 6Yâ (â ;ąâ %őâ 7ă 8Să :Śă +Çă =óă 1ä .Hä Bwä yşä G4ĺ -|ĺ KŞĺ 2öĺ ,)ć -Vć R„ć q×ć 8Iç z‚ç $ýç +"č ANč ?č )Đč #úč ,é *Ké 'vé ,žé Ëé ëé >ę 6Fę k}ę #éę 3 ë _Aë cˇë %ě +ě ICě <Ťě Ęě 2ŕě pí 5„í Zşí 4î NJî A™î 7Űî Dď Xď wď ď µď 'Óď űď %đ >đ >Cđ ‚đ PŚđ &Ýđ jń Noń ľń Űń /řń (ň *Eň Dpň µň 5Ňň ó &ó 7Dó )|ó .¦ó &Őó 8üó D5ô Zzô LŐô -"ő 5Pő ;†ő 2Âő .őő *$ö ,Oö +|ö :¨ö "ăö ÷ ,&÷ S÷ &s÷ š÷ &¸÷ "ß÷ 1ř B4ř 5wř =­ř Iëř &5ů &\ů &ů -Şů %Řů 1ţů 0ú BJú <Ťú 'Ęú .ňú !ű 6ű 2Sű †ű &Ąű Ěű âű ýű 4ü ,Oü |ü &’ü $ąü LŢü )+ý !Uý 2wý Şý +Çý Cóý 87ţ (pţ 2™ţ kĚţ 48˙ .m˙ 8ś˙ 5Ő˙ # 7/,g0”/Ĺ@ő/69f *"QM$źBÄ0.88g$ 9Ĺ3˙L35€M¶3 8Y8kI¤6î>%8d-ť3Ë(˙*(HSś@·Ař>:My=Ç; ;A :} C¸ Bü D? ! b„ ! Bç ! >* i >z *ą aä LF I“ NÝ %, TR <§ 0ä K9a8›3Ô<EjaIĚ9DP¦•B<2>˛Oń#ADeeŞ!2X˛A IM5—4ÍS#VSzZÎ1)U[2±1äO+fQ’xä1]2Ź\Â;8[M”]âW@-UĆ8HU~ž3XQ[Ş Q\f:ĂţIG`0¨0Ů ! Ý>÷B6 Gy Á ŕ 'ü $!C!)Z!„! !6ľ!'ő!"<"S"q"7‘"7É"7#>9#(x#Fˇ#Jč#63$j$F$1Č$iú$d%#„%*¨%Ó%č%ů%&!&(4&]&o&&–&<©&,ć&"'6'G'X's'…'–'¨'Â'Ó'ń'($(9(W(l(‡(™(°()Ç(8ń(9*)@d)2Ą)TŘ)´-*#â* + '+H+b+0€+0±+Aâ+8$,+],.‰,'¸,'ŕ,%-1.-`-%y-ź-&¸-7ß-1.1I.,{."¨. Ë.ě./!/;/U/o/Š/Ą/Ŕ/Ű/9ö/009K0…0 0»0!Ö0ř01-1H1`1x1/13Ŕ1Eô1:2%Y2&2¦2Á2ß2:ý2(83!a3"3%¦3&Ě3Có3374=k4+©4CŐ4;5sU5FÉ5:62K69~64¸6-í67447(i7(’70»7.ě7A8/]8-Ť8/»89ë81%9DW97ś97Ô96 :-C:,q:'ž:+Ć:+ň:+;(J;$s;Y;ň;E<8X<8‘<?Ę<7 ! =>B=2=9´='î=2>I>We>$˝>$â>*?12?d?%|?(˘?Ë?ĺ?,@'0@+X@+„@+°@(Ü@A*A&HAOoAOżA9B9IB_BăB2C-6CQdC!¶C ŘCRůCjLD7·DďDB E.LEN{E'ĘELňE??F.F[®Fj ! GYuGĎG7ëGE#H<iH-¦HłÔH,IAµIA÷IŤ9J9ÇJ@KBKE[KUˇKm÷K4eL!šL@ĽL6ýL4M<GM„M›MK´MLNCMN6‘NFČNHO2XO,‹ON¸OQP+YP…P%—P4˝P=ňP:0Q8kQ&¤Q2ËQ)ţQ$(R#MRBqR&´R ŰREüR-BSBpS-łS@áS1"TCTTJT:ăT5UDTUD™U-ŢU1 V6>VAuV%·V4ÝV$WF7W@~WVżW-X<DXJX2ĚX*˙X,*Y4WY2ŚYAżY(ZO*Z7zZ<˛Z3ďZ-#[?Q[>‘[+Đ[5ü[P2\M\/Ń\7]89]8r][«](^"0^aS^Zµ^._2?_$r_%—_N˝_0 `"=`K``H¬`Cő`39a=ma‚«aX.b®‡bC6cDzcHżcGdDPd-•d1Ăd*őd. e!Oe0qe˘e/;f"kf"Žf#±f(Őf#ţfT"gwg$‘g.¶g0ĺg2h=Ih;‡h(Ăh1ěhCi5bi/i1Či"úi"j#@j(djŤj0§j2Řj k$&kxKk‰ÄkRNlmˇlCm„Sm„Řm(]n"†n©n'Án9én'#o1Ko}o-ťo2Ëo&ţo7%p1]p1Źp6Áp/řp4(q/]q4Ťq(ÂqKëq@7rSxrRĚrSs“ssLt^Ttłt<ŇtvuV†učÝu§ĆvSnwÂwŐwńwxx#x9x Wx,xx5Ąx.ŰxP ! yK[y5§yÝy#öy5z1PzF‚zAÉz; {2G{<z{A·{Ců{V=|.”|DĂ|t}<}})ş}/ä}X~'m~F•~^Ü~d;; +Ü2€];€`™€Iú€7DA|ľ.Ű. ! ‚.9‚.h‚/—‚/Ç‚0÷‚0(0Y0Š0»0ě0„0N„0„0°„0á„0….C….r….ˇ….Đ….˙…..†/]†.Ť†.Ľ†.ë†.‡0I‡0z‡0«‡0܇. .<.k.š.É.ř.'‰.V‰.…‰.´‰/ă‰/Š-CŠ.qŠ. Š/ĎŠ/˙Š./‹.^‹.Ť‹.Ľ‹1ë‹-Ś-KŚ'yŚKˇŚjíŚ XŤ:eŤ, ŤdÍŤ2Ž)KŽUuŽRËŽ>ŹF]Ź9¤Ź3ŢŹ0`CG¤OěJ<‘6‡‘3ľ‘ň‘;’C’$c’G’EĐ’#“%:“ `“ “˘“ “ ă“”†$”8«”)ä”1•?@•<€•;˝•_ů•(Y–L‚–JĎ–@—K[—@§—Ač—,*=WF•AÜ ™[?™›™>ş™/ů™.)š?XšYš$ňš.›&F›)m›$—›ZĽ›*ś.Bśqś Śś'­ś"Őśřśť,5ť9bť&śť6Ăť(úť=#ž%až)‡ž7±ž6éž- ź%Nź"tź—ź$°ź:Őź G' Oo Yż :ˇOTˇ[¤ˇ2˘+3˘]_˘9˝˘1÷˘5)ŁC_Ł5ŁŁ<ŮŁ6¤?M¤6Ť¤8Ĥ:ý¤68Ą7oĄB§ĄęĄ6űĄE2¦Tx¦:ͦ>§9G§9§@»§@ü§@=¨E~¨9Ĩ@ţ¨N?©TŽ©ă©$Ş%'ŞMŞ bŞŞ5”Ş\ĘŞ)'«\Q«3®«<â«6¬:V¬5‘¬9Ǭ3­55­?k­B«­>î­+-®%Y®®+‘®2˝®Bđ®"3Ż$VŻ%{Ż"ˇŻ9ÄŻţݰ<)°f°1y°&«°'Ұ*ú°%%±(K±"t±M—±Mĺ±=3˛6q˛5¨˛:޲9łJSł%žł Äł0Ňł3´7´YU´LŻ´Lü´!Iµ"kµ;޵ʵ,ܵ4 ¶$>¶>c¶+˘¶3ζ2·35·Ii·4ł·)č·,¸;?¸&{¸&˘¸4ɸ1ţ¸20ąDcą'¨ąĐą<áąBş]aşAżş»H»^b»Á»&Ý»(Ľ-Ľ;HĽQ„ĽNÖĽ%˝CB˝+†˝2˛˝#ĺ˝E ľIOľ$™ľ_ľľ'żQFżEżRŢż11Ŕ<cŔZ ŔLűŔ?HÁHÁlŃÁ8>Â3wÂG«Â7óÂI+ĂSuĂ3ÉĂOýĂ[MÄ6©ÄKŕÄ>,ĹVkĹSÂĹ[Ć[rĆOÎĆWÇ[vÇ;ŇÇžČH­ČBöČs9ÉZ­É-Ę(6Ę_Ę{}Ę•ůĘGŹËH×Ëh Ě=‰ĚWÇĚ9Í5YÍ/ŹÍ(żÍ(čÍ>Î6PÎ;‡Î1ĂÎ$őÎ4Ď2OĎ(‚Ď1«ĎEÝĎG#Đ(kĐ”Đ2¨Đ%ŰĐNŃ#PŃtŃ/Ń2ŔŃóŃ!Ň01ŇbŇ(Ň!¨ŇNĘŇ:Ó%TÓ4zÓCŻÓBóÓy6ÔN°ÔU˙ÔmUŐĂŐšCÖyŢÖbX×j»×X&ŘŘCśŘ9ŕŘ/Ů-JŮ)x٢Ů/şŮ'ęŮZÚmÚ%†Ú)¬Ú?ÖÚPŰ_gŰTÇŰ0Ü?MÜ+ŤÜRąÜD ÝQÝ)mÝ—Ý«ÝdĽÝ6!ŢGXŢG Ţ,čŢ>ß<TßZ‘ß7ěß]$ŕ‚ŕťŕ2Ľŕ ďŕ üŕáá/>á3ná˘áŔáLŐá"â67â;nâ@Şâ8ëâ€$ă5Ąă@ŰăCä `ä4äI¶äFĺ*GĺCrĺE¶ĺBüĺť?ć-Ýć č"#é2Fé.yé&¨é)Ďé<ůé86ę:oę.Şę;Ůę]ësë.Śë »ë-Üë. ! ě39ě+mě=™ě>×ě6í.Mí+|í?¨íčíüíî38î%lî=’î%Đî|öîEsď9ąď&óďđ1đAHđNŠđ+Ůđ<ń;BńB~ńAÁń=ňAAň>ňCÂň1ó;8óEtó.şóHéó&2ô%Yô3ô)łô:Ýô9őRő hőirőiÜőFöO^ö®öIÁö< ÷)H÷Br÷3µ÷é÷)ř+2řE^ř%¤ř*Ęřőř ů&ů.:ůiůG{ů>Ăů9ú<ú5[ú*‘úĽú<Úú(űH@ű ‰ű'–ű8ľű÷ű+ü+=ü(iü"’üLµü6ý79ý6qýG¨ý8đýC)ţEmţEłţCůţA=˙˙–˙;¬˙Kč˙4DP•;«:çK"-nGśä"ý~ uźrL>ŐC*X]há)J)t0ž5Ď #9D)~š¨HCNŚIŰ%_©> "H Rk Mľ  ! +- ! -Y ! *‡ ! +˛ ! AŢ ! 0 FQ F Lß M, Ez BŔ + / O ag 1É 2ű L.{,–+Ă0ď- !N2pŁ(ş7ă2[M%©NĎO"nQ‘!ă/?5uGŽ9Ö!2)R&|*Ł4Î5)9:c9ž%Ř)ţ ((IYrĚ<Ü7>Q2<Ă:™;5Ő5 AA67ş/ň-"‘Pâ÷% =2Cp3´č4%OCu*ą'äL ŽY č‰u¦Fc4˙B4$w+ś7ČS mT d 6'!1^!C!LÔ!3!"UU"?«"=ë">)#Eh#l®#D$C`$P¤$:ő$0%oF%K¶%?&RB&O•&ĺ&D'<H'…'1ť'>Ď'](!l(7Ž(%Ć(&ě(!)+5)%a)‡)Ł)(ż)Ač)'**+R*!~*W *%ř*8+>W+(–+ż+@×+@,AY,A›,?Ý,@-?^->ž->Ý-!.->.Ml.Jş.W/T]/E˛/dř/U]0Kł0/˙0"/1;R1EŽ12Ô1L2IT2Iž25č2B3_a3`Á3!"4.D4 s4,”4,Á4>î4>-5l5,Š55·5#í56/68O6/6F¸63˙6.37'b7%Š7'°7%Ř7ţ7&8WB8Pš8/ë89=-9(k9”9´9,Ç9+ô9C :6d:6›:2Ň:6;B<;1;,±;?Ţ;(<3G<7{<9ł<Jí<=8=6v=6­=4ä=>>^X>W·>Q?Ya?6»?ň?.@.A@'p@$@/˝@"í@6ABGA"ŠA.­A ÜA9ýA@7BMxBFĆBN C:\C1—C!ÉCXëC6DD/{D.«DQÚDG,E tE6‚E*ąEHäED-F5rF-¨F8ÖF&GP6G,‡G ´GŐGDčG;-H)iH “H-ˇH-ĎHýH/ICGI(‹I%´I4ÚI1J AJ?OJ5ŹJ3ĹJDůJ#>KWbKşKkËKB7LzL‰L!L"şLCÝL2!M:TMyŹM_ N!iN‹NO¦N,öN<#O)`O,ŠO)·O,áOHPHWPG PLčP5QPQaQxQQ|¨Qy%R<źR0ÜR# S;1SmS‚SOžS,îSYT<uTB˛T,őT."U.QU.€UŻUĘU=ÜU\V.wV-¦V5ÔVO ! W8ZW!“WµWĎW"ëW&X?5X‘uXYB"Y8eY7žYoÖYEFZEŚZEŇZl[8…[…ľ[TD\™\˛\É\3ç\.]0J]9{]/µ]+ĺ]%^(7^K`^<¬^é^)_‚1_R´_#`+`P1aE‚a^ČaA'bFibI°b9úb)4cC^cQ˘cNôc"Cd$fde‹dńd6e9eIJe!”e0¶e çe+ôe f=f']fJ…f Đf)ńfgP8gP‰g;Úg%hSŃw/x8@x7yx0±x6âx6yQPy ˘y0Ăy'ôy1z2Nz2z2´z5çz({(F{1o{3ˇ{9Ő{|@-|Gn|O¶|O}XV}aŻ}g~ny~mč~†V†Ý†d€xë€3d2¶é1‚8‚J‚=]‚1›‚#Í‚1ń‚&#J$g<ŚEÉ0„+@„+l„,„AĹ„R…,Z…‡…2§…*Ú…†,†"G†8j†dنW‡`‡'u‡Oť‡&í‡90N65¶%ě;‰;N‰0Љ+»‰lç‰0TŠ&…ŠW¬ŠB‹=G‹=…‹=Ă‹+ŚU-ŚUŚBŮŚsŤ%Ť(¶ŤߍöŤ, Ž(8ŽaŽ*|Ž$§Ž%ĚŽ(ňŽ)Ź#EŹ(iŹ#’Ź"¶ŹŮŹůŹ5=T'’!ş!Üţ*‘(F‘o‘ Ť‘ ®‘%Ď‘0ő‘#&’"J’m’)’˛’)Î’8ř’41“.f“2•“Č“nâ“‘Q”(ă” •$+•hP•Gą•–A–[–u–“–­– Ç–3Ń–M—OS—FŁ—“ę—[~XÚ?3™Ds™F¸™m˙™qmš=ßšM›\k›PČ›pśVŠś`áś>BťIť?Ëť\ ž1hžPšžĆëžB˛źiőź\_ XĽ Xˇ%nˇ&”ˇ(»ˇ2äˇ%˘"=˘7`˘#˘+Ľ˘'č˘xŁń‰ŁŇ{¤WNĄ6¦ĄlÝĄ:J¦C…¦Hɦ:§?M§9Ť§Lǧ5¨MJ¨q¨T ! ©B_©B˘©bĺ©<HŞ7…ŞQ˝Ş7«UG«Qť«[ď«`K¬r¬¬Z­gz­Oâ­\2®]Ź®<í®?*Ż>jŻZ©Ż6°L;°6°5ż°lő°Qb±U´±{ ! ˛s†˛Bú˛H=łz†łH´iJ´e´´QµKlµH¸µD¶EF¶aڶ\K·LÓ·E ¸Tf¸š»¸źVąRöąeIşŻşbĚş/»A» Y»z»;’»5λAĽ°FĽŽ÷ĽF†˝VÍ˝}$ľ‡˘ľ:*żLeż„˛ż.7ŔtfŔ?ŰŔaÁF}ÁFÄÁo ¤{¢ ĂSĂĂ5Ä!MÄoÄ#€Ä>¤ÄfăÄJĹDjĹBŻĹ9ňĹ?,ĆlĆ.ŠĆ?ąĆ!ůĆ,Ç<HÇ1…Ç#·Ç?ŰÇ2Č(NČCwČ4»Č=đČ.ÉYNÉ ¨ÉMÉÉĘ46Ę0kĘ)śĘ"ĆĘ+éĘ9Ë<OËIŚË5ÖË< Ě(IĚr̬̒Ě6ĆĚ@ýĚ5>Í;tÍS°Í ÎR%ÎLxÎJĹÎKĎA\Ď@žĎcßĎ'CĐQkĐF˝Đ@Ń;EŃ-ŃŻŃIÉŃŇ5,Ň/bŇU’Ň8čŇ!ÓU4Ó7ŠÓ:ÂÓ:ýÓ$8Ô']Ô…Ô(ˇÔLĘÔXŐ#pŐ*”ŐżŐ)×Ő$Ö*&Ö&QÖ)xÖ ˘Ö%ĂÖDéÖ2.×(a׊פ׽×4Î×BŘFŘ=cŘ&ˇŘ(ČŘ#ńŘ0ŮFŮbŮ‚Ů$•Ů-şŮ.čŮ/Ú,GÚ-tÚ.˘Ú.ŃÚ)Ű&*Ű+QŰ-}Ű.«Ű1ÚŰ. Ü;Ü&WÜ%~Ü6¤Ü&ŰÜ&Ý&)Ý=PÝ/ŽÝ#ľÝ.âÝŢ.#Ţ RŢ-sŢ#ˇŢsĹŢ'9ß$aß'†ß#®ß!Ňß'ôß9ŕ(VŕGŕ-ÇŕCőŕ,9áLfáLłáGâ3Hâ!|â-žâ,ĚâGůâGAăE‰ă!Ďăińă[äzäŽä¤ä¸ä"Îä$ńä#ĺ:ĺ3Wĺ0‹ĺĽĺÎĺŕĺöĺ" ć$/ćTćrćŹć#­ćŃćďćI ç7Vç Žç<›çŘç(đç;č$Uč0zč+«č$×čRüč6Oé%†é/¬éÜéöé$ę9ę"XęO{ęOËęQë0më<žë*Űë?ě8Fě4ě8´ě+íě3í+Mí0yíŞíDÉíî!.î2Pî@î2ÄîD÷îD<ďDďĆď'Őď0ýď-.đ4\đ‘đ7Żđçđcń?iń7©ń/áń>ň Pň!qň7“ň5Ëňó/óNIó(óCÁóô(ô(Fô&oô-–ô9Äô;ţôA:ő-|őRŞőýő9ö5Vö$Śö±öŃö;ĺö%!÷"G÷!j÷Ś÷ ¨÷É÷*é÷ ř5ř4Jřř6ř)Ďř7ůř1ů+Fů6rů©ů0Éů0úů+ú9Kú…ú.ťú(Ěú;őú1ű3Mű'ű©űÄű5äűXü$sü4ü"Íüđü:ýlKýl¸ý…%ţ…«ţ91˙'k˙?“˙Ó˙+î˙)YD#ž6Â1ů<+h>7Ç'˙'\D$ˇĆ&ß;B(]3†ş+ŇMţL7g@ź&ŕ68>8wR°6!:\ z›­Fż37:r6 Çč<7D:|G·A˙|A 6ľ 0ő & ! 9D ! 3~ ! 6˛ ! Eé ! / 8L *… :° aë QM Wź e÷ L] KŞ Aö L8$…PŞű+?=QʦÁ/Ö&-'M$u š,»+č)1l[{Č=D]‚Nŕd/t”R -\8ІĂmJR¸F ROÔr$K—>ă"Dł{řctyرRŚV‘Rč{;y·Y1‚‹‚V‘WčR@„“V 9o @© ?ę e*!–!t'"†ś"f##hŠ#Ró#yF$-Ŕ$~î$Om%K˝%! &'+&3S&F‡&AÎ&+'7<'3t''¨'8Đ'= (+G(:s(R®(Y)M[)M©)1÷)<)*$f*F‹*0Ň*<+)@+@j+5«+0á+4,?G,!‡,E©,Oď,A?-X-JÚ-5%.1[.6Ť.(Ä.Xí.(F/Mo/P˝/L0A[0?ť0-Ý0G 1"S1+v1+˘1:Î1< 27F29~2)¸2â2+31-3L_3$¬3GŃ3B4&\4/47ł4<ë4:(5*c5:Ž50É55ú5(06kY6IĹ6[7Ak7N­72ü7//85_89•8(Ď80ř83)9U]9!ł9"Ő97ř910:,b:/Ź:ż:)Ú:%;3*;)^;@;CÉ;+ <G9<3<1µ<#ç<& =/2=2b=P•=Pć=@7>3x>$¬>=Ń>p?e€?Uć?Q<@MŽ@]Ü@+:AIfAN°AY˙A^YB;¸B/ôBK$C/pC5 C<ÖCCD-WD-…D/łDQăDE5E${E- EKÎE>FBYFHśFAĺF/'GiWG<ÁG\ţG,[H-HH¶H+˙H.+I#ZIH~I-ÇI1őI"'J@JJ:‹J:ĆJTK_VK9¶KDđK65LslL>ŕL#M8CM<|M_ąM*N3DN,xN4ĄN:ÚN6ORLOGźOGçO-/PB]P: P.ŰPD ! QKOQD›QmŕQ&NRCuR&ąRŕRKéRN5Sn„SeóT_YU6ąU*đUVVErV"¸V4ŰV#W!4WuVWĚWLěW'9X)aX‹X¤XŔXŰXöXY-.Y'\YA„Y.ĆY.őY7$Z3\Z Z±ZjĐZ.;[*j[•[%ł[ Ů[ç[ ! ű[ ! \ \&\CD\1\9ş\Mô\=B]8€]Aą]bű]=^^6ś^DÓ^T_>m_¬_+Â_(î_`?+`Nk`Lş`baja6na5ĄaEŰar!b7”b*Ěb9÷b.1cP`c?±c7ńc:)d9dd.ždPÍd:eGYe#ˇe6Ĺe7üeH4f>}fSĽfUgJfg2±gAäg"&hIh0ah$’hv·hO.i-~i-¬iEÚi) j&Jj)qj5›jBŃj,k1Ak4sk*¨kGÓk-lIlAil@«l3ěl8 m1Ymb‹m=îm@,nAmn?Żn9ďn2)o4\o]‘o.ďo?p(^p?‡pJÇp5q=Hq4†q+»q+çq*r(>r/gr/—r.Çr/ör&s#;s/_sŹs0§s*Řs-t'1t#Yt)}t§t˝t)Ůt?u-Cu.qu^ u8˙uB8v5{v;±v3ív>!w1`w:’w\Íw *x+7x!cx?…x)Ĺx,ďx/yULyT˘y÷yUz0izFšz.áz@{2Q{,„{*±{6Ü{@|/T|)„|#®|3Ň|C}9J}5„}$ş}/ß}@~JP~U›~Gń~E9FBĆC €?M€Ť€ ©€6Ę€6686o*¦(Ńú"‚':‚8b‚›‚W»‚ B4Bw»ş:v„H±„Fú„IA…>‹…VĘ…l!†xކq‡py‡yę‡sdnŘwG‰qż‰d1Šm–Šg‹{l‹č‹jŚuęŚ8`Ť/™Ť,ÉŤ=öŤ64Ž.kŽ=šŽ0ŘŽ4 Ź6>Ź,uŹ˘Ź+±Ź+ÝŹ <*g5y(Ż6Ř<‘+L‘.x‘@§‘2č‘4’8P’C‰’>Í’@ “BM“?“=Đ“>”DM”B’”@Ő”=•2T•7‡•"ż•=â•O –p–9–8ą–5ň–(—D—_—z—'™—$Á—ć—)#/%Sy,—Ä5Ě5™M8™9†™/Ŕ™>đ™R/š%‚š1¨šÚš^÷š2V› ‰›+•›7Á›*ů›'$śCLśMśNŢś;-ť8iť#˘ťĆť2âť)ž*?ž8jž-Łž,Ńž,ţž+ź&BźBiź¬źÉźăź9üź6 \S Y° B ! ˇOMˇdťˇ]˘A`˘O˘˘Gň˘+:Ł#fŁŠŁťŁA±Ł5óŁ.)¤4X¤Ť¤5ˇ¤פ(ě¤3Ą=IĄ&‡Ą1®Ą6ŕĄ(¦V@¦(—¦*Ŕ¦/ë¦@§6\§ “§+´§5ŕ§C¨Z¨!j¨"ڍ$ݍ-Ô¨-©0©J©_©v©Ť©-˘©%Đ©!ö©0Ş?IŞ0‰ŞAşŞAüŞC>«A‚«AÄ«A¬AH¬;Ь4Ƭ=ű¬9­P­g­)x­'˘­,Ę­(÷­( ®I®g®?z®ş®Ő® î®3ü®00Ż'aŻ4‰Ż0ľŻ1ďŻ,!°2N°(°'ް'Ұ*ú°,%±)R±'|±¤± ıĺ±2ý±y0˛ Ş˛.˲Gú˛>Bł.ł+°ł)Üł*´21´7d´$ś´!Á´ă´.µ0µ4Dµyµ%е2°µ#ăµ¶&¶6E¶?|¶Ľ¶×¶Jŕ¶8+·!d·†·Ą·"·"ĺ·2¸/;¸Dk¸D°¸6ő¸,,ą*Yą=„ąÂą.âąş*şU?ş.•ş+Äş(đş.»2H»>{»*ş»-ĺ»?Ľ SĽRaĽ7´Ľ$ěĽB˝;T˝1˝6½7ů˝61ľLhľHµľ&ţľ%ż(EżInż¸żŇżěż2 ! Ŕ$=Ŕ-bŔ-ŔOľŔ\ÁKkÁ-·Á6ĺÁ9Â5VÂ$ŚÂ±Â@Ě Ă= Ă=^Ă9śĂ2ÖĂ# Ä9-Ä+gÄ(“ÄĽÄ>ŮÄ>ĹMWĹIĄĹHďĹ88ĆAqĆełĆVÇ,pÇBťÇAŕÇ3"Č*VČ+ČG­Č?őČ$5ÉZÉLzÉ'ÇÉ-ďÉFĘPdĘIµĘ.˙Ę.ËNËdË1Ë/±Ë%áË<Ě=DĚ4‚ĚA·ĚůĚÍ(Í*DÍo͋ͥÍĂÍăÍÎ Î4>Î sΠ΋ΩλÎÎÎŢÎLóÎ9@ĎCzĎAľĎ?ĐE@ĐH†Đ_ĎĐ-/Ń-]Ń1‹Ń+˝Ń/éŃ<Ň)VŇ,€ŇT­Ň0Ó23Ó)fÓ;Ó?ĚÓ7 Ô<DÔ6Ô1¸ÔcęÔcNŐ{˛Ő{.Ö$ŞÖ(ĎÖ-řÖ&×gB×2Ş×4Ý×1Ř1DŘ8vŘ9ŻŘRéŘR<ŮEŹŮ7ŐŮE ÚGSÚH›ÚJäÚ,/Ű1\ŰFŽŰKŐŰ.!ÜfPÜH·ÜMÝ:NÝG‰ÝŃÝ?îÝC.Ţ:rŢe­Ţ<ß8Pß:‰ß9Äß@ţß.?ŕ0nŕźŕ·ŕĐŕ%čŕ3á/Bá!rá"”á;·áAóá85â6nâBĄâ1čâ+ă=FăI„ă4ÎăDä%Hä/nä.žä<Íä ! ĺ9ĺ/W勇ĺMć-ać4Źć2ÄćN÷ć2FçZyç_ÔçŚ4čAÁčOéHSé7śé1Ôé=ę5Dęzę?ęŘę&öę>ëb\ëKżë8 ě2Dě1wě;©ě6ĺě,í&Ií5pí>¦í6ĺíî><îX{î*Ôî3˙î13ď&eďAŚď=Îď2 đ#?đ-cđ0‘đ<ÂđA˙đLAń3ŽńIÂń9 ňCFň7ŠňÂň"âňUóQ[óU­óJô:Nô?‰ô7ÉôVő-XőG†ő1Îő"ö(#ö0Lö}ö$–öJ»öK÷R÷h÷(‚÷*«÷GÖ÷,řWKř.Łř/ŇřGů.Jů,yů1¦ů ! Řů(ăů! ú.ú+@ú(lú•ú&¬ú?Óú<ű(PűyűŽű˘ű˝űŇű/íű8ü=Vü#”ü;¸ü;ôüD0ýPuý$Ćý.ëý)ţ)DţOnţNľţ! ˙/˙JO˙Wš˙%ň˙6%Ou;‘OÍN3l? ;ŕ10N07°6čABa=¤â2ţ31e'|+¤"Đ!óT.'(«=Ô':MQZź<ú=7 u1–-Č*ö%!6G?~DľE 'I 1q Ł *Ă &î  ! 4 ! +O ! `{ ! Ü ! .ő ! /$ .T - 7± Eé E/ )u [ź Uű Q 0q /˘ -Ň 01"M)plš;5C&y5 >Öh!~L AíD/Mt(Â,ë$-1R$„-©J×W"*z!Ą4Ç,üU)85¸Wî,F3s-§.ŐB?G1‡6ąAđ,2P_a°_Zr#ÍRń*DNoJľI OSKŁSď=CM'Ď=÷%5N[Ş=ĘC\L-©G×<<Wy#Ń0őP&TwVĚK# >o X® +!@3!'t!/ś!AĚ!6",E"/r"%˘"?Č"##8,#4e#<š# ×#.ř#+'$?S$&“$4ş$.ď$%!>%'`%%+§%-Ó%3&<5&(r&/›&#Ë&0ď&( '4I'4~'7ł'ë'2(#3(W(s(Ź(BĄ(:č(%#))I)s)(‘)/ş)Oę)I:*x„*,ý*6*+9a+;›+×+0ç++,(D,*m,7,Đ,ç,?÷,"7- Z-(h-&‘-&¸-Aß-M!.(o..A¬.6î.*%/<P/(Ť/$¶/Ű/đ//0(509^020JË0B1"Y1,|16©1.ŕ1.2(>2$g2hŚ2'ő2"3#@30d39•30Ď304+142]484.É4(ř45!5?W5/—5GÇ5J62Z6,Ť6Lş627:7AJ7HŚ7Ő72ő7(80B8#s8%—8&˝86ä8)9(E9(n9K—9ă9Sů9"M:1p:@˘:6ă:E;6`;/—;2Ç;Oú;>J<J‰<MÔ<\"=E=AĹ=f>Bn>#±>BŐ>]?5v?‚¬?4/@d@<@?Ŕ@8A59A8oA.¨A/×A+B=3B.qB' B*ČB<óB,0CS]C±CĚCăCţCDz(DzŁDZE9yE)łEWÝE5F)SFB}FEŔFGG+;G4gG-śG=ĘG HK)H@uH+¶H,âH#I13IAeI§IľIÓIčIüI#J 4J<BJ%J;ĄJ áJPKSK.eK(”K*˝KčK!˙K"!L*DL/oL$źL+ÄLđL.M5M)IMsMŠM ˇM ŻM ˝M)ËM4őMD*N!oN‘N­N5ÂNřN&O@:O({O(¤OÍOéO8P.APpP!†P¨PľP'ŰPQ!!QUCQ0™Q_ĘQ-*R6XR;ŹR ËR[ěRHSgS@SÄS.ŘS,T4T:OT6ŠT+ÁTíT;ýTJ9U?„U ÄU(ĺU!V0VJVaV7xV#°V9ÔVW[%W_WZáW9([Sg[7»[7ó[@+\+l\,\4Ĺ\-ú\?(];h]¤]0ľ]!ď]"^#4^X^t^%‘^(·^ŕ^ü^!_;_O_m_0s_C¤_6č_)`&I`(p`.™`)Č`&ň`'a)Aa.kaša$şaßa˙a%b8Ab8zb1łb%ĺb& c2c!Fchc|cZc]ëccId­dÁd)ád! e-eMe&me”e¨eľe!Ňe ôef@3ftf‰f)ťf(Çf)đf4gOg>og&®g.ŐghhB,hohhšhąhŇhéhýh2iDi&`i(‡i°iĆiŢi8öi/jIjdj}j–j¶jŇj'čj.k?kZkrk;‹kÇkçkll3lIlalylŤl­l"Áläl>řl,7mOdm2´m çm/n$8n]n|n–nŞnÂnÜn=ôn2o$Oo'to5śoŇo;ëo#'pKp\prp!Śp®p#Çpëp'q'/q'Wqqq&µq7Üq4rIrfr}r6—r.Îrýr(sBs]s*tsźs´sŃsGčsF0twt+”tŔtÓtńt!u0uKuau€u—u¶uĚuëu ! vb%vUvSŢv\2w#Źwłw;Ňw?xQNx= x*Ţx, yI6yF€y+ÇyGóy;;z:wz@˛z(óz-{8J{‹{7|fG|g®|.}E}*d}*Ź}Bş}1ý}B/~/r~H˘~;ë~B'Hj"łSÖ'*€'R€Bz€˝€GÖ€Ed +‹"·Ú+÷"#‚F‚(V‚*‚5Ş‚,ŕ‚1 5?!u#—»Ú9ö80„2i„Gś„?ä„($…jM…@¸…%ů…(†1H†/z†$ކ9φ1 ‡3;‡3o‡4ه؇ ę‡'ř‡+ 'L,t&ˇČč6ý4‰ ! Q‰\‰w‰‘‰­‰ʉă‰)Š--Š[Š!lŠŽŠ «Š%ĚŠ/ňŠF"‹@i‹FŞ‹ń‹6 Ś"BŚ+eŚ‘Ś-ŻŚ2ÝŚŤ#,Ť8PŤ#‰Ť1­Ťߍ3÷Ť9+Ž,eŽ4’Ž ÇŽ ÔŽŢŽKçŽG3Ź${ŹH Ź.éŹ/bIF¬?ó(3‘\‘Cc‘8§‘.ŕ‘D’$T’;y’Gµ’Fý’ED“2Š“(˝“8ć“%”:E”'€”¨””Ţ”2ď”@"•Ec•9©•Bă•2&–5Y–8Ź–<Č–3—#9—#]—0—!˛—Ô—"ó—""9,\%‰Ż‘ĎÁa™1#š5Uš>‹š8Ęš*›:.›Ci›­› Í› ! î›ů›)ś-Aś‰oś/ůś+)ť-Uť4ťL¸ťhžNnžM˝že źzqźfěźJS @ž [ß P;ˇ1ڎ,ľˇ+ëˇ)˘>A˘.€˘CŻ˘@ó˘A4Ł"vŁ$™Ł(ľŁ+çŁ7¤+K¤/w¤.§¤&Ö¤.ý¤6,Ą(cĄ6ŚĄ\ĂĄ< ¦']¦C…¦ɦ&ç¦B§>Q§,§(˝§Ać§#(¨!L¨3n¨"˘¨(Ũ/î¨?©.^©/Ť©G˝©IŞOŞ$lŞ-‘Ş*żŞ5ęŞ/ «P« ! c«2n«Bˇ«;ä«, ¬"M¬+p¬#ś¬&Ŕ¬ç¬­A­6`­7—­Ď­;ë­'®9C®/}®6­®6ä®'Ż6CŻ zŻ ›Ż6ĽŻ>óŻ:2°m°A‡°RɰJ±Dg±H¬±>ő± 4˛!U˛w˛;–˛,Ҳ/˙˛0/ł(`ł+‰łµł7Íł$´F*´@q´9˛´Gě´O4µ)„µ%®µÔµ(ňµ*¶EF¶BڶK϶O·1k·@ť·Ţ·8ú·3¸7N¸>†¸^ŸV$ąO{ą&ËąSňąfFşe­şg»G{»kĂ»+/ĽE[ĽˇĽłĽ'ÓĽAűĽ=˝?M˝[Ť˝Dé˝.ľGľXľkľľ$¤ľÉľĐľDîľB3żSvżĘż;čż1$Ŕ>VŔ9•Ŕ3ĎŔ(Á>,Á&kÁ$’Á)·ÁáÁ$Â0&Â$WÂ|Â;–Â7ŇÂB ! Ă<MĂ-ŠĂ+¸Ă)äĂ9ÄKHÄ4”Ä-ÉÄ0÷Ä@(ĹMiĹ·Ĺ"ÓĹöĹ, Ć*9ĆdĆ3€Ć´Ć*ÓĆţĆ0ÇMÇ.eÇ!”Ç#¶Ç$ÚÇ4˙Ç'4Č&\Č&Č>ŞČ9éČ1#ÉUÉ6tÉ"«É/ÎÉ2ţÉ?1ĘVqĘiČĘj2ËnťËK ĚnXĚeÇĚx-Íz¦Íw!ÎV™Î}đÎanĎPĐĎ !Đ6BĐ)yĐ&ŁĐBĘĐL ŃMZŃ:¨Ń:ăŃ/Ň>NŇDŤŇNŇŇI!Ó$kÓÓ-­Ó2ŰÓ.Ô:=Ô"xÔ›Ô:ąÔ9ôÔ9.Ő"hŐ,‹Ő;¸Ő>ôŐ;3Ö oÖ0Ö3ÁÖ4őÖ*×J×4i×%ž×Ä×%ä×j ! ŘIuŘGżŘ<Ů&DŮ4kŮ2 Ů3ÓŮLÚ:TÚŹÚ+©Ú1ŐÚ+Ű93Ű+mŰ6™Ű:ĐŰ: Ü1FÜ=xÜ"¶Ü,ŮÜ/Ý6ÝVÝ(jÝA“Ý&ŐÝ*üÝ''Ţ*OŢ7zŢ.˛ŢáŢ>ţŢ.=ß5lß;˘ß4Ţß,ŕ:@ŕ{ŕ7”ŕĚŕéŕ2á$3á^Xá0·á3čá6â(Sâ'|â%¤âĘâââ řâ#ă7=ă=uă.łăLâă=/ä:mä¨ä¸ä3Íä/ĺ,1ĺ1^ĺ3ĺ1Äĺ)öĺ ć4ćIćXćlć€ć”ć¨ćĽćĐćäćřć çç3çMçaçuç…ç™ç­ç˝çŃçĺçůç č!č5čIč]čqč…č™č­čÁčŐčéčýčé%é9éMéaéué…é™é­éÁéŐéééýéę%ę9ęMęaęyę‘ęĄęµęÉę=Úęë),ëVërëŽëˇë#¸ë%Üëě ě6ěLěgě!†ě¨ě/Ćě4öě"+íNí@mí@®íďí2ţí21î1dî–î)¶îŕî4űî,0ď5]ď2“ď5Ćď1üď*.đLYđ5¦đ-Üđ% ! ń%0ń2Vń3‰ń"˝ń1ŕń#ň6ňHňbň4ň1´ň%ćň( ó/5óEeó5«ó*áó' ô-4ô(bô&‹ô+˛ô)Ţô(ő#1ő@Uő–ő-±ő9ßőö6öEGö5Ťö!Ăö/ĺö!÷?7÷w÷&Ť÷'´÷#Ü÷ ř%!ř/Gř!wř,™ř$Ćř%ëř'ů(9ů#bů0†ů·ů3Ęů-ţů*,úWúkú&†ú*­ú1Řú. ! ű/9űiűEűÎű!ëű5 ü/Cü:sü$®ü'Óüűüý38ý0lýIťýçý$ţU%ţB{ţľţŃţęţ*˙,3˙`˙/u˙ Ą˙'Ć˙î˙,-!Z| Ť+›#Ç"ë)38/l+ś-Č@ö-72e);Â"ţ)!%Kqť(˝(ć((8(a(Š(ł(Ü((.(W(€!©"Ë!î"3%O!u'—żß ő..E.t ŁÄáţ4Q j‹¨Ĺâ˙ 49 Dn Ył  ! ). ! #X ! (| ! (Ą ! 5Î ! # 3( \ !s ,•  2Ř  #$ H !` 9‚ Ľ Ó (đ , 9F ;€ 8Ľ /ő %=[4{°Č'ç3,C*p›C±-ő*#N$c.)·)á )*TDeŞ9Č%(*G+r1ž9Đ/ ! #:(^‡;§ăý*&B*i)”(ľ!ç) A33u2©Ü ű7$T.y6¨ß3űH/x"”*·HâK+>w9¶5đd&q‹/ý'-1U2‡/şBę--0[7Ś8Ä1ý</=l+Ş3Ö2 ! 3=7q2©-Ü3 ! 3>2r5Ą4Ű+@<;}ąLŐ:" 0] #Ž ;˛ )î (!%A!%g!Ť!4©!3Ţ!"$+"P"+p",ś"0É":ú"B5#?x# ¸#:Ć#)$2+$0^$1Ź$%Á$2ç$1%)L%/v%&¦%Í%$Ţ%g&Lk&+¸&Aä&&'7F'~'”'´'Ë'â'ř'$(2=(0p(0ˇ()Ň('ü('$)'L)'t)*ś)(Ç))đ))*)D*(n*%—*#˝*3á*/+&E+%l+%’+(¸+%á+,,-4,1b,.”,%Ă,/é,,-*F-)q-$›-BŔ-v._z.;Ú.///,O/,|/©/7É/%0'0?B0R‚0HŐ0G1#f1%Š1°1-Č1ö1+2>=21|2)®2bŘ2#;3(_3p3Wů32Q4V„4Ű4"í465+G5-s5"ˇ51Ä5Mö5D6A\60ž69Ď6 7*7!<7 ^7"75˘7)Ř7;8>8;M8‰8\¦8Y9/]9OŤ9aÝ9U?:ź•: 5;V;6q;0¨;)Ů;'<:+<?f<,¦<4Ó<G=3P=@„=3Ĺ==ů=%7>/]>)Ť>)·>2á>0?3E?5y?EŻ?1ő?;'@.c@)’@%Ľ@Gâ@6*AMaA&ŻA"ÖA+ůA %B*FB(qB2šB,ÍBúB0CFCaC-yC%§C.ÍC)üC&DDD"_D!‚D1¤D%ÖD'üD'$ELE*lE—E)¶EŕE)˙E,)F)VF4€F<µF6ňF3)G,]G7ŠG?ÂG0HJ3H.~H!­H"ĎHBňH)5I%_I ! …II*ŞIŐI/ňI"J]@J2žJ5ŃJ7K&?KAfK"¨K&ËK$ňK*L?BL:‚L?˝L4ýLU2MFM>ĎM3N;BNB~N7ÁNMůN7GO>O"ľO&áO5PJ>P5‰P+żP>ëP>*Q>iQE¨Q(îQ(R(@R3iR*ťR6ČR%˙R*%S2PS,S(°S6ŮSBT-ST(T&ŞT ŃTDňTD7U!|U9žU7ŘU.V8?V)xVA˘V/äV*W*?W2jW4ťW4ŇWXX/2X?bX"˘XĹXŢXýX'Y(DY0mYžY"˛YŐYéYZZ%+Z QZrZ4‹ZŔZ&ŰZ![5$[Z[y[ ! Ź[š[Ż[8ľ[÷[ \2\$N\Ds\A¸\Gú\&B]di]Î] ë]ů]3^2L^o^Lď^=<_Qz_"Ě_"ď_!`4`&R`y`d—`#ü` a/:a$ja#Źa,ła!ŕa'b*b)@b*jb-•b*Ăb1îb c%@cfc.‚c-±c*ßc1 ! dŢxy2yJyay*y/¬y!Üy3ţy/2z$bz4‡z=Ľz!úzK{:h{Ł{3Ă{%÷{=|J[|D¦|;ë|"'}J}Ih}+˛}9Ţ}%~8>~Kw~!Ă~6ĺ~379k9Ąß5ü>2€5q€:§€%â€U&K|<Č&‚/,‚5\‚6’‚+É‚.ő‚5$9Z3”)Č0ň7#„1[„;Ť„É„(Ú„N…<R…,Ź…3Ľ…)đ…l†@‡†3Ȇ3ü†80‡Pi‡ş‡$هFţ‡FE=Ś(Ę*ó0‰)O‰%y‰Mź‰í‰<ŠI=ŠH‡Š5ĐŠ‹&‹5F‹/|‹@¬‹í‹3 Ś-AŚ(oŚ/Ś ČŚKéŚ5ŤIŤ2OŤ ! ‚Ť&ŤŤ´Ť3ÎŤ-Ž?0Ž.pŽ'źŽ2ÇŽJúŽKEŹG‘ŹŮŹ"ôŹ]5u/«(Ű.‘-3‘'a‘9‰‘;Ă‘<˙‘X<’d•’8ú’b3“;–“Ň“í“D ”5Q”:‡”L”)•?9•)y•:Ł•iŢ•#H–.l– ›–$Ľ– á– —$#—:H—-—;±—;í—.)-XJ†*Ńü™&1™!X™"z™"ť™TŔ™RšVhšIżšR ›W\›J´›R˙›JRśRťśDđś;5ťeqť<ם;ž=PžHŽž3מ$ ź 0ź+Qź7}ź1µźJçź@2 s 1 - &đ 0ˇPHˇ4™ˇ"Ρńˇ˘˘0+˘-\˘YŠ˘Pä˘#5Ł!YŁ{ŁB™ŁÜŁüŁ'¤D¤_¤Rn¤"Á¤=ä¤1"ĄTĄStĄ:ČĄ=¦2A¦"t¦+—¦3æ(÷¦$ §>E§„§§°§ ɧ(ę§&¨!:¨;\¨g¨%©)&©(P©Hy©.©8ń©7*ŞbŞ(Ş'ŞŞ+ŇŞ$ţŞ'#«/K«({«%¤«/Ę«(ú«#¬'A¬i¬$‰¬A®¬Cđ¬*4­_­'|­C¤­)č­ ®"3®V®p®BŹ®'Ň®6ú®%1ŻWŻ1pŻ3˘ŻCÖŻC°J^°J©°/ô°+$±#P±Tt±\ɱE&˛:l˛%§˛&Ͳ ô˛1łBGł€Šł6 ´?B´2‚´µ´CÓ´'µ0?µGpµZ¸µQ¶Ve¶UĽ¶V·Ti·Uľ·T¸=i¸>§¸Kć¸;2ą8nąT§ąbüąO_şPŻşA»<B»(»>¨» ç» ô»ţ»ĽC.ĽIrĽ>ĽĽGűĽJC˝JŽ˝3Ů˝3 ľ6AľAxľLşľ ż;żQż6bż.™ż.Čż0÷ż!(Ŕ(JŔ>sŔB˛Ŕ+őŔ*!ÁALÁ%ŽÁ(´Á*ÝÁ$Â,-Â7ZÂ<’Â*ĎÂ:úÂ95ĂboĂ7ŇĂ8 ! Ä4CÄ&xÄ:źÄÚÄXíÄ#FĹ,jĹ<—Ĺ9ÔĹ0Ć/?Ć5oĆĄĆ<ĹĆ)Ç/,Ç/\Ç ŚÇ–ÇH°ÇAůÇ;Č+XČQ„ČÖČ&őČ.É%KÉ'qÉ*™É5ÄÉúÉĘ)ĘDĘn^ĘÍĘëĘ Ë2&Ë2YË ŚË­ËČË%ĺË Ě&'Ě3NĚ‚Ě+žĚ'ĘĚňĚ Í$,Í#QÍ.uÍ,¤Í1ŃÍ"Î&Î?ÎXÎnÎ!}Î"źÎÂÎŢÎ>ýÎ <Ď ]Ď9jĎ3¤Ď.ŘĎ/Đ27ĐAjĐA¬Đ&îĐ#ŃG9Ń"Ń#¤ŃMČŃ'Ň>Ň.\Ň‹Ň4źŇ@ÔŇRÓPhÓ9ąÓóÓÔ Ô*?Ô2jÔ'ťÔ7ĹÔýÔCŐ7_Ő9—ŐBŃŐSÖ8hÖ]ˇÖ\˙ÖC\×B ×)ă×' ŘH5Ř=~ŘBĽŘC˙ŘGCŮ<‹ŮAČŮ. ! Ú.9ÚBhÚB«ÚUîÚDŰ/dŰ3”Ű4ČŰEýŰ7CÜ6{Ü6˛Ü+éÜ#Ý$9Ý!^Ý1€Ý˛ÝĆÝ'ăÝ Ţ)Ţ,FŢsŢ1Ţ$ÂŢçŢ2ýŢD0ß%uß/›ß%ËßEńß$7ŕ&\ŕ%ŕ;©ŕĺŕáDáDcá¨áĆáăářá â*#â Nâoâ+Ťâ9ąâóâ<ăLPă.ťăLĚă%ä?ä&^ä…ä,ťä*Ęä3őä)ĺ*Cĺ&nĺ@•ĺ/Öĺ$ćp+ć>śćMŰćM)ç6wç/®ç4Ţçč)3čG]č5Ąč+Űč"é*é(@éié*…é°é7ĹéHýé:Fęaę#ăę=ë9Eë@ëXŔë-ěJGě7’ě3Ęě%ţě1$í1Ví6í$żí3äíî7îKî/^î3Žî/Âî1ňî)$ď!Nď/pďH ď5éď5đ Uđ!vđ+đ Äđ#ĺđ7 ń$Ań7fń7žń%Öń)üń;&ň5bň+ň)Äňîň% óH1óUzó0ĐóVôXô hô4‰ô)ľô+čô ő/5ő.eő)”őQľő ö 1ö%Rö-xöO¦ö$öö5÷;Q÷>Ť÷CĚ÷0ř\AřMžřUěř3Bů1vůD¨ůíůUmú3ĂúW÷ú‡OűJ×ű["üK~ü=Ęü5ý?>ý%~ý6¤ýŰý%đý&ţ=ţ!Wţ<yţA¶ţ&řţ%˙8E˙~˙›˙ą˙'Ů˙ "4 H&R%y%ź>Ĺ53: nbx)Ű.4+S;%»Bá.$%S'y'ˇ7É!>##b,†1ł>ĺ%$5J,€.­*ÜZ4b—˛&Í$ô9/W‡k¤/@([„%ˇQÇ ?9 'y 'ˇ 'É ń F ! ?X ! 7 ! 2Đ ! ' + $H *m ) ) 7ě )$ N <n &« AŇ / >D ; :ż Jú +E3qGĄ í(*7b+uˇ3ÁlőXbG»1-56c,š#ÇCë/$O't)ś Ćç9S=b‘kôi`WĘm"7;Č9.V/…µMĆ,$A$f%‹0±@â#-B*p<›8Ř9IKB•3Ř0 3=3qQĄN÷9F(€<©8ć<@\2ťĐ(ď($A(f,Ź"Ľ-ßC ?Q*‘#Ľ)ŕ& ! 21d€ź,ąć+ 7, [d &Ŕ ;ç '#!"K!n!!#ť!CÁ!;"?A"F"Č"2ć"2#'L#,t#/ˇ#4Ń#2$;9$Fu$.Ľ$7ë$-#%-Q%7%-·%-ĺ%)&;=&;y&Fµ&?ü&?<'?|'>Ľ'>ű'e:(e (/)6)DK)I)RÚ)>-*Hl*"µ* Ř*7ů*1+(P+y+#”+¸+5Ě+%,5(,'^,?†,3Ć,+ú,#&-*J-#u-"™-)Ľ-!ć- .*).3T.'.5°.&ć.0 /)>/2h/ ›/*¨/-Ó/)0.+0;Z09–0:Đ0( 1(416]1A”1EÖ1G23d2!2-ş28č2@!3b3&3/¦3"Ö39ů334K4j4 ‚4…Ł4~)5µ¨5^6…r63ř6D,77q73©7/Ý7* 8$88']86…87Ľ8"ô859JM99>­9)ě9&:=:!L:=n:¬:-Ç:Lő:-B;1p;6˘;-Ů;8<>@<6<2¶<é<==/=H=_=u=Ť=¤=Ľ=Ó=ë=>>4>R>i>>”>˛>Ę>ă>ü>?(?:B?R}?NĐ?E@Ke@"±@"Ô@7÷@)/A?YA1™A5ËAgBfiBhĐBM9CU‡CUÝCU3DV‰DVŕDV7EUŽEUäEU:FVFVçFV>GU•GUëGUAHV—HVîHVEI5śIŇI6ěIC#J*gJ2’J;ĹJ;K;=K4yK6®K6ĺK7L6TL6‹L4ÂL6÷L3.M(bM,‹MH¸MKN<MN`ŠNbëNaNOa°ObPbuPaŘPb:Q/ťQ3ÍQ3R35R@iRgŞRaS+tS( S7ÉS9T:;TAvT¸T;8U8tUu­U?#VEcVV©V4WX5W‡ŽWAX7XXAX7ŇX9 ! Y'DY8lYĄY=ľY3üY%0Z,VZ-ZF±ZFřZ-?[2m[H [,é[z\&‘\x¸\Q1]Q]@Ő]P^3g^+›^)Ç^ń^) _6_1V_&_%Ż_-Ő_#`'`3C`w`T”`6é`' aHa+ba ŽaŻa'Äa6ěa2#b3Vb,Šb·b,Őb"c)%c(Ocxc0—c&Čc%ďc8d,Nd1{d­dJËde6e#Ne(re2›e.Îe6ýe4fTf5tf-Şf+Řf*gZ/g-ŠgG¸g\hC]h0ˇh3Ňh:i3AiMui-Ăi5ńi4'jS\j<°jWíj)EkMokI˝kTlI\lC¦l?ęlB*mUmm)Ămím3 n*?n+jnF–n#Ýn0oJ2o9}oD·o.üo8+p"dp:‡p*Âp1íp0q3Pq)„q#®qLŇq8r+Xr'„r6¬r9ărso5sZĄsRt$St8xt:±t?ět4,uauxu.Śu2»uîu7v6>vuv Śv­vĹvŢvřv%w>9w.xw§w)Ăwíw"x&x>Bx%x8§xAŕx?"y0by4“yČyOáy-1z._z0Žz@żz+{2,{2_{8’{|Ë{$H|/m|9ť|!×|Aů|G;}%}!©}8Ë}6~3;~2o~˘~8ľ~,÷~4$(Y-‚J°#ű1€1Q€3€2·€+ę€+3B6v.­$Ü:‚3<‚+p‚)ś‚"Ć‚3é‚*=h2}>°.ď,„DK„$„Fµ„+ü„9(…4b…6—…2Î…+†%-†S†s††j©†!‡>6‡4u‡ އˇĺ‡!÷‡!?;${T 8ő.‰M‰_‰p‰;Ť‰ɉç‰$Š*Š&@Š"gŠŠŠ¦ŠDĹŠ0 ! ‹.;‹Tj‹2ż‹+ň‹'Ś)FŚpŚ ŽŚFŻŚ0öŚV'Ť?~Ť#ľŤâŤřŤ$Ž%8Ž!^Ž1€Ž-˛ŽŕŽ.ůŽ7(Ź`ŹxŹ'ŽŹ¶Ź5ĚŹ+.;L*ž+Éő‘-(‘V‘%v‘+ś‘ȑᑒ’(1’+Z’7†’!ľ’"ŕ’!“%“C“\“!z“ś“(´“Ý“!ü“ ”&,”S”4r”§”ş”Ř”ő”+•J?•,Š•7·•%ď•<–8R–1‹–-˝–5ë–&!—/H—!x—1š—Ě— ŕ— î—*/:"j!Ť'Ż+×™3!™U™+p™<ś™Ů™ń™š š8šRšnš(‹š1´šOćšB6›8y›B˛›8ő›G.ś=vś´ś3Ńś4ť0:ť2kťžť!¸ťEÚť5 ž.Vž"…ž¨ž$ľžăž"ź$ź<źSźxmźOćź6 Q bn AŃ 1ˇEˇ*dˇ}ʎX ˘/f˘O–˘@ć˘q'ŁT™ŁjîŁ7Y¤A‘¤;Ó¤DĄFTĄO›Ą(ëĄ/¦D¦/^¦*ަ3ą¦5í¦_#§(§B¬§%ď§,¨ZB¨:ť¨*ب)©5-©;c©Jź©ę©$ŞZ)Ş2„ŞM·Ş,«.2«%a«*‡«!˛«'Ô«<ü«&9¬.`¬6ʬ3ƬKú¬9F­Y€­Ú­7í­2%®3X®4Ś®<Á®ţ®!Ż7Ż=TŻ9’Ż(ĚŻőŻ%°-;°5i°!ź°.Á°Bđ°43±8h±ˇ±°±3ϱ&˛&*˛)Q˛%{˛9ˇ˛3۲3ł3Cł'wł$źł.Äł>ół?2´er´&Ř´'˙´'µ2Fµ*yµ&¤µS˵f¶d†¶fë¶GR·gš·A¸*D¸'o¸'—¸#ż¸(ă¸$ ąC1ą#uąH™ąUâą18şfjş(Ńş.úş$)»&N»4u»9Ş»Lä»!1Ľ SĽ6tĽ\«Ľ(˝&1˝.X˝*‡˝B˛˝ő˝4 ľ>@ľ5ľ-µľ'ăľ+ żA7ż&yż ż˝żÝżůż<ŔFTŔ-›Ŕ(ÉŔ9ňŔ-,Á9ZÁ'”Á,ĽÁ)éÁ6ÂJÂe„œÂ&ĽÂGă +Ă,LĂ>yĂ,¸Ă/ĺĂÄ2,Ä*_ÄŠÄ0ŞÄ-ŰÄh Ĺ(rĹC›Ĺ%ßĹ7Ć=Ć:OĆ ŠĆ”Ć -ÇL7Ç!„Ç*¦Ç$ŃÇ)öÇ' Č5HČ*~Č©Č>ČČ3É;É'YÉ'É2©É+ÜÉĘ ĘĘ&Ę*¦Ę$ŃĘ1öĘ,(Ë;UË7‘Ë%ÉË"ďËĚ$2Ě3WĚ.‹Ě1şĚ-ěĚ-Í9HÍ/‚Í<˛Í6ďÍ+&Î4RÎ:‡ÎÂÎßÎ'ýÎ%%Ď#KĎ!oĎ-‘Ď&żĎ%ćĎ% Đ#2Đ VĐ(cĐŚĐ+ŞĐÖĐéĐŃ$Ń"CŃfтўѧŃâ #¶% Ţ«_ž Ęâ$Łŕ‡Vi">`}\Żä b›'ř@ IťJg {  Ľ"µüC‰(l'5 Îh Ůf—†,é ÓQ"ÇÎ ¨b+Rž&Ř   ů$b|(í7 rě">—'­#† Š! ! {ň&&ŔY$׍*Ü  $§ % ĺR !yő "ľ„*(Öص PÝá' íB˘Č"†h)"Ă= <%#ŢÎ Ë&',&'} &Z ^cĘ/q&KäL 8N --- 1462,1559 ---- ń; ü; w< *< *ł< $Ţ< *= <.= 8k= ¤= "ľ= á= ú= +> 5F> 6|> 2ł> 2ć> <? 2V? >‰? =Č? 5@ )<@ 7f@ ž@ ¸@ %Ó@ "ů@ A =A -^A "ŚA !ŻA %ŃA %÷A B ',B TB rB “B ¤B ÂB ßB ÷B C (C óM M2N n€N AďN F1O OxO KČO OP ?dP >¤P BăP I&Q EpQ E¶Q 4üQ z1R <¬R ;éR =%S 5cS M™S CçS O+T ‚{T DţT 8CU ‡|U 2V -7V xeV CŢV P"W IsW H˝W JX OQX LˇX ‰îX KxY ÄY RMZ D Z =ĺZ Z#[ I~[ <Č[ 8\ 8>\ 5w\ J­\ Jř\ MC] F‘] GŘ] A ^ Ib^ :¬^ Oç_ 7` HT` ť` +©` =Ő` 0a /Da 9ta ®a &ża -ća b Rb .qb g b 2c Z;c }–c Ad (Vd d ?žd IŢd %(e Ne Efe ¬e )Âe %ěe %f 18f -jf f ¸f &Řf ˙f g (g ±h Nđh ;?i {i 4śi Ńi çi .ýi v,j ,Łj "Đj Lój (@k Fik 6°k Fçk _.l Žl 7«l )ăl H m Vm 8lm 5Ąm Űm ńm $n ?6n 8vn `Żn o #o 46o ko ]o Xćo j?p ]Şp Sq W\q U´q U r S`r h´r Js :hs IŁs ]ís FKt K’t 9Ţt ?u WXu f°u +v Cv =`v žv ąv &Év &đv 6w ANw 2w =Ăw 'x 3)x 5]x 1“x 1Ĺx 4÷x 7,y Sdy :¸y 5óy G)z )qz ›z AŻz ;ńz G-{ Pu{ ^Ć{ V%| #||  | 7´| 8ě| "%} )H} Mr} :Ŕ} *ű} 2&~ LY~ K¦~ <ň~ L/ H| FĹ H € EU€ G›€ @〠<$ =a jź E ! ‚ ?P‚ v‚ K vS }Ę EH„ zŽ„ X … b… dä… jI† c´† U‡ >n‡ S­‡ = [? F› Aâ B$‰ .g‰ #–‰ -ş‰ 4č‰ AŠ "_Š $‚Š §Š +ÇŠ 8óŠ ,‹ 5G‹ %}‹ !Ł‹ ,Ĺ‹ ň‹ Ś ,-Ś #ZŚ )~Ś 3¨Ś ÜŚ -îŚ OŤ |lŤ SéŤ W=Ž K•Ž .Ꭰ;Ź \LŹ z©Ź =$ ?b :˘ tÝ !R‘ 7t‘ K¬‘ Rř‘ DK’ `’ Hń’ (:“ (c“ ,Ś“ pą“ '*” -R” €” 2•” Č” Cß” "#• F• d• )‚• 6¬• ă• #ü• W – 5x– A®– =đ– ).— 3X— CŚ— /Đ— ( .) 9X *’ 5˝ =ó )1™ 9[™ *•™ 0Ŕ™ /ń™ ,!š 6Nš F…š 6Ěš .› +2› I^› >¨› !ç› @ ś MJś .ś Çś áś "řś %ť 2Ať -tť )˘ť .Ěť /űť K+ž (wž 1 ž Ňž 2ňž ?%ź )eź !Źź =±ź ?ďź 5/  2e  D  3Ý  9ˇ ,Kˇ Nxˇ 8ǡ 2˘ 33˘ (g˘ ˘ ®˘ ̢ D㢠;(Ł :dŁ LźŁ EěŁ 92¤ Yl¤ AƤ =Ą ,FĄ +sĄ HźĄ >čĄ >'¦ Zf¦ EÁ¦ 7§ %?§ 6e§ =ś§ 9Ú§ Z¨ ^o¨ XΨ ]'© :…© 6Ŕ© ^÷© LVŞ ]ŁŞ 8« 4:« o« 4« $Ĺ« ;ę« 1&¬ %X¬ A~¬ /Ŕ¬ Dđ¬ /5­ Me­ *ł­ $Ţ­ &® ;*® f® I® ,Í® ]ú® 4XŻ -ŤŻ (»Ż +äŻ ° 3/° c° )}° 2§° =Ú° <± !U± Pw± 0ȱ "ů± ˛ I=˛ (‡˛ *°˛ ,۲ ,ł 75ł omł )Ýł A´ I´ X´ v´ ´ 8Ş´ ă´ ň´ 3µ EBµ Bµ +˵ >÷µ @6¶ 4w¶ :¬¶ Oç¶ 7· )R· 6|· 3ł· Oç· &7¸ 6^¸ c•¸ \ů¸ CVą <šą .׹ 1ş +8ş -dş M’ş 4ŕş +» ~A» ,Ŕ» 'í» +Ľ :AĽ ;|Ľ 5¸Ľ &îĽ B˝ =X˝ %–˝ 5Ľ˝ 1ň˝ ($ľ CMľ A‘ľ AÓľ Dż 1Zż #Śż ;°ż ,ěż 0Ŕ >JŔ B‰Ŕ 2ĚŔ 5˙Ŕ P5Á 6†Á :˝Á EřÁ J> 0‰Â .şÂ ?é ,)Ă 0VĂ ‡Ă .¦Ă ŐĂ #đĂ Ä K)Ä uÄ *”Ä 'żÄ nçÄ VĹ jĹ }Ĺ +śĹ wČĹ 7@Ć xĆ ”Ć D˛Ć ÷Ć %Ç 4Ç EJÇ ?Ç >ĐÇ #Č 23Č fČ †Č  Č »Č WŐČ &-É DTÉ E™É vßÉ ZVĘ ±Ę ĆĘ ×Ę /éĘ 3Ë MË lË GŤË JŐË 6 Ě WĚ .pĚ /źĚ GĎĚ #Í p;Í ¬Í ČÍ 9áÍ TÎ /pÎ : Î $ŰÎ Ď 9Ď :XĎ “Ď <§Ď JäĎ @/Đ pĐ ?Đ HĐĐ +Ń 6EŃ 7|Ń V´Ń K Ň CWŇ &›Ň ÂŇ ăŇ ńŇ / Ó H=Ó "†Ó 4©Ó $ŢÓ %Ô )Ô 8IÔ 0‚Ô 7łÔ 4ëÔ Ő aAŐ /ŁŐ "ÓŐ *öŐ @!Ö bÖ 2‚Ö &µÖ ÜÖ ýÖ )× 3D× (x× +ˇ× %Í× *ó× $Ř 'CŘ *kŘ $–Ř )»Ř 5ĺŘ Ů +3Ů +_Ů $‹Ů °Ů ÉŮ ćŮ #Ú 3+Ú _Ú sÚ &’Ú 3ąÚ íÚ & Ű &3Ű ZŰ 8vŰ ,ŻŰ 0ÜŰ  Ü (*Ü $SÜ xÜ –Ü ´Ü #ŇÜ öÜ 1Ý GÝ \Ý yÝ bŤÝ đÝ . Ţ -8Ţ )fŢ 3Ţ 2ÄŢ &÷Ţ 5ß !Tß vß ”ß ©ß Éß /ăß Hŕ 0\ŕ (Ťŕ -¶ŕ $äŕ , á (6á /_á cŹá ;óá )/â Yâ .pâ .źâ Îâ !ďâ ă %ă #9ă $]ă 8‚ă »ă .Ďă "ţă !ä >ä "]ä !€ä ˘ä 1Âä 5ôä *ĺ #@ĺ 0dĺ †•ĺ -ć :Jć 7…ć M˝ć X ç 8dç 0ťç +Îç ?úç 4:č 7oč P§č :řč 33é Rgé 6şé 8ńé 6*ę 9aę >›ę 7Úę 3ë -Fë të .•ë Äë Ýë řë ;ě 1Tě †ě :źě !Úě 0üě 3-í #aí ;…í /Áí 'ńí 1î -Kî 7yî 3±î <ĺî ;"ď 2^ď A‘ď OÓď 3#đ 6Wđ 6Žđ 8Ĺđ /ţđ &.ń IUń -źń @Íń =ň ;Lň !ň Şň #Ŕň äň .ó '2ó &Zó *ó ¬ó Ĺó ?âó S"ô >vô iµô )ő %Iő 3oő /Łő $Óő 'řő $ ö Eö ,Wö 0„ö µö NËö $÷ ?÷ 1Y÷ !‹÷ ­÷ Â÷ ZÖ÷ 41ř \fř ZĂř Oů Qnů kŔů R,ú aú gáú uIű Xżű \ü Vuü .Ěü 0űü ),ý 3Vý 2Šý &˝ý 2äý 2ţ 'Jţ rţ ‰ţ E ţ .ćţ '˙ (=˙ -f˙ #”˙ 1¸˙ ę˙ ! %( $N /s *Ł -Î ;ü -8 f  ś /¸ 2č ] y 8‘ FĘ B /T <„ ?Á # 0% V n Ť "® !Ń $ó  -1 '_ ‡ Ą #ľ %â   &5 \ 5} ł #Ó ÷  1. 5` 4– -Ë ů &ý )$ N +g H“ 8Ü $ *: 1e 6— =Î ; ! -H ! -v ! ¤ ! *Á ! &ě ! ) 5= =s 8± #ę , L; W Yŕ ': b w '‡ )Ż )Ů ( 7, (d Ť 'Ş Ň "ď 0 +C 5o Ą 2Ă (ö B +b (Ž 1· %é " 2 Q l #‹ (Ż Ř &ě  s! 7• Í vŢ 4U Š Ť ‘  =  =Ţ W Wt 8Ě . 4 ; H Q b 7p ¨ 9¸ Dň 97 Gq ą × ř ' NA - 8ľ A÷ :9 "t -— #Ĺ <é +& R 4f '› +Ă &ď # $: #_ # "§ Ę $ë ' %8 ^ &| Ł Á )á /  ; X +t /  0Đ B ^D <Ł Cŕ 2$ 2W Š Ş Ŕ 1Ú %  2 L g K~ ?Ę # ! >. 6m 4¤ 7Ů 9! AK! .Ť! 6Ľ! ,ó! 1 " 4R" ‡" 2¤" -×" # 1%# W# =_# !ť# "ż# â# !ö# #$ 8<$ 'u$ -ť$ Ë$ ĺ$ %  % % 0% C% Z% u% =‰% ,Ç% Iô% E>& „& *ˇ& !Ě& î& ő& 8ü& ! 5' 5@' v' )—' Á' *ŕ' / ( ;( [( z( -’( .Ŕ( $ď( ,) XA) š) A») 3ý) !1* BS* –* Ż* &Ä* $ë* + ++ -H+ *v+ ˇ+ %ż+ +ĺ+ *, 4<, "q, 3”, Č, ! ĺ, #đ, - .- H- a- y- &- 3Ş- 'Ţ- . $#. ,H. u. )–. dŔ. %/ )/ 8/ G/ 'V/ 9~/ !¸/ MÚ/ Y(0 Y‚0 RÜ0 W/1 @‡1 IČ1 E2 yX2 [Ň2 J.3 ^y3 NŘ3 ;'4 Uc4 ?ą4 Hů4 DB5 R‡5 TÚ5 O/6 O6 DĎ6 W7 gl7 HÔ7 M8 Qk8 L˝8 j ! 9 Gu9 H˝9 F: [M: K©: Kő: UA; T—; Oě; o<< X¬< S= DY= Ež= Lä= R1> Z„> Sß> k3? Hź? ]č? _F@ ‹¦@ H2A I{A ]ĹA M#B [qB 7ÍB 5C $;C §`C *D j3D xžD VE BnE B±E ~ôE sF ÄF "UG $xG )ťG 1ÇG 3ůG H-H LvH (ĂH BěH V/I Z†I LáI N.J I}J JÇJ PK NcK [˛K LL T[L )°L )ÚL 9M A>M /€M ‘°M ŹBN :ŇN : O \HO IĄO .ďO )P *HP AsP iµP bQ l‚Q 'ďQ aR _yR ,ŮR S S $S AS PS 2_S 6’S ÉS >ŘS 8T %PT vT –T ŞT MĂT U A U bU vU …U D”U ŮU ZčU ACV A…V VÇV YW VxW SĎW #X V2X ‰X ©X U¸X SY ObY b˛Y dZ zZ ,}Z 2ŞZ 'ÝZ [ [ ‚ [ @Ł[ kä[ ‡P\ "Ř\ $ű\ 7 ] 0X] :‰] Ä] ă] 5^ ! 7^ ¨B^ 2ë^ 3_ (R_ N{_ :Ę_ :` ”@` mŐ` )Ca ,ma /ša ,Ęa .÷a &b un BBn A…n JÇn co Kvo KÂo 6p Ep dRp ·p A9q ‡{q 6r 3:r Onr Fľr \s Cbs ?¦s Ućs \ qy Dë 30€ ad€ aĆ€ C( 8l EĄ 8ë '$‚ L‚ _‚ ar‚ +Ô‚ = [> Fš Eá Y'„ A„ NĂ„ @… *S… 9~… 9¸… ?ň… ~2† _±† D‡ IV‡ 0 ‡ <ч J 9Y F“ ;Ú J‰ Ia‰ 6«‰ a≠SDŠ LŠ EĺŠ {+‹ {§‹ 6#Ś 'ZŚ Y‚Ś rÜŚ .OŤ ;~Ť şŤ 9ŇŤ % Ž T2Ž W‡Ž 5ߎ ZŹ VpŹ >ÇŹ 0 :7 Mr KŔ T ‘ 8a‘ Sš‘ Vî‘ HE’ 8Ž’ 'Ç’ ,ď’ “ 5:“ 5p“ H¦“ Nď“ D>” <” -Ŕ” 4î” )#• 4M• )‚• r¬• =– 7]– D•– 0Ú– . — +:— .f— <•— BŇ— @ ,V ( T¬ 1™ /3™ 6c™ /š™ +Ę™ Jö™ 2Aš 4tš 4©š @Ţš '› !G› i› /› <ł› Cđ› J4ś ,ś ,¬ś .Ůś *ť 3ť $Oť tť <‘ť Îť "ćť 6 ž ;@ž |ž E•ž %Űž Uź CWź :›ź Öź 6đź 1'  $Y  *~  ,©  CÖ  Uˇ pˇ 2‹ˇ ľˇ *ߡ : ! ˘ *E˘ /p˘  ˘ (˝˘ Hć˘ (/Ł #XŁ d|Ł ?ᣠ*!¤ EL¤ "’¤ µ¤ @Ô¤ 7Ą EMĄ %“Ą 1ąĄ RëĄ />¦ 4n¦ 3٦ "צ %ú¦ # § ,D§ 3q§ -Ą§ Ó§ *í§ *¨ 5C¨ /y¨ ©¨ "ʨ í¨ 4 © 6A© ?x© :¸© 4ó© 8(Ş <aŞ žŞ M·Ş )« 8/« Hh« ±« 4Ϋ ?¬ 'C¬ #k¬ $ʬ ´¬ Ó¬ Eď¬ +5­ Ea­ =§­ ĺ­ -® -1® _® 2r® 6Ą® 'Ü® ?Ż 4DŻ CyŻ ˝Ż CËŻ ° (° F° a° u° ° а ¨° ˛° 9Ŕ° &ú° !± 3± A± U± c± k± t± }± ‹± ™± !  ± «± ˝± б ŕ± é± ň± ˛ ˛ "˛ 4˛ =˛ S˛ g˛ ! }˛ ˛ &’˛ 4ą˛ 7î˛ &&ł yMł zÇł `B´ :Ł´ dŢ´ /Cµ /sµ 6ٵ Úµ %ôµ ¶ <.¶ <k¶ 7¨¶ -ŕ¶ · H%· 2n· 3ˇ· Ő· -ĺ· 2¸ *F¸ 0q¸ -˘¸ и ?㸠5#ą &Yą €ą žą ˝ą 4Öą E ş UQş e§ş Ť » O›» 'ë» 4Ľ 1HĽ LzĽ 1ÇĽ 9ůĽ ?3˝ Cs˝ 3·˝ (ë˝ ’ľ U§ż –ýż ”Ŕ q-Á ]źÁ RýÁ @P ;‘ Í ?MĂ <ŤĂ IĘĂ µÄ FĘÄ fĹ wxĹ ZđĹ _KĆ U«Ć 4Ç E6Ç 1|Ç "®Ç CŃÇ Č .Č KČ "bČ …Č ŁČ (şČ "ăČ (É $/É (TÉ &}É ¤É ÂÉ #ÝÉ (Ę -*Ę CXĘ =śĘ 2ÚĘ / Ë /=Ë 4mË Z˘Ë IýË GĚ KÉĚ <Í ORÍ N˘Í ańÍ 2SÎ N†Î :ŐÎ AĎ …RĎ aŘĎ Y:Đ )”Đ (ľĐ RçĐ ;:Ń 9vŃ +°Ń 1ÜŃ @Ň #OŇ FsŇ -şŇ LčŇ /5Ó *eÓ 6Ó 6ÇÓ ^ţÓ f]Ô BÄÔ KŐ >SŐ L’Ő KßŐ =+Ö liÖ 8ÖÖ 4× 5D× 5z× 7°× :č× +#Ř 'OŘ GwŘ CżŘ KŮ 2OŮ 6‚Ů %ąŮ CßŮ D#Ú IhÚ ˛Ú BÎÚ VŰ LhŰ µŰ 9ÖŰ 3Ü 4DÜ -yÜ 1§Ü ŮÜ %öÜ QÝ 7nÝ (¦Ý SĎÝ I#Ţ 5mŢ sŁŢ Bß #Zß 5~ß `´ß :ŕ 'Pŕ 2xŕ Q«ŕ Iýŕ PGá Uá Zîá ZIâ H¤â tíâ Ubă Q¸ă H ä YSä _­ä n ĺ Y|ĺ CÖĺ 8ć ESć I™ć [ăć `?ç = ç DŢç H#č Glč G´č 8üč 55é <ké P¨é =ůé J7ę P‚ę :Óę 5ë +Dë *pë W›ë 4óë -(ě VVě @­ě 5îě 8$í :]í >í <×í >î >Sî ;’î =Îî 2 ď F?ď 1†ď F¸ď H˙ď 1Hđ Ezđ 1Ŕđ ,ňđ .ń 2Nń /ń J±ń üń 7ň Nň ndň mÓň Aó 0Uó †ó uźó uô ‹ô z©ô t$ő 5™ő TĎő W$ö 7|ö 7´ö .ěö R÷ )n÷ /÷ 1Č÷ 'ú÷ z"ř 'ťř FĹř P ů 8]ů I–ů Fŕů I'ú Fqú C¸ú "üú ű c?ű NŁű 5ňű 4(ü O]ü 1­ü 1ßü Žý µ ý oVţ $Ćţ #ëţ ˙ )*˙ ST˙ F¨˙ Dď˙ ^4 /“ 7Ă Gű MC C‘ @Ő 7 ‡N 5Ö /  < )W B ]Ä &" !I k 3Ś 0Ŕ :ń O, N| 7Ë 2 6 #O 0s @¤ -ĺ  $) #N :r =­ së 9_ O™ Hé &2 *Y \„ =á  8 kV \ S >s V˛ 7 @A S‚ SÖ A* hl Ő 8č R! ot ~ä Fc !Ş PĚ A u_ TŐ J* Źu d _j KĘ _ rv qé o[ MË Q Nk Fş  ? U ?d +¤ 6Đ N 3V DŠ AĎ O .a 7 )Č 7ň ;* 9f 5  =Ö K M` D® (ó  $5 Z t Ś (˘ (Ë *ô # C ;R LŽ @Ű @ ] -q 7ź × 9ń ?+ Dk I° Lú (G p >€ $ż ä !ü  8> w B– CŮ C! 3a! •! 0«! 6Ü! !" 15" )g" ‘"  " =˛" >đ" 8/# h# I# NŇ# J!$ Vl$ ?Ă$ =% GA% 3‰% 5˝% @ó% 4& XT& J­& nř& sg' PŰ' S,( R€( 7Ó( 8 ) rD) 6·) 8î) 5'* B]* B * )ă* 1 + ?+ W+ j+ }+ AŤ+ AĎ+ 5, 1G, 4y, 1®, 1ŕ, B- 9U- /Ź- _ż- <. P\. >­. Bě. N// H~/ EÇ/ 0 0 7>0 3v0 Ş0 )Â0 Cě0 M01 '~1 >¦1 =ĺ1 8#2 <\2 L™2 ć2 Mř2 &F3 0m3 Fž3 Eĺ3 $+4 %P4 jv4 aá4 ?C5 ;5 :ż5 Aú5 ><6 V{6 #Ň6 cö6 @Z7 8›7 .Ô7 .8 ;28 9n8 ¨8 Ĺ8 Ü8 @đ8 E19 >w9 $¶9 Ű9 Lđ9 @=: :~: 7ą: ń: ,; 95; %o; /•; 8Ĺ; Aţ; K@< Ś< <«< =č< 6&= >]= Yś= <ö= M3> E> BÇ>  ? ? -1? &_? "†? ©? k»? :'@ b@ #r@ &–@ )˝@ ;ç@ 0#A 6TA 1‹A A˝A ^˙A /^B HŽB J×B M"C \pC jÍC Z8D r“D zE `E [âE :>F PyF BĘF * G "8G %[G -G #ŻG /ÓG MH QH =mH E«H TńH 4FI S{I EĎI KJ MaJ &ŻJ 8ÖJ =K ‡MK `ŐK ]6L Y”L AîL †0M @·M &řM rN M’N ?ŕN ^ O *O ZŞO #P )P fIP 9°P "ęP < Q oJQ şQ ×Q "ôQ R 8R +OR {R ’R ŞR ÂR áR S "S "CS "fS )‰S .łS EâS +(T +TT b€T uăT 5YU 9ŹU ˛ÉU K|V 7ČV @W =AW ‡W X P‹X [ÜX h8Y PˇY „ňY GwZ SżZ I[ -][ A‹[ sÍ[ oA\ 2±\ ä\ Iú\ MD] ’] Ą] 1»] !í] ^ %^ 3A^ /u^ HĄ^ Hî^ 7_ /S_ E_ XÉ_ G"` Zj` QĹ` da !|a !ža 4Ŕa őa Db 3Zb *Žb *ąb 0äb Bc Xc 3wc 9«c Iĺc :/d 6jd Nˇd .đd 9e Ye (ve )źe bÉe $,f xQf DĘf Lg A\g Džg ?ăg ^#h (‚h 3«h Zßh ):i 4di '™i KÁi 9 j 8Gj )€j -Şj (Řj Ik )Kk ;uk ±k -Çk ők -l =l )Vl €l ‘l 4Żl Bäl 7'm U_m 2µm 8čm /!n /Qn 0n ˛n /Än 4ôn /)o 6Yo -o )ľo Rčo D;p !€p X˘p űp Kq @_q  q 0¶q .çq +r ZBr )ťr 8Çr 's b(s v‹s ‚t ~…t @u EEu ż‹u ;Kv M‡v *Őv Jw 2Kw $~w Łw /·w (çw &x &7x *^x (‰x (˛x /Űx + y .7y -fy 0”y *Ĺy -đy /z "Nz Nqz >Ŕz Y˙z UY{ 4Ż{ Aä{ 6&| c]| tÁ| M6} L„} nŃ} A@~ [‚~ 6Ţ~ . <D 9 m» g)€ p‘€ ` Yc Z˝ M‚ of‚ HÖ‚ J |j #ç $ „ #0„ !T„ ]v„ SÔ„ >(… <g… 7¤… 5Ü… '† 6:† Vq† [Ȇ s$‡ ‡ O݇ 8˙‡ `8 ™ S° )‰ .‰ CN‰ +’‰ ľ‰ ܉ Fý‰ MDŠ (’Š F»Š ‹ ‹ 78‹ 2p‹ ŁŁ‹ #GŚ AkŚ ­Ś 0ĚŚ ,ýŚ **Ť UŤ 5tŤ ŞŤ ÄŤ ૠ7ůŤ ‡1Ž 5ąŽ xďŽ -hŹ –Ź 7¶Ź îŹ  ,& <S 8 ?É * ‘ 4‘ U‘ r‘ 8Ź‘ 6Č‘ 4˙‘ +4’ `’ ~’ ,—’ 1Ä’ ö’ @“ %X“ -~“ ;¬“ č“ 5 ” F?” 9†” kŔ” ?,• Dl• 9±• 0ë• V– 6s– Ş– (Ĺ– î– "— 1— GE— 4Ť— 9— ü—  4 0N 3 &ł "Ú %ý +#™ .O™ .~™ .­™ .Ü™ / š /;š 1kš 0ťš 0Κ 0˙š 00› 0a› 0’› 0Ă› 0ô› 0%ś 0Vś 0‡ś .¸ś .çś .ť .Eť .tť .Łť /Ňť .ž .1ž .`ž .Źž 0ľž 1ďž 0!ź 0Rź .ź .˛ź .áź .  .?  .n  .ť  .Ě  .ű  .*ˇ /Yˇ /‰ˇ -ąˇ .çˇ .˘ /E˘ /u˘ .Ą˘ .Ô˘ .Ł .2Ł 1aŁ -“Ł -ÁŁ (ďŁ :¤ 1S¤ 3…¤ 3ठ#í¤ ?Ą 8QĄ ,ŠĄ "·Ą 0ÚĄ ? ¦ 6K¦ K‚¦ ;Φ – ! § ;ˇ§ "ݧ 2¨ =3¨ $q¨ –¨ C·¨ 1ű¨ 0-© ^© )}© §© 1Ż© <á© 9Ş IXŞ H˘Ş äëŞ ?Đ« ެ Qź¬ Sń¬ GE­ @Ť­ 9έ P® GY® Iˇ® &ë® Ż (Ż $EŻ (jŻ !“Ż .µŻ &äŻ  ° !%° )G° #q° "•° ¸° !ٰ ű° +± &E± l± #‹± 'ݱ *×± &˛ 2)˛ :\˛ .—˛ $Ʋ ,ë˛ &ł 8?ł xł 5—ł Íł 0ęł )´ $E´ j´ B‡´ ZĘ´ 4%µ :Zµ 3•µ 0ɵ &úµ 3!¶ )U¶ b¶ fâ¶ ,I· @v· ?·· A÷· 9¸ >K¸ :Џ EŸ 8 ą <Dą 5ą 7·ą <ďą ;,ş Ghş =°ş 9îş %(» N» ,i» +–» 7» )ú» 2$Ľ )WĽ Ľ 0ŹĽ ŔĽ ÓĽ B㼠&˝ =˝ )P˝ 1z˝ $¬˝ Ń˝ Dŕ˝ _%ľ D…ľ -Ęľ břľ W[ż ]łż =Ŕ ,OŔ 8|Ŕ 8µŔ +îŔ 0Á KÁ wjÁ =âÁ &  +G 3s 0§Â :Ř 3Ă 5GĂ +}Ă ?©Ă géĂ JQÄ QśÄ 4îÄ )#Ĺ -MĹ ${Ĺ C Ĺ 1äĹ 8Ć ;OĆ q‹Ć 8ýĆ :6Ç qÇ ‚Ç 0›Ç &ĚÇ (óÇ (Č .EČ HtČ 0˝Č îČ É &É ::É 6uÉ :¬É %çÉ * Ę #8Ę \Ę 1yĘ '«Ę 8ÓĘ H Ë UË /oË źË .»Ë .ęË 9Ě BSĚ 2–Ě ÉĚ +éĚ (Í `>Í ]źÍ $ýÍ !"Î ;DÎ (€Î $©Î %ÎÎ ôÎ -Ď ,@Ď "mĎ Ď <±Ď "îĎ -Đ *?Đ jĐ +†Đ ˛Đ *ĎĐ KúĐ EFŃ /ŚŃ %ĽŃ âŃ Ň " Ň /CŇ .sŇ ˘Ň "şŇ 7ÝŇ Ó 2Ó CMÓ V‘Ó pčÓ ŠYÔ RäÔ l7Ő ¤Ő ;ĹŐ 1Ö 3Ö -TÖ ;‚Ö !ľÖ <ŕÖ $× B× *^× ,‰× +¶× â× *Ř H,Ř uŘ %‘Ř ·Ř ×Ř DőŘ @:Ů I{Ů )ĹŮ %ďŮ Ú a.Ú 0Ú 0ÁÚ SňÚ +FŰ _rŰ )ŇŰ +üŰ (Ü IÜ iÜ Ü ¦Ü LÂÜ "Ý $2Ý WWÝ 6ŻÝ )ćÝ #Ţ 04Ţ eŢ &Ţ !ŞŢ $ĚŢ 7ńŢ =)ß 2gß 7šß Ňß .ęß (ŕ ;Bŕ !~ŕ  ŕ *Ŕŕ ëŕ =á &Fá Cmá ±á 8Ęá *â *.â 6Yâ (â ;ąâ %őâ 7ă 8Să :Śă +Çă =óă 1ä .Hä Bwä yşä G4ĺ -|ĺ KŞĺ 2öĺ ,)ć -Vć R„ć q×ć 8Iç z‚ç $ýç +"č ANč ?č )Đč #úč ,é *Ké 'vé ,žé Ëé ëé >ę 6Fę k}ę #éę 3 ë `Aë c˘ë %ě ,ě IDě <Žě Ëě 2áě pí 5…í Z»í 4î NKî Ašî 7Üî Dď Yď xď ™ď ¶ď 'Ôď üď %đ ?đ >Dđ đ PŤđ &Ţđ jń Npń żń Üń /ůń )ň *Fň Dqň ¶ň 5Óň  ó 'ó 7Eó )}ó .§ó &Öó 8ýó D6ô Z{ô LÖô -#ő 5Qő ;‡ő 2Ăő .öő *%ö ,Pö +}ö :©ö "äö ÷ ,'÷ T÷ &t÷ ›÷ &ą÷ "ŕ÷ 1ř B5ř 5xř =®ř Iěř &6ů &]ů &„ů -«ů %Ůů 1˙ů 1ú BKú <Žú 'Ëú .óú "ű 7ű 2Tű ‡ű &¦ű Íű ăű ţű 4ü ,Pü }ü &“ü $şü Lßü ),ý !Vý 2xý «ý +Čý Côý 88ţ (qţ 2šţ kÍţ 49˙ .n˙ 8ť˙ 5Ö˙ # 70,h0•/Ć@ö/79gˇ*#QN$ BĹ0.98h$ˇ9Ć3L45M·3 9Z8lIĄ6ď>&8e-ž3Ě(*)HTť@¸Aů>;Mz=Č; ;B :~ Cą Bý D@ ! b… ! Bč ! >+ j >{ *ş aĺ LG I” NŢ %- TS <¨ 0ĺ K9b8ś3Ő< FjbIÍ9DQ¦–B=2€>łOň#BDfe«!3XłA IN54ÎS#WS{ZĎ1*U\2˛1ĺO+gQ“xĺ1^2\Ă; 8\M•]ăWA-™UÇ8HV~ź3XR[« Q\g:Ä˙IGa0©0Ú Ý>řB7 Gz  á 'ý %!D!)[!…!ˇ!6ż!'ö!"="T"r"7’"7Ę"7#>:#(y#F˘#Jé#64$k$F‚$1É$iű$e%#…%*©%Ô%é%ú%&"&(5&^&p&„&—&<Ş&,ç&"'7'H'Y't'†'—'©'Ă'Ô'ň'(%(:(X(m((š(±()Č(8ň(9+)@e)2¦)TŮ)´.*#ă* + (+I+c+0+0˛+Aă+8%,+^,.Š,'ą,'á,% -1/-a-%z- -&ą-7ŕ-1.1J.,|."©. Ě.í./"/C=2‚=9µ='ď=2>J>Wf>$ľ>$ă>*?13?e?%}?(Ł?Ě?ć?,@'1@+Y@+…@+±@(Ý@A*A&IAOpAOŔA9B9JB_„BäB2C-7CQeC!·C ŮCRúCjMD7¸DđDB ! E.MEN|E'ËELóE?@F.€F[ŻFj GYvGĐG7ěGE$H<jH-§HłŐH,‰IA¶IAřIŤ:J9ČJ@KCKE\KU˘KmřK4fL!›L@˝L6ţL5M<HM…MśMKµMLNCNN6’NFÉNHO2YO,ŚONąOQP+ZP†P%P4ľP=óP:1Q8lQ&ĄQ2ĚQ)˙Q$)R#NRBrR&µR ÜREýR-CSBqS-´S@âS1#TCUTJ™T:äT5UDUUDšU-ßU1 V6?VAvV%¸V4ŢV$WF8W@WVŔW-X<EXJ‚X2ÍX*Y,+Y4XY2ŤYAŔY(ZO+Z7{Z<łZ3đZ-$[?R[>’[+Ń[5ý[P3\M„\/Ň\7]8:]8s][¬](^"1^aT^Z¶^._2@_$s_%_Nľ_0 `">`Ka`H­`Cö`3:a=na‚¬aX/b®bC7cD{cHŔcG dDQd-–d1Äd*öd.!e!Pe0reŁe/|.•|DÄ|t }<~})»}/ĺ}X~'n~F–~^Ý~d<;ˇ+Ý2 €]<€`š€Iű€7EA}ż.Ü. ‚.:‚.i‚/‚/Č‚0ř‚0)0Z0‹0Ľ0í0„0O„0€„0±„0â„0….D….s….˘….Ń….†./†/^†.ކ.˝†.ě†.‡0J‡0{‡0¬‡0݇..=.l.›.Ę.ů.(‰.W‰.†‰.µ‰/ä‰/Š-DŠ.rŠ.ˇŠ/ĐŠ/‹.0‹._‹.Ž‹.˝‹1ě‹-Ś-LŚ'zŚK˘ŚjîŚ YŤ:fŤ,ˇŤdÎŤ3Ž)LŽUvŽRĚŽ>ŹF^Ź9ĄŹ3ߏ0`DGĄOíJ=‘6‘3ż‘ó‘;’D’$d’G‰’EŃ’#“%;“ a“ ‚“Ł“ Ă“ ä“”†%”8¬”)ĺ”1•?A•<•;ľ•_ú•(Z–L–JĐ–@—K\—@¨—Aé—,+=XF–AÝ ™[@™ś™>»™/ú™.*š?YšY™š$óš.›&G›)n›$›Z˝›*ś.Cśrś Ťś'®ś"Öśůśť,6ť9cť&ťť6Äť(űť=$ž%bž)ž7˛ž6ęž-!ź%Oź"uźź$±ź:Öź G( Op YŔ :ˇOUˇ[Ąˇ2˘+4˘]`˘9ľ˘1ř˘5*ŁC`Ł5¤Ł<ÚŁ6¤?N¤6ޤ8Ť:ţ¤69Ą7pĄB¨ĄëĄ6üĄE3¦Ty¦:Φ> §9H§9‚§@Ľ§@ý§@>¨E¨9Ũ@˙¨N@©TŹ©ä©$Ş%(ŞNŞ cŞ„Ş5•Ş\ËŞ)(«\R«3Ż«<ă«6 ¬:W¬5’¬9Ȭ3­56­?l­B¬­>ď­+.®%Z®€®+’®2ľ®Bń®"4Ż$WŻ%|Ż"˘Ż9ĹŻ˙ݰ<*°g°1z°&¬°'Ó°*ű°%&±(L±"u±M±Mć±=4˛6r˛5©˛:߲9łJTł%źł Ĺł0Ół3´8´YV´L°´Lý´!Jµ"lµ;ʵ˵,ݵ4 ! ¶$?¶>d¶+ٶ3϶2·36·Ij·4´·)é·,¸;@¸&|¸&ُ4ʸ1˙¸21ąDdą'©ąŃą<âąBş]bşAŔş»H»^c»»&Ţ»(Ľ.Ľ;IĽQ…ĽN׼&˝CC˝+‡˝2ł˝#ć˝E ! ľIPľ$šľ_żľ'żQGżE™żRßż12Ŕ<dŔZˇŔLüŔ?IÁH‰ÁlŇÁ8?Â3xÂG¬Â7ôÂI,ĂSvĂ3ĘĂOţĂ[NÄ6ŞÄKáÄ>-ĹVlĹSĂĹ[Ć[sĆOĎĆWÇ[wÇ;ÓÇžČH®ČB÷Čs:ÉZ®É- Ę(7Ę`Ę{~Ę•úĘGËHŘËh!Ě=ŠĚWČĚ9 Í5ZÍ/Í(ŔÍ(éÍ>Î6QÎ;Î1ÄÎ$öÎ4Ď2PĎ(Ď1¬ĎEŢĎG$Đ(lĐ•Đ2©Đ%ÜĐNŃ#QŃuŃ/‘Ń2ÁŃôŃ!Ň02ŇcŇ(€Ň!©ŇNËŇ:Ó%UÓ4{ÓC°ÓBôÓy7ÔN±ÔUŐmVŐÄŐšDÖyßÖbY×jĽ×X'Ř€ŘCťŘ9áŘ/Ů-KŮ)yŮŁŮ/»Ů'ëŮZÚnÚ%‡Ú)­Ú?×ÚPŰ_hŰTČŰ0Ü?NÜ+ŽÜRşÜD ÝRÝ)nÝݬÝd˝Ý6"ŢGYŢGˇŢ,éŢ>ß<UßZ’ß7íß]%ŕŕžŕ2˝ŕ đŕ ýŕ áá/?á3oáŁáÁáLÖá#â68â;oâ@«â8ěâ€%ă5¦ă@ÜăCä aä4‚äI·äFĺ*HĺCsĺE·ĺBýĺť@ć-Ţć č"$é2Gé.zé&©é)Đé<úé87ę:pę.«ę;Úę]ëtë.Ťë Ľë-Ýë. ě3:ě+ně=šě>Řě6í.Ní+}í?©íéíýíî39î%mî=“î%Ńî|÷îEtď9şď&ôďđ2đAIđN‹đ+Úđ<ń;CńBńAÂń=ňABň>„ňCĂň1ó;9óEuó.»óHęó&3ô%Zô3€ô)´ô:Ţô9őSő iőisőiÝőGöO_öŻöIÂö< ÷)I÷Bs÷3¶÷ę÷) ř+3řE_ř%Ąř*Ëřöř ů&ů.;ůjůG|ů>Äů9ú=ú5\ú*’ú˝ú<Űú(űHAű Šű'—ű8żűřű+ü+>ü(jü"“üL¶ü6ý7:ý6rýG©ý8ńýC*ţEnţE´ţCúţA>˙€˙—˙;­˙Ké˙5DQ–;¬:čK#-oGťĺ"ţ~!u rL‰>ÖC*Y]„hâ)K)u0ź5Đ $9E)š©HDNŤIÜ&_Ş> ! "I Rl Mż  ! +. ! -Z ! * ! +ł ! Aß ! 0! FR F™ Lŕ M- E{ BÁ + 0 P ah 1Ę 2ü L/|,—+Ä0đ-!!O2q¤(»7ä3[N%ŞNĐO"oQ’!ä/?6vGŹ9×!3)S&}*¤4Ď5)::d9ź%Ů)˙ )(JYsÍ<Ý7>R2‘<Ä:™<5Ö5 AB6„7»/ó-#‘Qăř% =3Cq3µé4%PCv*ş'ĺL ŽZ éŠu§Fd€4B5$x+ť7ÉS mU dĂ 6(!1_!C‘!LŐ!3""UV"?¬"=ě">*#Ei#lŻ#D$Ca$PĄ$:ö$1%oG%K·%?&RC&O–&ć&D'<I'†'1ž'>Đ'](!m(7Ź(%Ç(&í(!)+6)%b))¤)(Ŕ)Aé)'+*+S*!*Wˇ*%ů*8+>X+(—+Ŕ+@Ř+@,AZ,Aś,?Ţ,@-?_->ź->Ţ-!.-?.Mm.J».W/T^/Eł/dů/U^0K´0/1"01;S1EŹ12Ő1L2IU2Iź25é2B3_b3`Â3!#4.E4 t4,•4,Â4>ď4>.5m5,‹55¸5#î56068P6/‰6Fą637.47'c7%‹7'±7%Ů7˙7&8WC8P›8/ě89=.9(l9•9µ9,Č9+ő9C!:6e:6ś:2Ó:6;B=;1€;,˛;?ß;(<3H<7|<9´<Jî<=9=6w=6®=4ĺ=>>^Y>W¸>Q?Yb?6Ľ?ó?.@.B@'q@$™@/ľ@"î@6ABHA"‹A.®A ÝA9ţA@8BMyBFÇBNC:]C1C!ĘCXěC6ED/|D.¬DQŰDG-E uE6E*şEHĺED.F5sF-©F8×F&GP7G,G µGÖGDéG;.H)jH ”H-˘H-ĐHţH/ICHI(ŚI%µI4ŰI1J BJ?PJ5J3ĆJDúJ#?KWcK»KkĚKB8L{LŠL!™L"»LCŢL2"M:UMyM_ ! N!jNŚNO§N,÷N<$O)aO,‹O)¸O,âOHPHXPGˇPLéP6QQQbQyQ™Q|©Qy&R< R0ÝR#S;2SnSSOźS,ďSYT<vTBłT,öT.#U.RU.U°UËU=ÝU\V.xV-§V5ŐVO W8[W!”W¶WĐW"ěW&X?6X‘vXYB#Y8fY7źYo×YEGZEŤZEÓZl[8†[…ż[TE\š\ł\Ę\3č\.]0K]9|]/¶]+ć]%^(8^Ka^<­^ę^)_‚2_Rµ_#`,`P2aEa^ÉaA(bFjbI±b9űb)5cC_cQŁcNőc"Dd$gdeŚdňd6e:eIKe!•e0·e če+őe!f>f'^fJ†f Ńf)ňfgP9gPŠg;Űg%hS=hZ‘hAěha.i6iÇiâi˙i5j/Fj'vjžj ˝j!Ţj1k72kXjkDĂkll"/l0RlQl\ŐlF2mYymOÓmV#n'zn&˘n=ÉnVo)^oo3ˇo4ŐoC ! pCNpP’pDăp5(q^q rq“qDŻq7ôq2,r@_r r2¸ršërź†sv&tťt·t.×tu/#u$SuBxu4»u.đuMv0mvFžv?ĺv8%wO^w#®w>Ňw/x8Ax7zx0˛x6ăx6yQQy Ły0Äy'őy1z2Oz2‚z2µz5čz({(G{1p{3˘{9Ö{|@.|Go|O·|O}XW}a°}g~nz~mé~†W†Ţ†e€xě€3e™2·ę1‚9‚K‚=^‚1ś‚#΂1ň‚&$K$h<ŤEĘ0„+A„+m„,™„AĆ„R…,[……2¨…*Ű…†,†"H†8k†d¤†W ‡a‡'v‡Ož‡&î‡90O6€5·%í;‰;O‰0‹‰+Ľ‰lč‰0UŠ&†ŠW­ŠB‹=H‹=†‹=Ä‹+ŚU.ŚU„ŚBÚŚsŤ%‘Ť(·ŤŕŤ÷Ť, Ž(9ŽbŽ*}Ž$¨Ž%ÍŽ(óŽ)Ź#FŹ(jŹ#“Ź"·ŹÚŹúŹ6=U'“!»!Ý˙*‘(G‘p‘ Ž‘ Ż‘%Đ‘0ö‘#'’"K’n’)‰’ł’)Ď’8ů’42“.g“2–“É“nă“‘R”(ä” •$,•hQ•Gş•–A–\–v–”–®– Č–3Ň–M—OT—F¤—“ë—[XŰ?4™Dt™Fą™mšqnš=ŕšM›\l›PÉ›pśV‹ś`âś>CťI‚ť?Ěť\ ž1ižP›žĆěžBłźiöź\` X˝ Xˇ%oˇ&•ˇ(Ľˇ2ĺˇ%˘">˘7a˘#™˘+˝˘'é˘xŁńŠŁŇ|¤WOĄ6§ĄlŢĄ:K¦C†¦Hʦ:§?N§9ާLȧ5¨MK¨q™¨T ©B`©BŁ©bć©<IŞ7†ŞQľŞ7«UH«Qž«[đ«`L¬r­¬Z ­g{­Oă­\3®]®<î®?+Ż>kŻZŞŻ6°L<°6‰°5Ŕ°lö°Qc±Uµ±{ ˛s‡˛Bű˛H>łz‡łH´iK´eµ´QµKmµHąµD¶EG¶aŤ¶\ﶇL·LÔ·E!¸Tg¸šĽ¸źWąR÷ąeJş°şbÍş0»B» Z»{»;“»5Ď»AĽ°GĽŽřĽF‡˝Vν}%ľ‡Łľ:+żLfż„łż.8ŔtgŔ?ÜŔaÁF~ÁFĹÁo ¤|¢!ĂSÄĂ5Ä!NÄpÄ#Ä>ĄÄfäÄKĹDkĹB°Ĺ9óĹ?-ĆmĆ.‹Ć?şĆ!úĆ,Ç<IÇ1†Ç#¸Ç?ÜÇ2Č(OČCxČ4ĽČ=ńČ/ÉYOÉ ©ÉMĘÉĘ47Ę0lĘ)ťĘ"ÇĘ+ęĘ9Ë<PËIŤË5×Ë< Ě(JĚs̭̓Ě6ÇĚ@ţĚ5?Í;uÍS±Í ÎR&ÎLyÎJĆÎKĎA]Ď@źĎcŕĎ'DĐQlĐFľĐ@Ń;FŃ-‚ѰŃIĘŃŇ5-Ň/cŇU“Ň8éŇ"ÓU5Ó7‹Ó:ĂÓ:ţÓ$9Ô'^Ô†Ô(˘ÔLËÔXŐ#qŐ*•ŐŔŐ)ŘŐ$Ö*'Ö&RÖ)yÖ ŁÖ%ÄÖDęÖ2/×(b׋ץ׾×4Ď×BŘGŘ=dŘ&˘Ř(ÉŘ#ňŘ0ŮGŮcŮŮ$–Ů-»Ů.éŮ/Ú,HÚ-uÚ.ŁÚ.ŇÚ)Ű&+Ű+RŰ-~Ű.¬Ű1ŰŰ. Ü<Ü&XÜ%Ü6ĄÜ&ÜÜ&Ý&*Ý=QÝ/ŹÝ#żÝ.ăÝŢ.$Ţ SŢ-tŢ#˘ŢsĆŢ':ß$bß'‡ß#Żß!Óß'őß9ŕ(WŕG€ŕ-ČŕCöŕ,:áLgáL´áGâ3Iâ!}â-źâ,ÍâGúâGBăEŠă!Đăiňă\ä{äŹäĄäąä"Ďä$ňä#ĺ;ĺ3Xĺ0Śĺ˝ĺĎĺáĺ÷ĺ" ć$0ćUćsćć#®ćŇćđćI ç7Wç Źç<śçŮç(ńç;č$Vč0{č+¬č$ŘčRýč6Pé%‡é/­éÝé÷é$ę:ę"YęO|ęOĚęQë0në<źë*Üë?ě8Gě4€ě8µě+îě3í+Ní0zí«íDĘíî!/î2Qî@„î2ĹîDřîD=ďD‚ďÇď'Öď0ţď-/đ4]đ’đ7°đčđcń?jń7Şń/âń>ň Qň!rň7”ň5Ěňó/óNJó(™óCÂóô(ô(Gô&pô-—ô9Ĺô;˙ôA;ő-}őR«őţő9ö5Wö$Ťö˛öŇö;ćö%"÷"H÷!k÷Ť÷ ©÷Ę÷*ę÷ ř6ř4Kř€ř6™ř)Đř7úř2ů+Gů6sůŞů0Ęů0űů,ú9Lú†ú.žú(Íú;öú2ű3Nű'‚űŞűĹű5ĺűXü$tü4™ü"Îüńü:ýlLýląý…&ţ…¬ţ92˙'l˙?”˙Ô˙+ď˙)YE#ź6Ă1ú<,i>‰7Č'(\E$˘Ç&ŕ;C(^3‡»+ÓM˙M7h@ &á68?8xR±6!;] {ś®FŔ37;s6‘ Čé<7E:}G¸A |B 6ż 0ö ' ! 9E ! 3 ! 6ł ! Eę ! 0 8M *† :± aě QN W  eř L^ K« A÷ L9$†P«ü+@=R§Â/×&.'N$v ›,Ľ+é)2l\{É=E]Nád0t•R ! -]8‹†ÄmKRąF SOŐr%K>ä#D´{ůcuyٱSŚV’Ré{<y¸Y2‚Ś‚V’WéRA„”V 9p @Ş ?ë e+!–‘!t("†ť"f$#h‹#Rô#yG$-Á$~ď$On%Kľ%! ! &',&3T&F&AĎ&+'7='3u''©'8Ń'= ! (+H(:t(RŻ(Y)M\)MŞ)1ř)>**$i*FŽ*0Ő*<+)C+@m+5®+0ä+4,?J,!Š,E¬,Oň,AB-X„-JÝ-5(.1^.6.(Ç.Xđ.(I/Mr/PŔ/L0A^0? 0-ŕ0G1"V1+y1+Ą1:Ń1< 27I292)»2ĺ2+3103Lb3$Ż3GÔ3B4&_4/†47¶4<î4:+5*f5:‘50Ě55ý5(36k\6IČ6[7An7N°72˙7/285b898(Ň80ű83,9U`9!¶9"Ř97ű913:,e:/’:Â:)Ý:%;3-;)a;@‹;CĚ;+<G<<3„<1¸<#ę<&=/5=2e=P=Pé=@:>3{>$Ż>=Ô>p?e?Ué?Q?@M‘@]ß@+=AIiANłAYB^\B;»B/÷BK'C/sC5ŁC<ŮCCD-ZD-D/¶DQćDE8E$~E-ŁEKŃE>FB\FHźFAčF/*GiZG<ÄG\H,^H-‹HHąH+I..I#]IHI-ĘI1řI"*J@MJ:ŽJ:ÉJTK_YK9ąKDóK68LsoL>ăL#"M8FM<M_ĽM*N3GN,{N4¨N:ÝN6OROOG˘OGęO-2PB`P:ŁP.ŢPD QKRQDžQmăQ&QRCxR&ĽRăRKěRN8Sn‡SeöT_\U6ĽU*óUVVEuV"»V4ŢV#W!7WuYWĎWLďW'[*m[[%¶[ Ü[ę[ ! ţ[ ! \ \& \CG\1‹\9˝\M÷\=E]8]AĽ]bţ]=a^6ź^DÖ^T_>p_Ż_+Ĺ_(ń_`?.`Nn`L˝`b ! ama6qa5¨aEŢar$b7—b*Ďb9úb.4cPcc?´c7ôc:,d9gd.ˇdPĐd:!eG\e#¤e6Če7˙eH7f>€fSżfUgJig2´gAçg")hLh0dh$•hvşhO1i-i-ŻiEÝi)#j&Mj)tj5žjBÔj,k1Dk4vk*«kGÖk-lLlAll@®l3ďl8#m1\mbŽm=ńm@/nApn?˛n9ňn2,o4_o]”o.ňo?!p(ap?ŠpJĘp6q=Lq4Šq+żq+ëq*r(Br/kr/›r.Ër/úr*s#?s/cs“s0«s*Üs-t'5t#]t*t¬tÂt)Ţt?u-Hu.vu^Ąu8vB=v5€v;¶v3ňv>&w1ew:—w\Ňw /x+F„BËC€?R€’€ ®€6Ď€66=6t*«(Ö˙"‚'?‚8g‚ ‚WŔ‚ B9B|»ż:{„H¶„F˙„IF…>…VĎ…l&†x“†q ‡p~‡yď‡sinÝwL‰qĉd6Šm›Šg ‹{q‹í‹oŚuďŚ8eŤ/žŤ,ÎŤ=űŤ69Ž.pŽ=źŽ0ÝŽ4Ź6CŹ,zʧŹ+¶Ź+⏠</l5~(´6Ý<‘+Q‘.}‘@¬‘2í‘4 ’8U’CŽ’>Ň’@“BR“5•“=Ë“> ”DH”BŤ”@Đ”=•2O•7‚•"ş•=Ý•O–k–9z–8´–5í–#—?—Z—u—'”—$Ľ—á—)#*%Nt,’ż5Ç5ýM3™9™/»™>ë™R*š%}š1ŁšŐš^ňš2Q› „›+›7Ľ›*ô›'śCGśM‹śNŮś;(ť8dť#ťťÁť2Ýť)ž*:ž8ež-žž,Ěž,ůž&ź&=źBdź§źÄźŢź9÷ź1 \N Y« BˇOHˇdˇ]ýˇA[˘Oť˘Gí˘+5Ł#aŁ…ŁŁA¬Ł5îŁ.$¤4S¤¤5ś¤Ҥ(ç¤3Ą=DĄ&‚Ą1©Ą6ŰĄ(¦V;¦(’¦*»¦/ć¦@§6W§ ާ+ݧ5ۧC¨U¨!e¨"‡¨$ި-Ϩ-ý¨+©E©Z©q©©-ť©%Ë©!ń©0Ş?DŞ0„ŞAµŞA÷ŞC9«A}«Aż«A¬AC¬;…¬4Á¬=ö¬4­K­b­)s­'ť­,Ĺ­(ň­(®D®b®?u®µ®Đ® é®3÷®0+Ż'\Ż4„Ż0ąŻ1ęŻ,°2I°(|°'Ą°'Ͱ*ő°, ±)M±'w±ź± ż±ŕ±2ř±y+˛ Ą˛.ƲGő˛>=ł.|ł+«ł)׳*´2,´7_´$—´!Ľ´Ţ´.ü´+µ4?µtµ%…µ2«µ#޵¶!¶6@¶?w¶·¶ҶJ۶8&·!_·· ·"˝·"ŕ·2¸/6¸Df¸D«¸6đ¸,'ą*Tą=ą˝ą.Ýą ş%şU:ş.ş+żş(ëş.»2C»>v»*µ»-ŕ»?Ľ NĽR\Ľ7ŻĽ$çĽB ˝;O˝1‹˝6˝˝7ô˝6,ľLcľH°ľ&ůľ ż(@żIiżłżÍżçż2Ŕ$8Ŕ-]Ŕ-‹ŔOąŔ\ ÁKfÁ-˛Á6ŕÁ9Â5QÂ$‡Â¬Â@ÇÂĂ=Ă=YĂ9—Ă2ŃĂ#Ä9(Ä+bÄ(ŽÄ·Ä>ÔÄ>ĹMRĹI ĹHęĹ83ĆAlĆe®ĆVÇ,kÇBÇAŰÇ3Č*QČ+|ČG¨Č?đČ$0ÉUÉLuÉ'ÂÉ-ęÉFĘP_ĘI°Ę.úĘ)ËIË_Ë1zË/¬Ë%ÜË<Ě=?Ě4}ĚA˛ĚôĚ Í#Í*?Íj͆͠;ÍŢÍüÍÎ49Î nÎ zΆΤζÎÉÎŮÎLîÎ9;ĎCuĎAąĎ?űĎE;ĐHĐ_ĘĐ-*Ń-XŃ1†Ń+¸Ń/äŃ<Ň)QŇ,{ŇT¨Ň0ýŇ2.Ó)aÓ;‹Ó?ÇÓ7Ô<?Ô6|Ô1łÔcĺÔcIŐ{­Ő{)Ö$ĄÖ(ĘÖ-óÖ!×g=×2Ą×4Ř×1 Ř1?Ř8qŘ9ŞŘRäŘR7ŮEŠŮ7ĐŮEÚGNÚH–ÚJßÚ,*Ű1WŰF‰ŰKĐŰ.ÜfKÜH˛ÜMűÜ:IÝG„ÝĚÝ?éÝC)Ţ:mŢe¨Ţ<ß8Kß:„ß9żß@ůß.:ŕ0iŕšŕ˛ŕËŕ%ăŕ3 á/=á!má"Źá;˛áAîá80â6iâB â1ăâ+ă=AăIă4ÉăDţă%Cä/iä.™ä<Čäĺ9ĺ/Rĺ‹‚ĺMć-\ć4Šć2żćNňć2AçZtç_ĎçŚ/čAĽčOţčHNé7—é1Ďé=ę5?ęuę?“ęÓę&ńę>ëbWëKşë8ě2?ě1rě;¤ě6ŕě,í&Dí5kí>ˇí6ŕíî>7îXvî*Ďî3úî1.ď&`ďA‡ď=Éď2đ#:đ-^đ0Śđ<˝đAúđL<ń3‰ńI˝ń9ňCAň7…ň˝ň"ÝňUóQVóU¨óJţó:Iô?„ô7ÄôVüô-SőGő1Éő"űő(ö0Göxö$‘öJ¶öK÷M÷c÷(}÷*¦÷GŃ÷,řWFř.žř/ÍřGýř.Eů,tů1ˇů ! Óů(Ţů!ú)ú+;ú(gúú&§ú?Îú<ű(Kűtű‰űťű¸űÍű/čű8ü=Qü#Źü;łü;ďüD+ýPpý$Áý.ćý)ţ)?ţOiţNąţ!˙*˙JJ˙W•˙%í˙6%Jp;ŚOČN3g?›;Ű10I0z7«6ăAB\=źÝ2ů3,`'w+ź"Ë!îT)'~(¦=Ď' 5MLZš<ő=2 p1‘-Ă*ń%6B?yDąEţ'D 1l ž *ľ &é  ! / ! +J ! `v ! × ! .đ ! / .O -~ 8¬ Eĺ E+ )q [› U÷ M 0m /ž -Î 0ü -"I)ll–;5?&u5ś>Ňh!zLśAéD+Mp(ľ,ç$)1N$€-ĄJÓW*v!ˇ4Ă,řU%8{5´Wę,B3o-Ł.ŃB?C16µAě,.P[a¬_Zn#ÉRí*@NkJşIOOKźSë=?M}'Ë=ó%1NW¦=ĆC\H-ĄGÓ<8Wu#Í0ńP"TsVČK >k XŞ +!@/!'p!/!AČ!6 ! ",A"/n"%ž"?Ä"##8(#4a#<–# Ó#.ô#+#$?O$&Ź$4¶$.ë$%!:%'\%„%+Ł%-Ď%3ý%<1&(n&/—&#Ç&0ë&('4E'4z'7Ż'ç'2ü'#/(S(o(‹(Bˇ(:ä(%))E)o)(Ť)/¶)Oć)I6*x€*,ů*6&+9]+;—+Ó+0ă++,(@,*i,7”,Ě,ă,?ó,"3- V-(d-&Ť-&´-AŰ-M.(k.”.A¨.6ę.*!/<L/(‰/$˛/×/ě//0(109Z02”0JÇ0B1"U1,x16Ą1.Ü1. 2(:2$c2h2'ń2"3#<30`39‘30Ë30ü3+-42Y48Ś4.Ĺ4(ô455?S5/“5GĂ5J 62V6,‰6L¶62767AF7H7Ń72ń7$80>8#o8%“8&ą86ŕ8)9(A9(j9K“9ß9Ső9"I:1l:@ž:6ß:E;6\;/“;2Ă;Oö;>F<J…<MĐ<\=E{=AÁ=f>Bj>#­>BŃ>]?5r?‚¨?4+@`@<@?Ľ@8ü@55A8kA.¤A/ÓA+B=/B.mB'śB*ÄB<ďB,,CSYC­CČCßCúCDz$DzźDZE9uE)ŻEWŮE1F)OFByFEĽFGG+7G4cG-G=ĆG HK%H@qH+˛H,ŢH# I1/IAaIŁIşIĎIäIřI# J 0J<>J%{J;ˇJ ÝJPţJOK.aK(K*ąKäK!űK"L*@L/kL$›L+ŔLěL.M1M)EMoM†M ťM «M ąM)ÇM4ńMD&N!kNŤN©N5ľNôN&O@6O(wO( OÉOĺO8P.=PlP!‚P¤PşP'×P˙P!QU?Q0•Q_ĆQ-&R6TR;‹R ÇR[čRDScS@SŔS.ÔS,T0T:KT6†T+˝TéT;ůTJ5U?€U ŔU(áU! ! V,VFV]V7tV#¬V9ĐV ! W[!W_}WZÝW98XrX…XšX¬XCÉXR Y$`Y9…Y1żY0ńYH"ZkZ8„Z7˝Z.őZ>$[Sc[7·[7ď[@'\+h\,”\4Á\-ö\?$];d] ]0ş]!ë]" ^#0^T^p^%Ť^(ł^Ü^ř^!_7_K_i_0o_C _6ä_)`&E`(l`.•`)Ä`&î`'a)=a.ga–a$¶aŰaűa%b8=b8vb1Żb%áb&c.c!BcdcxcZŚc]çccEd©d˝d)Ýd!e)eIe&iee¤eşe!Îe đef@/fpf…f)™f(Ăf)ěf4gKg>kg&Şg.ŃghhB(hkhh–hµhÎhĺhůh2 i@i&\i(i¬iÂiÚi8ňi+jEj`jyj’j˛jÎj'äj. k;kVknk;‡kĂkăkükl/lEl]lul‰l©l"˝lŕl>ôl,3mO`m2°m ăm/n$4nYnxn’n¦nľnŘn=đn.o$Ko'po5oÎo;ço##pGpXpnp!pŞp#Ăpçp'q'+q'Sq{q”q&±q7Řq4rErbryr6“r.Ęrůr(s>sYs*ps›s°sÍsGäsF,tst+tĽtĎtít! ! u,uGu]u|u“u˛uČuçuvb!vU„vSÚv\.w#‹wŻw;Îw? ! xQJx=śx*Úx,yI2yF|y+ĂyGďy;7z:sz@®z(ďz-{8F{‹{7 |fC|gŞ|.}A}*`}*‹}B¶}1ů}B+~/n~Hž~;ç~B#Hf"ŻSŇ'&€'N€Bv€ą€GŇ€E` {+‡"łÖ+ó"‚B‚(R‚*{‚5¦‚,Ü‚1 5;!q#“·Ö9ň8,„2e„G„?ŕ„( …jI…@´…%ő…(†1D†/v†$¦†9ˆ1‡37‡3k‡4ź‡Ô‡ ć‡'ô‡+'H,p&ťÄä6ů0‰ ! M‰X‰s‰Ť‰©‰Ɖ߉)˙‰-)ŠWŠ!hŠŠŠ §Š%ČŠ/îŠF‹@e‹F¦‹í‹6Ś">Ś+aŚŤŚ-«Ś2ŮŚ Ť#(Ť8LŤ#…Ť1©ŤŰŤ3óŤ9'Ž,aŽ4ŽŽ ĂŽ ĐŽÚŽKăŽG/Ź$wŹHśŹ.ĺŹ+bEF¨?ď(/‘X‘C_‘8Ł‘.Ü‘D ’$P’;u’G±’Fů’E@“2†“(ą“8â“%”:A”'|”¤”ľ”Ú”2ë”@•E_•9Ą•Bß•2"–5U–8‹–<Ä–3—#5—#Y—0}—!®—Đ—"ď—""5,X%…«‘ËÁ]™1š5Qš>‡š8Ćš*˙š:*›Ce›©› É› ! ę›ő›)ś-=ś‰kś/őś+%ť-Qť4ťL´ťhžNjžMąžeźzmźfčźJO @š [Ű P7ˇ1ˇ,şˇ+çˇ)˘>=˘.|˘C«˘@ď˘A0Ł"rŁ$•Ł(şŁ+ăŁ7¤+G¤/s¤.٤&Ҥ.ů¤6(Ą(_Ą6Ą\żĄ<¦'Y¦C¦Ŧ&ă¦B ! §>M§,ڧ(ą§Aâ§#$¨!H¨3j¨"ž¨(Á¨/ę¨?©.Z©/‰©Gą©IŞKŞ$hŞ-ŤŞ*»Ş5ćŞ/«L« ! _«2j«Bť«;ŕ«,¬"I¬+l¬#¬&Ľ¬ă¬˙¬A­6\­7“­Ë­;ç­#®9?®/y®6©®6ŕ®'Ż6?Ż vŻ —Ż6¸Ż>ďŻ:.°i°A°RŰJ±Dc±H¨±>ń± 0˛!Q˛s˛;’˛,β/ű˛0+ł(\ł+…ł±ł7Éł$´F&´@m´9®´Gč´O0µ)€µ%޵е(îµ*¶EB¶B¶K˶O·1g·@™·Ú·8ö·/¸7J¸>‚¸^Á¸V ąOwą&ÇąSîąfBşe©şg»Gw»kż»++ĽEWĽťĽŻĽ'ĎĽA÷Ľ9˝?I˝[‰˝Dĺ˝*ľCľTľgľ„ľ$ ľĹľĚľDęľB/żSrżĆż;äż1 Ŕ>RŔ9‘Ŕ3ËŔ(˙Ŕ>(Á&gÁ$ŽÁ)łÁÝÁ$ýÁ0"Â$SÂxÂ;’Â7ÎÂBĂ<IĂ-†Ă+´Ă)ŕĂ9 ! ÄKDÄ4Ä-ĹÄ0óÄ@$ĹMeĹłĹ"ĎĹňĹ,Ć*5Ć`Ć3|ưĆ*ĎĆúĆ0ÇIÇ.aÇ!Ç#˛Ç$ÖÇ4űÇ'0Č&XČ&Č>¦Č9ĺČ1ÉQÉ6pÉ"§É/ĘÉ2úÉ?-ĘVmĘiÄĘj.Ën™ËKĚnTĚeĂĚx)Íz˘ÍwÎV•Î}ěÎajĎPĚĎ Đ6>Đ)uĐ&źĐBĆĐL ŃMVŃ:¤Ń:ßŃ/Ň>JŇD‰ŇNÎŇIÓ$gÓŚÓ-©Ó2×Ó. ! Ô:9Ô"tÔ—Ô:µÔ9đÔ9*Ő"dŐ,‡Ő;´Ő>đŐ;/Ö kÖ0ŚÖ3˝Ö4ńÖ&×F×4e×%š×Ŕ×%ŕ×jŘIqŘG»Ř<Ů&@Ů4gŮ2śŮ3ĎŮLÚ:PÚ‹Ú+ĄÚ1ŃÚ+Ű9/Ű+iŰ6•Ű:ĚŰ:Ü1BÜ=tÜ"˛Ü,ŐÜ/Ý2ÝRÝ(fÝAŹÝ&ŃÝ*řÝ'#Ţ*KŢ7vŢ.®ŢÝŢ>úŢ.9ß5hß;žß4Úß,ŕ:<ŕwŕ7ŕČŕĺŕ2üŕ$/á^Tá0łá3äá6â(Oâ'xâ% âĆâŢâ ôâ#ă79ă=qă.ŻăLŢă=+ä:iä¤ä´ä3Éä/ýä,-ĺ1Zĺ3Śĺ1Ŕĺ)ňĺć0ćEćTćhć|ćć¤ć¸ćĚćŕćôćçç/çIç]çqçç•ç©çąçÍçáçőç čč1čEčYčmčč•č©č˝čŃčĺčůč é!é5éIé]éqéé•é©é˝éŃéĺéůé ę!ę5ęIę]ęuęŤęˇę±ęĹę=Öęë)(ëRënëŠëťë#´ë%Řëţëě2ěHěcě!‚ě¤ě/Âě4ňě"'íJí@ií@Şíëí2úí2-î1`î’î)˛îÜî4÷î,,ď5Yď2Źď5Âď1řď**đLUđ5˘đ-Řđ%ń%,ń2Rń3…ń"ąń1Üń#ň2ňDň^ň4{ň1°ň%âň(ó/1óEaó5§ó*Ýó'ô-0ô(^ô&‡ô+®ô)Úô(ő#-ő@Qő’ő-­ő9Űőö2öECö5‰ö!żö/áö!÷?3÷s÷&‰÷'°÷#Ř÷ ü÷%ř/Cř!sř,•ř$Âř%çř' ů(5ů#^ů0‚ůłů3Ćů-úů*(úSúgú&‚ú*©ú1Ôú.ű/5űeűE„űĘű!çű5 ü/?ü:oü$Şü'Ďü÷üý34ý0hýI™ýăý$üýU!ţBwţşţÍţćţ*˙,/˙\˙/q˙ ˇ˙'Â˙ę˙ ! ,)!Vx ‰+—#Ă"ç) ! 34/h+-Ä@ň-32a)”;ľ"ú)%Gm}™(ą(â( (4(](†(Ż(Ř((*(S(|!Ą"Ç!ę" /%K!q'“»Ű ń..A.p źŔÝú0M f‡¤ÁŢű 45 Dj YŻ  ! )* ! #T ! (x ! (ˇ ! 5Ę ! # 3$ X !o ,‘ ľ 2Ô  # D !\ 9~ ¸ Ď (ě , 9B ;| 8¸ /ń !9W4w¬Ä'ă3 ,?*l—C­-ń*J$_.„)ł)Ý)&PDa¦9Ä%ţ$*C+n1š9Ě/#6(Z;Łßů*&>*e)(ş!ă)A/3q2ĄŘ ÷7$P.u6¤Ű3÷H+t"*łHŢK'>s9˛5ěd"q‡/ů')1Q2/¶Bć-)0W78Ŕ1ů<+=h+¦3Ň2397m2Ą-Ř33:2n5ˇ4×+ @8;yµLŃ: 0Y #Š ;® )ę (!%=!%c!‰!4Ą!3Ú!"$'"L"+l","0Ĺ":ö"B1#?t# ´#:Â#)ý#2'$0Z$1‹$%˝$2ă$1%)H%/r%&˘%É%$Ú%g˙%Lg&+´&Aŕ&"'7B'z''°'Ç'Ţ'ô'$(29(0l(0ť()Î('ř(' )'H)'p)*)(Ă))ě))*)@*(j*%“*#ą*3Ý*/+&A+%h+%Ž+(´+%Ý+,,-0,1^,.,%ż,/ĺ,,-*B-)m-$—-BĽ-v˙-_v.;Ö.///,K/,x/Ą/7Ĺ/%ý/#0?>0R~0HŃ0G1#b1%†1¬1-Ä1ň1+ 2>921x2)Ş2bÔ2#73([3p„3Wő32M4V€4×4"é46 5+C5-o5"ť51Ŕ5Mň5@6AX60š69Ë6 7&7!87 Z7"{75ž7)Ô7;ţ7:8;I8…8\˘8Y˙8/Y9O‰9aŮ9U;:ź‘: 1;R;6m;0¤;)Ő;'˙;:'<?b<,˘<4Ď<G=3L=@€=3Á==ő=%3>/Y>)‰>)ł>2Ý>0?3A?5u?E«?1ń?;#@._@)Ž@%¸@GŢ@6&AM]A&«A"ŇA+őA !B*BB(mB2–B,ÉBöB0CBC]C-uC%ŁC.ÉC)řC"D@D"[D!~D1 D%ŇD'řD' EHE*hE“E)˛EÜE)űE,%F)RF4|F<±F6îF3%G,YG7†G?ľG0ţGJ/H.zH!©H"ËHBîH)1I%[I ! IŚI*¦IŃI/îIJ]L:~L?ąL4ůLU.MF„M>ËM3 ! N;>NBzN7˝NMőN7CO>{O"şO&ÝO5PJ:P5…P+»P>çP>&Q>eQE¤Q(ęQ(R(]de]Ę] ç]ő]3^2H^o{^Lë^=8_Qv_"Č_"ë_!`0`&N`u`d“`#ř`a/6a$fa#‹a,Ża!Üa'ţa&b)Úxy.yFy]y*}y/¨y!Řy3úy/.z$^z4z=¸z!özK{:d{ź{3ż{%ó{=|JW|D˘|;ç|"#}F}Id}+®}9Ú}%~8:~Ks~!ż~6á~339g9ˇŰ5ř>.€5m€:Ł€%Ţ€U"Kx<Ä&‚/(‚5X‚6Ž‚+Ĺ‚.ń‚5 9V3)Ä0î7„1W„;‰„Ĺ„(Ö„N˙„<N…,‹…3¸…)ě…l†@†3Ć3ř†8,‡Pe‡¶‡$Ő‡Fú‡FA=(Ć*ď0‰)K‰%u‰M›‰é‰<ü‰I9ŠHŠ5ĚŠ‹"‹5B‹/x‹@¨‹é‹3 Ś-=Ś(kŚ/”Ś ÄŚKĺŚ1ŤEŤ2KŤ ! ~Ť&‰Ť°Ť3ĘŤ-ţŤ?,Ž.lŽ'›Ž2ĂŽJöŽKAŹGŤŹŐŹ"đŹ]5q/§(×.‘-/‘']‘9…‘;ż‘<ű‘X8’d‘’8ö’b/“;’“Γé“D”5M”:”Lľ”) •?5•)u•:ź•iÚ•#D–.h– —–$¸– Ý– ţ–$—:D—-—;­—;é—.%-TJ‚*Íř™&-™!T™"v™"™™TĽ™RšVdšI»šR›WX›J°›Rű›JNśR™śDěś;1ťemť<Óť;ž=LžHŠž3Óž$ź ,ź+Mź7yź1±źJăź@. o 1Ś -ľ &ě 0ˇPDˇ4•ˇ"ʡíˇ˙ˇ˘0'˘-X˘Y†˘Pŕ˘#1Ł!UŁwŁB•ŁŘŁřŁ'¤@¤[¤Rj¤"˝¤=ŕ¤1ĄPĄSpĄ:ÄĄ=˙Ą2=¦"p¦+“¦3ż¦(ó¦$§>A§€§”§¬§ ŧ(ć§&¨!6¨;X¨g”¨%ü¨)"©(L©Hu©.ľ©8í©7&Ş^Ş(}Ş'¦Ş+ÎŞ$úŞ'«/G«(w«% «/Ć«(ö«¬'=¬e¬$…¬AެCě¬*0­[­'x­C ­)ä­ ®"/®R®l®B‹®'ή6ö®%-ŻSŻ1lŻ3žŻCŇŻC°JZ°JĄ°/đ°+ ±#L±Tp±\űE"˛:h˛%ٞ&ɲ đ˛1łBCł€†ł6´?>´2~´±´CĎ´'µ0;µGlµZ´µQ¶Va¶U¸¶V·Te·Uş·T¸=e¸>ُKâ¸;.ą8jąTŁąbřąO[şP«şAüş<>»({»>¤» ă» đ»ú»ĽC*ĽInĽ>¸ĽG÷ĽJ?˝JŠ˝3Ő˝3 ľ6=ľAtľL¶ľ ż;żMż6^ż.•ż.Äż0óż!$Ŕ(FŔ>oŔB®Ŕ+ńŔ*ÁAHÁ%ŠÁ(°Á*ŮÁ$Â,)Â7VÂ<ŽÂ*ËÂ:öÂ91ĂbkĂ7ÎĂ8Ä4?Ä&tÄ:›ÄÖÄXéÄ#BĹ,fĹ<“Ĺ9ĐĹ0 ! Ć/;Ć5kơĆ<ÁĆ)ţĆ/(Ç/XÇ Ç’ÇH¬ÇAőÇ7Č+TČQ€ČŇČ&ńČ.É%GÉ'mÉ*•É5ŔÉöÉ Ę%Ę@ĘnZĘÉĘçĘ Ë2"Ë2UË Ë©ËÄË%áËĚ&#Ě3JĚ~Ě+šĚ'ĆĚîĚ Í$(Í#MÍ.qÍ, Í1ÍÍ"˙Í"Î;ÎTÎjÎ!yÎ"›ÎľÎÚÎ>ůÎ 8Ď YĎ9fĎ3 Ď.ÔĎ/Đ23ĐAfĐA¨Đ&ęĐ#ŃG5Ń"}Ń# ŃMÄŃ'Ň:Ň.X҇Ň4›Ň@ĐŇRÓPdÓ9µÓďÓ ! ÔÔ*;Ô2fÔ'™Ô7ÁÔůÔCŐ7[Ő9“ŐBÍŐSÖ8dÖ]ťÖ\űÖCX×Bś×*ß×' ! ŘI2Ř>|ŘB»ŘCţŘGBŮ<ŠŮAÇŮ. Ú.8ÚBgÚBŞÚUíÚCŰ/cŰ3“Ű4ÇŰEüŰ7BÜ6zÜ6±Ü+čÜ#Ý$8Ý!]Ý1ݱÝĹÝ'âÝ ! Ţ(Ţ,EŢrŢ1ŹŢ$ÁŢćŢ2üŢD/ß%tß/šß%ĘßEđß$6ŕ&[ŕ%‚ŕ;¨ŕäŕáDáDbá§áĹáâá÷á â*"â Mânâ+Śâ9¸âňâ<ăLOă.śăLËă%ä>ä&]ä„ä,śä*Éä3ôä(ĺ*Bĺ&mĺ@”ĺ/Őĺ$ćp*ć>›ćMÚćM(ç6vç/­ç4Ýçč)2čG\č5¤č+Úč"é)é(?éhé*„éŻé7ÄéHüé:Eęa€ę#âę=ë9Dë@~ëXżë-ěJFě7‘ě3Éě%ýě1#í1Uí6‡í$ľí3ăíî6îJî/]î3Ťî/Áî1ńî)#ď!Mď/oďHźď5čď5đ Tđ!uđ+—đ Ăđ#äđ7ń$@ń7eń7ťń%Őń)űń;%ň5aň+—ň)Ăňíň% ! óH0óUyó0ĎóVôWô gô4ô)˝ô+çô ő/4ő.dő)“őQ˝ő ö 0ö%Qö-wöOĄö$őö5÷;P÷>Ś÷CË÷0ř\@řMťřUëř3Aů1uůD§ů~ěůUkú3ÁúWőú‡MűJŐű[ üK|ü=Čü5ý?<ý%|ý6˘ýŮý%îý&ţ;ţ!Uţ<wţA´ţ&öţ%˙8C˙|˙™˙·˙'×˙ ˙˙ 2 F&P%w%ť>Ă538 lbv)Ů.2+Q;}%ąBß."%Q'w'ź7Ç!˙>!#`,„1±>ă%"5H,~.«*ÚZ4`•°&Ë$ň7/U…k˘/>(Y‚%źQĹ ?7 'w 'ź 'Ç ď F ! ?V ! 7– ! 2Î ! ' ) $F *k )– )Ŕ 7ę )" L <l &© AĐ / >B ; :˝ Jř +C3oGŁ ë( *5`+sź3żlóX`Gą1-36a,#ĹCé-$M'r)š Äĺ9S;bŹkňi^WČm 7Ž;Ć9.T/łMÄ,$?$d%‰0Ż@ŕ!-@*n<™8Ö9IIB“3Ö0 ! 3;3oQŁNő9D(~<§8ä<@Z2›Î(í($?(d,Ť"ş-ÝC ?O*Ź#ş)Ţ&2/b~ť,·ä+ţ7* [b &ľ ;ĺ '!!"I!l!!#›!Cż!;"??"F"Ć"2ä"2#'J#,r#/ź#4Ď#2$;7$Fs$.ş$7é$-!%-O%7}%-µ%-ă%)&;;&;w&Fł&?ú&?:'?z'>ş'>ů'e8(ež(/)4)DI)IŽ)RŘ)>+*Hj*"ł* Ö*7÷*/+(N+w+#’+¶+5Ę+%,5&,'\,?„,3Ä,+ř,#$-*H-#s-"—-)ş-!ä- .*'.3R.'†.5®.&ä.0 /)¬9)ë9&:<:!K:=m:«:-Ć:Lô:-A;1o;6ˇ;-Ř;8<>?<6~<2µ<č<˙<=.=G=^=t=Ś=Ł=»=Ň=ę=>>3>Q>h>~>“>±>É>â>ű>?'?:A?R|?NĎ?E@Kd@"°@"Ó@7ö@).A?XA1A5ĘAgBfhBhĎBM8CU†CUÜCU2DVDVßDV6EUŤEUăEU9FVŹFVćFV=GU”GUęGU@HV–HVíHVDI5›IŃI6ëIC"J*fJ2‘J;ÄJ;K;[2l[Hź[,č[z\&\x·\Q0]Q‚]@Ô]P^3f^+š^)Ć^đ^) _5_1U_&‡_%®_-Ô_#`&`3B`v`T“`6č`'aGa+aa Ťa®a'Ăa6ëa2"b3Ub,‰b¶b,Ôb"c)$c(Ncwc0–c&Çc%îc8d,Md1zd¬dJĘde5e#Me(qe2še.Íe6üe3fSf5sf-©f+×f*gZ.g-‰gG·g\˙gC\h0 h3Ńh:i3@iMti-Âi5đi4&jS[j<ŻjWěj)DkMnkIĽkTlI[lCĄl?élB)mUlm)Âměm3 ! n*>n+inF•n#Ün0oJ1o9|oD¶o.űo8*p"cp:†p*Áp1ěp0q3Oq)q#­qLŃq8r+Wr'r6«r9ârso4sZ¤sR˙s$Rt8wt:°t?ët4+u`uwu.‹u2şuíu7v6=vtv ‹v¬vÄvÝv÷v%w>8w.ww¦w)Âwěw"x%x>Ax%€x8¦xAßx?!y0ay5’yČyOáy-1z._z0Žz@żz+{2,{2_{8’{|Ë{$H|/m|9ť|!×|Aů|G;}%}!©}8Ë}6~3;~2o~˘~8ľ~,÷~4$(Y-‚J°#ű1€1Q€3€2·€+ę€+3B6v.­$Ü:‚3<‚+p‚)ś‚"Ć‚3é‚*=h2}>°.ď,„DK„$„Fµ„+ü„9(…4b…6—…2Î…+†%-†S†s††j©†!‡>6‡4u‡ އˇĺ‡!÷‡!?;${T 8ő.‰M‰_‰p‰;Ť‰ɉç‰$Š*Š&@Š"gŠŠŠ¦ŠDĹŠ0 ! ‹.;‹Tj‹2ż‹+ň‹'Ś)FŚpŚ ŽŚFŻŚ0öŚV'Ť?~Ť#ľŤâŤřŤ$Ž%8Ž!^Ž1€Ž-˛ŽŕŽ.ůŽ7(Ź`ŹxŹ'ŽŹ¶Ź5ĚŹ+.;L*ž+Éő‘-(‘V‘%v‘+ś‘ȑᑒ’(1’+Z’7†’!ľ’"ŕ’!“%“C“\“!z“ś“(´“Ý“!ü“ ”&,”S”4r”§”ş”Ř”ő”+•J?•,Š•7·•%ď•<–8R–1‹–-˝–5ë–&!—/H—!x—1š—Ě— ŕ— î—*/:"j!Ť'Ż+×™3!™U™+p™<ś™Ů™ń™š š8šRšnš(‹š1´šOćšB6›8y›B˛›8ő›G.ś=vś´ś3Ńś4ť0:ť2kťžť!¸ťEÚť5 ž.Vž"…ž¨ž$ľžăž"ź$ź<źSźxmźOćź6 Q bn AŃ 1ˇEˇ*dˇ}ʎX ˘/f˘O–˘@ć˘q'ŁT™ŁkîŁ7Z¤A’¤;Ô¤DĄFUĄOśĄ(ěĄ0¦F¦/`¦*¦3»¦5ď¦_%§(…§B®§%ń§,¨ZD¨:ź¨*Ú¨)©5/©;e©Jˇ©ě©$ŞZ+Ş2†ŞMąŞ,«.4«%c«*‰«!´«'Ö«<ţ«&;¬.b¬6‘¬3ȬKü¬9H­Y‚­Ü­7ď­2'®3Z®4Ž®<Ă®Ż!Ż9Ż=VŻ9”Ż(ÎŻ÷Ż%°-=°5k°!ˇ°.ðBň°45±8j±ٱ˛±3ѱ&˛&,˛)S˛%}˛9ٞ3ݲ3ł3Eł'ył$ˇł.Ćł>őł?4´et´&Ú´'µ)µ2Hµ*{µ&¦µS͵f!¶d¶fí¶GT·gś·A¸*F¸'q¸'™¸#Á¸(ĺ¸$ąC3ą#wąH›ąUäą1:şflş(Óş.üş$+»&P»4w»9¬»Lć»!3Ľ UĽ6vĽ\­Ľ( ! ˝&3˝.Z˝*‰˝B´˝÷˝4 ľ>Bľ5ľ-·ľ'ĺľ+ żA9ż&{ż˘żżżßżűż<ŔFVŔ-ťŔ(ËŔ9ôŔ-.Á9\Á'–Á,ľÁ)ëÁ6ÂLÂg†žÂ&ľÂGĺ -Ă,NĂ>{Ă,şĂ/çĂÄ2.Ä*aÄŚÄ0¬Ä-ÝÄh Ĺ(tĹCťĹ%áĹ7Ć?Ć:QĆ ŚĆ”šĆ /ÇL9Ç!†Ç*¨Ç$ÓÇ)řÇ'"Č5JČ*€Č«Č>ĘČ3 É=É'[É'É2«É+ŢÉ ! Ę ĘĘ(Ę*¨Ę$ÓĘ1řĘ,*Ë;WË7“Ë%ËË"ńËĚ$4Ě3YĚ.ŤĚ1ĽĚ-îĚ-Í9JÍ/„Í<´Í6ńÍ+(Î4TÎ:‰ÎÄÎáÎ'˙Î%'Ď#MĎ!qĎ-“Ď&ÁĎ%čĎ%Đ#4Đ XĐ(eĐŽĐ+¬ĐŘĐëĐŃ&Ń"EŃhфѠѩŃâ #¶% Ţ«_ž Ęâ$Łŕ‡Vi">`}\Żä b›'ř@ IťJg {  Ľ"µüC‰(l'5 Îh Ůf—†,é ÓQ"ÇÎ ¨b+Rž&Ř   ů$b|(í7 rě">—'­#† Š! ! {ň&&ŔY$׍*Ü  $§ % ĺR !yő "ľ„*(Öص PÝá' íB˘Č"†h)"Ă= <%#ŢÎ Ë&',&'} &Z ^cĘ/q&KäL 8N *************** warranty; not even for MERCHANTABILITY o *** 2120,2126 **** unsupported simdlen %dunterminated assembly dialect alternativeunterminated format stringunused arguments in $-style formatunused parameter %q+Dunused variable %q+Dunusual TP-relative addressunwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctnessupper value in case label range exceeds maximum value for typeuse #include insteaduse %<%T::%D%> insteaduse %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified nameuse %<%T::template %D%> to indicate that it is a templateuse %<...%> to expand argument packuse %%D%> insteaduse -Winvalid-pch for more informationuse -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subpartsuse -std=gnu++11 or -fext-numeric-literals to enable more built-in suffixesuse __attribute__ ((vector_size)) insteaduse __builtin_rx_mvtc (0, ... ) to write arbitrary values to PSWuse of %<_Cilk_spawn%> in a return statement is not alloweduse of % in lambda parameter declaration only available with -std=c++1y or -std=gnu++1yuse of % in member template conversion operator can never be deduceduse of % in parameter declaration only available with -std=c++1y or -std=gnu++1yuse of % in AltiVec types is invaliduse of % in AltiVec types is invalid without -mvsxuse of % in AltiVec types is invaliduse of % in AltiVec types is invalid without -mvsxuse of % in AltiVec types is deprecated; use %use of % in AltiVec types is invalid for 64-bit code without -mvsxuse of % in a constant expressionuse of %qD before deduction of %use of %qs in templateuse of %qs length modifier with %qc type characteruse of %s and %s together in %s formatuse of %s and %s together with %<%%%c%> %s formatuse of boolean types in AltiVec types is invaliduse of built-in trait %qE in function signature; use library traits insteaduse of class template %qT as expressionuse of decimal floating point types in AltiVec types is invaliduse of deleted function %qDuse of enum %q#D without previous declarationuse of local variable with automatic storage from containing functionuse of multiversioned function without a defaultuse of namespace %qD as expressionuse of old-style castuse of parameter %qD outside function bodyuse of parameter from containing functionuse of the value of the object being constructed in a constant expressionuse of untyped niluse operand missing for stmtuse option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your codeuse template<> for an explicit specializationused array that cannot be converted to pointer where scalar is requiredused struct type value where scalar is requiredused union type value where scalar is requiredused vector type where scalar is requireduseless %<_Alignas%> in empty declarationuseless %qs in empty declarationuseless cast to type %qTuseless storage class specifier in empty declarationuseless type name in empty declarationuseless type qualifier in empty declarationuser defined reduction lookup is ambiguoususer defined reduction not found for %qDuser defined reduction with constructor initializer for base class %qTuser-defined %qD always evaluates both argumentsuser-defined literals only available with -std=c++11 or -std=gnu++11using %<%c%s%>using %qs with unsigned type has no effectusing IBM extended precision long doubleusing IEEE extended precision long doubleusing alias template specialization %qT after %qsusing both @FILE with multiple files not implementedusing darwin64 ABIusing invalid field %qDusing old darwin ABIusing parameters for % step is not supported yetusing result of function returning %using template type parameter %qT after %qsusing temporary as lvalueusing typedef-name %qD after %qsusing xvalue (rvalue reference) as lvalueusing-declaration for non-member at class scopevalid arguments to %qs are: %svalidate_value_data: Loop in regno chain (%u)validate_value_data: [%u] Bad next_regno for empty chain (%u)validate_value_data: [%u] Bad oldest_regno (%u)validate_value_data: [%u] Non-empty reg in chain (%s %u %i)value argumentvalue computed is not usedvalue of -mfixed-range must have form REG1-REG2value passed in %qs is too largevalue-initialization of function type %qTvalue-initialization of incomplete type %qTvalue-initialization of reference type %qTvar-tracking-assignments changes selective schedulingvariable %D of type % must be uninitializedvariable %D of type % must be uninitializedvariable %q#D has initializer but incomplete typevariable %q+D declared %<_Noreturn%>variable %q+D declared %variable %q+D definition is marked dllimportvariable %q+D located in address space %qs beyond flash of %qsvariable %q+D might be clobbered by % or %variable %q+D must be const in order to be put into read-only section by means of %qsvariable %q+D part of alias cyclevariable %q+D set but not usedvariable %qD has function typevariable %qD has initializer but incomplete typevariable %qD redeclared as functionvariable %qD set but not usedvariable %qE of incomplete type %qT will not be accessed in for increment expressionvariable %qE of incomplete type %qT will not be accessed in left operand of comma operatorvariable %qE of incomplete type %qT will not be accessed in right operand of comma operatorvariable %qE of incomplete type %qT will not be accessed in second operand of conditional expressionvariable %qE of incomplete type %qT will not be accessed in statementvariable %qE of incomplete type %qT will not be accessed in third operand of conditional expressionvariable %s (%ld bytes) is too large for the %s section (%d bytes)variable appears in more than one clausevariable length array %qD is usedvariable length array %qE is usedvariable length array is usedvariable or field %qE declared voidvariable or field declared voidvariable previously declared % redeclared %variable symbol is not variablevariable tracking requested, but not supported by this debug formatvariable tracking requested, but useless unless producing debug infovariable tracking size limit exceededvariable tracking size limit exceeded with -fvar-tracking-assignments, retrying withoutvariable-sized compound literalvariable-sized object may not be initializedvariably modified %qE at file scopevariably modified field at file scopevariably modified type not allowed in operator newvariadic functions must use the base AAPCS variantvariadic templates only available with -std=c++11 or -std=gnu++11vec_extract only accepts 2 argumentsvec_insert only accepts 3 argumentsvector CONSTRUCTOR with non-NULL element indexvector attribute not immediately followed by a single function declaration or definitionvector comparison returning a booleanvector condition will be expanded piecewisevector operation will be expanded in parallelvector operation will be expanded piecewisevector operation will be expanded with a single scalar operationvector overflow in expressionvector shuffling operation will be expanded piecewisevector size not an integral multiple of component sizevector types expected in vector permute expressionvectorization did not happen for a simd loopvectorlength must be a power of 2vectorlength must be an integer constantvectors with different element number found in vector permute expressionverification failed at PC=%d: %sverification failed: %sverify_cgraph_node failedverify_eh_tree failedverify_flow_info failedverify_flow_info: Basic block %d succ edge is corruptedverify_flow_info: Block %i has loop_father, but there are no loopsverify_flow_info: Block %i lacks loop_fatherverify_flow_info: Duplicate edge %i->%iverify_flow_info: Incorrect blocks for fallthru %i->%iverify_flow_info: Incorrect fallthru %i->%iverify_flow_info: REG_BR_PROB does not match cfg %i %iverify_flow_info: Wrong count of block %i %iverify_flow_info: Wrong count of edge %i->%i %iverify_flow_info: Wrong frequency of block %i %iverify_flow_info: Wrong probability of edge %i->%i %iverify_gimple failedverify_histograms failedverify_ssa failedverify_symtab_node failedversion attribute is not a stringvirt-specifiers in %qs not allowed outside a class definitionvirtual PHI with argument locationsvirtual SSA name for non-VOP declvirtual base %qT inaccessible in %qT due to ambiguityvirtual def operand missing for stmtvirtual definition of statement not up-to-datevirtual function %q+Dvirtual function cannot have deduced return typevirtual functions cannot be friendsvirtual non-class function %qsvirtual use of statement not up-to-datevirtual use operand missing for stmtvisibility argument must be one of "default", "hidden", "protected" or "internal"visibility argument not a stringvisibility attribute not supported in this configuration; ignoredvms '#pragma __message' is ignoredvoid value not ignored as it ought to bevolatile argumentvolatile must be specified on any memory that is effected by DMAvtable for vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructorwarning: warning: consider linking with '-static' as system libraries withweak %q+D cannot be defined %qEweak declaration of %q+D must be publicweak declaration of %q+D not supportedweakref %q+D must have static linkageweakref %q+D ultimately targets itselfweakref attribute must appear before alias attributeweakref is not supported in this configurationwhen writing output to %s: %mwide character array initialized from incompatible wide stringwide character array initialized from non-wide stringwide string literal in %width of %q+D exceeds its typewidth of %qs exceeds its typewidth of bit-field %qD has non-integral type %qTwill be assumed to return % and acceptwithwith %q+#Dwithin this contextwork-sharing region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task regionwriting into constant object (argument %d)writing through null pointer (argument %d)writing to LTRANS output list %s: %mwriting to address space %qs not supportedwrong amount of branch edges after conditional jump in bb %iwrong amount of branch edges after unconditional jump %iwrong arg %s to option %swrong edge %d->%d for PHI argumentwrong immediate use listwrong insn in the fallthru edgewrong list of exited loops for edge %d->%dwrong number of arguments specified for %qE attributewrong number of arguments to %<__builtin_choose_expr%>wrong number of arguments to %<__builtin_complex%>wrong number of arguments to %<__builtin_shuffle%>wrong number of arguments to function %<__builtin_next_arg%>wrong number of arguments to function %wrong number of branch edges after unconditional jump in bb %iwrong number of template arguments (%d, should be %d or more)wrong number of template arguments (%d, should be %d)wrong outgoing edge flags at end of bb %dwrong stringop strategy name %s specified for option %swrong type argument to %swrong type argument to abswrong type argument to bit-complementwrong type argument to conjugationwrong type argument to decrementwrong type argument to incrementwrong type argument to unary exclamation markwrong type argument to unary minuswrong type argument to unary plusx87 register return with x87 disabledxstormy16_print_operand: unknown codez/Architecturez/Architecture mode not supported on %szero as null pointer constantzero or negative size array %q+Dzero vector sizezero width for bit-field %q+Dzero width for bit-field %qszero width in %s formatzero-length %s format stringzero-size array %qDzero-size array %qT{anonymous}{unknown}Project-Id-Version: gcc 4.9-b20140202 Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html POT-Creation-Date: 2014-02-02 17:35+0000 ! PO-Revision-Date: 2014-03-30 20:23+0200 Last-Translator: Göran Uddeborg Language-Team: Swedish Language: sv --- 2122,2128 ---- unsupported simdlen %dunterminated assembly dialect alternativeunterminated format stringunused arguments in $-style formatunused parameter %q+Dunused variable %q+Dunusual TP-relative addressunwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctnessupper value in case label range exceeds maximum value for typeuse #include insteaduse %<%T::%D%> insteaduse %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified nameuse %<%T::template %D%> to indicate that it is a templateuse %<...%> to expand argument packuse %%D%> insteaduse -Winvalid-pch for more informationuse -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subpartsuse -std=gnu++11 or -fext-numeric-literals to enable more built-in suffixesuse __attribute__ ((vector_size)) insteaduse __builtin_rx_mvtc (0, ... ) to write arbitrary values to PSWuse of %<_Cilk_spawn%> in a return statement is not alloweduse of % in lambda parameter declaration only available with -std=c++1y or -std=gnu++1yuse of % in member template conversion operator can never be deduceduse of % in parameter declaration only available with -std=c++1y or -std=gnu++1yuse of % in AltiVec types is invaliduse of % in AltiVec types is invalid without -mvsxuse of % in AltiVec types is invaliduse of % in AltiVec types is invalid without -mvsxuse of % in AltiVec types is deprecated; use %use of % in AltiVec types is invalid for 64-bit code without -mvsxuse of % in a constant expressionuse of %qD before deduction of %use of %qs in templateuse of %qs length modifier with %qc type characteruse of %s and %s together in %s formatuse of %s and %s together with %<%%%c%> %s formatuse of boolean types in AltiVec types is invaliduse of built-in trait %qE in function signature; use library traits insteaduse of class template %qT as expressionuse of decimal floating point types in AltiVec types is invaliduse of deleted function %qDuse of enum %q#D without previous declarationuse of local variable with automatic storage from containing functionuse of multiversioned function without a defaultuse of namespace %qD as expressionuse of old-style castuse of parameter %qD outside function bodyuse of parameter from containing functionuse of the value of the object being constructed in a constant expressionuse of untyped niluse operand missing for stmtuse option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your codeuse template<> for an explicit specializationused array that cannot be converted to pointer where scalar is requiredused struct type value where scalar is requiredused union type value where scalar is requiredused vector type where scalar is requireduseless %<_Alignas%> in empty declarationuseless %qs in empty declarationuseless cast to type %qTuseless storage class specifier in empty declarationuseless type name in empty declarationuseless type qualifier in empty declarationuser defined reduction lookup is ambiguoususer defined reduction not found for %qDuser defined reduction with constructor initializer for base class %qTuser-defined %qD always evaluates both argumentsuser-defined literals only available with -std=c++11 or -std=gnu++11using %<%c%s%>using %qs with unsigned type has no effectusing IBM extended precision long doubleusing IEEE extended precision long doubleusing alias template specialization %qT after %qsusing both @FILE with multiple files not implementedusing darwin64 ABIusing invalid field %qDusing old darwin ABIusing parameters for % step is not supported yetusing result of function returning %using template type parameter %qT after %qsusing temporary as lvalueusing typedef-name %qD after %qsusing xvalue (rvalue reference) as lvalueusing-declaration for non-member at class scopevalid arguments to %qs are: %svalidate_value_data: Loop in regno chain (%u)validate_value_data: [%u] Bad next_regno for empty chain (%u)validate_value_data: [%u] Bad oldest_regno (%u)validate_value_data: [%u] Non-empty reg in chain (%s %u %i)value argumentvalue computed is not usedvalue of -mfixed-range must have form REG1-REG2value passed in %qs is too largevalue-initialization of function type %qTvalue-initialization of incomplete type %qTvalue-initialization of reference type %qTvar-tracking-assignments changes selective schedulingvariable %D of type % must be uninitializedvariable %D of type % must be uninitializedvariable %q#D has initializer but incomplete typevariable %q+D declared %<_Noreturn%>variable %q+D declared %variable %q+D definition is marked dllimportvariable %q+D located in address space %qs beyond flash of %qsvariable %q+D might be clobbered by % or %variable %q+D must be const in order to be put into read-only section by means of %qsvariable %q+D part of alias cyclevariable %q+D set but not usedvariable %qD has function typevariable %qD has initializer but incomplete typevariable %qD redeclared as functionvariable %qD set but not usedvariable %qE of incomplete type %qT will not be accessed in for increment expressionvariable %qE of incomplete type %qT will not be accessed in left operand of comma operatorvariable %qE of incomplete type %qT will not be accessed in right operand of comma operatorvariable %qE of incomplete type %qT will not be accessed in second operand of conditional expressionvariable %qE of incomplete type %qT will not be accessed in statementvariable %qE of incomplete type %qT will not be accessed in third operand of conditional expressionvariable %s (%ld bytes) is too large for the %s section (%d bytes)variable appears in more than one clausevariable length array %qD is usedvariable length array %qE is usedvariable length array is usedvariable or field %qE declared voidvariable or field declared voidvariable previously declared % redeclared %variable symbol is not variablevariable tracking requested, but not supported by this debug formatvariable tracking requested, but useless unless producing debug infovariable tracking size limit exceededvariable tracking size limit exceeded with -fvar-tracking-assignments, retrying withoutvariable-sized compound literalvariable-sized object may not be initializedvariably modified %qE at file scopevariably modified field at file scopevariably modified type not allowed in operator newvariadic functions must use the base AAPCS variantvariadic templates only available with -std=c++11 or -std=gnu++11vec_extract only accepts 2 argumentsvec_insert only accepts 3 argumentsvector CONSTRUCTOR with non-NULL element indexvector attribute not immediately followed by a single function declaration or definitionvector comparison returning a booleanvector condition will be expanded piecewisevector operation will be expanded in parallelvector operation will be expanded piecewisevector operation will be expanded with a single scalar operationvector overflow in expressionvector shuffling operation will be expanded piecewisevector size not an integral multiple of component sizevector types expected in vector permute expressionvectorization did not happen for a simd loopvectorlength must be a power of 2vectorlength must be an integer constantvectors with different element number found in vector permute expressionverification failed at PC=%d: %sverification failed: %sverify_cgraph_node failedverify_eh_tree failedverify_flow_info failedverify_flow_info: Basic block %d succ edge is corruptedverify_flow_info: Block %i has loop_father, but there are no loopsverify_flow_info: Block %i lacks loop_fatherverify_flow_info: Duplicate edge %i->%iverify_flow_info: Incorrect blocks for fallthru %i->%iverify_flow_info: Incorrect fallthru %i->%iverify_flow_info: REG_BR_PROB does not match cfg %i %iverify_flow_info: Wrong count of block %i %iverify_flow_info: Wrong count of edge %i->%i %iverify_flow_info: Wrong frequency of block %i %iverify_flow_info: Wrong probability of edge %i->%i %iverify_gimple failedverify_histograms failedverify_ssa failedverify_symtab_node failedversion attribute is not a stringvirt-specifiers in %qs not allowed outside a class definitionvirtual PHI with argument locationsvirtual SSA name for non-VOP declvirtual base %qT inaccessible in %qT due to ambiguityvirtual def operand missing for stmtvirtual definition of statement not up-to-datevirtual function %q+Dvirtual function cannot have deduced return typevirtual functions cannot be friendsvirtual non-class function %qsvirtual use of statement not up-to-datevirtual use operand missing for stmtvisibility argument must be one of "default", "hidden", "protected" or "internal"visibility argument not a stringvisibility attribute not supported in this configuration; ignoredvms '#pragma __message' is ignoredvoid value not ignored as it ought to bevolatile argumentvolatile must be specified on any memory that is effected by DMAvtable for vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructorwarning: warning: consider linking with '-static' as system libraries withweak %q+D cannot be defined %qEweak declaration of %q+D must be publicweak declaration of %q+D not supportedweakref %q+D must have static linkageweakref %q+D ultimately targets itselfweakref attribute must appear before alias attributeweakref is not supported in this configurationwhen writing output to %s: %mwide character array initialized from incompatible wide stringwide character array initialized from non-wide stringwide string literal in %width of %q+D exceeds its typewidth of %qs exceeds its typewidth of bit-field %qD has non-integral type %qTwill be assumed to return % and acceptwithwith %q+#Dwithin this contextwork-sharing region may not be closely nested inside of work-sharing, critical, ordered, master or explicit task regionwriting into constant object (argument %d)writing through null pointer (argument %d)writing to LTRANS output list %s: %mwriting to address space %qs not supportedwrong amount of branch edges after conditional jump in bb %iwrong amount of branch edges after unconditional jump %iwrong arg %s to option %swrong edge %d->%d for PHI argumentwrong immediate use listwrong insn in the fallthru edgewrong list of exited loops for edge %d->%dwrong number of arguments specified for %qE attributewrong number of arguments to %<__builtin_choose_expr%>wrong number of arguments to %<__builtin_complex%>wrong number of arguments to %<__builtin_shuffle%>wrong number of arguments to function %<__builtin_next_arg%>wrong number of arguments to function %wrong number of branch edges after unconditional jump in bb %iwrong number of template arguments (%d, should be %d or more)wrong number of template arguments (%d, should be %d)wrong outgoing edge flags at end of bb %dwrong stringop strategy name %s specified for option %swrong type argument to %swrong type argument to abswrong type argument to bit-complementwrong type argument to conjugationwrong type argument to decrementwrong type argument to incrementwrong type argument to unary exclamation markwrong type argument to unary minuswrong type argument to unary plusx87 register return with x87 disabledxstormy16_print_operand: unknown codez/Architecturez/Architecture mode not supported on %szero as null pointer constantzero or negative size array %q+Dzero vector sizezero width for bit-field %q+Dzero width for bit-field %qszero width in %s formatzero-length %s format stringzero-size array %qDzero-size array %qT{anonymous}{unknown}Project-Id-Version: gcc 4.9-b20140202 Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html POT-Creation-Date: 2014-02-02 17:35+0000 ! PO-Revision-Date: 2014-04-11 20:56+0200 Last-Translator: Göran Uddeborg Language-Team: Swedish Language: sv *************** write_c_file - utdatanamn är %s, prefix *** 2238,2244 **** kandidat 1: %q+#F kandidat 2: %q+#F kodgenereringsflaggor som stĂĄr i konflikt används skuggar mallparameter %q+#D!$OMP ATOMIC CAPTURE-fĂĄngstsats mĂĄste läsa frĂĄn en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC CAPTURE-fĂĄngstsats mĂĄste sätta en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC CAPTURE-fĂĄngstsats läser frĂĄn en annan variabel än uppdateringssatsen skriver till vid %L!$OMP ATOMIC CAPTURE-uppdateringssats mĂĄste sätta en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC READ-sats mĂĄste läsa frĂĄn en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC-tilldelning av inbyggd IAND, IOR eller IEOR mĂĄste ha tvĂĄ argument vid %L!$OMP ATOMIC-tilldelning av inbyggd mĂĄste vara MIN, MAX, IAND, IOR eller IEOR vid %L!$OMP ATOMIC-tilldelning mĂĄste vara var = var op uttr eller var = uttr op var vid %L!$OMP ATOMIC-tilldelning mĂĄste ha en operator eller inbyggd pĂĄ högersidan vid %L!$OMP ATOMIC-tilldelningsoperator mĂĄste vara binärt +, *, -, /, .AND., .OR., .EQV. eller .NEQV. vid %L!$OMP ATOMIC-inbyggds argument utom ett fĂĄr inte referera ”%s” vid %L!$OMP ATOMIC-inbyggds argument mĂĄste vara skalära vid %L!$OMP ATOMIC-sats mĂĄste sätta en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC var = var op expr är inte matematiskt ekvivalent med var = var op (uttr) vid %L!$OMP DO fĂĄr inte vara en DO WHILE eller DO utan slingstyrning vid %L!$OMP DO-kollapsad slinga formar inte en rektangulär iterationsrymd vid %L!$OMP DO-iterationsvariabel mĂĄste ha typen heltal vid %L!$OMP DO-iterationsvariabel fĂĄr inte vara THREADPRIVATE vid %L!$OMP DO-iterationsvariabel finns i ett annat fall än PRIVATE eller LASTPRIVATE vid %L!$OMP vid %C inleder en kommentarrad eftersom det varken följs av en blank eller en fortsättningsrad”#pragma disinterrupt %s” används inte”%s” är inte en katalog”::” förväntades efter modulnatur vid %C men fanns inte”USE :: module” vid %C# %s %.2f %.2f #include "..." sökning startar här: #include <...> sökning startar här: ! #pragma GCC coprocessor subclass '%c' redan definierat#pragma GCC coprocessor subclass bokstav mĂĄsta vara bland [ABCD]#pragma GCC coprocessor width tar bara 32 eller 64#pragma GCC memregs mĂĄste komma före funktionsdeklarationer#pragma GCC memregs tar ett tal [0..16]#pragma GCC optimize tillĂĄts inte inuti funktioner#pragma GCC optimize string... är felaktigt utformad#pragma GCC option tillĂĄts inte inuti funktioner#pragma GCC target stödjs inte för denna maskin#pragma GCC target sträng... är felaktigt utformad#pragma GCC visibility mĂĄste följas av push eller pop#pragma GCC visibility push() mĂĄste ange default, internal, hidden eller protected#pragma GHS endXXX stämmer inte med föregĂĄende startXXX#pragma GHS endXXXX funnet utan föregĂĄende startXXX#pragma implementation för %qs förekommer efter att filen inkluderats#pragma io_volatile tar bara on eller off#pragma message: %s#pragma pack (pop) pĂĄträffat utan matchande #pragma pack (push)#pragma pack har ingen effekt med -fpack-struct - ignoreras#pragma pack(pop, %E) pĂĄträffat utan matchande #pragma pack(push, %E)#pragma redefine_extname ignoreras pĂĄ grund av konflikt med __asm__-deklaration#pragma redefine_extname ignoreras pĂĄ grund av konflikt med tidigare #pragma redefine_extname#pragma redefine_extname ignoreras eftersom det stĂĄr i konflikt med tidigare namnbyte#pragma vtable stödjs inte längre$-beskrivare vid %L$-operandnummer använt efter format utan operandnummer$ mĂĄste vara den sista specificeraren i formatet vid %L%+D orsakar en sektionstypkonflikt%+D orsakar en sektionstypkonflikt med %D%<#pragma GCC optimize (sträng [,sträng]...)%> har inte en avslutande %<)%>%<#pragma GCC optimize%> är inte en sträng eller ett tal%<#pragma GCC option%> är inte en sträng%<#pragma GCC pch_preprocess%> mĂĄste komma först%<#pragma GCC pop_options%> utan en motsvarande %<#pragma GCC push_options%>%<#pragma GCC target (sträng [,sträng]...)%> har inte en avslutande %<)%>%<#pragma STDC FLOAT_CONST_DECIMAL64%> stödjs inte för C++%<#pragma STDC FLOAT_CONST_DECIMAL64%> stödjs inte pĂĄ denna mĂĄlarkitektur%<#pragma align%> mĂĄste förekomma före deklarationen av %D, ignorerar%<#pragma omp atomic capture%> använder tvĂĄ olika uttryck till minne%<#pragma omp atomic capture%> använder tvĂĄ olika variabler till minne%<#pragma omp atomic update%> använder tvĂĄ olika uttryck för minne%<#pragma omp atomic update%> använder tvĂĄ olika variabler till minne%<#pragma omp barrier%> fĂĄr bara användas i sammansatta satser%<#pragma omp cancel for%> inuti % for-konstruktion%<#pragma omp cancel for%> inuti % for-konstruktion%<#pragma omp cancel mĂĄste ange en av klausulerna %, %, % eller %%<#pragma omp cancel sections%> inuti %-sektionskonstruktion%<#pragma omp cancel%> fĂĄr bara användas i sammansatta satser%<#pragma omp cancellation point mĂĄste ange en av klausulerna %, %, % eller %%<#pragma omp cancellation point%> fĂĄr bara användas i sammansatta satser%<#pragma omp declare reduction%>-kombinerare refererar variabeln %qD som inte är varken % eller %%<#pragma omp declare reduction%>-initierare refererar till variabeln %qD som inte är varken % eller %%<#pragma omp declare reduction%> inte pĂĄ file- eller blockräckvidd%<#pragma omp declare simd%> kan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion%<#pragma omp declare simd%> mĂĄste följas av en funktionsdeklaration eller -definition%<#pragma omp declare simd%> mĂĄste följas av funktionsdeklaration eller -definition eller en annan %<#pragma omp declare simd%>%<#pragma omp declare simd%> som inte omedelbart följs av en funktionsdefinition eller -deklaration%<#pragma omp declare simd%> som inte omedelbart flöjs av en ensam funktionsdeklaration eller -definition%<#pragma omp declare simd%> som inte omedelbart följs av en funktionsdeklaration eller -definiton%<#pragma omp end declare target%> utan en motsvarande %<#pragma omp declare target%>%<#pragma omp flush%> fĂĄr bara användas i sammansatta satser%<#pragma omp section%> fĂĄr bara användas i %<#pragma omp sections%>-konstruktion%<#pragma omp simd%> använd med klassiterationsvariabeln %qE%<#pragma omp target update mĂĄste innehĂĄlla ĂĄtminstone en %- eller %-klausul%<#pragma omp target update%> fĂĄr bara användas i sammansatta satser%<#pragma omp taskwait%> fĂĄr bara användas i sammansatta satser%<#pragma omp taskyield%> fĂĄr bara användas i sammansatta satser%<#pragma simd%> mĂĄste vara inuti en funktion%<#pragma%> är inte tillĂĄtet här%<%%%>-begränsning använd med sista operand%<%%%c%> ger bara de sista tvĂĄ siffrorna i ĂĄrtalet%<%%%c%> ger bara de sista 2 siffrorna i ĂĄrtalet i vissa lokaler%<%D::%D%> är inte en klassmedlem%<%D::%D%> är inte en medlem av %qT%<%E::%E%> har inte deklarerats%<%E::%E%> är inte en klass eller namnrymd%<%E::%E%> är inte en klass, namnrymd eller uppräkning%<%E::%E%> är inte en typattributdirektivet %<%E::%E%> med räckvidd ignorerat%<%T::%D%> namnger konstruerare i %qT%<%T::%D%> namnger en destruerare%<%T::%D%> namnger konstrueraren, inte typen%<%T::%E%> har inte deklarerats%<%T::%E%> är inte en typ%<%T::%E%> namnger konstrueraren, inte typen%<%c%E%> finns inte bland protokoll%<%s %E%> deklarerad inuti parameterlista%<%s %s%>-konstruktion inte nära nästad inuti %qs%<%s%> är okänd%<&%>-begränsning använd utan registerklass%<-%s%> stĂĄr i konflikt med andra arkitekturflaggor, som anger en %s-processor%<-femit-struct-debug-detailed=kat:...%> mĂĄste tillĂĄta ĂĄtminstone sĂĄ mycket som %<-femit-struct-debug-detailed=ind:...%>%<-fobjc-abi-version%> ≥ 2 stödjs inte för %<-m32%>-mĂĄl med %<-fnext-runtime%>%<-fobjc-abi-version%> ≥ 2 mĂĄste användas för %<-m64%>-mĂĄl med %<-fnext-runtime%>%<-fobjc-exceptions%> behövs för att aktivera Objective-C undantagssyntax%<-fobjc-gc%> ignoreras för %<-fgnu-runtime%>%<-fobjc-sjlj-exceptions%> ignoreras för %<-fgnu-runtime%>%<-fobjc-sjlj-exceptions%> ignoreras för %<-fnext-runtime%> när %<-fobj-abi-version%> >= 2%<-fobjc-sjlj-exceptions%> är det enda undantagssystem som stödjs för %<-fnext-runtime%> med %<-fobjc-abi-version%> < 2%<-fsplit-stack%> stödjs för närvarande bara pĂĄ GNU/Linux%<-fsplit-stack%> stödjs inte av denna kompilatorkonfiguration%<-fsplit-stack%> kräver assemblerstöd för CFI-direktiv%<-gdwarf%s%> är tvetydigt; använd %<-gdwarf-%s%> för DWARF-version eller %<-gdwarf -g%s%> för felsökningsnivĂĄ%<-gnat%> felstavat som %<-gant%>%<-march=%s%> är inte kompatibelt med det valda ABI:et%<-mcpu=%> bör undvikas. Använd %<-mtune=%> eller %<-march=%> istället.%<-mdynamic-no-pic%> ĂĄsidosätter %<-fpic%>, %<-fPIC%>, %<-fpie%> eller %<-fPIE%>%<-mfused-madd%> bör undvikas, använd %<-ffp-contract=%> istället%<-mgp32%> och %<-mfp64%> kan bara kombineras om mĂĄlet stödjer instruktionerna mfhc1 och mthc1%<-mgp32%> och %<-mfp64%> kan endast kombineras när ABI:et o32 används%<-mgp32%> använt med ett 64-bitars ABI%<-mgp64%> använt med ett 32-bitars ABI%<-mgp64%> använt med en 32-bitarsprocessor%<-mintel-syntax%> och %<-mno-intel-syntex%> bör undvikas. Använd %<-masm=intel%> och %<-masm=att%> istället%<-mips3d%> kräver %<-mpaired-single%>%<-mno-gpopt%> behöver %<-mexplicit-relocs%>%<-msse5%> togs bort%<-x %s%> efter sista indatafilen har ingen effekt%<...%> som argument.)%<...%>-hanterare mĂĄste vara den sista hanteraren i sitt try-block%<...%> har ogiltigt operandnummer%<::%D%> har inte deklarerats%<::%E%> har inte deklarerats%<::%E%> är inte en klass eller namnrymd%<::%E%> är inte en klass, namnrymd eller uppräkning%<::%E%> är inte en typ%<::main%> mĂĄste returnera %%<<:%> är en alternativ stavning av %<[%>. Lägg in mellanrum mellan %<<%> och %<::%>%<<::%> kan inte inleda en argumentlista till en malloperatorn %<>>%> hanteras som tvĂĄ högervinkelparenteser i C++11%<>>%> skulle vara %<> >%> inuti en nästad mallargumentlista%<@dynamic%> finns inte i Objective-C 1.0%<@dynamic%> som inte är i @implementation-kontext%<@dynamic%> kräver klassens @interface för att vara tillgänglig%<@encode%> mĂĄste ange en typ som ett argument%<@end%> saknas i implementationskontext%<@end%> mĂĄste stĂĄ i @implementation-kontext%<@optional%> är endast tillĂĄtet i @protocol-sammanhang%<@optional%> finns inte i Objective-C 1.0%<@package%> är inte tillgängligt i Objective-C 1.0% har för närvarande samma effekt som %<@public%>% finns inte i Objective-C 1.0%<@required%> är endast tillĂĄtet i @protocol-sammanhang%<@required%> finns inte i Objective-C 1.0argumentet %<@synchronized%> är inte ett objekt%<@synthesize%> kan inte användas i kategorier%<@synthesize%> finns inte i Objective-C 1.0%<@synthesize%> som inte är i @implementation-kontext%<@synthesize%> kräver klassens @interface för att vara tillgänglig%<@throw%> (rethrow) använd utanför ett @catch-blockargumentet till %<@throw%> är inte ett objekt%<@try%> utan %<@catch%> eller %<@finally%>%<[%E] =%> använt i en designerad initierare i GNU-stil för klassen %qT%<[*]%> är inte tillĂĄtet annat än inom en funktionsprototyp%<[*]%> är inte i en deklaration%<_Alignas%>-specificerare kan inte reducera justeringen hos %qE%<_Alignas%>-specificerare kan inte reducera justeringen för namnlösa fält%<_Atomic%> tillämpat pĂĄ en kvalificerad typ%<_Atomic%> i Objective-C%<_Atomic%> med OpenMP%<_Atomic%>-kvalificerad vektortyp%<_Atomic%>-kvalificerad funktionstyp%<_Cilk_spawn%> kan endast anges inuti en funktion%<_Cilk_spawn%> mĂĄste följas av ett uttryck%<_Generic%>-association har funktionstyp%<_Generic%>-association har ofullständig typ%<_Generic%>-association har variabel längdtyp%<_Generic%>-väljare av typ %qT är inte kompatiblem med nĂĄgon association%<_Generic%> anger tvĂĄ kompatibla typer%<_Generic%>-väljare matchar flera associationer%<_Noreturn%> i tom deklaration%<_Sat%> används utan %<_Fract%> eller %<_Accum%>attributet %<__BELOW100__%> är bara tillämpbart pĂĄ variabler%<__alignof%> tillämpad pĂĄ ett bitfält%<__auto_type%> i tom deklaration%<__auto_type%> kan endast användas med en ensam deklarerare%<__auto_type%> behöver en enkel identifierare som deklarerare%<__auto_type%> behöver en initierad datadeklaration%<__auto_type%> använd med en bitfältsinitierare%<__builtin_complex%>-operand är inte av en reel binär flyttalstypoperander till %<__builtin_complex%> av olika typerandra argumentet till %<__builtin_longjmp%> mĂĄste vara 1%<__builtin_next_arg%> anropad utan argument%<__gcc_host_wide_int__%> är inte definierad som % eller %%<__gcc_host_wide_int__%> är inte definierad som en typ%<__int128%> stödjs inte pĂĄ denna mĂĄlarkitektur%<__int128%> stödjs inte för denna mĂĄlarkitektur%<__label__%> som inte inleder ett block%<__thread%> före %%<__thread%> före %%<__thread%> före %qD%<__transaction_atomic%> utan stöd för transaktionsminne aktiverat%<__transaction_cancel%> inte inom %<__transaction_atomic%>%<__transaction_cancel%> inom en %<__transaction_relaxed%>%<__transaction_cancel%> utan att stöd för transaktionsminne är aktiverat%<__transaction_relaxed%> utan stöd för transaktionsminne aktiverat%-klausuls justeringsuttryck mĂĄste vara heltal%-klausulens justeringsuttryck mĂĄste vara ett positivt konstant heltalsuttryck% mellan ömsesidigt uteslutande likhetstester är alltid 0%-operandbegränsningar inkompatibla med operandstorlek%-operand har omöjliga begränsningar%-operand kräver omöjlig omlastning%-specificerare är inte tillĂĄtna pĂĄ icke-statiska datamedlemmarattributet % stĂĄr i konflikt med attributet %attribut % stĂĄr i konflikt med attributet %% kan vara osäkert för Objective-C-objekt, ange uttryckligen om du behöver det% kan endast anges för variabler eller funktionsdeklarationer% ändrar betydelse i C++11; var god ta bort det% tom deklaration pĂĄ filnivĂĄen %-parameter är tillĂĄten i detta sammanhang% har ingen effekt pĂĄ icke-avbrotts-funktioner% innehĂĄller bara 2 byte adress%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i fältdeklaration%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i parameterdeklaration%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i typdeklaration%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i variabeldeklaration% kan inte förekomma i en typedef-deklaration% kan inte användas för typdeklarationer%-konstrueraren för unionen %qT mĂĄste initiera precis en icke statisk datamedlem% är inte tillĂĄtet i deklaration av vänmallspecialisering %qD% behövs för initiering i klassen av statisk datamedlem med icke heltaltyp %q#Dattributet % gäller bara för Objective-C-objekt% är inte känt som en FPU-instruktion% behöver argument%-etikett som inte ligger i en switch-sats%-id mĂĄste vara ett heltal% styckesstorleksuttryck mĂĄste vara heltal% är inte tillĂĄtet med -fno-rtti% utan ett föregĂĄende %% är deklarerad i %-slingas initiala deklaration% kan endast anges för konstruerareattributet % har bara effekt pĂĄ publika objektattributdirektivet % ignorerat%-slinga med startdeklaration är endast tillĂĄtet i C99- och C11-läge% kan endast anges inuti en klass% använd utanför en klassattribut % finns pĂĄ %q+Den %-klausul är inkomatibel med %% i tom deklaration% är inte tillĂĄtet i deklaration av vänmallspecialisering %qD% angivet för vänklassdeklarationspecificerare % är ogiltig för funktionen %qs deklarerad utanför global räckvidd%-klausulens steguttryck mĂĄste vara heltal% är inte definierad som en typ% är inte definierad som en typ% är för lĂĄngt för GCC% ogiltig för %qs% och % angivna tillsammans för %qs% ogiltig för %qs% eller % ogiltig för %qs% eller % angiven med char för %qs%-switch-uttryck konverteras inte till % i ISO C%, %, % eller % ogiltig för %qs% deklarerad %<_Noreturn%>% bör undvikas och kommer tas bort i en framtida utgĂĄva%-definition är inte tillĂĄten här% tar inte argument%-funktion returneraren %-klausul fĂĄr inte användas tillsammans med %%-uttryck mĂĄste vara heltal%-värdet mĂĄste vara positivt%-värdet mĂĄste vara positivt% mĂĄste returnera typ %qT% tar typen %qT som första parameter% fĂĄr inte returnera NULL om den inte är deklarerad % (eller -fcheck-new är aktivt)% mĂĄste returnera typ %qT% tar typen % (%qT) som första parameter%% i %<%E %s %E%>% i %<%E%s%>% i %<%s%E%>% skall returnera en referens till %<*this%>%% i %<%E[%E]%>% mellan omatchade olikhetstester är alltid 1attributet % stĂĄr i konflikt med attributet %attributet % stĂĄr i konflikt med attributet %% i tom deklaration pĂĄ filnivĂĄattributet % stĂĄr i konflikt med attributet %attributet % är endast giltigt för Objective-C-objekt% med värde i funktion som returnerar void% utan värde i funktion som returnerar icke-void%-klausulens uttryck mĂĄste vara ett positivt konstant heltalsuttryck% ogiltig för %qs% eller % ogiltig för %qs% och % givna tillsammans för %qs% eller % är ogiltigt för %qs%-klausulens uttryck mĂĄste vara ett positivt konstant heltalsuttryck% applicerat pĂĄ ett bitfältargument till % mĂĄste omges av parenteser% fĂĄr inte användas vid definition (till skillnad mot deklaration) av statisk datamedlemspecificerare % är ogiltigt för funktion %qs deklarerad utanför global räckvidd% är deklarerad i %-slingas initiala deklaration% är inte tillgängligt i en statisk medlemsfunktion% kan inte användas i detta sammanhang% fĂĄngades inte för denna lambdafunktion%-uttryck mĂĄste vara heltal%-värdet mĂĄste vara positivt% %qD är inte fil-, namnrymds- eller blockräckviddsvariabel% %qE-direktiv inte i %qT-definition% %qE har ofullständig typ%-funktionsanrop som inte är inuti en yttre transaktion eller %% är inte definierad som en pekartyp% är inte definierad som en typ% ignorerades i denna deklaration%-operator fĂĄr inte finnas i ett konstantuttryck% namnger %q#T, som inte är en klassmall% namnger %q#T, som inte är en typ% applicerat pĂĄ ett bitfält% är deklarerad i %-slingas initiala deklaration% används i en funktion med fixt antal parametrar% utanför klassdeklaration% anges mer än en gĂĄng i basspecificerade% som enda parameter kan inte kvalificeras% mĂĄste vara den enda parameternattributet % ignorerat för att funktionen är definieradattributet % ignorerat för att variabeln är initieradattributet % skall ĂĄtföljas av ett attribut %%<~auto%> är endast tillgängligt med -std=c++1y eller -std=gnu++1y%D byter namn efter att ha refererats i assemblerkvalificeraren %E ignorerad pĂĄ asm%Kasm är inte tillĂĄtet i en %-funktion%Kförsök att frigöra ett icke-heap-objekt%Kförsök att frigöra ett icke-heap-objekt %qD%Kanrop av %D kan komma att spilla över destinationsbufferten%Kanrop av %D kommer alltid att spilla över destinationsbufferten%Kanrop av %qs deklarerad med attributet error: %s%K anrop av %qs deklarerad med attributet warning: %s%Kförsta argumentet till %D mĂĄste vara en pekare, det andra en heltalskonstant%Kogiltigt användning av %<__builtin_va_arg_pack ()%>%Kogiltigt användning av %<__builtin_va_arg_pack_len ()%>%Ksista argumentet till %D är inte en heltalskonstant mellan 0 och 3%c REDUCTION-variabel ”%s” vid %L mĂĄste vara av numerisk typ, fick %s%d konstruerare hittad %d konstruerare hittade %d destruerare hittad %d destruerare hittade --- 2240,2246 ---- kandidat 1: %q+#F kandidat 2: %q+#F kodgenereringsflaggor som stĂĄr i konflikt används skuggar mallparameter %q+#D!$OMP ATOMIC CAPTURE-fĂĄngstsats mĂĄste läsa frĂĄn en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC CAPTURE-fĂĄngstsats mĂĄste sätta en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC CAPTURE-fĂĄngstsats läser frĂĄn en annan variabel än uppdateringssatsen skriver till vid %L!$OMP ATOMIC CAPTURE-uppdateringssats mĂĄste sätta en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC READ-sats mĂĄste läsa frĂĄn en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC-tilldelning av inbyggd IAND, IOR eller IEOR mĂĄste ha tvĂĄ argument vid %L!$OMP ATOMIC-tilldelning av inbyggd mĂĄste vara MIN, MAX, IAND, IOR eller IEOR vid %L!$OMP ATOMIC-tilldelning mĂĄste vara var = var op uttr eller var = uttr op var vid %L!$OMP ATOMIC-tilldelning mĂĄste ha en operator eller inbyggd pĂĄ högersidan vid %L!$OMP ATOMIC-tilldelningsoperator mĂĄste vara binärt +, *, -, /, .AND., .OR., .EQV. eller .NEQV. vid %L!$OMP ATOMIC-inbyggds argument utom ett fĂĄr inte referera ”%s” vid %L!$OMP ATOMIC-inbyggds argument mĂĄste vara skalära vid %L!$OMP ATOMIC-sats mĂĄste sätta en skalär variabel av inbyggd typ vid %L!$OMP ATOMIC var = var op expr är inte matematiskt ekvivalent med var = var op (uttr) vid %L!$OMP DO fĂĄr inte vara en DO WHILE eller DO utan slingstyrning vid %L!$OMP DO-kollapsad slinga formar inte en rektangulär iterationsrymd vid %L!$OMP DO-iterationsvariabel mĂĄste ha typen heltal vid %L!$OMP DO-iterationsvariabel fĂĄr inte vara THREADPRIVATE vid %L!$OMP DO-iterationsvariabel finns i ett annat fall än PRIVATE eller LASTPRIVATE vid %L!$OMP vid %C inleder en kommentarrad eftersom det varken följs av en blank eller en fortsättningsrad”#pragma disinterrupt %s” används inte”%s” är inte en katalog”::” förväntades efter modulnatur vid %C men fanns inte”USE :: module” vid %C# %s %.2f %.2f #include "..." sökning startar här: #include <...> sökning startar här: ! #pragma GCC coprocessor subclass '%c' redan definierat#pragma GCC coprocessor subclass bokstav mĂĄsta vara bland [ABCD]#pragma GCC coprocessor width tar bara 32 eller 64#pragma GCC memregs mĂĄste komma före funktionsdeklarationer#pragma GCC memregs tar ett tal [0..16]#pragma GCC optimize tillĂĄts inte inuti funktioner#pragma GCC optimize string... är felaktigt utformad#pragma GCC option tillĂĄts inte inuti funktioner#pragma GCC target stödjs inte för denna maskin#pragma GCC target sträng... är felaktigt utformad#pragma GCC visibility mĂĄste följas av push eller pop#pragma GCC visibility push() mĂĄste ange default, internal, hidden eller protected#pragma GHS endXXX stämmer inte med föregĂĄende startXXX#pragma GHS endXXXX funnet utan föregĂĄende startXXX#pragma implementation för %qs förekommer efter att filen inkluderats#pragma io_volatile tar bara on eller off#pragma message: %s#pragma pack (pop) pĂĄträffat utan matchande #pragma pack (push)#pragma pack har ingen effekt med -fpack-struct - ignoreras#pragma pack(pop, %E) pĂĄträffat utan matchande #pragma pack(push, %E)#pragma redefine_extname ignoreras pĂĄ grund av konflikt med __asm__-deklaration#pragma redefine_extname ignoreras pĂĄ grund av konflikt med tidigare #pragma redefine_extname#pragma redefine_extname ignoreras eftersom det stĂĄr i konflikt med tidigare namnbyte#pragma vtable stödjs inte längre$-beskrivare vid %L$-operandnummer använt efter format utan operandnummer$ mĂĄste vara den sista specificeraren i formatet vid %L%+D orsakar en sektionstypkonflikt%+D orsakar en sektionstypkonflikt med %D%<#pragma GCC optimize (sträng [,sträng]...)%> har inte en avslutande %<)%>%<#pragma GCC optimize%> är inte en sträng eller ett tal%<#pragma GCC option%> är inte en sträng%<#pragma GCC pch_preprocess%> mĂĄste komma först%<#pragma GCC pop_options%> utan en motsvarande %<#pragma GCC push_options%>%<#pragma GCC target (sträng [,sträng]...)%> har inte en avslutande %<)%>%<#pragma STDC FLOAT_CONST_DECIMAL64%> stödjs inte för C++%<#pragma STDC FLOAT_CONST_DECIMAL64%> stödjs inte pĂĄ denna mĂĄlarkitektur%<#pragma align%> mĂĄste förekomma före deklarationen av %D, ignorerar%<#pragma omp atomic capture%> använder tvĂĄ olika uttryck till minne%<#pragma omp atomic capture%> använder tvĂĄ olika variabler till minne%<#pragma omp atomic update%> använder tvĂĄ olika uttryck för minne%<#pragma omp atomic update%> använder tvĂĄ olika variabler till minne%<#pragma omp barrier%> fĂĄr bara användas i sammansatta satser%<#pragma omp cancel for%> inuti % for-konstruktion%<#pragma omp cancel for%> inuti % for-konstruktion%<#pragma omp cancel mĂĄste ange en av klausulerna %, %, % eller %%<#pragma omp cancel sections%> inuti %-sektionskonstruktion%<#pragma omp cancel%> fĂĄr bara användas i sammansatta satser%<#pragma omp cancellation point mĂĄste ange en av klausulerna %, %, % eller %%<#pragma omp cancellation point%> fĂĄr bara användas i sammansatta satser%<#pragma omp declare reduction%>-kombinerare refererar variabeln %qD som inte är varken % eller %%<#pragma omp declare reduction%>-initierare refererar till variabeln %qD som inte är varken % eller %%<#pragma omp declare reduction%> inte pĂĄ file- eller blockräckvidd%<#pragma omp declare simd%> kan inte användas i samma funktion som är markerad som en Cilk Plus SIMD-aktiverad funktion%<#pragma omp declare simd%> mĂĄste följas av en funktionsdeklaration eller -definition%<#pragma omp declare simd%> mĂĄste följas av funktionsdeklaration eller -definition eller en annan %<#pragma omp declare simd%>%<#pragma omp declare simd%> som inte omedelbart följs av en funktionsdefinition eller -deklaration%<#pragma omp declare simd%> som inte omedelbart flöjs av en ensam funktionsdeklaration eller -definition%<#pragma omp declare simd%> som inte omedelbart följs av en funktionsdeklaration eller -definiton%<#pragma omp end declare target%> utan en motsvarande %<#pragma omp declare target%>%<#pragma omp flush%> fĂĄr bara användas i sammansatta satser%<#pragma omp section%> fĂĄr bara användas i %<#pragma omp sections%>-konstruktion%<#pragma omp simd%> använd med klassiterationsvariabeln %qE%<#pragma omp target update mĂĄste innehĂĄlla ĂĄtminstone en %- eller %-klausul%<#pragma omp target update%> fĂĄr bara användas i sammansatta satser%<#pragma omp taskwait%> fĂĄr bara användas i sammansatta satser%<#pragma omp taskyield%> fĂĄr bara användas i sammansatta satser%<#pragma simd%> mĂĄste vara inuti en funktion%<#pragma%> är inte tillĂĄtet här%<%%%>-begränsning använd med sista operand%<%%%c%> ger bara de sista tvĂĄ siffrorna i ĂĄrtalet%<%%%c%> ger bara de sista 2 siffrorna i ĂĄrtalet i vissa lokaler%<%D::%D%> är inte en klassmedlem%<%D::%D%> är inte en medlem av %qT%<%E::%E%> har inte deklarerats%<%E::%E%> är inte en klass eller namnrymd%<%E::%E%> är inte en klass, namnrymd eller uppräkning%<%E::%E%> är inte en typattributdirektivet %<%E::%E%> med räckvidd ignorerat%<%T::%D%> namnger konstruerare i %qT%<%T::%D%> namnger en destruerare%<%T::%D%> namnger konstrueraren, inte typen%<%T::%E%> har inte deklarerats%<%T::%E%> är inte en typ%<%T::%E%> namnger konstrueraren, inte typen%<%c%E%> finns inte bland protokoll%<%s %E%> deklarerad inuti parameterlista%<%s %s%>-konstruktion inte nära nästad inuti %qs%<%s%> är okänd%<&%>-begränsning använd utan registerklass%<-%s%> stĂĄr i konflikt med andra arkitekturflaggor, som anger en %s-processor%<-femit-struct-debug-detailed=kat:...%> mĂĄste tillĂĄta ĂĄtminstone sĂĄ mycket som %<-femit-struct-debug-detailed=ind:...%>%<-fobjc-abi-version%> ≥ 2 stödjs inte för %<-m32%>-mĂĄl med %<-fnext-runtime%>%<-fobjc-abi-version%> ≥ 2 mĂĄste användas för %<-m64%>-mĂĄl med %<-fnext-runtime%>%<-fobjc-exceptions%> behövs för att aktivera Objective-C undantagssyntax%<-fobjc-gc%> ignoreras för %<-fgnu-runtime%>%<-fobjc-sjlj-exceptions%> ignoreras för %<-fgnu-runtime%>%<-fobjc-sjlj-exceptions%> ignoreras för %<-fnext-runtime%> när %<-fobj-abi-version%> >= 2%<-fobjc-sjlj-exceptions%> är det enda undantagssystem som stödjs för %<-fnext-runtime%> med %<-fobjc-abi-version%> < 2%<-fsplit-stack%> stödjs för närvarande bara pĂĄ GNU/Linux%<-fsplit-stack%> stödjs inte av denna kompilatorkonfiguration%<-fsplit-stack%> kräver assemblerstöd för CFI-direktiv%<-gdwarf%s%> är tvetydigt; använd %<-gdwarf-%s%> för DWARF-version eller %<-gdwarf -g%s%> för felsökningsnivĂĄ%<-gnat%> felstavat som %<-gant%>%<-march=%s%> är inte kompatibelt med det valda ABI:et%<-mcpu=%> bör undvikas. Använd %<-mtune=%> eller %<-march=%> istället.%<-mdynamic-no-pic%> ĂĄsidosätter %<-fpic%>, %<-fPIC%>, %<-fpie%> eller %<-fPIE%>%<-mfused-madd%> bör undvikas, använd %<-ffp-contract=%> istället%<-mgp32%> och %<-mfp64%> kan bara kombineras om mĂĄlet stödjer instruktionerna mfhc1 och mthc1%<-mgp32%> och %<-mfp64%> kan endast kombineras när ABI:et o32 används%<-mgp32%> använt med ett 64-bitars ABI%<-mgp64%> använt med ett 32-bitars ABI%<-mgp64%> använt med en 32-bitarsprocessor%<-mintel-syntax%> och %<-mno-intel-syntex%> bör undvikas. Använd %<-masm=intel%> och %<-masm=att%> istället%<-mips3d%> kräver %<-mpaired-single%>%<-mno-gpopt%> behöver %<-mexplicit-relocs%>%<-msse5%> togs bort%<-x %s%> efter sista indatafilen har ingen effekt%<...%> som argument.)%<...%>-hanterare mĂĄste vara den sista hanteraren i sitt try-block%<...%> har ogiltigt operandnummer%<::%D%> har inte deklarerats%<::%E%> har inte deklarerats%<::%E%> är inte en klass eller namnrymd%<::%E%> är inte en klass, namnrymd eller uppräkning%<::%E%> är inte en typ%<::main%> mĂĄste returnera %%<<:%> är en alternativ stavning av %<[%>. Lägg in mellanrum mellan %<<%> och %<::%>%<<::%> kan inte inleda en argumentlista till en malloperatorn %<>>%> hanteras som tvĂĄ högervinkelparenteser i C++11%<>>%> skulle vara %<> >%> inuti en nästad mallargumentlista%<@dynamic%> finns inte i Objective-C 1.0%<@dynamic%> som inte är i @implementation-kontext%<@dynamic%> kräver klassens @interface för att vara tillgänglig%<@encode%> mĂĄste ange en typ som ett argument%<@end%> saknas i implementationskontext%<@end%> mĂĄste stĂĄ i @implementation-kontext%<@optional%> är endast tillĂĄtet i @protocol-sammanhang%<@optional%> finns inte i Objective-C 1.0%<@package%> är inte tillgängligt i Objective-C 1.0% har för närvarande samma effekt som %<@public%>% finns inte i Objective-C 1.0%<@required%> är endast tillĂĄtet i @protocol-sammanhang%<@required%> finns inte i Objective-C 1.0argumentet %<@synchronized%> är inte ett objekt%<@synthesize%> kan inte användas i kategorier%<@synthesize%> finns inte i Objective-C 1.0%<@synthesize%> som inte är i @implementation-kontext%<@synthesize%> kräver klassens @interface för att vara tillgänglig%<@throw%> (rethrow) använd utanför ett @catch-blockargumentet till %<@throw%> är inte ett objekt%<@try%> utan %<@catch%> eller %<@finally%>%<[%E] =%> använt i en designerad initierare i GNU-stil för klassen %qT%<[*]%> är inte tillĂĄtet annat än inom en funktionsprototyp%<[*]%> är inte i en deklaration%<_Alignas%>-specificerare kan inte reducera justeringen hos %qE%<_Alignas%>-specificerare kan inte reducera justeringen för namnlösa fält%<_Atomic%> tillämpat pĂĄ en kvalificerad typ%<_Atomic%> i Objective-C%<_Atomic%> med OpenMP%<_Atomic%>-kvalificerad vektortyp%<_Atomic%>-kvalificerad funktionstyp%<_Cilk_spawn%> kan endast anges inuti en funktion%<_Cilk_spawn%> mĂĄste följas av ett uttryck%<_Generic%>-association har funktionstyp%<_Generic%>-association har ofullständig typ%<_Generic%>-association har variabel längdtyp%<_Generic%>-väljare av typ %qT är inte kompatibel med nĂĄgon association%<_Generic%> anger tvĂĄ kompatibla typer%<_Generic%>-väljare matchar flera associationer%<_Noreturn%> i tom deklaration%<_Sat%> används utan %<_Fract%> eller %<_Accum%>attributet %<__BELOW100__%> är bara tillämpbart pĂĄ variabler%<__alignof%> tillämpad pĂĄ ett bitfält%<__auto_type%> i tom deklaration%<__auto_type%> kan endast användas med en ensam deklarerare%<__auto_type%> behöver en enkel identifierare som deklarerare%<__auto_type%> behöver en initierad datadeklaration%<__auto_type%> använd med en bitfältsinitierare%<__builtin_complex%>-operand är inte av en reel binär flyttalstypoperander till %<__builtin_complex%> av olika typerandra argumentet till %<__builtin_longjmp%> mĂĄste vara 1%<__builtin_next_arg%> anropad utan argument%<__gcc_host_wide_int__%> är inte definierad som % eller %%<__gcc_host_wide_int__%> är inte definierad som en typ%<__int128%> stödjs inte pĂĄ denna mĂĄlarkitektur%<__int128%> stödjs inte för denna mĂĄlarkitektur%<__label__%> som inte inleder ett block%<__thread%> före %%<__thread%> före %%<__thread%> före %qD%<__transaction_atomic%> utan stöd för transaktionsminne aktiverat%<__transaction_cancel%> inte inom %<__transaction_atomic%>%<__transaction_cancel%> inom en %<__transaction_relaxed%>%<__transaction_cancel%> utan att stöd för transaktionsminne är aktiverat%<__transaction_relaxed%> utan stöd för transaktionsminne aktiverat%-klausuls justeringsuttryck mĂĄste vara heltal%-klausulens justeringsuttryck mĂĄste vara ett positivt konstant heltalsuttryck% mellan ömsesidigt uteslutande likhetstester är alltid 0%-operandbegränsningar inkompatibla med operandstorlek%-operand har omöjliga begränsningar%-operand kräver omöjlig omlastning%-specificerare är inte tillĂĄtna pĂĄ icke-statiska datamedlemmarattributet % stĂĄr i konflikt med attributet %attribut % stĂĄr i konflikt med attributet %% kan vara osäkert för Objective-C-objekt, ange uttryckligen om du behöver det% kan endast anges för variabler eller funktionsdeklarationer% ändrar betydelse i C++11; var god ta bort det% tom deklaration pĂĄ filnivĂĄen %-parameter är tillĂĄten i detta sammanhang% har ingen effekt pĂĄ icke-avbrotts-funktioner% innehĂĄller bara 2 byte adress%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i fältdeklaration%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i parameterdeklaration%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i typdeklaration%- och %-funktionsspecificerare pĂĄ %qD är ogiltiga i variabeldeklaration% kan inte förekomma i en typedef-deklaration% kan inte användas för typdeklarationer%-konstrueraren för unionen %qT mĂĄste initiera precis en icke statisk datamedlem% är inte tillĂĄtet i deklaration av vänmallspecialisering %qD% behövs för initiering i klassen av statisk datamedlem med icke heltaltyp %q#Dattributet % gäller bara för Objective-C-objekt% är inte känt som en FPU-instruktion% behöver argument%-etikett som inte ligger i en switch-sats%-id mĂĄste vara ett heltal% styckesstorleksuttryck mĂĄste vara heltal% är inte tillĂĄtet med -fno-rtti% utan ett föregĂĄende %% är deklarerad i %-slingas initiala deklaration% kan endast anges för konstruerareattributet % har bara effekt pĂĄ publika objektattributdirektivet % ignorerat%-slinga med startdeklaration är endast tillĂĄtet i C99- och C11-läge% kan endast anges inuti en klass% använd utanför en klassattribut % finns pĂĄ %q+Den %-klausul är inkomatibel med %% i tom deklaration% är inte tillĂĄtet i deklaration av vänmallspecialisering %qD% angivet för vänklassdeklarationspecificerare % är ogiltig för funktionen %qs deklarerad utanför global räckvidd%-klausulens steguttryck mĂĄste vara heltal% är inte definierad som en typ% är inte definierad som en typ% är för lĂĄngt för GCC% ogiltig för %qs% och % angivna tillsammans för %qs% ogiltig för %qs% eller % ogiltig för %qs% eller % angiven med char för %qs%-switch-uttryck konverteras inte till % i ISO C%, %, % eller % ogiltig för %qs% deklarerad %<_Noreturn%>% bör undvikas och kommer tas bort i en framtida utgĂĄva%-definition är inte tillĂĄten här% tar inte argument%-funktion returneraren %-klausul fĂĄr inte användas tillsammans med %%-uttryck mĂĄste vara heltal%-värdet mĂĄste vara positivt%-värdet mĂĄste vara positivt% mĂĄste returnera typ %qT% tar typen %qT som första parameter% fĂĄr inte returnera NULL om den inte är deklarerad % (eller -fcheck-new är aktivt)% mĂĄste returnera typ %qT% tar typen % (%qT) som första parameter%% i %<%E %s %E%>% i %<%E%s%>% i %<%s%E%>% skall returnera en referens till %<*this%>%% i %<%E[%E]%>% mellan omatchade olikhetstester är alltid 1attributet % stĂĄr i konflikt med attributet %attributet % stĂĄr i konflikt med attributet %% i tom deklaration pĂĄ filnivĂĄattributet % stĂĄr i konflikt med attributet %attributet % är endast giltigt för Objective-C-objekt% med värde i funktion som returnerar void% utan värde i funktion som returnerar icke-void%-klausulens uttryck mĂĄste vara ett positivt konstant heltalsuttryck% ogiltig för %qs% eller % ogiltig för %qs% och % givna tillsammans för %qs% eller % är ogiltigt för %qs%-klausulens uttryck mĂĄste vara ett positivt konstant heltalsuttryck% applicerat pĂĄ ett bitfältargument till % mĂĄste omges av parenteser% fĂĄr inte användas vid definition (till skillnad mot deklaration) av statisk datamedlemspecificerare % är ogiltigt för funktion %qs deklarerad utanför global räckvidd% är deklarerad i %-slingas initiala deklaration% är inte tillgängligt i en statisk medlemsfunktion% kan inte användas i detta sammanhang% fĂĄngades inte för denna lambdafunktion%-uttryck mĂĄste vara heltal%-värdet mĂĄste vara positivt% %qD är inte fil-, namnrymds- eller blockräckviddsvariabel% %qE-direktiv inte i %qT-definition% %qE har ofullständig typ%-funktionsanrop som inte är inuti en yttre transaktion eller %% är inte definierad som en pekartyp% är inte definierad som en typ% ignorerades i denna deklaration%-operator fĂĄr inte finnas i ett konstantuttryck% namnger %q#T, som inte är en klassmall% namnger %q#T, som inte är en typ% applicerat pĂĄ ett bitfält% är deklarerad i %-slingas initiala deklaration% används i en funktion med fixt antal parametrar% utanför klassdeklaration% anges mer än en gĂĄng i basspecificerade% som enda parameter kan inte kvalificeras% mĂĄste vara den enda parameternattributet % ignorerat för att funktionen är definieradattributet % ignorerat för att variabeln är initieradattributet % skall ĂĄtföljas av ett attribut %%<~auto%> är endast tillgängligt med -std=c++1y eller -std=gnu++1y%D byter namn efter att ha refererats i assemblerkvalificeraren %E ignorerad pĂĄ asm%Kasm är inte tillĂĄtet i en %-funktion%Kförsök att frigöra ett icke-heap-objekt%Kförsök att frigöra ett icke-heap-objekt %qD%Kanrop av %D kan komma att spilla över destinationsbufferten%Kanrop av %D kommer alltid att spilla över destinationsbufferten%Kanrop av %qs deklarerad med attributet error: %s%K anrop av %qs deklarerad med attributet warning: %s%Kförsta argumentet till %D mĂĄste vara en pekare, det andra en heltalskonstant%Kogiltigt användning av %<__builtin_va_arg_pack ()%>%Kogiltigt användning av %<__builtin_va_arg_pack_len ()%>%Ksista argumentet till %D är inte en heltalskonstant mellan 0 och 3%c REDUCTION-variabel ”%s” vid %L mĂĄste vara av numerisk typ, fick %s%d konstruerare hittad %d konstruerare hittade %d destruerare hittad %d destruerare hittade *************** write_c_file - utdatanamn är %s, prefix *** 2282,2288 **** ({anonym})*** VARNING *** det finns aktiva insticksmoduler, rapportera inte detta som ett fel med mindre än att du kan reproducera det utan att aktivera nĂĄgra insticksmoduler. --CLASSPATH AvrĂĄdes, använd -classpath istället--bootclasspath= Ersätt systemsökvägen--classpath= Ange klassökväg--encoding= Välj inmatningskodning (din lokal används som standard)--extdirs= Ange katalogsökväg för utökningarargumentet %q.*s till --help är tvetydigt, var mer precis--help= Visa beskrivningar av en speciell klass av flaggor. är en eller flera av optimizers, target, warnings, undocumented, params--param = Sätt parameter till värde. Se nedan för en komplett lista pĂĄ parametrargränsen --param inline-unit-growth nĂĄddgränsen --param large-function-growth nĂĄddgränsen --param large-stack-frame-growth nĂĄddgränsen --param max-inline-insns-auto nĂĄddgränsen --param max-inline-insns-single nĂĄdd--resource kräver -o-A= Intyga pĂĄ . Om ”-” sätts före avaktiveras :et till :n-D[=] Definiera ett med som sitt värde. Om bara anges sätts till 1-E eller -x krävs när indata tas frĂĄn standard in-F Lägg till till slutet av huvudramverkets inkluderingssökväg-G Placera globala and statiska data mindre än byte i en speciell sektion (vissa arkitekturer)-I Lägg till till slutet av huvudsökvägen-I- angiven tvĂĄ gĂĄnger-J Lägg MODULE-filer i ”katalog”-MF Skriv beroendeutdata till den angivna filen-MG kan endast används med -M eller -MM-MQ Lägg till ett MAKE-citerat mĂĄl-MT Lägg till ett ociterat mĂĄl-O Sätt optimeringsnivĂĄ till -U Avdefiniera -Werror=%s: ingen flagga -%s-Werror=normalized=: sätt -Wnormalized=nfc-Wformat-contains-nul ignoreras utan -Wformat-Wformat-extra-args ignorerad utan -Wformat-Wformat-nonliteral ignorerad utan -Wformat-Wformat-security ignorerad utan -Wformat-Wformat-y2k ignorerad utan -Wformat-Wformat-zero-length ignoreras utan -Wformat-Wframe-larger-than= Varna om en funktions stackram kräver mer en byte-Wlarger-than= Varna för ett objekt är större än byte-Wnormalized= Varna för icke normaliserade Unicodesträngar-Xbind-now och -Xbind-lazy är inkompatibla-aux-info Generera deklarationsinfo till -bundle är inte tillĂĄten med -dynamiclib-bundle_loader är inte tillĂĄten med -dynamiclib-c eller -S krävs för Ada-c krävs för gnat2scil-c krävs för gnat2why-client_name är inte tillĂĄten med -dynamiclib-current_version är bara tillĂĄten med -dynamiclib-d SlĂĄ pĂĄ dumpning frĂĄn specifika pass i kompilatorn-dumpbase Ange basfilnamn att användas för dumpar-dumpdir Ange katalognamn att användas för dumpar-f%s och -msdata=%s är inkompatibla-f%s ignoreras för mĂĄlet (all kod är positionsoberoende)-f%s stödjs inte med CONST16-instruktioner-f%s stödjs inte: ignoreras-f%sleading-underscore stödjs inte pĂĄ denna mĂĄlmaskin-fPIC och -fpic stödjs inte i denna konfiguration-fPIC och -mcall-%s är inkompatibla-fPIC ignoreras för mĂĄlet (all kod är positionsoberoende)-fPIC stödjs inte-fPIC/-fpic stödjs inte av denna mĂĄlarkitektur-fPIE stödjs inte-fabi-version=6 (eller =0) undviker detta fel med en ändring av manglingen-fada-spec-parent=unit Skriv ut Ada-specifikationer som barnenheter till den givna föräldern-falign-labels=%d stödjs ej-falign-loops=%d stödjs ej-fassociative-math avslagen, andra flaggor gĂĄr före-fblas-matmul-limit= Storlek pĂĄ den minsta matris för vilken matmul kommer använda BLAS-fcall-saved- Markera att bevaras mellan funktioner-fcall-saved-REG stödjs inte för utregister-fcall-used- Markera att förstörs av funktionsanrop-fcheck=[...] Ange vilka körtidskontroller som skall utföras-fcilkplus mĂĄste vara aktiverat för att använda %<_Cilk_spawn%>-fcilkplus mĂĄste vara aktiverat för att använda %<_Cilk_sync%>-fcoarray=[...] Ange vilken co-vektorsparallellisering som skall användas-fcompare-debug[=] Kompilera med och utan t.ex. -gtoggle, och jämför slutinstruktionsdumpen-fconst-string-class= Använd klassen för konstanta strängar-fconstexpr-depth= Ange maximalt rekursionsdjup för konstantuttryck-fdata-sections stödjs inte för denna mĂĄlarkitektur-fdbg-cnt=%s-fdbg-cnt=:[,:,...] Sätt gränsen för felsökningsräknare. -fdeduce-init-list aktivera härledning av std::initializer_list för en malltypparameter frĂĄn en klammeromsluten initierarlista-fdiagnostics-color=[never|always|auto] Färglägg felmeddelanden-fdiagnostics-show-location=[once|every-line] Anger hur ofta källkodspositioner skall skrivas ut i början av utskrift vid radbrytning-fdirectives-only är inkompatibel med -Wunused_macros-fdirectives-only är inkompatibel med -traditional-fdisable-[tree|rtl|ipa]-=intrvl1+intrvl2 avaktiverar ett optimeringspass-fdump- Skriv ut diverse intern kompilatorinformation till en fil-fdump-final-insns=filnamn Skriv instruktionerna vid slutet av översättningen till filnamn-fdump-go-spec=filnamn Skriv alla deklarationer till fil som Go-kod-femit-class-file skall användas tillsammans med -fsyntax-only-femit-struct-debug-baseonly Aggressivt reducerad felsökningsinformation för poster-femit-struct-debug-detaild= Detaljreducerad felsökningsinformation för poster-femit-struct-debug-reduced Konservativt reducerad felsökningsinformation för poster-fenable-[tree|rtl|ipa]-=intrvl1+intrvl2 aktiverar ett optimeringspass-fexecc-precision=[fast|standard] Ange hantering av överskjutande precision pĂĄ flyttal-fexcess-precision=standard för Ada-fexcess-precision=standard för C++-fexcess-precision=standard för Fortran-fexcess-precision=standard för Java-fexec-charset= Konvertera alla strängar och teckenkonstanter till teckenuppsättningen -ffixed- Markera som ej tillgängligt för kompilatorn-ffixed-line-length- Använd radlängd med n tecken i fast läge-ffp-contract=[off|on|fast] Utför kontraktion av flyttalsuttryck.-ffpe-summary=[…] Skriv ut en sammanfattning av flyttalsundantag-ffpe-trap=[...] Stanna vid följande flyttalsundantag-ffree-line-length- Använd radlängd med n tecken i fri form-ffunction-sections stödjs inte för denna mĂĄlarkitektur-fgo-dump- Skriv ut Go-framändens interna information-fgo-optimize- SlĂĄ pĂĄ optimeringspass i framänden-fgo-pkgpath= Sätt Go-paketsökväg-fgo-prefix= Sätt paketspecifika prefix för exporterade Go-namn-fgo-relative-import-path= Hantera en relativ import som relativ till sökv-fhandle-exceptions har bytt namn till -fexceptions (och är nu normalt pĂĄslagen)-findirect-dispatch är inkompatibel med -freduced-reflection-finit-character= Initiera lokala teckenvariabler med ASCII-värde n-finit-integer= Initiera lokala heltalsvariabler med n-finit-logical= Initiera lokala logiska variabler-finit-real= Initiera lokala reella variabler-finline-limit= Begränsa storlek pĂĄ inline-funktioner till -finput-charset= Ange standardteckenuppsättning för källkodsfiler-finstrument-functions-exclude-file-list=filenamn,... Instrumentera inte funktioner uppräknade i filerna-finstrument-functions-exclude-function-list=namn,... Instrumentera inte uppräknade funktioner-fira-algorithm=[CB|priority] Bestäm den använda IRA-algoritmen-fira-region=[one|all|mixed] Sätt regioner för IRA-fira-verbose= Styr IRA:ns nivĂĄ pĂĄ diagnostikmeddelanden.-fjni och -femit-class-file är inkompatibla-fjni och -femit-class-files är inkompatibla-fjni är inkompatibel med -freduced-reflection-flto-compression-level= Använd zlib-komprimering pĂĄ nivĂĄ för IL-fmax-array-constructor= Maximalt antal objekt i en vektorkonstruerare-fmax-errors= Maximalt antal fel som skall rapporteras-fmax-identifier-length= Maximal identifierarlängd-fmax-stack-var-size= Storlek i byte pĂĄ den största vektorn som läggs pĂĄ stacken-fmax-subrecord-length= Maximal längd för underposter-fmessage-length= Begränsa felmeddelandens längd till tecken per rad. 0 stänger av radbrytning-fno-fat-lto-objects stödjs endast med insticksmodul för länkning-fno-gnu89-inline stödjs endast i GNU99- C99-läge-fno-pretty-templates Finskriv inte mallspecialiceringar som mallsignaturer följda av argumenten-fno-threadsafe-statics Generera inte trĂĄdsäker kod för initiering a lokala statiska variabler-fopt-info[-=filenamn] Skriv ut kompilatoroptimeringsdetaljer-force_flat_namespace är inte tillĂĄten med -dynamiclib-fpack-struct= Ange initial maximal justering för postmedlemmar-fpic och -fPIC stödjs inte utan -mdsbt för detta mĂĄl-fpic och -mapcs-reent är inkompatibla-fpic stödjs inte-fpie stödjs inte-fplugin-arg--[=] Ange argument = för insticksmodul -fprefetch-loop-arrays stödjs inte med -Os-fprefetch-loop-arrays stödjs inte för denna mĂĄlarkitektur-fprefetch-loop-arrays stödjs inte för denna mĂĄlarkitektur (försök med -march-flaggor)-frandom-seed= Gör kompileringen reproducerbar med -frecord-gcc-switches stödjs inte för den aktuella mĂĄlarkitekturen-freorder-blocks-and-partition stödjer inte upprullningsinformation pĂĄ denna arkitektur-freorder-blocks-and-partition fungerar inte pĂĄ denna arkitektur-freorder-blocks-and-partition fungerar inte med undantag pĂĄ denna arkitektur-freorder-blocks-and-partition stödjs inte pĂĄ denna arkitektur-frepo mĂĄste användas tillsammans med -c-fsanitize=address är inkompatibel med -fsanitize=thread-fsanitize=address stödjs inte för denna mĂĄlarkitektur-fsanitize=thread-länkning mĂĄste göra med -pie eller -shared-fsched-stalled-insns-dep= Sätt beroendeavstĂĄndet som kontrolleras i förtida schemaläggning av köade instruktioner-fsched-stalled-insns= Ange antalet köade instruktioner som kan schemaläggas i förtid-fsched-verbose= Ange hur mĂĄngordig schemaläggaren skall vara-fsplit-stack stödjer inte 2 registerparametrar för en nästad funktion-fsplit-stack stödjer inte 3 registerparametrar-fsplit-stack stödjer inte fastcall med nästade funktioner-fstack-check=[no|generic|specific] Lägg in stackkontrollkod i programmet-fstack-check=specific är inte implementerat för MIPS16-fstack-limit- flaggor ignoreras med -mfdpic; använd -mstack-check-l1-fstack-limit-flaggor stödjs inte pĂĄ denna mĂĄlarkitektur-fstack-limit-register= FĂĄnga om stacken gĂĄr förbi -fstack-limit-symbol= FĂĄnga om stacken gĂĄr förbi symbolen -fstack-protector stödjs inte av denna mĂĄlarkitektur-fstack-reuse=[all|named_vars|none] Ställ in stackĂĄteranvändningsnivĂĄn för lokala variabler.-fstrict-volatile-bitfields avaktiverat; det är inkomatibelt med ABI-versioner < 2-ftabstop= AvstĂĄnd mellan tabulatorstopp för kolumnvis rapportering-ftemplate-depth= Ange maximalt instansieringsdjup för mallar-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Ange normal kodgenereringsmodell för trĂĄdlokal lagring-ftrack-macro-expansion=<0|1|2> SpĂĄra platser för symboler som kommer frĂĄn makroexpansion och visa dem i felmeddelanden-fuse-linker-plugin stödjs inte i denna konfiguration-fuse-linker-plugin, men %s inte funnen-fvisibility=[default|internal|hidden|protected] Ange standardvärde för symbolsynlighet-fwide-exec-charset= Konvertera alla breda strängar och teckenkonstanter till teckenuppsättningen -fwpa och -fltrans är ömsesidigt uteslutande-g stödjs bara när man använder GAS pĂĄ denna processor,flaggan -g är avslagen-g med -mno-apcs-frame ger kanske inte vettig felsökning-gnat Ange flaggor till GNAT-idirafter Lägg till till slutet av sökvägen för systeminkluderingar-iframework Lägg till till slutet av systemramverkets inkluderingssökväg-imacros Tag med definitioner av makron i -imultiarch Sätt att vara inkluderingsunderbiblioteket för multiarkitekturer-imultilib Sätt att vara inkluderingsunderbiblioteket för multibibliotek-include Inkludera innehĂĄllet i före andra filer-install_name är bara tillĂĄten med -dynamiclibflaggan -iplugindir skickas inte frĂĄn gcc-drivrutin-iplugindir= Sätt att vara standardbibliotek för insticksmoduler-iprefix Ange som ett prefix för de följande tvĂĄ flaggorna-iquote Lägg till till slutet av sökvägen för citerade inkluderingar-isysroot Sätt som rotkatalog för systemet-isystem Lägg till till början av sökvägen för systeminkluderingar-iwithprefix Lägg till till slutet av sökvägen för systeminkluderingar-iwithprefixbefore Lägg till till slutet av huvudsökvägen-keep_private_externs är inte tillĂĄten med -dynamiclib-m%s stödjs inte i denna konfiguration-m64 kräver PowerPC64-arkitektur, aktiverar-m64 kräver en PowerPC64-CPU-mabi=ABI Generera kod som följer det angivna ABI:et-mabi=ABI Generera kod som följer det angivna ABI:et-mabs=MODE Välj exekveringsläget IEEE 754 för instruktionerna ABS/NEG-maix64 krävs: 64-bitsberäkningar med 32-bitars adressering stödjs inte än-maix64 kräver att arkitekturen PowerPC64 fortfarande är aktiverad-malign-functions är förĂĄldrat, använd -falign-functions-malign-functions=%d är inte mellan 0 och %d-malign-jumps är förĂĄldrat, använd -falign-jumps-malign-jumps=%d är inte mellan 0 och %d-malign-loops är förĂĄldrat, använd -falign-loops-malign-loops=%d är inte mellan 0 och %d-malign-power stödjs inte för 64-bitars Darwin, det är inkompatibelt med de installerade C- och C++-biblioteken-maltivec=le är inte tillĂĄtet för mĂĄl med rak byteordning-mapcs-stack-check är inkompatibel med -mno-apcs-frame-march=ARK Generera kod för det angivna chip:et eller CPU-versionen-march=ARK Använd funktioner i arkitekturen ARK-march=ISA Generera kod för den angivna ISA:n-mas100-syntax är inkompatibel med -gdwarf-masm=intel stödjs inte i denna konfiguration-max-stackframe=%d är inte användbar, inte mellan 0 och %d-mbackchain -mpacked-stack -mhard-float stödjs inte i kombination-mbig-endian och -mlittle-endian fĂĄr inte användas tillsammans-mbnu210 ignoreras (flaggan är förĂĄldrad)-mbranch-cost=%d är inte mellan 0 och 5-mbranch-cost=KOSTNAD Ange kostnaden för grenar till ungefär KOSTNAD instruktioner-mc= mĂĄste vara -mc=tiny, -mc=near eller -mc=far-mcall-aixdesc är inkompatibel med -mabi=elfv2-mclip har för närvarande ingen effekt utan -mminmax-mcmodel är inkompatibel med andra toc-flaggor-mcmodel= stödjs inte pĂĄ 32-bitars system-code-readable=INSTĂ„LLNING Ange när instruktioner tillĂĄts komma ĂĄt kod-mcorea och -mcoreb kan inte användas tillsammans-fcorea mĂĄste användas tillsammans med -mmulticore-fcoreb mĂĄste användas tillsammans med -mmulticore-mcpu= Använd funktioner i och schemalägg kod för angiven CPU-mcpu=%s stĂĄr i konflikt med -march=%s-mcpu=%s har ogiltig kiselversion-mcpu=%s är inte giltigt-mcpu=CPU Kompilera kod för ARC-variant av CPU-mcpu=CPU Använd funktioner i och optimera för angiven CPU-mcpu=CPU Använd funktioner i och schemalägg kod för angiven CPU-mcpu=PROCESSOR Använd funktioner i och schemalägg kod för angiven CPU-mcpu=m16c Kompilera kod för M16C-varianter-mcpu=m32c Kompilera kod för M32C-varianter-mcpu=m32cm Kompilera kod för M32CM-varianter-mcpu=r8c Kompilera kod för R8C-varianter-mcrypto behöver -maltivec-mdebug= Aktivera felsökningsutdata-mdirect-move behöver -mvsx-memregs= Antal memreg-byte (standard: 16, intervall: 0..16)-mexr används utan -ms-mexr används utan -ms eller -msx-mfdpic stödjs inte, välj ett bfin-linux-uclibc-mĂĄl-mfentry stödjs inte för 32 bitar i kombination med -fpic-mfloat-abi=hard och VFP-mfloat-abi=soft och -mfloat_abi=hard fĂĄr inte användas tillsammans-mfloat-gprs= Välj GPR-flyttalsmetod-mflush-func=FUNK Använd FUNK för att tömma cachen föra anrop av stacktrampoliner-mfpu= Ange FP (sp, dp, sp-lite, dp-lite) (implicerar -mxilinx-fpu)-mhard-dfp kan inte användas tillsammans med -msoft-float-mhard-float stödjs inte-mincoming-stack-boundary=%d är inte mellan %d och 12-mint32 stödjs inte för mĂĄlen H8300 och H8300L-mipsN Generera kod för ISA nivĂĄ N-mlarge behöver en 430X-kompatibel -mmcu=-mlong-double-64 är inte tillĂĄten med -m64-mlong-double- Ange storlek pĂĄ long double (64 eller 128 bitar)-mmax-stackframe=STORLEK Varna när en stackram är större än den angivna storleken-mmcu=MCU Välj mĂĄl-MCU:n-mmul32x16 stödjs endast för ARC600 eller ARC601-mmul64 stödjs inte för ARC700-mmulticore kan endast användas med BF561-mmultiple stödjs inte pĂĄ system med omvänd byteordning-mn används utan -mh eller -ms eller -msx-mnan=ENCODING Välj NaN-datakodningen IEEE 754-mno-altivec avaktiverar vsx-mno-dpfp-lrsr stödjs endast med -mdpfp-mno-exr giltig endast med -ms eller -msx - Flaggan ignorerad!-mno-fentry är inte kompatibelt med SEH-mno-mpy stödjs endast för ARC700-mno-serialize-volatile Serialisera inte minnesreferenser till flyktigt minne med MEMW-instruktioner-mpcrel -fPIC stödjs för närvarande inte pĂĄ den valda cpu:n-mpic-register= är oanvändbar utan -fpic-mpointer-size=[no,32,short,64,long] Sätt standardstorlek pĂĄ pekare-mpower8-vector behöver -maltivec-mpower8-vector behöver -mvsx-mprefetch-stack-boundary stödjs inte för denna mĂĄlarkitektur-mpreferred-stack-boundary=%d är inte mellan %d och %d-mquad-memory är inte tillgängligt i läget med omvänd byteordning--mquad-memory kräver 64-bitarsläge-mquad-memory-atomic förutsätter 64-bitarsläge-mr10k-cache-barrier=INSTĂ„LLNING Ange när r10k-cache-barriärer skall skjutas in-mrecip kräver -ffinite-math eller -ffast-math-mrecip kräver -fno-trapping-math eller -ffast-math-mrecip kräver -freciprocal-math eller -ffast-math-mregparm ignoreras i 64-bitsläge-mregparm=%d är inte mellan 0 och %d-mrelax stödjs endast för RTP PIC-mrelocatable och -mcall-%s är inkompatibla-mrelocatable och -mno-minimal-toc är inkompatibla-mrelocatable och -msdata=%s är inkompatibla-ms2600 används utan -ms-mmsdata=%s och -mcall-%s är inkompatibla-msecure-plt stödjs inte av din assembler-mshared-library-id= angiven utan -mid-shared-library-mshared-library-id=%s är inte mellan 0 och %d-msim Använd simulatorkörtider-msim Använd simulatorkörtiderflaggan -msimple-fpu ignoreras-msingle-float och -msoft-float kan inte bĂĄda angesflaggan -msingle-float är likvärdig med -mhard-float-mslow-flash-data stödjer endast icke-pic-kod pĂĄ armv7-m-mĂĄl-mspfp_fast är inte tillgängligt pĂĄ ARC600 eller ARC601-mstack-guard implicerar användning av -mstack-size-mstring stödjs inte pĂĄ system med omvänd byteordning-mstringop-strategy=rep_8byte stödjs inte för 32-bitarskod-msx stödjs inte i coff-mtraceback= Välj fullständig, partiell, eller ingen bakĂĄtspĂĄrningstabell-mtune= Schemalägg kod för en given CPU-mtune= förväntar sig mn10300, am33, am33-2 eller am34-mtune=ARK Trimma justering för det angivna chip:et eller CPU-versionen-mtune=CPU Optimera för CPU-mtune=PROCESSOR Optimera utmatningen för PROCESSORflaggan -munix=98 krävs för funktioner frĂĄn C89 tillägg 1. -mvsx och -mno-altivec är inkompatibla-mvsx och -mpaired är inkompatibla-mvsx behöver indexerad adressering-mvsx kräver hĂĄrdvaruflyttal-mvsx-timode behöver -mvsx-mxl-multiply-high kan bara användas med -mcpu=v6.00.a eller större-mxl-multiply-high kräver -mno-xl-soft-mul-mxl-multiply-high kan bara användas med -mcpu=v8.30.a eller större-mxl-reorder behöver -mxl-pattern-compare för -mcpu=v8.30.a-o Skriv utdata i -pg och -fomit-frame-pointer är inkompatibla-pipe ignorerad eftersom -save-temps angivits-pipe stödjs inte-private_bundle är inte tillĂĄten med -dynamiclib-static-libgfortran stödjs inte i denna konfiguration-trigraphs Stöd trigrafer enligt ISO C.NOT.-operatorn i uttrycket vid %L mĂĄste ha en LOGICAL-operand128-bitars long double stödjs inte för VAX-flyttal2-bytes cop-instruktioner är inte tillĂĄtna i 64-bitars VLIW-läge31-bitars ABIinstruktionsuppsättningen 387 avaktiverad, använder SSE-aritmetik64-bitars ABI64-bits ABI stödjs inte i ESA/390-läge64-bitars SPE stödjs inte ! @catch-parameter kan inte vara protokollkvalificerad@catch-parameter är inte en känd Objective-C-klasstyp@interface till klassen %qE finns inteEtt grundblocks profilräknare anses het om den bidrar till den givna promillesatsen för hela den profilerade körningenEn faktor för att trimma den övre gränsen som pendlingsmolduloschemaläggaren använder för att schemalägga en slingaEn avhuggning frĂĄn flyttal till heltal fĂĄr ersättas med avrundning för att spara lägesbytenEn synonym för -std=c89 (för C) or -std=c++98 (för C++)Ett tröskelvärde pĂĄ det genomsnittliga antalet varv som beaktas av pendlingsmoduloschemaläggarenAAPCS stödjer inte -mcallee-super-interworkingAAPCS stödjer inte -mcaller-super-interworkingABSTRACT INTERFACE ”%s” fĂĄr inte refereras vid %LABSTRACT INTERFACE vid %CABSTRACT typ ”%s” används vid %LABSTRACT typ vid %CSlutligt AC-IMPLIED-DO-uttryck refererar styrvariabel vid %LInitialt AC-IMPLIED-DO-uttryck refererar styrvariabel vid %LAC-IMPLIED-DO-steguttryck refererar styrvariabel vid %LACCESS-specifikation vid %L var redan angivenACQUIRED_LOCK-variabelACQUIRED_LOCK=-argumentet vid %L mĂĄste vara en skalär LOGICAL-variabelAttributet ALLOCATABLE vid %C i en TYPE-definitionALLOCATABLE angiven utanför INTERFACE-kropp vid %LALLOCATE-objektALLOCATE av co-vektor vid %C i CRITICAL-blockALLOCATE av co-vektor vid %C i DO CONCURRENT-blockALTERNATE RETURN är inte tillĂĄtet vid %LAPCS-ĂĄteranropsbar kod stödjs inte. IgnorerasASSERT_EXPR med villkor som alltid är falsktASSIGN-sats vid %CASSIGN-sats vid %L kräver en skalär standard-INTEGER-variabelASSIGNED GOTO-sats vid %L kräver en INTEGER-variabelASSIGNED-variabel i FORMAT-tagg vid %LASSOCIATE-konstruktion vid %CAttributet ASYNCHRONOUS vid %CASYNCHRONOUS-sats vid %CASYNCHRONOUS= vid %C är inte tillĂĄtet i Fortran 95ASYNCHRONOUS=-specificerare vid %L mĂĄste vara ett initieringsuttryckATOM- och VALUE-argumenten till den inbyggda funktionen %s mĂĄste ha samma typ vid %LATOM-argumentet till vid %L till den inbyggda funktionen %s mĂĄste vara en co-vektor eller co-indexatargumentet ATOM vid %L till inbyggd funktion %s skall vara ett heltal av sorten ATOMIC_INT_KIND eller en logisk av sorten ATOMIC_LOGICAL_KINDATOM-argumentet till den inbyggda funktionen %s vid %L mĂĄste vara definierbartAUX-pekare initierad för bĂĄgen %i->%iAVX-vektorargument utan AVX aktiverat ändrar ABI:etAVX-vektorretur utan AVX aktiverat ändrar ABI:etAbstrakt gränssnitt ”%s” är ogiltigt i procedurpekartilldelning vid %LAcceptera utökningar för att stödja gammal kodNĂĄ data i samma sektion frĂĄn delade förankringspunkterĂ…tkomstspecifikation av operatorn %s vid %C har redan angivitsĂ…tkomstspecifikation för operatorn .%s. vid %C har redan angivitsKom ĂĄt variabler i 32-bitars PPU-objekt (standard)Kom ĂĄt variabler i 64-bitars PPU-objektSamla utgĂĄende funktionsargument och ta/släpp det nödvändiga stackutrymmet för utgĂĄende funktionsargument i funktionsprologen/-epilogen. Utan denna flagga trycks utgĂĄende argment pĂĄ stacken före anrop av en funktion och plockas efterĂĄt. Denna flagga kan medföra reducerad kodstorlek för funktioner som anropar mĂĄnga funktioner som fĂĄr sina argument pĂĄ stacken som, till exempel printf.Aktuellt CLASS-vektorargument till ”%s” mĂĄste vara en fullständig vektor vid %LAktuellt argument vid %L för INTENT(%s)-attrapp ”%s” av ELEMENTAL-subrutin ”%s” är en skalär, men ett annat aktuellt argument är en vektorAktuellt argument vid %L till allokerbart eller pekaratrappargument ”%s” mĂĄste ha en fördröjd längdtypparameter om och endast om atrappen har enAktuellt argument vid %L till attrapp med antagen typ är av en härledd typ med typgräns eller FINAL-procedurerAktuellt argument innehĂĄller för fĂĄ element för attrappargument ”%s” (%lu/%lu) vid %LAktuellt argument till ”%s” kan inte vara en vektor med antagen storlek vid %LAktuellt argument till ”%s” skall vara en ALLOCATABLE vid %LAktuellt argument till ”%s” skall vara en pekare vid %LAktuellt argument till LOCK_TYPE eller med LOCK_TYPE-komponent vid %L kräver ett explicit gränssnitt för proceduren ”%s”Aktuellt argument till ”%s” vid %L mĂĄste vara en co-vektorAktuellt argument till ”%s” vid %L mĂĄste vara polymorftAktuellt argument till ”%s” vid %L mĂĄste vara enkelt sammanhängandeAktuella argument till ”%s” vid %L mĂĄste vara obegränsat polymorfa eftersom det formella argumentet är en pekare eller allokerbar obegränsat polymorf enhet [F2008: 12.5.2.5]Aktuellt arkument till ”%s” vid %L mĂĄste ha samma deklarerade typAktuellt argument till sammanhängade pekareattrapp ”%s” vid %L mĂĄste vara enkelt sammanhängandeAktuellt argument till icke-INTENT(INOUT)-attrappen ”%s” vid %L, som är LOCK_TYPE eller har en LOCK_TYPE-komponentAktuell stränglängd matchar inte den deklarerade för attrappargument ”%s” (%ld/%ld)Aktuellt stränglängd är kortaren än den deklarerade för attrappargument ”%s” (%ld/%ld)Lägg till ett pass för eliminering av gemensamma deluttryck efter slingoptimeringarLägg till explicita kontroller av division med nollLägg till explicita kontroller av spill vid division av INT_MIN / -1Lägg till extra kommentarer till assemblerutdataYtterligare felsökningsutskrifterOptimera aggresivt slingor med användning av sprĂĄkbegränsningarAlias för --help=targetAlias för -femit-class-fileAlias har anropsbĂĄgarAlias har mer än en aliasreferensAlias har icke-alias-referensJustera alla etiketterJustera alla slingor till 32-bytesgränsJustera kod och data till 32 bitarJustera mĂĄlet för strängoperationernaJustera double pĂĄ 64-bitarsgränserJustera etiketter som bara nĂĄs via hoppJustera nĂĄgra double pĂĄ dword-gränsJustera starten av funktionerJustera starten av slingorJustera till bastypen av bitfältetJustera variabler pĂĄ en 32-bitarsgränsAlla funktioner till far-sektion som standardAlla inbyggda procedurer är tillgängliga oavsett av vald standardAlla minnesĂĄtkomster använder I/O ladda-/lagrainstruktionerAlla variabler läggs som standard i far-sektionenAlla variabler till near-sektionen som standardAlla variabler till tiny-sektionen som standardAllokerbar ”%s” vid %L kan inte ha en initierareDen allokerbara vektorn ”%s” vid %L mĂĄste ha en fördröjd form eller antagen ordningAllokerbar co-vektorvariabel ”%s” vid %L mĂĄste ha en fördröjd formDen allokerbara komponenten %s vid %L mĂĄste ha en co-dimension eftersom den har en icke co-vektordelkomponent av typen LOCK_TYPEAllokerbar komponent %s vid %L av typen LOCK_TYPE mĂĄste ha en co-dimensionAllokerbar komponent i post vid %C mĂĄste ha fördröjd formAllokerbar funktion ”%s” vid %L mĂĄste ha ett explicit funktionsgränssnittAllokera lokala variabler pĂĄ stacken för att möjliggöra indirekt rekursionAllokeringsobjekt vid %C är varken en pekare pĂĄ annat än procedur eller en allokerbar variabelAllokeringsobjekt vid %L förekommer ocksĂĄ vid %LAllokeringsobjekt vid %L är varken en datapekare eller en allokerbar variabelAllokeringsobjekt vid %L är underobjet till objekt vid %LAllokeringsojbekt vid %L mĂĄste vara ALLOCATABLE eller en POINTERAllokeringsobjekt vid %L med en fördröjd typparameter behöver antingen en typspecifikation eller en SOURCE-tagg eller en MOLD-taggAllokerar %s vid %L med typspecifikation kräver samma teckenlängdsparameter som i deklarationenAllokering %s av ABSTRACT bastyp vid %L behöver en typspecifikation eller source-uttryckAllokering skulle överstiga minnesgränsTillĂĄt 128-bitars heltal i VSX-registerTillĂĄt ett symbolvärde att användas som ett omedelbart värde i en instruktion.TillĂĄt radlängd med godtyckligt antal tecken i fast lägeTillĂĄt radlängd med godtyckligt antal tecken i fri formTillĂĄt att bitfält gĂĄr över ordgränserTillĂĄt grenar att packas med andra instruktionerTillĂĄt konvertering mellan __ea och generiska pekare (standard)TillĂĄt dollartecken i entitetsnamnTillĂĄt double-variabler i övre register med -mcpu=power7 eller -mvsxTillĂĄt snabba hopp till meddelandehanterarenTillĂĄt flyttalsvariabler i övre register med -mcpu=power8 eller mp8-vectorTillĂĄt att funktionsadresser läggs i registerTillĂĄt gcc att generera LIW-instruktionerTillĂĄt gcc att generera instruktionerna SETLB och LccTillĂĄt gcc att använd repeat/erepeat-instruktionernaTillĂĄt flyttalsinstruktioner i hĂĄrdvara att täcka bĂĄde 32-bitars och 64-bitars operationerTillĂĄt implicit konvertering mellan vektorer med olika antal underdelar och/eller olika elementtyper.TillĂĄt slingoptimeringar att anta att slingorna beter sig normaltTillĂĄt matematikoptimeringar som kan strida mot IEEE- eller ISO-standarderTillĂĄt att nya datakapplöpningar vid laddningar introducerasTillĂĄt att nya datakapplöpningar vid laddning av packade data introducerasTillĂĄt att nya datakapplöpningar vid lagring av packade data introducerasTillĂĄt att nya datakapplöpningar vid lagringar introducerasTillĂĄt optimeringar för flyttalsaritmetik som kan ändra resultatet av operationen pĂĄ grund av avrundningTillĂĄt förtida schemaläggning av köade instruktionerTillĂĄt teckenutökning i sammanslagningsoperationerTillĂĄt spekulativ förflyttning av fler inläsningarTillĂĄt spekulativ förflyttning av icke-inläsningarTillĂĄt spekulativ förflyttning av nĂĄgra inläsningarTillĂĄt argument till ”?”-operatorn att ha olika typerTillĂĄt användningen av MDMX-instruktionerTillĂĄt användning av MT-instruktionerTillĂĄt användningen av flyttalsinstruktioner för V850E2V3 och uppĂĄtTillĂĄt användningen av flyttalsinstruktioner och -ABI i hĂĄrdvaraTillĂĄt avhuggning istället för avrundning mot 0 för decimalheltalstyperTillĂĄt att tvĂĄ instruktioner läggs ut per cykelTillĂĄt variadiska funktioner utan namngiven parameterRedan inuti ett CONTAINS-block vid %CĂ„ven if-convert villkorliga hopp som innehĂĄller minnesskrivningarAlternativ RETURN-sats vid %C är bara tillĂĄten inuti en SUBROUTINEAlternativ RETURN-sats vid %L kräver en SCALAR-INTEGER-retuspecificerareAlternativ anropskonventionAlternativ retur fĂĄr inte förekomma i operatorgränssnitt vid %LAlternativ returspecificerare i elementär subrutin ”%s” vid %L är inte tillĂĄtenAlternativ returspecifierare i funktionen ”%s” vid %L är inte tillĂĄtenAlternativt returargument vid %CFast orefererad har ”%s” tvetydiga gränssnitt vid %LAltiVec- och SPE-instruktioner kan inte samexisteraAltiVec-argument skickat till funktion utan prototypAltiVec stödjs inte pĂĄ denna mĂĄlarkitekturLeta alltid efter klassarkiv ej genererade av gcjGenerera alltid lĂĄnga anropHantera alltid bitfält som int-storaAnvänd alltid Dynamic Realigned Argument Pointer (DRAP) för att justera stackenTvetydiga gränssnitt ”%s” och ”%s” i %s vid %LTvetydig symbol i TYPE-definition vid %CLägg till lämpliga diagnostiska meddelanden till kommandoradsflaggan som styr demEtt alias för minterlink-compressed som finns för bakĂĄtkompatibilitet.En alternativ retur vid %L utan ett * attrappargumentEn indirektbĂĄge frĂĄn %s är inte markerad som indirekt eller har associerad indirect_info, motsvarande sats är: En yttre FORALL-konstruktion har redan ett index med detta namn %LAnalyserat alias har ingen referensAnnotera assemblerinstruktioner med bedömda adresserLägg till ett andra understrykningstecken om namnet redan innehĂĄller ett understrykningsteckenLägg till understrykningstecken till externt synliga namnAnvänd negativt tecken pĂĄ nollvärdenTillämpa variabelexpansion när slingor rullas utUngefärligt antal instruktioner att tillĂĄta mellan ett tips och dess gren [125]Argumentet ”%s” förekommer tvĂĄ gĂĄnger i anrop till ”%s” vid %LArgumentet ”%s” till ”%s” med PASS(%s) vid %L fĂĄr inte vara ALLOCATABLEArgumentet ”%s” till ”%s” med PASS(%s) vid %L fĂĄr inte ha attributet POINTERArgument ”%s” till ”%s” med PASS(%s) vid %L mĂĄste ha den härledda typen ”%s”Argument ”%s” till ”%s” med PASS(%s) vid %L mĂĄste ha den härledda typen ”%s”Argument ”%s” till ”%s” med PASS(%s) vid %L mĂĄste vara skalärtArgumentet ”%s” till elementär subrutin ”%s” vid %L mĂĄste ha sitt INTENT angivet eller ha attributet VALUEArgumentet ”%s” av elementär procedur vid %L fĂĄr inte ha attributet ALLOCATABLEArgumentet ”%s” av elementär procedur vid %L fĂĄr inte ha attributet POINTER”%s”-argumentet till elementär procedur vid %L mĂĄste vara skalärtArgumentet ”%s” till pure-funktion ”%s” vid %L mĂĄste vara INTENT(IN) eller VALUEArgumentet ”%s” till pure-funktion ”%s” vid %L med attributet VALUE men utan INTENT(IN)Argumentet ”%s” till pure-subrutin ”%s” vid %L mĂĄste ha sitt INTENT angivet eller ha attributet VALUEArgument ”%s” till pure-subrutin ”%s” vid %L med attributet VALUE men utan INTENT”%s”-argumentet till satsfunktionen vid %L mĂĄste vara skalärtArgument ”S” till NEAREST vid %L fĂĄr inte vara nollArgumentet CPTR vid %L till C_F_FUNPOINTER skall ha typen TYPE(C_PTR)Argumentet CPTR vid %L till C_F_PROCPOINTER skall ha typen TYPE(C_FUNPTR)Argumentet C_PTR_1 vid %L till C_ASSOCIATED skall ha typen TYPE(C_PTR) eller TYPE(C_FUNPTR)Argumentet C_PTR_2 vid %L till C_ASSOCIATED skall ha samma typ som C_PTR_1: %s istället för %sArgumentet FPTR vid %L till C_F_POINTER mĂĄste vara en pekareArgumentet FPTR vid %L till C_F_POINTER skall inte vara co-indexeratArgumentet FPTR vid %L till C_F_PROCPOINTER skall vara en procedurpekareArgumentet FPTR vid %L till C_F_PROCPOINTER fĂĄr inte vara co-indexeratArgument NCOPIES till inbyggd REPEAT är negativt (dess värde är %ld)Argument NCOPIES till inbyggd REPEAT är negativt vid %LArgumentet NCOPIES till inbyggd REPEAT är för stortArgumentet NCOPIES till inbyggd REPEAT är för stort vid %LArgumentet X vid %L till C_FUNLOC skall vara en procedur eller en procedurpekareArgumentet X vid %L till C_FUNLOC fĂĄr inte vara co-indexeratArgumentet X vid %L till C_LOC fĂĄr inte vara en sträng med längden nollArgumentet X vid %L till C_LOC skall antingen ha attributet POINTER eller TARGETArgumentet X vid %L till C_LOC fĂĄr inte vara co-indexeratArgumentet vid %L till C_LOC fĂĄr inte vara polymorftDim-argumentet vid %L mĂĄste ha INTEGER-typDim-argumentet vid %L mĂĄste vara skalärtArgument stämmer inte överens för den ĂĄsidosättande proceduren ”%s” vid %L: %sArgument till ”%s” vid %L mĂĄste ha längden ettArgument till %s-funktion vid %L är negativtArgument till funktion %s vid %L är för stort för sorteringssekvensen av ordning %dArgument till %s-funktion vid %L utanför sitt intervall [0,127]Argument till ACOS vid %L mĂĄste vara mellan -1 och 1Argumentet till ACOSH vid %L fĂĄr inte vara mindre än 1Argument till till ASIN vid %L mĂĄste vara mellan -1 och 1Argument till ATANH vid %L mĂĄste vara i intervallet -1 till 1Argument till FINAL-procedur vid %L mĂĄste ha typen ”%s”Argument till FINAL-procedur vid %L fĂĄr inte vara ALLOCATABLEArgument till FINAL-procedur vid %L fĂĄr inte vara INTENT(OUT)Argument till FINAL-procedur vid %L fĂĄr inte vara OPTIONALArgument till FINAL-procedur vid %L fĂĄr inte vara en POINTERArgument till IACHAR vid %L mĂĄste ha längden ettArgument till IACHAR-funktion vid %L är utanför sitt intevall 0..127Argument till ICHAR vid %L mĂĄste ha längden ettArgument till LOG vid %L fĂĄr inte vara mindre än eller lika med nollArgument till LOG10 vid %L fĂĄr inte vara mindre än eller lika med nollArgument till SELECT-sats vid %L kan inte vara %sArgumentet till SELECT-satsen vid %L mĂĄste vara ett skalärt uttryckArgument till SQRT vid %L har ett negativt värdeArgumentet till -fcheck är inte giltigt: %sArgumentet till -fcoarray är inte giltigt: %sArgumentet till -ffpe-summary är inte giltigt: %sArgumentet till -ffpe-trap är inte giltigt: %sArgumenttyper till inbyggd ”%s” vid %L mĂĄste stämma överens (%s/%s)Aritmetisk IF-sats vid %CAritmetisk IF-sats vid %L kräver ett numeriskt uttryckAritmetisk NaN vid %LAritmetisk NaN-konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetisk NaN vid bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetik OK vid %LAritmetiskt OK konvertering av %s till %s vid %LAritmetiskt spill vid %LAritmetiskt spill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetiskt överspill vid bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetiskt underspill vid %LAritmetiskt underspill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetiskt underspill av bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkVektor ”%s” vid %L kan inte ha en fördröjd formVektor ”%s” vid %L är en variabel, som inte reduceras till ett konstant uttryckVektor ”%s” vid %L med icke-konstanta gränser kan inte vara ett EQUIVALENCE-objektVektorkomponent i post vid %C mĂĄste ha uttrycklig formVektorkomponent i post vid %C mĂĄste ha fördröjd formVektorkonstruerare med typspecifikation vid %CVektorkonstruerarvärde vid %L fĂĄr inte vara obegränsat polymorft [F2008: C4106]Vektorelementstorlek är för stor vid %CVektorindex vid %L är en vektor med ordning %dVektorindex vid %L mĂĄste ha INTEGER-typ, fann %sVektorindex vid %L mĂĄste vara skalärtVektor med interoperabla typer vid %L till C_LOC som inte är allokerbar och varken antagen storlek eller explicit storlekVektoroperander passar inte ihop vid %LVektoroperander passar inte ihop vid konvertering av %s till %s vid %LVektorpekaren ”%s” vid %L mĂĄste ha en fördröjd form eller antagen ordningVektorreferens vid %C kan inte ha mer än %d dimensionerVektorreferens vid %L är utanför gränsen (%ld < %ld) i co-dimension %dVektorreferens vid %L är utanför gränsen (%ld < %ld) i dimension %dVektorreferens vid %L är utanför gränsen (%ld > %ld) i co-dimension %dVektorreferens vid %L är utanför gränsen (%ld > %ld) i dimension %dVektorreferens i EQUIVALENCE vid %C fĂĄr inte vara en vektorsektionVektorreferens utanför gränsernaVektorsektion vid %L till C_LOCVektorsektionsbeteckning, t.ex. ”(:)”, krävs förutom co-vektorbeteckningen ”[...]” vid %CVektorsektion med ett vektorindex vid %L skall inte vara mĂĄlet för en pekareVektorspecifikation vid %C har mer än %d dimensionerVektorspecifikation vid %C med mer än 7 dimensionerVektorspecifikation för symbolen ”%s” i COMMON vid %C mĂĄste vara explicitVektorspecifikation mĂĄste vara fördröjd vid %LVektorspecifikation krävs i ALLOCATE-sats vid %LVektorsektion som aktuellt argument vid %L är inkompatibelt med attrappargumentet ”%s” utan antagen form pĂĄ grund av attributet VOLATILEVektorsektion som aktuellt argument med vektorindex vid %L är inte kompatibelt med attributet INTENT(OUT), INTENT(INOUT), VOLATILE eller ASYNCHRONOUS pĂĄ attrappargumentet ”%s”Eftersom utvidgningen av ”%s” vid %L har en co-vektorkomponent, skall föräldratypen ”%s” ocksĂĄ ha enAssemblern stödjer inte -mabi=ilp32Assemblerflaggor ================ Tilldelad GOTO-sats vid %CTilldelad etikett är inte en mĂĄletikettTilldelning annat värde än 0 eller 1 till LOGICAL har odefinierat resultat vid %LGränssnitt för tilldelningsoperator vid %L mĂĄste vara en SUBROUTINEGränssnitt för tilldelningsoperator vid %L mĂĄste ha tvĂĄ argumentGränssnitt för tilldelningsoperator vid %L fĂĄr inte omdefiniera en INTRINSIC-typtilldelningTilldelning till en FORALL-indexvariabel vid %LTilldelning till en allokerbar polymorf variabel vid %LTilldelning till allokerbar polymorf variabel vid %L stödjs inte ännuTilldelning till en allokerbar polymorf variabel vid %L kräver -frealloc-lhsTilldelning till en co-indexerad variabel vid %L i en PURE-procedurTilldelning till en polymorf co-vektor vid %L är inte tillĂĄtetAssociationsnamn ”%s” vid %L används som en vektorAssociationsnamn ”%s” kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %L eftersom dess mĂĄl vid %L inte heller kanAssociationsmĂĄlet vid %C fĂĄr inte vara co-indexeratAnta ICPLBs är aktiverade vid körtillfället.Anta ett stort TLS-segmentAnta att alla symboler har 32-bitsvärdenAnta att alla funktioner med variabelt antal argument har prototypAntag att byte har rak byteordning, ord har omvänd byteordning. Denna flagga bör undvikas.Anta att kod kommer assembleras av GASAnta kod kommer länkas av GNU ldAnta kod kommer länkas av HP ldAnta att datasegment är relativa till textsegment.Anta att flyttalsoperationer kan utlösa fällorAnta att inkommande stack är justerad till denna 2-potensAnta att etiketter och symboler kan adresseras med 16-bitars absoluta adresser.Anta att ladda data frĂĄn flash är lĂĄngsammare än att hämta instruktioner.Anta att inbyggda funktioner är implementerade med JNIAnta att inga NaN:er eller oändligheter genererasAnta normal C-körmiljöAnta möjlig feljustering av doubleAnta att pt*-instruktioner inte utlöser fällorAnta avrundning till närmaste är valt i schemaläggningssyfte.Anta att spill vid teckenaritmetik slĂĄr runtAnta liten adressrymdAnta att strikta aliasregler gällerAnta att symboler kan vara ogiltigaAntag att mĂĄl-CPU:n är konfigurerad för rak byteordningAntag att mĂĄl-CPU:n är konfigurerad med omvänd byteordningAnta att flyttalslagringar och -laddningar troligen inte orsakar konflikter när de placeras i en instruktionsgruppAnta att mottagare av Objective-C-meddelanden kan var nilAnta att körtidsstöd finns, sĂĄ utelämna -lsim frĂĄn länkningskommandoradenAntag att de ömsesidiga uppskattningsinstruktionerna ger mer precision.Anta att källkodsfilen är i fix formAnta att källkodsfilen är i fritt formatAntag att värdena i uppräkningstyper alltid finns inom det minsta intervallet av den typenAnta att villkorliga grenar med noll förskjutning är snabbaAnta miljön VxWorks RTPAnta miljön VxWorks vThreadsAnta att en hash-tabell används vid körning för att avbilda ett objekt till dess synkroniseringsstrukturTeckenlängdsvariabel ”%s” med antagen eller fördröjd längd i konstant uttryck vid %LVektor ”%s” med antagen form vid %L är inte tillĂĄten i ett initieringsuttryckVektor med antagen form vid %L mĂĄste vara ett attrappargumentVektor ”%s” med antagen storlek vid %L är inte tillĂĄten i ett initieringsuttryckVektor ”%s” med antagen storlek i %s-klausul vid %LVektor ”%s” med antagen storlek i COPYPRIVATE-klausul vid %LVektor ”%s” med antagen storlek i namnlistan ”%s” vid %C är inte tillĂĄtetVektor ”%s” med antagen storlek i namnlistan ”%s” vid %L är inte tillĂĄtetVektor med antagen storlek vid %L mĂĄste vara ett attrappargumentPolymorfa objekt eller komponenter med antagen storlek, sĂĄsom den vid %C, har inte implementerats ännuAntagen typ vid %CFörmodad typ vid %C är inte tillĂĄtet för komponenterDen antagna typen pĂĄ variabeln %s vid %L är bara tillĂĄten för attrappvariablerArgumentet med antagen ordning vid %L är endast tillĂĄtet som aktuellt argument till inbyggda frĂĄgefunktionerArgumentet med antagen ordning vid %L är endast tillĂĄtet som första aktuella argument till den inbyggda frĂĄgefunktionen %sArgumentet med antagen ordning kräver ett explicit gränssnitt vid %LVektor med antagen ordning vid %CVektor med antagen ordning vid %L kan inte ha attributet VALUE eller CODIMENSIONVektor med antagen ordning vid %L mĂĄste vara ett attrappargumentVariabel med antagen ordning %s vid %L som aktuellt argument till en frĂĄgefunktion skall vara det första argumentetVariabeln %s med antagen ordning vid %L kan bara användas som ett aktuellt argumentVariabeln %s med antagen ordning vid %L skall inte ha en subobjektreferensAktuellt argument med antagen form vid %L är inte kompatibel med attrappargumentet ”%s” utan antagen form pĂĄ grund av attributet VOLATILEVektorn ”%s” med antagen form vid %L som attrappargument till BIND(C)-proceduren ”%s” vid %LAktuellt argument med antagen typ vid %L kräver att attrappargumentet ”%s” har antagen typArgumentet ”%s” med antagen typ vid %L kräver ett explicit gränssnittArgumentet med antagen typ vid %L är inte tillĂĄtet som aktuellt argument till den inbyggda %sArgumentet med antagen typ vid %L är endast tillĂĄtet som aktuellt argument till den inbyggda funktionen ”%s”Variabel med antagen typ %s vid %L som aktuellt argument till en frĂĄgefunktion skall vara det första argumentetVariabeln ”%s” med antagen typ vid %L fĂĄr inte ha attributet ALLOCATABLE, CODIMENSION, POINTER eller VALUEVariabeln ”%s” med antagen typ vid %L fĂĄr inte ha attributet INTENT(OUT)Variabeln %s med antagen typ vid %L fĂĄr bara användas som ett aktuellt argumentVariabeln %s med antagen typ vid %L fĂĄr inte vara en vektor med explicit formVariabeln %s med antagen typ vid %L skall inte ha en subobjektreferensI global räckvidd:Som mest %i profilkörningar stödjs. Kanske en skadad profil?PĂĄ toppnivĂĄ:Skriv atomärt tillbaka programmets data-cache-rader (standard)Försök att DEALLOCATE oallokerad ”%s”Försök fylla fördröjningsfack av greninstruktionerFörsök att indirekt överlappa COMMON-block %s och %s med EQUIVALENCE vid %CFörsök hĂĄll stacken justerad till denna 2-potensFörsök slĂĄ samman identiska konstanter mellan kompileringsenheterFörsök slĂĄ samman identiska konstanter och konstanta variablerFörsök slĂĄ samman identiska felsökningssträngar mellan kompileringsenheterFörsök att allokera redan allokerad variabelFörsök att allokera redan allokerad variabel ”%s”Attributet %s vid %L i en TYPE-definitionAttribut vid %L är inte tillĂĄtet i en TYPE-definitionAutomatisk vektor ”%s” vid %L kan inte ha en initierareJustera automatiskt grenmĂĄl för att reducera grenstraffUndvik alla avstĂĄndsgränser vid anropsinstruktionerUndvik att generera pc-relativa anrop, använd indirekt anropUndvik att generera indexerade load/store-instruktioner sĂĄ lĂĄngt möjligtUndvik överlappande destinationer och adressregister för LDRD-instruktionerUndvik spekulativa lastningar för att gĂĄ runt en hĂĄrdvaruanomali.BB %i kan inte kasta men har en EH-bĂĄgeBB %i har felaktig bĂĄgeBB %i har felaktig fall-igenom-bĂĄgeBB %i har flera EH-bĂĄgarBB %i sakar en EH-bĂĄgeBB %i saknar en bĂĄgeBB %i:s sista sats har felaktigt satt lpBB %i har för mĂĄnga fall-igenom-bĂĄgarflaggan BB_RTL är inte satt för block %dBIND(C) applicerat pĂĄ %s %s vid %LBIND(C) vid %LAttribut BIND(C) vid %C kräver ett gränssnitt med BIND(C)Attribut BIND(C) vid %L kan endast användas för variabler och common-blockAttributet BIND(C) vid %L kan inte anges för en intern procedurBIND(C)-procedur med NAME fĂĄr inte ha attributet POINTER vid %CBIND(C)-sats vid %CBLANK= vid %C är inte tillĂĄtet i Fortran 95BLOCK DATA-element ”%s” vid %L mĂĄste vara i COMMONBLOCK-konstruktion vid %CBOZ-konstant vid %C använder icke-standard postfixsyntaxBOZ-konstant vid %L är för stor (%ld jämfört med %ld bitar)BOZ-literal vid %L är bitvis överförd icke-heltalssymbol ”%s”BOZ-literal vid %L utanför en DATA-sats och utanför INT/REAL/DBLE/CMPLXBOZ-literal vid %L används för att initiera icke-heltalsvariabeln ”%s”BOZ använd utanför en DATA-sats vid %CBYTE-typ vid %CBYTE-typ använd vid %C är inte tillgänglig pĂĄ mĂĄlmaskinenFelaktig INTENT-specifikation vid %CFelaktig IO-bastyp (%d)Felaktig adress, inte (reg+avst):Felaktig adress, inte register:Felaktigt allokeringsobjekt vid %C för en PURE-procedurFelaktig vektorreferens vid %LFelaktig vektorspecifikation för en explicit formad vektor vid %CFelaktig vektorspecifikation för en förmodat formad vektor vid %CFelaktig vektorspecifikation för en förmodat formad vektor vid %CFelaktig vektorspecifikation i ALLOCATE-sats vid %LFelaktiga bytekoder. --- 2284,2290 ---- ({anonym})*** VARNING *** det finns aktiva insticksmoduler, rapportera inte detta som ett fel med mindre än att du kan reproducera det utan att aktivera nĂĄgra insticksmoduler. --CLASSPATH AvrĂĄdes, använd -classpath istället--bootclasspath= Ersätt systemsökvägen--classpath= Ange klassökväg--encoding= Välj inmatningskodning (din lokal används som standard)--extdirs= Ange katalogsökväg för utökningarargumentet %q.*s till --help är tvetydigt, var mer precis--help= Visa beskrivningar av en speciell klass av flaggor. är en eller flera av optimizers, target, warnings, undocumented, params--param = Sätt parameter till värde. Se nedan för en komplett lista pĂĄ parametrargränsen --param inline-unit-growth nĂĄddgränsen --param large-function-growth nĂĄddgränsen --param large-stack-frame-growth nĂĄddgränsen --param max-inline-insns-auto nĂĄddgränsen --param max-inline-insns-single nĂĄdd--resource kräver -o-A= Intyga pĂĄ . Om ”-” sätts före avaktiveras :et till :n-D[=] Definiera ett med som sitt värde. Om bara anges sätts till 1-E eller -x krävs när indata tas frĂĄn standard in-F Lägg till till slutet av huvudramverkets inkluderingssökväg-G Placera globala and statiska data mindre än byte i en speciell sektion (vissa arkitekturer)-I Lägg till till slutet av huvudsökvägen-I- angiven tvĂĄ gĂĄnger-J Lägg MODULE-filer i ”katalog”-MF Skriv beroendeutdata till den angivna filen-MG kan endast används med -M eller -MM-MQ Lägg till ett MAKE-citerat mĂĄl-MT Lägg till ett ociterat mĂĄl-O Sätt optimeringsnivĂĄ till -U Avdefiniera -Werror=%s: ingen flagga -%s-Werror=normalized=: sätt -Wnormalized=nfc-Wformat-contains-nul ignoreras utan -Wformat-Wformat-extra-args ignorerad utan -Wformat-Wformat-nonliteral ignorerad utan -Wformat-Wformat-security ignorerad utan -Wformat-Wformat-y2k ignorerad utan -Wformat-Wformat-zero-length ignoreras utan -Wformat-Wframe-larger-than= Varna om en funktions stackram kräver mer en byte-Wlarger-than= Varna för ett objekt är större än byte-Wnormalized= Varna för icke normaliserade Unicodesträngar-Xbind-now och -Xbind-lazy är inkompatibla-aux-info Generera deklarationsinfo till -bundle är inte tillĂĄten med -dynamiclib-bundle_loader är inte tillĂĄten med -dynamiclib-c eller -S krävs för Ada-c krävs för gnat2scil-c krävs för gnat2why-client_name är inte tillĂĄten med -dynamiclib-current_version är bara tillĂĄten med -dynamiclib-d SlĂĄ pĂĄ dumpning frĂĄn specifika pass i kompilatorn-dumpbase Ange basfilnamn att användas för dumpar-dumpdir Ange katalognamn att användas för dumpar-f%s och -msdata=%s är inkompatibla-f%s ignoreras för mĂĄlet (all kod är positionsoberoende)-f%s stödjs inte med CONST16-instruktioner-f%s stödjs inte: ignoreras-f%sleading-underscore stödjs inte pĂĄ denna mĂĄlmaskin-fPIC och -fpic stödjs inte i denna konfiguration-fPIC och -mcall-%s är inkompatibla-fPIC ignoreras för mĂĄlet (all kod är positionsoberoende)-fPIC stödjs inte-fPIC/-fpic stödjs inte av denna mĂĄlarkitektur-fPIE stödjs inte-fabi-version=6 (eller =0) undviker detta fel med en ändring av manglingen-fada-spec-parent=unit Skriv ut Ada-specifikationer som barnenheter till den givna föräldern-falign-labels=%d stödjs ej-falign-loops=%d stödjs ej-fassociative-math avslagen, andra flaggor gĂĄr före-fblas-matmul-limit= Storlek pĂĄ den minsta matris för vilken matmul kommer använda BLAS-fcall-saved- Markera att bevaras mellan funktioner-fcall-saved-REG stödjs inte för utregister-fcall-used- Markera att förstörs av funktionsanrop-fcheck=[...] Ange vilka körtidskontroller som skall utföras-fcilkplus mĂĄste vara aktiverat för att använda %<_Cilk_spawn%>-fcilkplus mĂĄste vara aktiverat för att använda %<_Cilk_sync%>-fcoarray=[...] Ange vilken co-vektorsparallellisering som skall användas-fcompare-debug[=] Kompilera med och utan t.ex. -gtoggle, och jämför slutinstruktionsdumpen-fconst-string-class= Använd klassen för konstanta strängar-fconstexpr-depth= Ange maximalt rekursionsdjup för konstantuttryck-fdata-sections stödjs inte för denna mĂĄlarkitektur-fdbg-cnt=%s-fdbg-cnt=:[,:,...] Sätt gränsen för felsökningsräknare. -fdeduce-init-list aktivera härledning av std::initializer_list för en malltypparameter frĂĄn en klammeromsluten initierarlista-fdiagnostics-color=[never|always|auto] Färglägg felmeddelanden-fdiagnostics-show-location=[once|every-line] Anger hur ofta källkodspositioner skall skrivas ut i början av utskrift vid radbrytning-fdirectives-only är inkompatibel med -Wunused_macros-fdirectives-only är inkompatibel med -traditional-fdisable-[tree|rtl|ipa]-=intrvl1+intrvl2 avaktiverar ett optimeringspass-fdump- Skriv ut diverse intern kompilatorinformation till en fil-fdump-final-insns=filnamn Skriv instruktionerna vid slutet av översättningen till filnamn-fdump-go-spec=filnamn Skriv alla deklarationer till fil som Go-kod-femit-class-file skall användas tillsammans med -fsyntax-only-femit-struct-debug-baseonly Aggressivt reducerad felsökningsinformation för poster-femit-struct-debug-detaild= Detaljreducerad felsökningsinformation för poster-femit-struct-debug-reduced Konservativt reducerad felsökningsinformation för poster-fenable-[tree|rtl|ipa]-=intrvl1+intrvl2 aktiverar ett optimeringspass-fexecc-precision=[fast|standard] Ange hantering av överskjutande precision pĂĄ flyttal-fexcess-precision=standard för Ada-fexcess-precision=standard för C++-fexcess-precision=standard för Fortran-fexcess-precision=standard för Java-fexec-charset= Konvertera alla strängar och teckenkonstanter till teckenuppsättningen -ffixed- Markera som ej tillgängligt för kompilatorn-ffixed-line-length- Använd radlängd med n tecken i fast läge-ffp-contract=[off|on|fast] Utför kontraktion av flyttalsuttryck.-ffpe-summary=[…] Skriv ut en sammanfattning av flyttalsundantag-ffpe-trap=[...] Stanna vid följande flyttalsundantag-ffree-line-length- Använd radlängd med n tecken i fri form-ffunction-sections stödjs inte för denna mĂĄlarkitektur-fgo-dump- Skriv ut Go-framändens interna information-fgo-optimize- SlĂĄ pĂĄ optimeringspass i framänden-fgo-pkgpath= Sätt Go-paketsökväg-fgo-prefix= Sätt paketspecifika prefix för exporterade Go-namn-fgo-relative-import-path= Hantera en relativ import som relativ till sökv-fhandle-exceptions har bytt namn till -fexceptions (och är nu normalt pĂĄslagen)-findirect-dispatch är inkompatibel med -freduced-reflection-finit-character= Initiera lokala teckenvariabler med ASCII-värde n-finit-integer= Initiera lokala heltalsvariabler med n-finit-logical= Initiera lokala logiska variabler-finit-real= Initiera lokala reella variabler-finline-limit= Begränsa storlek pĂĄ inline-funktioner till -finput-charset= Ange standardteckenuppsättning för källkodsfiler-finstrument-functions-exclude-file-list=filenamn,... Instrumentera inte funktioner uppräknade i filerna-finstrument-functions-exclude-function-list=namn,... Instrumentera inte uppräknade funktioner-fira-algorithm=[CB|priority] Bestäm den använda IRA-algoritmen-fira-region=[one|all|mixed] Sätt regioner för IRA-fira-verbose= Styr IRA:ns nivĂĄ pĂĄ diagnostikmeddelanden.-fjni och -femit-class-file är inkompatibla-fjni och -femit-class-files är inkompatibla-fjni är inkompatibel med -freduced-reflection-flto-compression-level= Använd zlib-komprimering pĂĄ nivĂĄ för IL-fmax-array-constructor= Maximalt antal objekt i en vektorkonstruerare-fmax-errors= Maximalt antal fel som skall rapporteras-fmax-identifier-length= Maximal identifierarlängd-fmax-stack-var-size= Storlek i byte pĂĄ den största vektorn som läggs pĂĄ stacken-fmax-subrecord-length= Maximal längd för underposter-fmessage-length= Begränsa felmeddelandens längd till tecken per rad. 0 stänger av radbrytning-fno-fat-lto-objects stödjs endast med insticksmodul för länkning-fno-gnu89-inline stödjs endast i GNU99- C99-läge-fno-pretty-templates Finskriv inte mallspecialiceringar som mallsignaturer följda av argumenten-fno-threadsafe-statics Generera inte trĂĄdsäker kod för initiering a lokala statiska variabler-fopt-info[-=filenamn] Skriv ut kompilatoroptimeringsdetaljer-force_flat_namespace är inte tillĂĄten med -dynamiclib-fpack-struct= Ange initial maximal justering för postmedlemmar-fpic och -fPIC stödjs inte utan -mdsbt för detta mĂĄl-fpic och -mapcs-reent är inkompatibla-fpic stödjs inte-fpie stödjs inte-fplugin-arg--[=] Ange argument = för insticksmodul -fprefetch-loop-arrays stödjs inte med -Os-fprefetch-loop-arrays stödjs inte för denna mĂĄlarkitektur-fprefetch-loop-arrays stödjs inte för denna mĂĄlarkitektur (försök med -march-flaggor)-frandom-seed= Gör kompileringen reproducerbar med -frecord-gcc-switches stödjs inte för den aktuella mĂĄlarkitekturen-freorder-blocks-and-partition stödjer inte upprullningsinformation pĂĄ denna arkitektur-freorder-blocks-and-partition fungerar inte pĂĄ denna arkitektur-freorder-blocks-and-partition fungerar inte med undantag pĂĄ denna arkitektur-freorder-blocks-and-partition stödjs inte pĂĄ denna arkitektur-frepo mĂĄste användas tillsammans med -c-fsanitize=address är inkompatibel med -fsanitize=thread-fsanitize=address stödjs inte för denna mĂĄlarkitektur-fsanitize=thread-länkning mĂĄste göra med -pie eller -shared-fsched-stalled-insns-dep= Sätt beroendeavstĂĄndet som kontrolleras i förtida schemaläggning av köade instruktioner-fsched-stalled-insns= Ange antalet köade instruktioner som kan schemaläggas i förtid-fsched-verbose= Ange hur mĂĄngordig schemaläggaren skall vara-fsplit-stack stödjer inte 2 registerparametrar för en nästad funktion-fsplit-stack stödjer inte 3 registerparametrar-fsplit-stack stödjer inte fastcall med nästade funktioner-fstack-check=[no|generic|specific] Lägg in stackkontrollkod i programmet-fstack-check=specific är inte implementerat för MIPS16-fstack-limit- flaggor ignoreras med -mfdpic; använd -mstack-check-l1-fstack-limit-flaggor stödjs inte pĂĄ denna mĂĄlarkitektur-fstack-limit-register= FĂĄnga om stacken gĂĄr förbi -fstack-limit-symbol= FĂĄnga om stacken gĂĄr förbi symbolen -fstack-protector stödjs inte av denna mĂĄlarkitektur-fstack-reuse=[all|named_vars|none] Ställ in stackĂĄteranvändningsnivĂĄn för lokala variabler.-fstrict-volatile-bitfields avaktiverat; det är inkomatibelt med ABI-versioner < 2-ftabstop= AvstĂĄnd mellan tabulatorstopp för kolumnvis rapportering-ftemplate-depth= Ange maximalt instansieringsdjup för mallar-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Ange normal kodgenereringsmodell för trĂĄdlokal lagring-ftrack-macro-expansion=<0|1|2> SpĂĄra platser för symboler som kommer frĂĄn makroexpansion och visa dem i felmeddelanden-fuse-linker-plugin stödjs inte i denna konfiguration-fuse-linker-plugin, men %s inte funnen-fvisibility=[default|internal|hidden|protected] Ange standardvärde för symbolsynlighet-fwide-exec-charset= Konvertera alla breda strängar och teckenkonstanter till teckenuppsättningen -fwpa och -fltrans är ömsesidigt uteslutande-g stödjs bara när man använder GAS pĂĄ denna processor,flaggan -g är avslagen-g med -mno-apcs-frame ger kanske inte vettig felsökning-gnat Ange flaggor till GNAT-idirafter Lägg till till slutet av sökvägen för systeminkluderingar-iframework Lägg till till slutet av systemramverkets inkluderingssökväg-imacros Tag med definitioner av makron i -imultiarch Sätt att vara inkluderingsunderbiblioteket för multiarkitekturer-imultilib Sätt att vara inkluderingsunderbiblioteket för multibibliotek-include Inkludera innehĂĄllet i före andra filer-install_name är bara tillĂĄten med -dynamiclibflaggan -iplugindir skickas inte frĂĄn gcc-drivrutin-iplugindir= Sätt att vara standardbibliotek för insticksmoduler-iprefix Ange som ett prefix för de följande tvĂĄ flaggorna-iquote Lägg till till slutet av sökvägen för citerade inkluderingar-isysroot Sätt som rotkatalog för systemet-isystem Lägg till till början av sökvägen för systeminkluderingar-iwithprefix Lägg till till slutet av sökvägen för systeminkluderingar-iwithprefixbefore Lägg till till slutet av huvudsökvägen-keep_private_externs är inte tillĂĄten med -dynamiclib-m%s stödjs inte i denna konfiguration-m64 kräver PowerPC64-arkitektur, aktiverar-m64 kräver en PowerPC64-CPU-mabi=ABI Generera kod som följer det angivna ABI:et-mabi=ABI Generera kod som följer det angivna ABI:et-mabs=MODE Välj exekveringsläget IEEE 754 för instruktionerna ABS/NEG-maix64 krävs: 64-bitsberäkningar med 32-bitars adressering stödjs inte än-maix64 kräver att arkitekturen PowerPC64 fortfarande är aktiverad-malign-functions är förĂĄldrat, använd -falign-functions-malign-functions=%d är inte mellan 0 och %d-malign-jumps är förĂĄldrat, använd -falign-jumps-malign-jumps=%d är inte mellan 0 och %d-malign-loops är förĂĄldrat, använd -falign-loops-malign-loops=%d är inte mellan 0 och %d-malign-power stödjs inte för 64-bitars Darwin, det är inkompatibelt med de installerade C- och C++-biblioteken-maltivec=le är inte tillĂĄtet för mĂĄl med rak byteordning-mapcs-stack-check är inkompatibel med -mno-apcs-frame-march=ARK Generera kod för det angivna chip:et eller CPU-versionen-march=ARK Använd funktioner i arkitekturen ARK-march=ISA Generera kod för den angivna ISA:n-mas100-syntax är inkompatibel med -gdwarf-masm=intel stödjs inte i denna konfiguration-max-stackframe=%d är inte användbar, inte mellan 0 och %d-mbackchain -mpacked-stack -mhard-float stödjs inte i kombination-mbig-endian och -mlittle-endian fĂĄr inte användas tillsammans-mbnu210 ignoreras (flaggan är förĂĄldrad)-mbranch-cost=%d är inte mellan 0 och 5-mbranch-cost=KOSTNAD Ange kostnaden för grenar till ungefär KOSTNAD instruktioner-mc= mĂĄste vara -mc=tiny, -mc=near eller -mc=far-mcall-aixdesc är inkompatibel med -mabi=elfv2-mclip har för närvarande ingen effekt utan -mminmax-mcmodel är inkompatibel med andra toc-flaggor-mcmodel= stödjs inte pĂĄ 32-bitars system-code-readable=INSTĂ„LLNING Ange när instruktioner tillĂĄts komma ĂĄt kod-mcorea och -mcoreb kan inte användas tillsammans-fcorea mĂĄste användas tillsammans med -mmulticore-fcoreb mĂĄste användas tillsammans med -mmulticore-mcpu= Använd funktioner i och schemalägg kod för angiven CPU-mcpu=%s stĂĄr i konflikt med -march=%s-mcpu=%s har ogiltig kiselversion-mcpu=%s är inte giltigt-mcpu=CPU Kompilera kod för ARC-variant av CPU-mcpu=CPU Använd funktioner i och optimera för angiven CPU-mcpu=CPU Använd funktioner i och schemalägg kod för angiven CPU-mcpu=PROCESSOR Använd funktioner i och schemalägg kod för angiven CPU-mcpu=m16c Kompilera kod för M16C-varianter-mcpu=m32c Kompilera kod för M32C-varianter-mcpu=m32cm Kompilera kod för M32CM-varianter-mcpu=r8c Kompilera kod för R8C-varianter-mcrypto behöver -maltivec-mdebug= Aktivera felsökningsutdata-mdirect-move behöver -mvsx-memregs= Antal memreg-byte (standard: 16, intervall: 0..16)-mexr används utan -ms-mexr används utan -ms eller -msx-mfdpic stödjs inte, välj ett bfin-linux-uclibc-mĂĄl-mfentry stödjs inte för 32 bitar i kombination med -fpic-mfloat-abi=hard och VFP-mfloat-abi=soft och -mfloat_abi=hard fĂĄr inte användas tillsammans-mfloat-gprs= Välj GPR-flyttalsmetod-mflush-func=FUNK Använd FUNK för att tömma cachen föra anrop av stacktrampoliner-mfpu= Ange FP (sp, dp, sp-lite, dp-lite) (implicerar -mxilinx-fpu)-mhard-dfp kan inte användas tillsammans med -msoft-float-mhard-float stödjs inte-mincoming-stack-boundary=%d är inte mellan %d och 12-mint32 stödjs inte för mĂĄlen H8300 och H8300L-mipsN Generera kod för ISA nivĂĄ N-mlarge behöver en 430X-kompatibel -mmcu=-mlong-double-64 är inte tillĂĄten med -m64-mlong-double- Ange storlek pĂĄ long double (64 eller 128 bitar)-mmax-stackframe=STORLEK Varna när en stackram är större än den angivna storleken-mmcu=MCU Välj mĂĄl-MCU:n-mmul32x16 stödjs endast för ARC600 eller ARC601-mmul64 stödjs inte för ARC700-mmulticore kan endast användas med BF561-mmultiple stödjs inte pĂĄ system med omvänd byteordning-mn används utan -mh eller -ms eller -msx-mnan=ENCODING Välj NaN-datakodningen IEEE 754-mno-altivec avaktiverar vsx-mno-dpfp-lrsr stödjs endast med -mdpfp-mno-exr giltig endast med -ms eller -msx - Flaggan ignorerad!-mno-fentry är inte kompatibelt med SEH-mno-mpy stödjs endast för ARC700-mno-serialize-volatile Serialisera inte minnesreferenser till flyktigt minne med MEMW-instruktioner-mpcrel -fPIC stödjs för närvarande inte pĂĄ den valda cpu:n-mpic-register= är oanvändbar utan -fpic-mpointer-size=[no,32,short,64,long] Sätt standardstorlek pĂĄ pekare-mpower8-vector behöver -maltivec-mpower8-vector behöver -mvsx-mprefetch-stack-boundary stödjs inte för denna mĂĄlarkitektur-mpreferred-stack-boundary=%d är inte mellan %d och %d-mquad-memory är inte tillgängligt i läget med omvänd byteordning--mquad-memory kräver 64-bitarsläge-mquad-memory-atomic förutsätter 64-bitarsläge-mr10k-cache-barrier=INSTĂ„LLNING Ange när r10k-cache-barriärer skall skjutas in-mrecip kräver -ffinite-math eller -ffast-math-mrecip kräver -fno-trapping-math eller -ffast-math-mrecip kräver -freciprocal-math eller -ffast-math-mregparm ignoreras i 64-bitsläge-mregparm=%d är inte mellan 0 och %d-mrelax stödjs endast för RTP PIC-mrelocatable och -mcall-%s är inkompatibla-mrelocatable och -mno-minimal-toc är inkompatibla-mrelocatable och -msdata=%s är inkompatibla-ms2600 används utan -ms-mmsdata=%s och -mcall-%s är inkompatibla-msecure-plt stödjs inte av din assembler-mshared-library-id= angiven utan -mid-shared-library-mshared-library-id=%s är inte mellan 0 och %d-msim Använd simulatorkörtider-msim Använd simulatorkörtiderflaggan -msimple-fpu ignoreras-msingle-float och -msoft-float kan inte bĂĄda angesflaggan -msingle-float är likvärdig med -mhard-float-mslow-flash-data stödjer endast icke-pic-kod pĂĄ armv7-m-mĂĄl-mspfp_fast är inte tillgängligt pĂĄ ARC600 eller ARC601-mstack-guard implicerar användning av -mstack-size-mstring stödjs inte pĂĄ system med omvänd byteordning-mstringop-strategy=rep_8byte stödjs inte för 32-bitarskod-msx stödjs inte i coff-mtraceback= Välj fullständig, partiell, eller ingen bakĂĄtspĂĄrningstabell-mtune= Schemalägg kod för en given CPU-mtune= förväntar sig mn10300, am33, am33-2 eller am34-mtune=ARK Trimma justering för det angivna chip:et eller CPU-versionen-mtune=CPU Optimera för CPU-mtune=PROCESSOR Optimera utmatningen för PROCESSORflaggan -munix=98 krävs för funktioner frĂĄn C89 tillägg 1. -mvsx och -mno-altivec är inkompatibla-mvsx och -mpaired är inkompatibla-mvsx behöver indexerad adressering-mvsx kräver hĂĄrdvaruflyttal-mvsx-timode behöver -mvsx-mxl-multiply-high kan bara användas med -mcpu=v6.00.a eller större-mxl-multiply-high kräver -mno-xl-soft-mul-mxl-multiply-high kan bara användas med -mcpu=v8.30.a eller större-mxl-reorder behöver -mxl-pattern-compare för -mcpu=v8.30.a-o Skriv utdata i -pg och -fomit-frame-pointer är inkompatibla-pipe ignorerad eftersom -save-temps angivits-pipe stödjs inte-private_bundle är inte tillĂĄten med -dynamiclib-static-libgfortran stödjs inte i denna konfiguration-trigraphs Stöd trigrafer enligt ISO C.NOT.-operatorn i uttrycket vid %L mĂĄste ha en LOGICAL-operand128-bitars long double stödjs inte för VAX-flyttal2-bytes cop-instruktioner är inte tillĂĄtna i 64-bitars VLIW-läge31-bitars ABIinstruktionsuppsättningen 387 avaktiverad, använder SSE-aritmetik64-bitars ABI64-bits ABI stödjs inte i ESA/390-läge64-bitars SPE stödjs inte ! @catch-parameter kan inte vara protokollkvalificerad@catch-parameter är inte en känd Objective-C-klasstyp@interface till klassen %qE finns inteEtt grundblocks profilräknare anses het om den bidrar till den givna promillesatsen för hela den profilerade körningenEn faktor för att trimma den övre gränsen som pendlingsmolduloschemaläggaren använder för att schemalägga en slingaEn avhuggning frĂĄn flyttal till heltal fĂĄr ersättas med avrundning för att spara lägesbytenEn synonym för -std=c89 (för C) or -std=c++98 (för C++)Ett tröskelvärde pĂĄ det genomsnittliga antalet varv som beaktas av pendlingsmoduloschemaläggarenAAPCS stödjer inte -mcallee-super-interworkingAAPCS stödjer inte -mcaller-super-interworkingABSTRACT INTERFACE ”%s” fĂĄr inte refereras vid %LABSTRACT INTERFACE vid %CABSTRACT typ ”%s” används vid %LABSTRACT typ vid %CSlutligt AC-IMPLIED-DO-uttryck refererar styrvariabel vid %LInitialt AC-IMPLIED-DO-uttryck refererar styrvariabel vid %LAC-IMPLIED-DO-steguttryck refererar styrvariabel vid %LACCESS-specifikation vid %L var redan angivenACQUIRED_LOCK-variabelACQUIRED_LOCK=-argumentet vid %L mĂĄste vara en skalär LOGICAL-variabelAttributet ALLOCATABLE vid %C i en TYPE-definitionALLOCATABLE angiven utanför INTERFACE-kropp vid %LALLOCATE-objektALLOCATE av co-vektor vid %C i CRITICAL-blockALLOCATE av co-vektor vid %C i DO CONCURRENT-blockALTERNATE RETURN är inte tillĂĄtet vid %LAPCS-ĂĄteranropsbar kod stödjs inte. IgnorerasASSERT_EXPR med villkor som alltid är falsktASSIGN-sats vid %CASSIGN-sats vid %L kräver en skalär standard-INTEGER-variabelASSIGNED GOTO-sats vid %L kräver en INTEGER-variabelASSIGNED-variabel i FORMAT-tagg vid %LASSOCIATE-konstruktion vid %CAttributet ASYNCHRONOUS vid %CASYNCHRONOUS-sats vid %CASYNCHRONOUS= vid %C är inte tillĂĄtet i Fortran 95ASYNCHRONOUS=-specificerare vid %L mĂĄste vara ett initieringsuttryckATOM- och VALUE-argumenten till den inbyggda funktionen %s mĂĄste ha samma typ vid %LATOM-argumentet till vid %L till den inbyggda funktionen %s mĂĄste vara en co-vektor eller co-indexatargumentet ATOM vid %L till inbyggd funktion %s skall vara ett heltal av sorten ATOMIC_INT_KIND eller en logisk av sorten ATOMIC_LOGICAL_KINDATOM-argumentet till den inbyggda funktionen %s vid %L mĂĄste vara definierbartAUX-pekare initierad för bĂĄgen %i->%iAVX-vektorargument utan AVX aktiverat ändrar ABI:etAVX-vektorretur utan AVX aktiverat ändrar ABI:etAbstrakt gränssnitt ”%s” är ogiltigt i procedurpekartilldelning vid %LAcceptera utökningar för att stödja gammal kodNĂĄ data i samma sektion frĂĄn delade förankringspunkterĂ…tkomstspecifikation av operatorn %s vid %C har redan angivitsĂ…tkomstspecifikation för operatorn .%s. vid %C har redan angivitsKom ĂĄt variabler i 32-bitars PPU-objekt (standard)Kom ĂĄt variabler i 64-bitars PPU-objektSamla utgĂĄende funktionsargument och ta/släpp det nödvändiga stackutrymmet för utgĂĄende funktionsargument i funktionsprologen/-epilogen. Utan denna flagga trycks utgĂĄende argment pĂĄ stacken före anrop av en funktion och plockas efterĂĄt. Denna flagga kan medföra reducerad kodstorlek för funktioner som anropar mĂĄnga funktioner som fĂĄr sina argument pĂĄ stacken som, till exempel printf.Aktuellt CLASS-vektorargument till ”%s” mĂĄste vara en fullständig vektor vid %LAktuellt argument vid %L för INTENT(%s)-attrapp ”%s” av ELEMENTAL-subrutin ”%s” är en skalär, men ett annat aktuellt argument är en vektorAktuellt argument vid %L till allokerbart eller pekaratrappargument ”%s” mĂĄste ha en fördröjd längdtypparameter om och endast om atrappen har enAktuellt argument vid %L till attrapp med antagen typ är av en härledd typ med typgräns eller FINAL-procedurerAktuellt argument innehĂĄller för fĂĄ element för attrappargument ”%s” (%lu/%lu) vid %LAktuellt argument till ”%s” kan inte vara en vektor med antagen storlek vid %LAktuellt argument till ”%s” skall vara en ALLOCATABLE vid %LAktuellt argument till ”%s” skall vara en pekare vid %LAktuellt argument till LOCK_TYPE eller med LOCK_TYPE-komponent vid %L kräver ett explicit gränssnitt för proceduren ”%s”Aktuellt argument till ”%s” vid %L mĂĄste vara en co-vektorAktuellt argument till ”%s” vid %L mĂĄste vara polymorftAktuellt argument till ”%s” vid %L mĂĄste vara enkelt sammanhängandeAktuella argument till ”%s” vid %L mĂĄste vara obegränsat polymorfa eftersom det formella argumentet är en pekare eller allokerbar obegränsat polymorf enhet [F2008: 12.5.2.5]Aktuellt arkument till ”%s” vid %L mĂĄste ha samma deklarerade typAktuellt argument till sammanhängade pekareattrapp ”%s” vid %L mĂĄste vara enkelt sammanhängandeAktuellt argument till icke-INTENT(INOUT)-attrappen ”%s” vid %L, som är LOCK_TYPE eller har en LOCK_TYPE-komponentAktuell stränglängd matchar inte den deklarerade för attrappargument ”%s” (%ld/%ld)Aktuellt stränglängd är kortaren än den deklarerade för attrappargument ”%s” (%ld/%ld)Lägg till ett pass för eliminering av gemensamma deluttryck efter slingoptimeringarLägg till explicita kontroller av division med nollLägg till explicita kontroller av spill vid division av INT_MIN / -1Lägg till extra kommentarer till assemblerutdataYtterligare felsökningsutskrifterOptimera aggressivt slingor med användning av sprĂĄkbegränsningarAlias för --help=targetAlias för -femit-class-fileAlias har anropsbĂĄgarAlias har mer än en aliasreferensAlias har icke-alias-referensJustera alla etiketterJustera alla slingor till 32-bytesgränsJustera kod och data till 32 bitarJustera mĂĄlet för strängoperationernaJustera double pĂĄ 64-bitarsgränserJustera etiketter som bara nĂĄs via hoppJustera nĂĄgra double pĂĄ dword-gränsJustera starten av funktionerJustera starten av slingorJustera till bastypen av bitfältetJustera variabler pĂĄ en 32-bitarsgränsAlla funktioner till far-sektion som standardAlla inbyggda procedurer är tillgängliga oavsett av vald standardAlla minnesĂĄtkomster använder I/O ladda-/lagrainstruktionerAlla variabler läggs som standard i far-sektionenAlla variabler till near-sektionen som standardAlla variabler till tiny-sektionen som standardAllokerbar ”%s” vid %L kan inte ha en initierareDen allokerbara vektorn ”%s” vid %L mĂĄste ha en fördröjd form eller antagen ordningAllokerbar co-vektorvariabel ”%s” vid %L mĂĄste ha en fördröjd formDen allokerbara komponenten %s vid %L mĂĄste ha en co-dimension eftersom den har en icke co-vektordelkomponent av typen LOCK_TYPEAllokerbar komponent %s vid %L av typen LOCK_TYPE mĂĄste ha en co-dimensionAllokerbar komponent i post vid %C mĂĄste ha fördröjd formAllokerbar funktion ”%s” vid %L mĂĄste ha ett explicit funktionsgränssnittAllokera lokala variabler pĂĄ stacken för att möjliggöra indirekt rekursionAllokeringsobjekt vid %C är varken en pekare pĂĄ annat än procedur eller en allokerbar variabelAllokeringsobjekt vid %L förekommer ocksĂĄ vid %LAllokeringsobjekt vid %L är varken en datapekare eller en allokerbar variabelAllokeringsobjekt vid %L är underobjet till objekt vid %LAllokeringsojbekt vid %L mĂĄste vara ALLOCATABLE eller en POINTERAllokeringsobjekt vid %L med en fördröjd typparameter behöver antingen en typspecifikation eller en SOURCE-tagg eller en MOLD-taggAllokerar %s vid %L med typspecifikation kräver samma teckenlängdsparameter som i deklarationenAllokering %s av ABSTRACT bastyp vid %L behöver en typspecifikation eller source-uttryckAllokering skulle överstiga minnesgränsTillĂĄt 128-bitars heltal i VSX-registerTillĂĄt ett symbolvärde att användas som ett omedelbart värde i en instruktion.TillĂĄt radlängd med godtyckligt antal tecken i fast lägeTillĂĄt radlängd med godtyckligt antal tecken i fri formTillĂĄt att bitfält gĂĄr över ordgränserTillĂĄt grenar att packas med andra instruktionerTillĂĄt konvertering mellan __ea och generiska pekare (standard)TillĂĄt dollartecken i entitetsnamnTillĂĄt double-variabler i övre register med -mcpu=power7 eller -mvsxTillĂĄt snabba hopp till meddelandehanterarenTillĂĄt flyttalsvariabler i övre register med -mcpu=power8 eller mp8-vectorTillĂĄt att funktionsadresser läggs i registerTillĂĄt gcc att generera LIW-instruktionerTillĂĄt gcc att generera instruktionerna SETLB och LccTillĂĄt gcc att använd repeat/erepeat-instruktionernaTillĂĄt flyttalsinstruktioner i hĂĄrdvara att täcka bĂĄde 32-bitars och 64-bitars operationerTillĂĄt implicit konvertering mellan vektorer med olika antal underdelar och/eller olika elementtyper.TillĂĄt slingoptimeringar att anta att slingorna beter sig normaltTillĂĄt matematikoptimeringar som kan strida mot IEEE- eller ISO-standarderTillĂĄt att nya datakapplöpningar vid laddningar introducerasTillĂĄt att nya datakapplöpningar vid laddning av packade data introducerasTillĂĄt att nya datakapplöpningar vid lagring av packade data introducerasTillĂĄt att nya datakapplöpningar vid lagringar introducerasTillĂĄt optimeringar för flyttalsaritmetik som kan ändra resultatet av operationen pĂĄ grund av avrundningTillĂĄt förtida schemaläggning av köade instruktionerTillĂĄt teckenutökning i sammanslagningsoperationerTillĂĄt spekulativ förflyttning av fler inläsningarTillĂĄt spekulativ förflyttning av icke-inläsningarTillĂĄt spekulativ förflyttning av nĂĄgra inläsningarTillĂĄt argument till ”?”-operatorn att ha olika typerTillĂĄt användningen av MDMX-instruktionerTillĂĄt användning av MT-instruktionerTillĂĄt användningen av flyttalsinstruktioner för V850E2V3 och uppĂĄtTillĂĄt användningen av flyttalsinstruktioner och -ABI i hĂĄrdvaraTillĂĄt avhuggning istället för avrundning mot 0 för decimalheltalstyperTillĂĄt att tvĂĄ instruktioner läggs ut per cykelTillĂĄt variadiska funktioner utan namngiven parameterRedan inuti ett CONTAINS-block vid %CĂ„ven if-convert villkorliga hopp som innehĂĄller minnesskrivningarAlternativ RETURN-sats vid %C är bara tillĂĄten inuti en SUBROUTINEAlternativ RETURN-sats vid %L kräver en SCALAR-INTEGER-retuspecificerareAlternativ anropskonventionAlternativ retur fĂĄr inte förekomma i operatorgränssnitt vid %LAlternativ returspecificerare i elementär subrutin ”%s” vid %L är inte tillĂĄtenAlternativ returspecifierare i funktionen ”%s” vid %L är inte tillĂĄtenAlternativt returargument vid %CFast orefererad har ”%s” tvetydiga gränssnitt vid %LAltiVec- och SPE-instruktioner kan inte samexisteraAltiVec-argument skickat till funktion utan prototypAltiVec stödjs inte pĂĄ denna mĂĄlarkitekturLeta alltid efter klassarkiv ej genererade av gcjGenerera alltid lĂĄnga anropHantera alltid bitfält som int-storaAnvänd alltid Dynamic Realigned Argument Pointer (DRAP) för att justera stackenTvetydiga gränssnitt ”%s” och ”%s” i %s vid %LTvetydig symbol i TYPE-definition vid %CLägg till lämpliga diagnostiska meddelanden till kommandoradsflaggan som styr demEtt alias för minterlink-compressed som finns för bakĂĄtkompatibilitet.En alternativ retur vid %L utan ett * attrappargumentEn indirektbĂĄge frĂĄn %s är inte markerad som indirekt eller har associerad indirect_info, motsvarande sats är: En yttre FORALL-konstruktion har redan ett index med detta namn %LAnalyserat alias har ingen referensAnnotera assemblerinstruktioner med bedömda adresserLägg till ett andra understrykningstecken om namnet redan innehĂĄller ett understrykningsteckenLägg till understrykningstecken till externt synliga namnAnvänd negativt tecken pĂĄ nollvärdenTillämpa variabelexpansion när slingor rullas utUngefärligt antal instruktioner att tillĂĄta mellan ett tips och dess gren [125]Argumentet ”%s” förekommer tvĂĄ gĂĄnger i anrop till ”%s” vid %LArgumentet ”%s” till ”%s” med PASS(%s) vid %L fĂĄr inte vara ALLOCATABLEArgumentet ”%s” till ”%s” med PASS(%s) vid %L fĂĄr inte ha attributet POINTERArgument ”%s” till ”%s” med PASS(%s) vid %L mĂĄste ha den härledda typen ”%s”Argument ”%s” till ”%s” med PASS(%s) vid %L mĂĄste ha den härledda typen ”%s”Argument ”%s” till ”%s” med PASS(%s) vid %L mĂĄste vara skalärtArgumentet ”%s” till elementär subrutin ”%s” vid %L mĂĄste ha sitt INTENT angivet eller ha attributet VALUEArgumentet ”%s” av elementär procedur vid %L fĂĄr inte ha attributet ALLOCATABLEArgumentet ”%s” av elementär procedur vid %L fĂĄr inte ha attributet POINTER”%s”-argumentet till elementär procedur vid %L mĂĄste vara skalärtArgumentet ”%s” till pure-funktion ”%s” vid %L mĂĄste vara INTENT(IN) eller VALUEArgumentet ”%s” till pure-funktion ”%s” vid %L med attributet VALUE men utan INTENT(IN)Argumentet ”%s” till pure-subrutin ”%s” vid %L mĂĄste ha sitt INTENT angivet eller ha attributet VALUEArgument ”%s” till pure-subrutin ”%s” vid %L med attributet VALUE men utan INTENT”%s”-argumentet till satsfunktionen vid %L mĂĄste vara skalärtArgument ”S” till NEAREST vid %L fĂĄr inte vara nollArgumentet CPTR vid %L till C_F_FUNPOINTER skall ha typen TYPE(C_PTR)Argumentet CPTR vid %L till C_F_PROCPOINTER skall ha typen TYPE(C_FUNPTR)Argumentet C_PTR_1 vid %L till C_ASSOCIATED skall ha typen TYPE(C_PTR) eller TYPE(C_FUNPTR)Argumentet C_PTR_2 vid %L till C_ASSOCIATED skall ha samma typ som C_PTR_1: %s istället för %sArgumentet FPTR vid %L till C_F_POINTER mĂĄste vara en pekareArgumentet FPTR vid %L till C_F_POINTER skall inte vara co-indexeratArgumentet FPTR vid %L till C_F_PROCPOINTER skall vara en procedurpekareArgumentet FPTR vid %L till C_F_PROCPOINTER fĂĄr inte vara co-indexeratArgument NCOPIES till inbyggd REPEAT är negativt (dess värde är %ld)Argument NCOPIES till inbyggd REPEAT är negativt vid %LArgumentet NCOPIES till inbyggd REPEAT är för stortArgumentet NCOPIES till inbyggd REPEAT är för stort vid %LArgumentet X vid %L till C_FUNLOC skall vara en procedur eller en procedurpekareArgumentet X vid %L till C_FUNLOC fĂĄr inte vara co-indexeratArgumentet X vid %L till C_LOC fĂĄr inte vara en sträng med längden nollArgumentet X vid %L till C_LOC skall antingen ha attributet POINTER eller TARGETArgumentet X vid %L till C_LOC fĂĄr inte vara co-indexeratArgumentet vid %L till C_LOC fĂĄr inte vara polymorftDim-argumentet vid %L mĂĄste ha INTEGER-typDim-argumentet vid %L mĂĄste vara skalärtArgument stämmer inte överens för den ĂĄsidosättande proceduren ”%s” vid %L: %sArgument till ”%s” vid %L mĂĄste ha längden ettArgument till %s-funktion vid %L är negativtArgument till funktion %s vid %L är för stort för sorteringssekvensen av ordning %dArgument till %s-funktion vid %L utanför sitt intervall [0,127]Argument till ACOS vid %L mĂĄste vara mellan -1 och 1Argumentet till ACOSH vid %L fĂĄr inte vara mindre än 1Argument till till ASIN vid %L mĂĄste vara mellan -1 och 1Argument till ATANH vid %L mĂĄste vara i intervallet -1 till 1Argument till FINAL-procedur vid %L mĂĄste ha typen ”%s”Argument till FINAL-procedur vid %L fĂĄr inte vara ALLOCATABLEArgument till FINAL-procedur vid %L fĂĄr inte vara INTENT(OUT)Argument till FINAL-procedur vid %L fĂĄr inte vara OPTIONALArgument till FINAL-procedur vid %L fĂĄr inte vara en POINTERArgument till IACHAR vid %L mĂĄste ha längden ettArgument till IACHAR-funktion vid %L är utanför sitt intevall 0..127Argument till ICHAR vid %L mĂĄste ha längden ettArgument till LOG vid %L fĂĄr inte vara mindre än eller lika med nollArgument till LOG10 vid %L fĂĄr inte vara mindre än eller lika med nollArgument till SELECT-sats vid %L kan inte vara %sArgumentet till SELECT-satsen vid %L mĂĄste vara ett skalärt uttryckArgument till SQRT vid %L har ett negativt värdeArgumentet till -fcheck är inte giltigt: %sArgumentet till -fcoarray är inte giltigt: %sArgumentet till -ffpe-summary är inte giltigt: %sArgumentet till -ffpe-trap är inte giltigt: %sArgumenttyper till inbyggd ”%s” vid %L mĂĄste stämma överens (%s/%s)Aritmetisk IF-sats vid %CAritmetisk IF-sats vid %L kräver ett numeriskt uttryckAritmetisk NaN vid %LAritmetisk NaN-konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetisk NaN vid bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetik OK vid %LAritmetiskt OK konvertering av %s till %s vid %LAritmetiskt spill vid %LAritmetiskt spill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetiskt överspill vid bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetiskt underspill vid %LAritmetiskt underspill vid konvertering av %s till %s vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkAritmetiskt underspill av bitvis överförd BOZ vid %L. Denna kontroll kan avaktiveras med flaggan -fno-range-checkVektor ”%s” vid %L kan inte ha en fördröjd formVektor ”%s” vid %L är en variabel, som inte reduceras till ett konstant uttryckVektor ”%s” vid %L med icke-konstanta gränser kan inte vara ett EQUIVALENCE-objektVektorkomponent i post vid %C mĂĄste ha uttrycklig formVektorkomponent i post vid %C mĂĄste ha fördröjd formVektorkonstruerare med typspecifikation vid %CVektorkonstruerarvärde vid %L fĂĄr inte vara obegränsat polymorft [F2008: C4106]Vektorelementstorlek är för stor vid %CVektorindex vid %L är en vektor med ordning %dVektorindex vid %L mĂĄste ha INTEGER-typ, fann %sVektorindex vid %L mĂĄste vara skalärtVektor med interoperabla typer vid %L till C_LOC som inte är allokerbar och varken antagen storlek eller explicit storlekVektoroperander passar inte ihop vid %LVektoroperander passar inte ihop vid konvertering av %s till %s vid %LVektorpekaren ”%s” vid %L mĂĄste ha en fördröjd form eller antagen ordningVektorreferens vid %C kan inte ha mer än %d dimensionerVektorreferens vid %L är utanför gränsen (%ld < %ld) i co-dimension %dVektorreferens vid %L är utanför gränsen (%ld < %ld) i dimension %dVektorreferens vid %L är utanför gränsen (%ld > %ld) i co-dimension %dVektorreferens vid %L är utanför gränsen (%ld > %ld) i dimension %dVektorreferens i EQUIVALENCE vid %C fĂĄr inte vara en vektorsektionVektorreferens utanför gränsernaVektorsektion vid %L till C_LOCVektorsektionsbeteckning, t.ex. ”(:)”, krävs förutom co-vektorbeteckningen ”[...]” vid %CVektorsektion med ett vektorindex vid %L skall inte vara mĂĄlet för en pekareVektorspecifikation vid %C har mer än %d dimensionerVektorspecifikation vid %C med mer än 7 dimensionerVektorspecifikation för symbolen ”%s” i COMMON vid %C mĂĄste vara explicitVektorspecifikation mĂĄste vara fördröjd vid %LVektorspecifikation krävs i ALLOCATE-sats vid %LVektorsektion som aktuellt argument vid %L är inkompatibelt med attrappargumentet ”%s” utan antagen form pĂĄ grund av attributet VOLATILEVektorsektion som aktuellt argument med vektorindex vid %L är inte kompatibelt med attributet INTENT(OUT), INTENT(INOUT), VOLATILE eller ASYNCHRONOUS pĂĄ attrappargumentet ”%s”Eftersom utvidgningen av ”%s” vid %L har en co-vektorkomponent, skall föräldratypen ”%s” ocksĂĄ ha enAssemblern stödjer inte -mabi=ilp32Assemblerflaggor ================ Tilldelad GOTO-sats vid %CTilldelad etikett är inte en mĂĄletikettTilldelning annat värde än 0 eller 1 till LOGICAL har odefinierat resultat vid %LGränssnitt för tilldelningsoperator vid %L mĂĄste vara en SUBROUTINEGränssnitt för tilldelningsoperator vid %L mĂĄste ha tvĂĄ argumentGränssnitt för tilldelningsoperator vid %L fĂĄr inte omdefiniera en INTRINSIC-typtilldelningTilldelning till en FORALL-indexvariabel vid %LTilldelning till en allokerbar polymorf variabel vid %LTilldelning till allokerbar polymorf variabel vid %L stödjs inte ännuTilldelning till en allokerbar polymorf variabel vid %L kräver -frealloc-lhsTilldelning till en co-indexerad variabel vid %L i en PURE-procedurTilldelning till en polymorf co-vektor vid %L är inte tillĂĄtetAssociationsnamn ”%s” vid %L används som en vektorAssociationsnamn ”%s” kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %L eftersom dess mĂĄl vid %L inte heller kanAssociationsmĂĄlet vid %C fĂĄr inte vara co-indexeratAnta ICPLBs är aktiverade vid körtillfället.Anta ett stort TLS-segmentAnta att alla symboler har 32-bitsvärdenAnta att alla funktioner med variabelt antal argument har prototypAntag att byte har rak byteordning, ord har omvänd byteordning. Denna flagga bör undvikas.Anta att kod kommer assembleras av GASAnta kod kommer länkas av GNU ldAnta kod kommer länkas av HP ldAnta att datasegment är relativa till textsegment.Anta att flyttalsoperationer kan utlösa fällorAnta att inkommande stack är justerad till denna 2-potensAnta att etiketter och symboler kan adresseras med 16-bitars absoluta adresser.Anta att ladda data frĂĄn flash är lĂĄngsammare än att hämta instruktioner.Anta att inbyggda funktioner är implementerade med JNIAnta att inga NaN:er eller oändligheter genererasAnta normal C-körmiljöAnta möjlig feljustering av doubleAnta att pt*-instruktioner inte utlöser fällorAnta avrundning till närmaste är valt i schemaläggningssyfte.Anta att spill vid teckenaritmetik slĂĄr runtAnta liten adressrymdAnta att strikta aliasregler gällerAnta att symboler kan vara ogiltigaAntag att mĂĄl-CPU:n är konfigurerad för rak byteordningAntag att mĂĄl-CPU:n är konfigurerad med omvänd byteordningAnta att flyttalslagringar och -laddningar troligen inte orsakar konflikter när de placeras i en instruktionsgruppAnta att mottagare av Objective-C-meddelanden kan var nilAnta att körtidsstöd finns, sĂĄ utelämna -lsim frĂĄn länkningskommandoradenAntag att de ömsesidiga uppskattningsinstruktionerna ger mer precision.Anta att källkodsfilen är i fix formAnta att källkodsfilen är i fritt formatAntag att värdena i uppräkningstyper alltid finns inom det minsta intervallet av den typenAnta att villkorliga grenar med noll förskjutning är snabbaAnta miljön VxWorks RTPAnta miljön VxWorks vThreadsAnta att en hash-tabell används vid körning för att avbilda ett objekt till dess synkroniseringsstrukturTeckenlängdsvariabel ”%s” med antagen eller fördröjd längd i konstant uttryck vid %LVektor ”%s” med antagen form vid %L är inte tillĂĄten i ett initieringsuttryckVektor med antagen form vid %L mĂĄste vara ett attrappargumentVektor ”%s” med antagen storlek vid %L är inte tillĂĄten i ett initieringsuttryckVektor ”%s” med antagen storlek i %s-klausul vid %LVektor ”%s” med antagen storlek i COPYPRIVATE-klausul vid %LVektor ”%s” med antagen storlek i namnlistan ”%s” vid %C är inte tillĂĄtetVektor ”%s” med antagen storlek i namnlistan ”%s” vid %L är inte tillĂĄtetVektor med antagen storlek vid %L mĂĄste vara ett attrappargumentPolymorfa objekt eller komponenter med antagen storlek, sĂĄsom den vid %C, har inte implementerats ännuAntagen typ vid %CFörmodad typ vid %C är inte tillĂĄtet för komponenterDen antagna typen pĂĄ variabeln %s vid %L är bara tillĂĄten för attrappvariablerArgumentet med antagen ordning vid %L är endast tillĂĄtet som aktuellt argument till inbyggda frĂĄgefunktionerArgumentet med antagen ordning vid %L är endast tillĂĄtet som första aktuella argument till den inbyggda frĂĄgefunktionen %sArgumentet med antagen ordning kräver ett explicit gränssnitt vid %LVektor med antagen ordning vid %CVektor med antagen ordning vid %L kan inte ha attributet VALUE eller CODIMENSIONVektor med antagen ordning vid %L mĂĄste vara ett attrappargumentVariabel med antagen ordning %s vid %L som aktuellt argument till en frĂĄgefunktion skall vara det första argumentetVariabeln %s med antagen ordning vid %L kan bara användas som ett aktuellt argumentVariabeln %s med antagen ordning vid %L skall inte ha en subobjektreferensAktuellt argument med antagen form vid %L är inte kompatibel med attrappargumentet ”%s” utan antagen form pĂĄ grund av attributet VOLATILEVektorn ”%s” med antagen form vid %L som attrappargument till BIND(C)-proceduren ”%s” vid %LAktuellt argument med antagen typ vid %L kräver att attrappargumentet ”%s” har antagen typArgumentet ”%s” med antagen typ vid %L kräver ett explicit gränssnittArgumentet med antagen typ vid %L är inte tillĂĄtet som aktuellt argument till den inbyggda %sArgumentet med antagen typ vid %L är endast tillĂĄtet som aktuellt argument till den inbyggda funktionen ”%s”Variabel med antagen typ %s vid %L som aktuellt argument till en frĂĄgefunktion skall vara det första argumentetVariabeln ”%s” med antagen typ vid %L fĂĄr inte ha attributet ALLOCATABLE, CODIMENSION, POINTER eller VALUEVariabeln ”%s” med antagen typ vid %L fĂĄr inte ha attributet INTENT(OUT)Variabeln %s med antagen typ vid %L fĂĄr bara användas som ett aktuellt argumentVariabeln %s med antagen typ vid %L fĂĄr inte vara en vektor med explicit formVariabeln %s med antagen typ vid %L skall inte ha en subobjektreferensI global räckvidd:Som mest %i profilkörningar stödjs. Kanske en skadad profil?PĂĄ toppnivĂĄ:Skriv atomärt tillbaka programmets data-cache-rader (standard)Försök att DEALLOCATE oallokerad ”%s”Försök fylla fördröjningsfack av greninstruktionerFörsök att indirekt överlappa COMMON-block %s och %s med EQUIVALENCE vid %CFörsök hĂĄll stacken justerad till denna 2-potensFörsök slĂĄ samman identiska konstanter mellan kompileringsenheterFörsök slĂĄ samman identiska konstanter och konstanta variablerFörsök slĂĄ samman identiska felsökningssträngar mellan kompileringsenheterFörsök att allokera redan allokerad variabelFörsök att allokera redan allokerad variabel ”%s”Attributet %s vid %L i en TYPE-definitionAttribut vid %L är inte tillĂĄtet i en TYPE-definitionAutomatisk vektor ”%s” vid %L kan inte ha en initierareJustera automatiskt grenmĂĄl för att reducera grenstraffUndvik alla avstĂĄndsgränser vid anropsinstruktionerUndvik att generera pc-relativa anrop, använd indirekt anropUndvik att generera indexerade load/store-instruktioner sĂĄ lĂĄngt möjligtUndvik överlappande destinationer och adressregister för LDRD-instruktionerUndvik spekulativa lastningar för att gĂĄ runt en hĂĄrdvaruanomali.BB %i kan inte kasta men har en EH-bĂĄgeBB %i har felaktig bĂĄgeBB %i har felaktig fall-igenom-bĂĄgeBB %i har flera EH-bĂĄgarBB %i sakar en EH-bĂĄgeBB %i saknar en bĂĄgeBB %i:s sista sats har felaktigt satt lpBB %i har för mĂĄnga fall-igenom-bĂĄgarflaggan BB_RTL är inte satt för block %dBIND(C) applicerat pĂĄ %s %s vid %LBIND(C) vid %LAttribut BIND(C) vid %C kräver ett gränssnitt med BIND(C)Attribut BIND(C) vid %L kan endast användas för variabler och common-blockAttributet BIND(C) vid %L kan inte anges för en intern procedurBIND(C)-procedur med NAME fĂĄr inte ha attributet POINTER vid %CBIND(C)-sats vid %CBLANK= vid %C är inte tillĂĄtet i Fortran 95BLOCK DATA-element ”%s” vid %L mĂĄste vara i COMMONBLOCK-konstruktion vid %CBOZ-konstant vid %C använder icke-standard postfixsyntaxBOZ-konstant vid %L är för stor (%ld jämfört med %ld bitar)BOZ-literal vid %L är bitvis överförd icke-heltalssymbol ”%s”BOZ-literal vid %L utanför en DATA-sats och utanför INT/REAL/DBLE/CMPLXBOZ-literal vid %L används för att initiera icke-heltalsvariabeln ”%s”BOZ använd utanför en DATA-sats vid %CBYTE-typ vid %CBYTE-typ använd vid %C är inte tillgänglig pĂĄ mĂĄlmaskinenFelaktig INTENT-specifikation vid %CFelaktig IO-bastyp (%d)Felaktig adress, inte (reg+avst):Felaktig adress, inte register:Felaktigt allokeringsobjekt vid %C för en PURE-procedurFelaktig vektorreferens vid %LFelaktig vektorspecifikation för en explicit formad vektor vid %CFelaktig vektorspecifikation för en förmodat formad vektor vid %CFelaktig vektorspecifikation för en förmodat formad vektor vid %CFelaktig vektorspecifikation i ALLOCATE-sats vid %LFelaktiga bytekoder. *************** write_c_file - utdatanamn är %s, prefix *** 2296,2302 **** Räkna spekulativa beroenden vid beräkning av prioritet för instruktionerCray-utpekad vid %C kan inte vara förmodat formad vektorCray-utpekad vid %L förekommer i flera pointer()-satserCray-utpekad ”%s” i %s-klausul vid %LCray-utpekad ”%s” i SHARED-klausul vid %LCray-pekare ”%s” i %s-klausul vid %LCray-pekare vid %C har %d bytes precision, minnesadresser kräver %d byteCray-pekare vid %C mĂĄste vara ett heltalCray-pekardeklaration vid %C kräver flaggan -fcray-pointerSkapa GUI-applikationSkapa ett positionsoberoende körbart programSkapa ett delat bibliotekSkapa kanoniska induktionsvariabler i slingorSkapa konsollapplikationSkapa datafiler som behövs av ”gcov”Skapar ”%s” Skapar vektortemporär vid %LSkapar vektortemporär vid %L för argument ”%s”DATA-vektor ”%s” vid %L mĂĄste anges i en tidigare deklarationDATA-elementet ”%s” vid %L kan inte ha ett co-indexDATA-element ”%s” vid %L är en pekare och mĂĄste dĂĄ vara en fullständig vektorDATA-sats vid %C efter den första körbara satsenDATA-sats vid %C fĂĄr inte förekomma i en PURE-procedurDATA-sats vid %L har fler värden än variablerDATA-sats vid %L har fler variabler än värdenDC-formatspecificerare är inte tillĂĄten vid %CDEALLOCATE-objektDEALLOCATE av co-vektor vid %C i CRITICAL-blockDEALLOCATE av co-vektor vid %C i DO CONCURRENT-blockDECIMAL= vid %C är inte tillĂĄtet i Fortran 95DECL_GIMPLE_REG_P satt pĂĄ en variabel vars adress tasDELIM= vid %C är inte tillĂĄtet i Fortran 95DIM-argument vid %L är utanför gränsenDIM-argument utan ARRAY-argument är inte tillĂĄtet för inbyggd THIS_IMAGE vid %LDIMENSION angiven för ”%s” utanför dess INTERFACE-kropp vid %LDO CONCURRENT-konstruktion vid %CDO-slinga vid %L kommer köras noll gĂĄnger (använd -Wno-zerotrip för att undertrycka)DO-stegvärdet är nollDO avslutningssats som inte är END DO eller CONTINUE med etikett %d vid %CDO-iterator ”%s” vid %L är inuti en iterator med samma namnDOUBLE COMPLEX vid %CDP-formatspecificerare är inte tillĂĄten vid %CDataelement ovanför övre vektorgräns vid %LDataelement under undre vektorgräns vid %LData större än den angivna gränsen kommer hamna i .ldata-sektionen i x86-64 medelmodellData lagras med formatet rak byteordning.Data lagras i formatet omvänd byteordning. (Standard).DatamĂĄlet vid %L fĂĄr inte ha co-indexDataöverföringselement vid %L fĂĄr inte vara en full referens till en vektor med antagen storlekDataöverföringselementet vid %L kan inte vara polymorft om det inte behandlas av en definierad input/output-procedurDataöverföringselementet vid %L kan inte ha ALLOCATABLE-komponenter om det inte behandlas av en definierad input/output-procedurDataöverföringselementet vid %L kan inte ha POINTER-komponenter om det inte behandlas av en definierad input/output-procedurDataöverföringselement vid %L fĂĄr inte ha PRIVATE-komponenterDataöverföringselement vid %L fĂĄr inte ha procedurpekarkomponenterDatapekarobjekt &L mĂĄste vara obegränsat polymorft, en sekvens härledd typ eller av en typ med attibutet BIND-tilldelning vid %L för att vara kompatibel med ett obegränsat polymorft mĂĄlSenarelägg borttagandet av funktionsargument frĂĄn stackenFördröjd vektor ”%s” vid %L är inte tillĂĄten i ett initieringsuttryckFördröjd typparameter stödjs inte ännuTeckenkomponenten ”%s” med fördröjd längd vid %L stödjs inte ännuTa bort döda instruktioner som kan kasta undantagTa bort onödiga nollpekarkontrollerBorttagen funktion:Bör undvikas till förmĂĄn för -Wc++11-compatUndanbedes till förmĂĄn för -std=c++11Undanbedes till förmĂĄn för -std=c11Undanbedes till förmĂĄn för -std=c99Undanbedes till förmĂĄn för -std=gnu++11Undanbedes till förmĂĄn för -std=gnu11Undanbedes till förmĂĄn för -std=gnu99Undanbedes till förmĂĄn för -std=iso9899:1999Undanbedd flagga. Använd -misel iställetUndanbedd flagga. Använd -mno-isel iställetUndanbedd flagga. Använd -mno-spe iställetUndanbedd flagga. Använd -mno-vrsave iställetUndanbedd flagga. Använd -mspe iställetUndanbedd flagga. Använd -mvrsave iställetAvrĂĄdes ifrĂĄn. Denna flagga har ingen effektUndanbedes. Använd -Os iställetUndanbedes. Använd -matomic= istället för att välja den atomära modellenHärledd typ ”%s” vid %C används före den är definieradHärledd typ ”%s” vid %L kan inte deklareras med bĂĄde attributet PRIVATE och BIND(C)Härledd typ ”%s” vid %L kan inte ha attributet SEQUENCE för att den är BIND(C)Härledd typ ”%s” vid %L fĂĄr inte vara ABSTRACTHärledd typ ”%s” vid %L mĂĄste vara en utökning av ”%s”Härledd typ ”%s” vid %L mĂĄste vara utökningsbarHärledd typ ”%s” deklarerad vid %L mĂĄste ha attributet BIND för att vara ett C-interoperativHärledd typ ”%s” med attributet BIND(C) vid %L är tom, och kan vara otillgängliga av C-följeslagarprocessornHärledd typ vid %C kan endast vara PRIVATE i specifikationsdelen av en modulHärledd typ vid %C kan endast vara PUBLIC i specifikationsdelen av en modulHärledd typ vid %C har inte definierats tidigare och kan därför inte förekomma i en härledd typdefinitionHärledd typkomponent %C är inte en tillĂĄten EQUIVALENCE-medlemHärledd typdeklaration med FINAL vid %C mĂĄste vara med i specifikationsdelen av en MODULEHärledd typdefinition vid %C med tom CONTAINS-sektionHärledd typdefinition vid %C utan komponenterHärledd typdefinition ”%s” vid %C har redan definieratsHärlett typnamn ”%s” vid %C har redan en grundtyp %sHärledd typvariabel ”%s” vid %L kan inte ha ALLOCATABLE-komponenter för att vara ett EQUIVALENCE-objektHärledd typvariabel ”%s” vid %L mĂĄste ha attributet SEQUENCE för att vara ett EQUIVALENCE-objektHärledd typvariabel ”%s” vid %L med standardinitiering kan inte vara i EQUIVALENCE med en variabel i COMMONHärledd typvariabel ”%s” vid %L med pekarkomponent(er) kan inte vara ett EQUIVALENCE-objektHärledd typvariabel ”%s” i COMMON vid %L har en slutlig komponent som är allokerbarHärledd typvariabel ”%s” i COMMON vid %L har varken attributet SEQUENCE eller BIND(C)Härledd typvariabel ”%s” i COMMON vid %L fĂĄr inte ha standardinitierareHärledd typ ”%s” deklarerad vid %L mĂĄste vara ABSTRACT för att ”%s” är DEFERRED och inte ĂĄsidosattHärledd typ ”%s” med BIND(C) fĂĄr nte ha en CONTAINS-sektion vid %CHärledd typ ”%s” med SEQUENCE fĂĄr inte ha en CONTAINS-sektion vid %CAttrappargument med härledd typ ”%s” vid %L deklarerades INTENT(OUT) men sattes inte och har inte en standardinitierareBeskrivning för mxl-mode-bootstrapBeskrivning för mxl-mode-executableBeskrivning för mxl-mode-novectorsBeskrivning för mxl-mode-xmdstubDetektera vägar som orsakar felaktigt eller odefinerat beteende pĂĄ grund av ett NULL-värdeDetektera sökvägar som orsakar felaktigt eller odefinierat beteenden pĂĄ grund avAnge vilka beroenden mellan instruktioner som skall anses dyraOlika CHARACTER-längder (%d/%d) i vektorkonstruerare vid %LOlika CHARACTER-längder (%ld/%ld) i vektorkonstruerareOlika sorters typparametrar i pekartilldelning vid %LOlika ordning i pekartilldelning vid %LOlika form för %s vid %L pĂĄ dimension %d (%d och %d)Olika former för argument ”%s” och ”%s” vid %L för inbyggd ”dot_product”Olika form pĂĄ dimension 1 för argumenten ”%s” och ”%s” vid %L för inbyggd matmulOlika form pĂĄ dimension 2 för argument ”%s” och dimension 1 för argument ”%s” vid %L för inbyggd matmulOlika typsorter vid %LOlika typer i pekartilldelning vid %L, försökte med tilldelning av %s till %sDimensioner angivna för %s vid %L efter dess initieringAvaktivera det ARCompact-specifika passet för att generera villkorliga exekveringsinstruktionerAvaktivera FP-registerAvaktivera LR- och SR-instruktioner frĂĄn att använda FPX-utöknings-aux-register.Använd inte nĂĄgra valbara instruktionerAnvänd inte instruktionen bcnzAvaktivera flyttalsoptimeringar som ignorera IEEE:s tecken pĂĄ nollAvaktivera generering av cfi för epiloger.Använd inte hĂĄrdvaruflyttalAvaktivera indexerad adresseringAvaktivera optimeringar som kan observeras av IEEE signalerande NAN:arAvaktivera optimeringar som antar standardmässig avrundningsbeteende för FPAvaktivera partitionering och strömningAvaktivera positionsoberoende kod (PIC) för användning i OS-kärnkodAvaktivera preprocessningAvaktivera utrymmesregisterTillĂĄt inte användningen av RX FPU-instruktionerna. TillĂĄt inte direkta anrop till globala funktionerTillĂĄt inte mer än ”msched-max-memory-insns” i instruktionsgrupper. Annars är gränsen ”mjuk” (föredra icke-minnesoperationer när gränsen är nĂĄdd)Upptäck pure- och const-funktionerUpptäck endast läsbara och icke adresserbara statiska variablerVisa kompileringstidsstatistikVisa innehĂĄllet i en klassfil i läsbar form. ! Visa statistik som samlats under kompileringVisa kodträdet efter framändesoptimeringVisa kodträdet efter tolkningVisa kodträdet efter tolkning, flaggan bör undvikasVisa kompilatorns versionVisa den här informationenDivision med noll vid %LDivision med noll vid konvertering av %s till %s vid %LDivisionsstrategi, en av: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-tableGör justeringsoptimeringar för anropsinstruktioner.Gör sändningsschemaläggning om processorn är bdver1 eller bdver2 eller bdver3 eller bdver4 och Haifa-schemaläggningGenerera inte BRcc-instruktioner i arc_reorg.Anta inte ett stort TLS-segmentAnta inte att standard C-bibliotek och ”main” finnsAvaktivera inte utrymmesregisterKasta inte kommentarerSläng inte kommentarer vid makroexpansionerVisa inte kompilerade funktioner eller tiden som förbrukatsMata inte ut adresseringssätt med sidoeffekttilldelningAvge inte komplexa heltalskonstanter till endast läsbart minneMata inte ut funktionsprolog eller -epilogFramtvinga inte strikt justeringGenerera inte #line-direktivGenerera inte .size-direktivGenerera inte en ensam utgĂĄngspunkt för varje funktionGenerera inte load/store-instruktioner med uppdateringGenerera inte millikodsnutt (behövs endast med -Os)Generera inte mpy-instruktioner för ARC700Inline:a inte heltalsdivisionInline:a inte kvadratrotLadda inte PIC-registret i funktionsprologerTitta inte efter objektfiler i standardsökvägenMarkera inte ABI-byten i e_flagsUtför inte optimieringar som märkbart ökar stackanvändningenPlacera inte flyttalskonstanter i TOCPlacera inte symbol+avstĂĄnd-konstanter i TOCFördefiniera inte systemspecifika och GCC-specifika makronLĂĄtsas inte att grenar är dyraGe inte en standard startadress 0x100 för programmetSkicka inte ut utökade register pĂĄ stacken i övervakningsfunktionerLägg inte oinitierade globala i den gemensamma sektionenSök inte standardkataloger för inkluderingar (de som anges med -isystem kommer fortfarande att användas)Sök inte i standardkataloger för systeminkluderingar för C++Stöd inte inbyggda SSE4.1- och SSE4.2-funktioner och -kodgenereringUndertryck inte felsökningsinformation för C++-klasser.Undertryck inte varningar frĂĄn systemhuvudfilerBehandla inte lokala variabler och COMMON-block som om de vore namngivna i SAVE-satserTrimma inte justering för kod och endast läsbar dataTrimma inte stackjusteringTrimma inte justering för skrivbar dataAnvänd inte MDMX-instruktionerAnvänd inte MIPS-3D-instruktionerAnvänd inte VAX fpAnvänd inte en cachetömmande funktion före anrop av stacktrampolinerAnvänd inte adresser som allokerar globala registerAnvänd inte tillstĂĄndskoder frĂĄn normala instruktionerAnvänd inte hĂĄrdvaru-fpAnvänd inte hĂĄrdvaruflyttalAnvänd inte hĂĄrdvaru-fpAnvänd inte hĂĄrdvaruinstruktioner för quad fpAnvänd inte inline-mönster för att kopiera minneAnvänd inte ABI-utökningarna AltiVecAnvänd inte ABI-utökningarna SPEAnvänd inte bitfältsinstruktionernaAnvänd inte callt-instruktionen (standard)Använd inte den anpassade instruktionen fabsdAnvänd inte den anpassade instruktionen fabssAnvänd inte den anpassade instruktionen fadddAnvänd inte den anpassade instruktionen faddsAnvänd inte den anpassade instruktionen fatandAnvänd inte den anpassade instruktionen fatansAnvänd inte den anpassade instruktionen fcmpeqdAnvänd inte den anpassade instruktionen fcmpeqsAnvänd inte den anpassade instruktionen fcmpgedAnvänd inte den anpassade instruktionen fcmpgesAnvänd inte den anpassade instruktionen fcmpgtdAnvänd inte den anpassade instruktionen fcmpgtsAnvänd inte den anpassade instruktionen fcmpledAnvänd inte den anpassade instruktionen fcmplesAnvänd inte den anpassade instruktionen fcmpltdAnvänd inte den anpassade instruktionen fcmpltsAnvänd inte den anpassade instruktionen fcmpnedAnvänd inte den anpassade instruktionen fcmpnesAnvänd inte den anpassade instruktionen fcosdAnvänd inte den anpassade instruktionen fcossAnvänd inte den anpassade instruktionen fdivdAnvänd inte den anpassade instruktionen fdivsAnvänd inte den anpassade instruktionen fexpdAnvänd inte den anpassade instruktionen fexpsAnvänd inte den anpassade instruktionen fextsdAnvänd inte den anpassade instruktionen fixdiAnvänd inte den anpassade instruktionen fixduAnvänd inte den anpassade instruktionen fixsiAnvänd inte den anpassade instruktionen fixsuAnvänd inte den anpassade instruktionen floatidAnvänd inte den anpassade instruktionen floatisAnvänd inte den anpassade instruktionen floatudAnvänd inte den anpassade instruktionen floatusAnvänd inte den anpassade instruktionen flogdAnvänd inte den anpassade instruktionen flogsAnvänd inte den anpassade instruktionen fmaxdAnvänd inte den anpassade instruktionen fmaxsAnvänd inte den anpassade instruktionen fmindAnvänd inte den anpassade instruktionen fminsAnvänd inte den anpassade instruktionen fmuldAnvänd inte den anpassade instruktionen fmulsAnvänd inte den anpassade instruktionen fnegdAnvänd inte den anpassade instruktionen fnegsAnvänd inte den anpassade instruktionen frdxhiAnvänd inte den anpassade instruktionen frdxloAnvänd inte den anpassade instruktionen frdyAnvänd inte den anpassade instruktionen fsindAnvänd inte den anpassade instruktionen fsinsAnvänd inte den anpassade instruktionen fsqrtdAnvänd inte den anpassade instruktionen fsqrtsAnvänd inte den anpassade instruktionen fsubdAnvänd inte den anpassade instruktionen fsubsAnvänd inte den anpassade instruktionen ftandAnvänd inte den anpassade instruktionen ftansAnvänd inte den anpassade instruktionen ftruncdsAnvänd inte den anpassade instruktionen fwrxAnvänd inte den anpassade instruktionen fwryAnvänd inte ojusterade minnesreferenserVarna inte om användning av ”long long” vid -pedanticGör stackkontroll med gränser i L1:s fria minneGör ingenting. Bevarad för bakĂĄtkompatibilitet.Gör ingenting. Bevarad för bakĂĄtkompatibilitet.Justera inte element i kod och dataAllokera inte float och double i register med utökad precisionAnta inte att ojusterade ĂĄtkomster hanteras av systemetAnropa inte nĂĄgra cache-tömningsfunktionerAnropa inga cache-tömningsfällorMata inte ut DWARF-tillägg utöver vald versionAvge inte dll-exporterade inline-funktioner om det inte behövsGenerera inte DWARF-setkionerna pubnames och pubtypes.Generera inte kontroller av styrningsspekulation i selektiv schemaläggningGenerera inte felsökningsinformation i separata .dwo-filerGenerera inte kod för endast privilegierat läge. Implicerar -mno-inline-ic_invalidate om den inline:ade koden inte skulle fungera i användarläge.Indikera inte nĂĄgon prioritet med TARGET_REGISTER_PRIORITYOptimera inte blockförflyttningarOptimera inte blockförflyttningar, använd memcpyNotera inte gcc:s kommandoradsflaggor i DWARF DW_AT_producer.Använd inte P-mnemonics för grenarAnvänd inte nĂĄgon av r32..r63.Använd inte mindre än 25 bitars adresseringsintervall för anrop.Varna inte om användning av MicrosoftutökningarDubbelt CLASS IS-block i SELECT TYPE-sats vid %LDubbelprecisions flyttalsenhetNedgradera följsamhetsfel till varningarDriver:Attrapp-”%s” vid %L kan inte ha en initierareAttrappargumentet ”%s” vid %L fĂĄr inte vara INTENT(OUT)Attrappargumentet ”%s” vid %L fĂĄr inte vara OPTIONALAttrappargumentet ”%s” vid %L av LOCK_TYPE fĂĄr inte vara INTENT(OUT)Attrappargument ”%s” vid %L deklarerades INTENT(OUT) men sattes inteAttrappargument ”%s” mĂĄste vara en pekare, vektor med antagen form eller ordning utan attributet CONTIGUOUS - eftersom det aktuella argumentet vid %L inte är enkelt sammanhängande och bĂĄda är ASYNCHRONOUS eller VOLATILEAttrappvariabeln ”%s” är inte tillĂĄten i uttrycket vid %LAttrappargument ”%s” till ”%s” vid %L skulle ha namnet ”%s” för att stämma med motsvarande argument i den ĂĄsidosatta procedurenAttrappargument ”%s” med INTENT(IN) i pekarassociationssammanhang (%s) vid %LAttrappargument ”%s” med INTENT(IN) i variabeldefinitionssammanhang (%s) vid %LAttrappflagga. Detta är standard om inte FPX-flaggor uttryckligen gesAttrapprocedur ”%s” vid %C kan inte ha generiskt gränssnittAttrapprocedur ”%s” vid %L skall inte vara elementärAttrapprocedur ”%s” är inte tillĂĄten i elementär procedur ”%s” vid %LAttrapprocedur ”%s” av PURE-procedur vid %L mĂĄste ocksĂĄ vara PUREAttrapprocedur vid %C kan inte ha attributet BIND(c) tillsammans med NAMESkicka deklarationer till en .decl-filDumpa optimeringspassDubblerat %s-attribut vid %LDubblerat %s-attribut angivna vid %LDubblerad %s-etikettspecifikation vid %CDubblerad %s-specifikation vid %CDubblerat ASYNCHRONOUS-attribut angivet vid %LDubblerat BIND-attribut angivna vid %LDubblerad DEFERRED vid %CDubblerad ELSE-sats vid %L och %CDubblerat EXTENDS-attribut angivet vid %LDubblerad IMPLICIT NONE-sats vid %CDubblerad NML-specifikation vid %CDubblerad NON_OVERRIDABLE vid %CDubblerat POINTER-attribut vid %CDubblerad PRIVATE-sats vid %CDubblerat PROTECTED-attribut angivet vid %LDubblerat SAVE-attribut angivet vid %LDubblerad SEQUENCE-sats vid %CDubblerad UNIT-specifikation vid %CDubblerat VALUE-attribut angivet vid %LDubblerat VOLATILE-attribut angivet vid %LDubblerad ĂĄtkomstspecifikation vid %CDubblerat argument ”%s” vid %L till inbyggd %sDubblerad vektorspecifikation för Cray-utpekad vid vid %CDubblerad konstruktionsetikett ”%s” vid %CDubblerad formatspecifikation vid %CDubblerat namn ”%s” i association vid %CDubblerad satsetikett %d vid %L och %LDubblerad symbol ”%s” i formell argumentlista vid %CAllokera cc-register dynamisktSpecificeraren E är inte tillĂĄten vid g0-deskriptorE500 och FPR:er stödjs inteEDGE_CROSSING felaktigt satt över samma sektionEDGE_CROSSING saknas över sektionsgränsEH-bĂĄge korsar sektionsgräns gb %iEH-landningsplattas etikett ELEMENTAL-funktion ”%s” vid %L mĂĄste ha ett skalärt resultatELEMENTAL icke INTRINSIC procedur ”%s” är inte tillĂĄten som aktuellt argument vid %LELSE IF-sats vid %C kan inte följa ELSE-sats vid %LELSEWHERE-sats vid %C följer tidigare omaskerat ELSEWHEREELSEWHERE-sats vid %C inte innesluten i WHERE-blockENCODING= vid %C är inte tillĂĄtet i Fortran 95END-sats istället för %s-sats vid %LEND-tagg vid %C är inte tillĂĄten i utmatningssatsEND-taggetikett %d vid %L inte definieradENTRY ”%s” vid %L fĂĄr inte anropas rekursivt, eftersom funktionen ”%s” inte är RECURSIVEENTRY ”%s” vid %L är fĂĄr inte anropas rekursivt, eftersom subrutinen ”%s” inte är RECURSIVEENTRY ”%s” vid %L har ingen IMPLICIT-typENTRY-resultat %s fĂĄr inte vara en POINTER i FUNCTION %s vid %LENTRY-resultat %s fĂĄr inte vara en vektor i FUNCTION %s vid %LENTRY-resultat %s fĂĄr inte vara av typen %s i FUNCTION %s vid %LENTRY-sats vid %CENTRY-sats vid %C kan inte förekomma i en innesluten procedurENTRY-sats vid %C kan inte förekomma inuti ett BLOCK DATAENTRY-sats vid %C kan inte förekomma inuti en ett DERIVED TYPE-blockENTRY-sats vid %C kan inte förekomma inuti ett DO-blockENTRY-sats vid %C kan inte förekomma inuti ett FORALL-blockENTRY-sats vid %C kan inte förekomma inuti en MODULEENTRY-sats vid %C kan inte förekomma inuti ett PROGRAMENTRY-sats vid %C kan inte förekomma inuti ett SELECT-blockENTRY-sats vid %C kan inte förekomma inuti ett WHERE-blockENTRY-sats vid %C kan inte förekomma inuti ett inneslutet underprogramENTRY-sats vid %C kan inte förekomma inuti ett IF-THEN-blockENTRY-sats vid %C kan inte förekomma inuti ett INTERFACEENTRY_BLOCK har IL associerat med sigENUM och ENUMERATOR vid %CENUM-deklaration vid %C har inga ENUMERATORSENUM-definitionssats förväntades före %CENUMERATOR %L är inte initierad med ett heltalsuttryckEOR-taggetikett %d vid %L inte definieradEQUIVALENCE vid %C kräver tvĂĄ eller flera objektERR-taggetikett %d vid %L inte definieradERRMSG vid %LERRMSG vid %L är oanvändbart utan en STAT-taggERRMSG-tagg vid %LERRMSG-variabelERRMSG=-variabeln vid %L mĂĄste vara en skalär CHARACTER-variabelERROR STOP-sats vid %CESA/390-arkitekturEXIT-sats vid %C avslutar !$OMP DO-slingaEXIT-sats utan nĂĄgot do-konstruktionsnamn vid %CEXIT_BLOCK har IL associerat med sigEXTENDS vid %LEXTERNAL-attribut i konflikt med FUNCTION-attribut i ”%s” vid %LAntingen alla eller inget av objekten i EQUIVALENCE-mängden vid %L kan ha attributet PROTECTEDAntingen alla eller ingen av de övre gränserna mĂĄste anges vid %LElement i %s-vektorkonstruerare vid %L är %sElement av vektor med antagen form eller pekare skickat till vektorattrappargument ”%s” vid %LElementär funktion som initieraruttryck med argument som inte är heltal/tecken vid %LElement med samma värde vid %L och %L i vektorindex i ett variabeldefinitionssammanhang (%s)Eliminera multipla funktionsanrop även för orena funktionerInbäddad blank i NAME=-specificerare vid %CAvge 16-bitars omlokaliseringar till de smĂĄ dataareornaAvge 32-bitars omlokaliseringar till de smĂĄ dataareornaMata ut DWARF-tillägg utöver vald versionAvge kod som följer IEEE, utan oexakta undantagMata ut anropsgrafsinformationMata ut kontroller som fĂĄr ”break 8”-instruktioner att köra när atomära inbyggda används pĂĄ feljusterat minneMata ut cmpeqdi_t-mönster även när -mcbranchdi är aktivt.Avge kod för byte/ord-ISA-utökningenAvge kod för ISA-utökningen för räkningAvge kod för ISA-utökningen för fp move och sqrtAvge kod för ISA-utökningen för rörlig videoAvge kod som använder uttryckliga omlokaliseringsdirektivMata ut common-liknande symboler som svaga symbolerMata ut felsökningsannoteringar under preprocessningMata ut direkta hopp till lokala funktionerGenerera felmeddelanden när körtidsomlokaliseringar genererasMata ut extra kod i funktionsprologen för att fĂĄnga om stackstorleken överskrider den givna gränsenMata ut funktionsprologer bara före delar av funktionen som behöver det,Mata ut funktionsanrop som använder en global avstĂĄndstabell när PIC genererasSkapa implicita instansieringar av inline:ade mallarSkapa implicita instansieringar av mallarMata ut indirekta hopp till lokala funktionerMata ut lĂĄnga load-/store-sekvenserGenerera profileringsräknaranrop vid funktionsstart före prologenAvge rdval istället för rduniq för trĂĄdpekareMata ut static const-variabler även om de inte användsMata ut stoppbitar före och efter flyktiga utökade asm:erMata ut fällor som ”break 8”, standard för CRIS v3 och uppĂĄt. Om avaktiverat används anrop till abort().Mata ut utförlig felsökningsinformation i assemblerkodGenerera varningar när körtidsomlokaliseringar genererasTom FINAL vid %CTom IMPLICIT-sats vid %CTom vektorkonstruerare vid %C är inte tillĂĄtetTom siffermängd i BOZ-konstant vid %CAktivera ”q”-instruktionsalternativ.Använd 32-bitars divisionsinstruktionerAnvänd 32-bitars multiplikationsinstruktionerAktivera utökningsingsinstruktioner för 64-bitars tidsstämpelräknareAktivera CFI-tabeller via GAS-assemblerdirektiv.Aktiver Cilk PlusAktivera DIV, DIVUAktivera utvidgningarna DSP 3.1 Pack AAnvänd dubbel- och enkelperandinstruktioner för telefoniAktivera Dwarf 2 radfelsökningsinformation via GNU asAktivera fullständig överflödseliminering (FRE) i trädAktivera funktionsbeskrivar-PIC-lägeAktivera Graphite-identitetstransformationAktivera ID-baserat delat bibliotekAnvänd IVC2-schemaläggningAktivera utökningen lĂĄst ladda/lagra villkorligAktivera slingblockeringstransformationAktivera transformationen utbyte (interchange) i slingorAktivera transformationen utgrävning av remsor (strip mining) i slingorAnvänd MUL-instruktionerAnvänd MULX-instruktioner, anta snabb skiftareAnvänd MeP-hjälpprocessorAnvänd MeP-koprocessor med 32-bitars registerAnvänd MeP-koprocessor med 64-bitars registerAktivera Objective-C-undantags- och synkroniseringssyntaxAktivera Objective-C:s setjmp-undantagshantering i körtidsmiljönAktivera OpenMP (implicerar -frecursive i Fortran)Aktivera OpenMP:s SIMD-direktivAktivera PIC-stöd för att bygga bibliotekAktivera sprĂĄkutvidgningar frĂĄn Plan 9Aktivera hantering av Rcq-begränsningar — den mesta genereringen av kort kod beror pĂĄ detta.Aktivera hantering av Rcw--begränsningar — ccfsm-kodexekvering beror i huvudsak pĂĄ detta.Aktivera sätt att kringgĂĄ SH5 cut2Aktivera SSA-kodsänkning i trädAktivera eliminering av död kod i SSA-optimeringen i trädAktivera SSA-BIT-CCP-optimering av trädAktivera SSA-CCP-optimering av trädAktivera SSA-PRE-optimeringar i trädAktivera TPF-OS-spĂĄrningskodAktivera XY-minnesutökningar (DSP version 3)Använd instruktioner för absoluta skillnadAktivera justering av COMMON-blockAktivera alla -Wunused-varningarAktivera alla optimeringsinformationsdumpar pĂĄ standard felAnvänd alla valbara instruktionerAktivera ett RTL-nyckelhĂĄlspass före sched2Aktivera asan-skydd av inbyggda funktionerAktivera globalt asan-skyddAktivera asan-skydd av laddningsoperationerAktivera asan-skydd av stackAktivera asan-skydd av lagringsoperationerAktivera assembler- och länkarlättnader. Aktiverat som standard med -Os.Aktivera kontroll av tilldelningsbarhet för lagring i objektvektorerAktivera automatisk parallellisering av slingorSlĂĄ pĂĄ automatisk mallinstansieringAnvänd genomsnittsinstruktionerAktivera bakändefelsökningAnvänd barrel-shift-instruktionerAktivera grundblocksvektorisering (SLP) i trädAktivera grundläggande programprofileringskodAktivera bbit peephole2Använd bithanteringsinstruktionerAktivera kringĂĄende av cachen för volatila referenserAktivera cbranchdi4-mönsterAnvänd clip-instruktionerAktivera sammanläggning av alla kopierelaterade användarvariablerAktivera sammanläggning av kopieringsrelaterade användarvariabler som är inline:adeAktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av ĂĄtermatad profilAktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av ĂĄtermatad profil, och sätt -fprofile-dir=Aktivera vanliga flaggor för att utföra optimeringar styrda av ĂĄtermatad profilAktivera vanliga flaggor för att utföra optimeringar styrda av ĂĄtermatad profil, och sätt -fprofile-dir=Aktivera kompakt casesi-mönsterAktivera villkorlig eliminering av död för inbyggda anropAktivera villkorlig exekvering förutom moves/sccAktivera villkorliga flyttningarAktivera funktionen konstruerare/destruerare.Aktivera kopiepropagering av skalärutvecklingsinformation.Aktivera kopiepropagering i trädAktivera korrigering av profilindata med inkonsistent flödeAktivera eliminering av död lagringAktivera felsökningsutdataAktivera generering av felsökningsutdata.Använd hĂĄrdvarustöd för decimala flyttalAnvänd divisions- och modulusinstruktionerAktivera dominatoroptimeringarAktivera dubbel viterbi fjärilsutvidgningAktivera tidigare utplacering av stoppbitar för bättre schemaläggningAktivera undantagshanteringAktivera framĂĄtpropagering pĂĄ trädAktivera framändesoptimeringarAktivera funktionsprofileringAktivera omflyttning av funktioner för att förbättra kodplaceringAktivera skräpsamling (GC) i Objective-C-/Objective-C++-programAktivera generering av ARC SIMD-instruktioner via mĂĄlspecifika inbyggda.Aktivera generering av cfi för epiloger.Aktivera att grensannolikheter gissasAnvänd hĂĄrdvaruflyttalAktivera närliggande lyftningslast för att uppmuntra generering av villkorliga förflyttningar.Aktivera lyftningslast frĂĄn villkorliga pekare.Aktivera in och ut frĂĄn Graphite-representationAktivera inline-kontroller av nil-mottagare med NeXT-körtidskod och ABI-version 2.Aktivera inline:ing av PLT i funktionsanropAktivera inline:ing av funktioner deklarerade ”inline”, avslaget avaktiveras all inline:ingAktivera optimeringar av etikettjusteringAnvänd instruktioner för inledande nollorAktivera länkningsoptimeringar.Aktivera länkningsoptimeringarAktivera länkaravslappningar.Aktivera länkaravslappningarAktivera länkaravslappningAktivera slingdistribution för mönster transformerade till biblioteksanropAktivera slingdistribution i trädAktivera slinghuvdkopiering av trädAktivera transformationen utbyte (interchange) i slingor. Samma som -floop-interchangeAktivera förflyttning av slingoberoende delar i trädAktivera slingoptimeringar pĂĄ trädnivĂĄAktivera slingvektorisering i trädAktivera maskinspecifika nyckelhĂĄlsoptimeringarAnvänd min/max-instruktionerAktivera de flesta varningsmeddelandenAktivera stöd för flera kärnorAnvänd multiplikationsinstruktionerAktivera nästade optimeringar av villkorlig exekveringAktivera optimeringar av initieringskod för statiska klasserAktivera optimering av &&/|| i villkorliga uttryckAktivera förladdningsanvändning av cbranchsi-mönsterAktivera preprocessningAktivera intervallkontroller under kompileringAktivera ĂĄterassociering pĂĄ trädnivĂĄAktivera registertryckskänslig instruktionsschemaläggningAktivera avslappning i assemblernAnvänd mättnads-instruktionerAktivera schemaläggning mellan grundblockAktivera separat datasegmentAktivera sättande av GPR:er till resultatet av jämförelserAktivera teckenutökningsinstruktionerAktivera delning av 32-bitars omedelbara laddningar i lĂĄg/hög delAktivera stackavkänningAktivera strikt 32-bits psABI-kontroller av postreturer.Aktivera stränglängdsoptimering av trädAktivera stöd för GNU:s transationsminneAktivera stöd för ABI:et RH850. Detta är standard.Aktivera stöd för det gamla GCC-ABI:etAktivera utökningsinstruktionen för byte-ordningsväxlingAktivera svanssammanslagning av trädAktevera den ISL-baserade optimeraren av slingnästningAktivera heuristiken för kritisk väg i schemaläggarenAktivera heuristiken för beroende antal i schemaläggarenAktivera gruppheuristiken i schemaläggarenAktivera heuristiken för sista instruktion i schemaläggarenAktivera normalt lägeAktivera ordningsheuristiken i schemaläggarenAktivera den spekulativa instruktionsheuristiken i schemaläggarenMöjliggör användningen av 64-bitars flyttalsregister i fmov-instruktioner. Se -mdalign om 64-bitars justering krävs.Möjliggör användning av RX FPU-instruktionerna. Detta är standard.Aktivera användning av indexerade laddningarAktivera användningen av pre-/postmodifieringar med registerförflyttning.Aktivera användningen av LRA-registerallokeraren.Aktivera användningen av instruktionen fscaAktivera användningen av instruktionen fsrraAktivera användning av det indexerade adresseringsläget för SHmedia32/SHcompactAktivera användningen av det gamla, trasiga, ABI:et där alla stackade funktionsargument justeras till 32 bitar.Möjliggör användning av de korta load-instruktionernaAktivera användningen av standard RX ABI:et där alla stackade funktionsargument justeras naturligt. Detta är standard.Aktivera traditionell preprocessningAnvänd ojusterade load/store-instruktionerTillĂĄt ojusterade ord- och halvordsĂĄtkomster till packade data.Aktivera användning av GPREL för endast läsbara data i FDPICAktivera användning av POST_INC/POST_DECAktivera användning av POST_MODIFYAktivera användningen av sdata/scommon/sbssAnvänd användardefinierade instruktionerAnvänd slinginstruktionerna i v850e3v5Aktivera variabel polynomiell CRC-utvidgningAktivera vektorisering av trädAktivera utförlig utskriftAktivera en lösning för ensamt errata för processorn AT697FAktivera en lösning för errata för processorn UT699Aktivera/deaktivera den traditionella schemaläggningen i slingor som redan passerat modulo-schemaläggningAktivera ID-baserat delat bibliotekAktivera läget för positionsoberoende data (PID).Aktivera den dynamiska kostnadsmodellen för vekoriseraren. Bevarad för bakĂĄtkompatibilitet.Aktivera den obegränsade kostnadsmodellen för vektoriseraren. Bevarad för bakĂĄtkompatibilitet.Koda SSE-instruktioner med VEX-prefixSlututtryck i DO-slingaSlut pĂĄ DO-sats utan block vid %C är sammanvävt med en annan DO-slingaSlut pĂĄ DO-sats utan block vid %C är inuti ett annat blockSlut pĂĄ söklistan. UpprätthĂĄll ĂĄtkomstsemantik för klassmedlemmarEnheten ”%s” vid %L har en fördröjd typparameter och kräver antingen attributet pointer eller allocatableEntiteten ”%s” vid %L finns redan i gränssnittetEntitet med antagen teckenlängd vid %L mĂĄste vara ett attrappargument eller en PARAMETERUppräkningstypen överskrider C:s heltalstyp vid %CEkvivalens för ”%s” stämmer inte med ordningen av COMMON ”%s” vid %LErrmsg-variabeln vid %L mĂĄste vara en skalär CHARACTER-variabelErrmsg-variabel vid %L skall inte %s:as i samma %s-satsFel vid konvertering av PARAMETER-konstant i komplex konstant vid %CFel vid konvertering av heltalFelantal nĂĄdde gränsen vid %d.Fel i pekarinitiering vid %CFel i typspecifikation vid %LFel när modulfilen ”%s” skrevs: %sFel när modulfil skrevs: %sFel när utdatafilen ”%s” skrevs Fel:Beräkning av ett initieringuttryck utanför standarden vid %LHändelseAvslutsvillkor i DO WHILE-slinga vid %L mĂĄste vara ett skalärt LOGICAL-uttryckAvsluta vid första felet som uppstĂĄrExpandera 32bits/64bits heltalsdivision till 8bitars teckenlös heltalsdivision med kontroll vid körning.Expandera addi3 och subdi3 vid rtl-genereringstillfället till add.f /adc etc.”)” förväntades vid %C”,” förväntades vid %C”,” ellerslut pĂĄ sats förväntades vid %C”(” förväntades vid %C”)” eller ”,” förväntades vid %C”*” förväntades i co-indexspecifikation i ALLOCATE-sats vid %L”,” förväntades vid %C”::” förväntades efter bindningsattribut vid %C”::” förväntades vid %C”=>” förväntades vid %C”END INTERFACE ASSIGNMENT (=)” förväntades vid %C:: förväntades i TYPE-definition vid %C=-tecken i PARAMETER-sats förväntades vid %CRedigeringsbeskrivning P förväntadesPARAMETER-symbol förväntades i komplex konstant vid %CSHAPE-argument förväntades till C_F_POINTER med vektor FPTR vid %LEn TYPE IS-, CLASS IS- eller END SELECT-sats förväntades följa efter SELECT TYPE vid %CEn CASE- eller END SELECT-sats förväntades följa efter SELECT CASE vid %CFörväntade ett namnlöst gränssnitt vid %CFörväntade en procedur som argument ”%s” vid %LEn procedurpekare förväntade som argument ”%s” vid %LEn högerparentes förväntades i uttrycket vid %CEtt stegvärde förväntades i iterator vid %CĂ…tkomstspecificerare förväntades vid %CAlternativ returetikett förväntades vid %CEtt initieringsuttryck förväntades vid %CFörväntade en annan dimension i vektordeklaration vid %CArgumentlista förväntades vid %CFörväntade vektorindex vid %CFörväntade intervall av vektorindex vid %CAssociation förväntade vid %CAssociationslista förväntades vid %CAttributbitnamn förväntadesBindningsattribut förväntades vid %CBindningsnamn förväntades vid %CBindningsmĂĄl förväntades efter ”=>” vid %CBlocknamnet ”%s” förväntades av SELECT-konstruktionen vid %CBlocknamn pĂĄ ”%s” i %s-sats förväntades vid %LBegränsningsspecifikation för ”%s” förväntades vid %LCo-vektorindex förväntades som ”%s”-argument till inbyggd %s vid %LKomma förväntades i I/O-lista vid %CKomponentreferens förväntades vid %CFörväntade exponent i uttryck vid %CUttryck förväntades vid %C i PARAMETER-satsFörväntade uttryck i %s-sats vid %CFörväntade uttryck i vektorspecifikation vid %CUttryckstyp förväntadesFormell argumentlista förväntades i funktionsdefinitionen vid %CGeneriskt namn eller operatorbeskrivare förväntades vid %CInitieringsuttryck förväntades vid %CInitieringsuttryck förväntades i CASE vid %CHeltal förväntadesHeltalssträng förväntadesEtikett ”%s” för %s-sats förväntades vid %CVänsterparentes förväntadesModulprocedurnamn förväntades vid %CFörväntade ett namnFörväntade reell strängHögerparentes förväntadesEtt skalärt initieringsuttryck förväntades vid %CSpecifikt bindningsnamn förväntades vid %CSträng förväntadesPostkomponentnamn förväntades vid %CAvslutande namn förväntades vid %CTypbunden procedurreferens eller procedurpekarkomponent förväntades vid %CVariabel förväntades i READ-sats vid %CVariabelnamn förväntades vid %CVariabelnamn förväntades vid %C i PARAMETER-sats%s-sats förväntades vid %L”END INTERFACE %s” förväntades vid %C”END INTERFACE OPERATOR (%s)” förväntades vid %C, men fick %s”END INTERFACE OPERATOR (.%s.)” förväntades vid %CKomma förväntades i EQUIVALENCE vid %CLista med namngivna entiteter förväntades vid %CFörklara vilka justeringsöverväganden som leder till beslutet att göra en instruktion kort eller lĂĄng.Explicit gränssnitt krävs för ”%s” vid %L: %sExportera funktioner även om de kan inline:asUttrycket vid %L i detta sammanhang mĂĄste vara konstantUttryck vid %L mĂĄste vara av INTEGER-typ, hittade %sUttryck vid %L mĂĄste vara skalärtUttryck i CASE-sats vid %L ligger inte i intervallet %sUttryck i CASE-sats vid %L mĂĄste ha sort %duttryck i CASE-sats vid %L mĂĄste vara av typ %sUttryck i CASE-sats vid %L mĂĄste vara skalärtUtökning: %s-specifierare i %s-sats vid %C har värdet ”%s”Utökning: Konvertering frĂĄn %s till %s vid %LUtökning: Positiv bredd saknas efter L-beskrivare vid %LUtökning: Skalärt CHARACTER-argument som inte är av standardsort och inte C_CHAR-sort med vektoratrappargument ”%s” vid %LUtökning: Tabulatortecken i format vid %CUtökning: Unär operator följer aritmetisk operator (använd parenteser) vid %CUtökning: omvänt snedstreck vid %CUtökning: exponentbokstav ”q” i reeel literal konstant vid %CExtern ”%s” vid %L kan inte ha en initierareExtern IO UNIT fĂĄr inte vara en vektor vid %LExternt objekt ”%s” vid %L kan inte ha en initierareĂ–verflödiga tecken i format vid %LFINAL-klausul vid %L kräver ett skalärt LOGICAL-uttryckFINAL-deklaration vid %C mĂĄste vara inuti CONTAINSFINAL-deklaration vid %C mĂĄsta vara inuti en härledd typs CONTAINS-sektionFINAL-procedur ”%s” vid %L är inte en SUBROUTINEFINAL-procedur ”%s” deklarerad vid %L har samma ordning (%d) som ”%s”FINAL-procedur vid %L mĂĄste ha precis ett argumentFINAL-procedurdeklaration vid %CFLUSH-sats vid %CFORALL-slututtryck vid %L mĂĄste vara en skalär INTEGERFORALL-index ”%s” fĂĄr inte förekomma i triplettspecifikation vid %LFORALL-indexnamn vid %L mĂĄste vara en skalär INTEGERFORALL-maskklausul vid %L kräver ett skalärt LOGICAL-uttryckFORALL-slututtryck vid %L mĂĄste vara en skalär INTEGERFORALL-steguttryck vid %L fĂĄr inte vara nollFORALL-steguttryck vid %L mĂĄste vara en skalär %sFORMAT-etikett %d vid %L inte definieradFORMAT-sats vid %L har inte en satsetikettFORMAT-tagg vid %L mĂĄste ha typen standardsorts CHARACTER eller INTEGERFP-undantag är aktiveradeArgumentet FPTR vid %L till C_F_POINTER fĂĄr inte vara polymorftFPX-utvidgningar är inte tillgängliga för kärnor föra ARC600Snabba och kompakta FPX-flaggor kan inte användas tillsammansFPX: aktivera utökningarna för Argonaut ARC CPU flyttal i dubbel precision.FPX: generera dubbelprecisions FPX- (kompakta) instruktioner.FPX: generera dubbelprecisions FPX- (snabba) instruktioner.FPX: generera enkelprecisions FPX-instruktioner (kompakta).FPX: generera enkelprecisions FPX- (snabba) instruktioner.FUNCTION-resultat %s fĂĄr inte vara en POINTER i FUNCTION %s vid %LFUNCTION-resultat %s fĂĄr inte vara en vektor i FUNCTION %s vid %LFUNCTION-resultat %s fĂĄr inte vara av typen %s i FUNCTION %s vid %LFaktorisera komplexa konstruerare och destruerare till förmĂĄn för utrymme snarare än hastighetDet gick inte att öppna filen %s för att skriva tillstĂĄndet: %sMisslyckades att öppna tillstĂĄndsfilen %s för läsning [%s]Ă–desdigert fel:Filen ”%s” öppnad vid %C är inte en GNU Fortran-modulfilFinkorning styrning av trimningsfunktionerFörsta argumentet till definierad tilldelning vid %L mĂĄste vara INTENT(OUT) eller INTENT(INOUT)Första argumentet till operatorgränssnitt vid %L fĂĄr inte vara frivilligtFörsta argumentet till operatorgränssnitt vid %L mĂĄste vara INTENT(IN)Första eller sista !$OMP ATOMIC-inbyggds argument mĂĄste vara ”%s” vid %LFast radlängd mĂĄste vara minst sju.Flaggan -fmax-stack-var-size=%d ĂĄsidosätter -frecursive som impliceras av -fopenmpFlaggan -fno-automatic ĂĄsidosätter -fmax-stack-var-size=%dFlaggan -fno-automatic ĂĄsidosätter -frecursiveFlaggan -fno-automatic ĂĄsidosätter -frecursive som impliceras av -fopenmpFlaggan -frecursive ĂĄsidosätter -fmax-stack-var-size=%dNamn pĂĄ anpassad instruktionskonfiguration för flyttalFlyttalsenheten stödjer inte division & kvadratrotFölj Renesas (tidigare Hitachi) / SuperH-anropskonventionerFölj länkningskraven EABIFör felrapporteringsinstruktioner se: %s. --- 2298,2304 ---- Räkna spekulativa beroenden vid beräkning av prioritet för instruktionerCray-utpekad vid %C kan inte vara förmodat formad vektorCray-utpekad vid %L förekommer i flera pointer()-satserCray-utpekad ”%s” i %s-klausul vid %LCray-utpekad ”%s” i SHARED-klausul vid %LCray-pekare ”%s” i %s-klausul vid %LCray-pekare vid %C har %d bytes precision, minnesadresser kräver %d byteCray-pekare vid %C mĂĄste vara ett heltalCray-pekardeklaration vid %C kräver flaggan -fcray-pointerSkapa GUI-applikationSkapa ett positionsoberoende körbart programSkapa ett delat bibliotekSkapa kanoniska induktionsvariabler i slingorSkapa konsollapplikationSkapa datafiler som behövs av ”gcov”Skapar ”%s” Skapar vektortemporär vid %LSkapar vektortemporär vid %L för argument ”%s”DATA-vektor ”%s” vid %L mĂĄste anges i en tidigare deklarationDATA-elementet ”%s” vid %L kan inte ha ett co-indexDATA-element ”%s” vid %L är en pekare och mĂĄste dĂĄ vara en fullständig vektorDATA-sats vid %C efter den första körbara satsenDATA-sats vid %C fĂĄr inte förekomma i en PURE-procedurDATA-sats vid %L har fler värden än variablerDATA-sats vid %L har fler variabler än värdenDC-formatspecificerare är inte tillĂĄten vid %CDEALLOCATE-objektDEALLOCATE av co-vektor vid %C i CRITICAL-blockDEALLOCATE av co-vektor vid %C i DO CONCURRENT-blockDECIMAL= vid %C är inte tillĂĄtet i Fortran 95DECL_GIMPLE_REG_P satt pĂĄ en variabel vars adress tasDELIM= vid %C är inte tillĂĄtet i Fortran 95DIM-argument vid %L är utanför gränsenDIM-argument utan ARRAY-argument är inte tillĂĄtet för inbyggd THIS_IMAGE vid %LDIMENSION angiven för ”%s” utanför dess INTERFACE-kropp vid %LDO CONCURRENT-konstruktion vid %CDO-slinga vid %L kommer köras noll gĂĄnger (använd -Wno-zerotrip för att undertrycka)DO-stegvärdet är nollDO avslutningssats som inte är END DO eller CONTINUE med etikett %d vid %CDO-iterator ”%s” vid %L är inuti en iterator med samma namnDOUBLE COMPLEX vid %CDP-formatspecificerare är inte tillĂĄten vid %CDataelement ovanför övre vektorgräns vid %LDataelement under undre vektorgräns vid %LData större än den angivna gränsen kommer hamna i .ldata-sektionen i x86-64 medelmodellData lagras med formatet rak byteordning.Data lagras i formatet omvänd byteordning. (Standard).DatamĂĄlet vid %L fĂĄr inte ha co-indexDataöverföringselement vid %L fĂĄr inte vara en full referens till en vektor med antagen storlekDataöverföringselementet vid %L kan inte vara polymorft om det inte behandlas av en definierad input/output-procedurDataöverföringselementet vid %L kan inte ha ALLOCATABLE-komponenter om det inte behandlas av en definierad input/output-procedurDataöverföringselementet vid %L kan inte ha POINTER-komponenter om det inte behandlas av en definierad input/output-procedurDataöverföringselement vid %L fĂĄr inte ha PRIVATE-komponenterDataöverföringselement vid %L fĂĄr inte ha procedurpekarkomponenterDatapekarobjekt &L mĂĄste vara obegränsat polymorft, en sekvens härledd typ eller av en typ med attibutet BIND-tilldelning vid %L för att vara kompatibel med ett obegränsat polymorft mĂĄlSenarelägg borttagandet av funktionsargument frĂĄn stackenFördröjd vektor ”%s” vid %L är inte tillĂĄten i ett initieringsuttryckFördröjd typparameter stödjs inte ännuTeckenkomponenten ”%s” med fördröjd längd vid %L stödjs inte ännuTa bort döda instruktioner som kan kasta undantagTa bort onödiga nollpekarkontrollerBorttagen funktion:Bör undvikas till förmĂĄn för -Wc++11-compatUndanbedes till förmĂĄn för -std=c++11Undanbedes till förmĂĄn för -std=c11Undanbedes till förmĂĄn för -std=c99Undanbedes till förmĂĄn för -std=gnu++11Undanbedes till förmĂĄn för -std=gnu11Undanbedes till förmĂĄn för -std=gnu99Undanbedes till förmĂĄn för -std=iso9899:1999Undanbedd flagga. Använd -misel iställetUndanbedd flagga. Använd -mno-isel iställetUndanbedd flagga. Använd -mno-spe iställetUndanbedd flagga. Använd -mno-vrsave iställetUndanbedd flagga. Använd -mspe iställetUndanbedd flagga. Använd -mvrsave iställetAvrĂĄdes ifrĂĄn. Denna flagga har ingen effektUndanbedes. Använd -Os iställetUndanbedes. Använd -matomic= istället för att välja den atomära modellenHärledd typ ”%s” vid %C används före den är definieradHärledd typ ”%s” vid %L kan inte deklareras med bĂĄde attributet PRIVATE och BIND(C)Härledd typ ”%s” vid %L kan inte ha attributet SEQUENCE för att den är BIND(C)Härledd typ ”%s” vid %L fĂĄr inte vara ABSTRACTHärledd typ ”%s” vid %L mĂĄste vara en utökning av ”%s”Härledd typ ”%s” vid %L mĂĄste vara utökningsbarHärledd typ ”%s” deklarerad vid %L mĂĄste ha attributet BIND för att vara ett C-interoperativHärledd typ ”%s” med attributet BIND(C) vid %L är tom, och kan vara otillgängliga av C-följeslagarprocessornHärledd typ vid %C kan endast vara PRIVATE i specifikationsdelen av en modulHärledd typ vid %C kan endast vara PUBLIC i specifikationsdelen av en modulHärledd typ vid %C har inte definierats tidigare och kan därför inte förekomma i en härledd typdefinitionHärledd typkomponent %C är inte en tillĂĄten EQUIVALENCE-medlemHärledd typdeklaration med FINAL vid %C mĂĄste vara med i specifikationsdelen av en MODULEHärledd typdefinition vid %C med tom CONTAINS-sektionHärledd typdefinition vid %C utan komponenterHärledd typdefinition ”%s” vid %C har redan definieratsHärlett typnamn ”%s” vid %C har redan en grundtyp %sHärledd typvariabel ”%s” vid %L kan inte ha ALLOCATABLE-komponenter för att vara ett EQUIVALENCE-objektHärledd typvariabel ”%s” vid %L mĂĄste ha attributet SEQUENCE för att vara ett EQUIVALENCE-objektHärledd typvariabel ”%s” vid %L med standardinitiering kan inte vara i EQUIVALENCE med en variabel i COMMONHärledd typvariabel ”%s” vid %L med pekarkomponent(er) kan inte vara ett EQUIVALENCE-objektHärledd typvariabel ”%s” i COMMON vid %L har en slutlig komponent som är allokerbarHärledd typvariabel ”%s” i COMMON vid %L har varken attributet SEQUENCE eller BIND(C)Härledd typvariabel ”%s” i COMMON vid %L fĂĄr inte ha standardinitierareHärledd typ ”%s” deklarerad vid %L mĂĄste vara ABSTRACT för att ”%s” är DEFERRED och inte ĂĄsidosattHärledd typ ”%s” med BIND(C) fĂĄr nte ha en CONTAINS-sektion vid %CHärledd typ ”%s” med SEQUENCE fĂĄr inte ha en CONTAINS-sektion vid %CAttrappargument med härledd typ ”%s” vid %L deklarerades INTENT(OUT) men sattes inte och har inte en standardinitierareBeskrivning för mxl-mode-bootstrapBeskrivning för mxl-mode-executableBeskrivning för mxl-mode-novectorsBeskrivning för mxl-mode-xmdstubDetektera vägar som orsakar felaktigt eller odefinerat beteende pĂĄ grund av ett NULL-värdeDetektera sökvägar som orsakar felaktigt eller odefinierat beteenden pĂĄ grund avAnge vilka beroenden mellan instruktioner som skall anses dyraOlika CHARACTER-längder (%d/%d) i vektorkonstruerare vid %LOlika CHARACTER-längder (%ld/%ld) i vektorkonstruerareOlika sorters typparametrar i pekartilldelning vid %LOlika ordning i pekartilldelning vid %LOlika form för %s vid %L pĂĄ dimension %d (%d och %d)Olika former för argument ”%s” och ”%s” vid %L för inbyggd ”dot_product”Olika form pĂĄ dimension 1 för argumenten ”%s” och ”%s” vid %L för inbyggd matmulOlika form pĂĄ dimension 2 för argument ”%s” och dimension 1 för argument ”%s” vid %L för inbyggd matmulOlika typsorter vid %LOlika typer i pekartilldelning vid %L, försökte med tilldelning av %s till %sDimensioner angivna för %s vid %L efter dess initieringAvaktivera det ARCompact-specifika passet för att generera villkorliga exekveringsinstruktionerAvaktivera FP-registerAvaktivera LR- och SR-instruktioner frĂĄn att använda FPX-utöknings-aux-register.Använd inte nĂĄgra valbara instruktionerAnvänd inte instruktionen bcnzAvaktivera flyttalsoptimeringar som ignorera IEEE:s tecken pĂĄ nollAvaktivera generering av cfi för epiloger.Använd inte hĂĄrdvaruflyttalAvaktivera indexerad adresseringAvaktivera optimeringar som kan observeras av IEEE signalerande NAN:arAvaktivera optimeringar som antar standardmässig avrundningsbeteende för FPAvaktivera partitionering och strömningAvaktivera positionsoberoende kod (PIC) för användning i OS-kärnkodAvaktivera preprocessningAvaktivera utrymmesregisterTillĂĄt inte användningen av RX FPU-instruktionerna. TillĂĄt inte direkta anrop till globala funktionerTillĂĄt inte mer än ”msched-max-memory-insns” i instruktionsgrupper. Annars är gränsen ”mjuk” (föredra icke-minnesoperationer när gränsen är nĂĄdd)Upptäck pure- och const-funktionerUpptäck endast läsbara och icke adresserbara statiska variablerVisa kompileringstidsstatistikVisa innehĂĄllet i en klassfil i läsbar form. ! Visa statistik som samlats under kompileringVisa kodträdet efter framändesoptimeringVisa kodträdet efter tolkningVisa kodträdet efter tolkning, flaggan bör undvikasVisa kompilatorns versionVisa den här informationenDivision med noll vid %LDivision med noll vid konvertering av %s till %s vid %LDivisionsstrategi, en av: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-tableGör justeringsoptimeringar för anropsinstruktioner.Gör sändningsschemaläggning om processorn är bdver1 eller bdver2 eller bdver3 eller bdver4 och Haifa-schemaläggningGenerera inte BRcc-instruktioner i arc_reorg.Anta inte ett stort TLS-segmentAnta inte att standard C-bibliotek och ”main” finnsAvaktivera inte utrymmesregisterKasta inte kommentarerSläng inte kommentarer vid makroexpansionerVisa inte kompilerade funktioner eller tiden som förbrukatsMata inte ut adresseringssätt med sidoeffekttilldelningAvge inte komplexa heltalskonstanter till endast läsbart minneMata inte ut funktionsprolog eller -epilogFramtvinga inte strikt justeringGenerera inte #line-direktivGenerera inte .size-direktivGenerera inte en ensam utgĂĄngspunkt för varje funktionGenerera inte load/store-instruktioner med uppdateringGenerera inte millikodsnutt (behövs endast med -Os)Generera inte mpy-instruktioner för ARC700Inline:a inte heltalsdivisionInline:a inte kvadratrotLadda inte PIC-registret i funktionsprologerTitta inte efter objektfiler i standardsökvägenMarkera inte ABI-byten i e_flagsUtför inte optimieringar som märkbart ökar stackanvändningenPlacera inte flyttalskonstanter i TOCPlacera inte symbol+avstĂĄnd-konstanter i TOCFördefiniera inte systemspecifika och GCC-specifika makronLĂĄtsas inte att grenar är dyraGe inte en standard startadress 0x100 för programmetSkicka inte ut utökade register pĂĄ stacken i övervakningsfunktionerLägg inte oinitierade globala i den gemensamma sektionenSök inte standardkataloger för inkluderingar (de som anges med -isystem kommer fortfarande att användas)Sök inte i standardkataloger för systeminkluderingar för C++Stöd inte inbyggda SSE4.1- och SSE4.2-funktioner och -kodgenereringUndertryck inte felsökningsinformation för C++-klasser.Undertryck inte varningar frĂĄn systemhuvudfilerBehandla inte lokala variabler och COMMON-block som om de vore namngivna i SAVE-satserTrimma inte justering för kod och endast läsbar dataTrimma inte stackjusteringTrimma inte justering för skrivbar dataAnvänd inte MDMX-instruktionerAnvänd inte MIPS-3D-instruktionerAnvänd inte VAX fpAnvänd inte en cachetömmande funktion före anrop av stacktrampolinerAnvänd inte adresser som allokerar globala registerAnvänd inte tillstĂĄndskoder frĂĄn normala instruktionerAnvänd inte hĂĄrdvaru-fpAnvänd inte hĂĄrdvaruflyttalAnvänd inte hĂĄrdvaru-fpAnvänd inte hĂĄrdvaruinstruktioner för quad fpAnvänd inte inline-mönster för att kopiera minneAnvänd inte ABI-utökningarna AltiVecAnvänd inte ABI-utökningarna SPEAnvänd inte bitfältsinstruktionernaAnvänd inte callt-instruktionen (standard)Använd inte den anpassade instruktionen fabsdAnvänd inte den anpassade instruktionen fabssAnvänd inte den anpassade instruktionen fadddAnvänd inte den anpassade instruktionen faddsAnvänd inte den anpassade instruktionen fatandAnvänd inte den anpassade instruktionen fatansAnvänd inte den anpassade instruktionen fcmpeqdAnvänd inte den anpassade instruktionen fcmpeqsAnvänd inte den anpassade instruktionen fcmpgedAnvänd inte den anpassade instruktionen fcmpgesAnvänd inte den anpassade instruktionen fcmpgtdAnvänd inte den anpassade instruktionen fcmpgtsAnvänd inte den anpassade instruktionen fcmpledAnvänd inte den anpassade instruktionen fcmplesAnvänd inte den anpassade instruktionen fcmpltdAnvänd inte den anpassade instruktionen fcmpltsAnvänd inte den anpassade instruktionen fcmpnedAnvänd inte den anpassade instruktionen fcmpnesAnvänd inte den anpassade instruktionen fcosdAnvänd inte den anpassade instruktionen fcossAnvänd inte den anpassade instruktionen fdivdAnvänd inte den anpassade instruktionen fdivsAnvänd inte den anpassade instruktionen fexpdAnvänd inte den anpassade instruktionen fexpsAnvänd inte den anpassade instruktionen fextsdAnvänd inte den anpassade instruktionen fixdiAnvänd inte den anpassade instruktionen fixduAnvänd inte den anpassade instruktionen fixsiAnvänd inte den anpassade instruktionen fixsuAnvänd inte den anpassade instruktionen floatidAnvänd inte den anpassade instruktionen floatisAnvänd inte den anpassade instruktionen floatudAnvänd inte den anpassade instruktionen floatusAnvänd inte den anpassade instruktionen flogdAnvänd inte den anpassade instruktionen flogsAnvänd inte den anpassade instruktionen fmaxdAnvänd inte den anpassade instruktionen fmaxsAnvänd inte den anpassade instruktionen fmindAnvänd inte den anpassade instruktionen fminsAnvänd inte den anpassade instruktionen fmuldAnvänd inte den anpassade instruktionen fmulsAnvänd inte den anpassade instruktionen fnegdAnvänd inte den anpassade instruktionen fnegsAnvänd inte den anpassade instruktionen frdxhiAnvänd inte den anpassade instruktionen frdxloAnvänd inte den anpassade instruktionen frdyAnvänd inte den anpassade instruktionen fsindAnvänd inte den anpassade instruktionen fsinsAnvänd inte den anpassade instruktionen fsqrtdAnvänd inte den anpassade instruktionen fsqrtsAnvänd inte den anpassade instruktionen fsubdAnvänd inte den anpassade instruktionen fsubsAnvänd inte den anpassade instruktionen ftandAnvänd inte den anpassade instruktionen ftansAnvänd inte den anpassade instruktionen ftruncdsAnvänd inte den anpassade instruktionen fwrxAnvänd inte den anpassade instruktionen fwryAnvänd inte ojusterade minnesreferenserVarna inte om användning av ”long long” vid -pedanticGör stackkontroll med gränser i L1:s fria minneGör ingenting. Bevarad för bakĂĄtkompatibilitet.Gör ingenting. Bevarad för bakĂĄtkompatibilitet.Justera inte element i kod och dataAllokera inte float och double i register med utökad precisionAnta inte att ojusterade ĂĄtkomster hanteras av systemetAnropa inte nĂĄgra cache-tömningsfunktionerAnropa inga cache-tömningsfällorMata inte ut DWARF-tillägg utöver vald versionAvge inte dll-exporterade inline-funktioner om det inte behövsGenerera inte DWARF-setkionerna pubnames och pubtypes.Generera inte kontroller av styrningsspekulation i selektiv schemaläggningGenerera inte felsökningsinformation i separata .dwo-filerGenerera inte kod för endast privilegierat läge. Implicerar -mno-inline-ic_invalidate om den inline:ade koden inte skulle fungera i användarläge.Indikera inte nĂĄgon prioritet med TARGET_REGISTER_PRIORITYOptimera inte blockförflyttningarOptimera inte blockförflyttningar, använd memcpyNotera inte gcc:s kommandoradsflaggor i DWARF DW_AT_producer.Använd inte P-mnemonics för grenarAnvänd inte nĂĄgon av r32..r63.Använd inte mindre än 25 bitars adresseringsintervall för anrop.Varna inte om användning av MicrosoftutökningarDubbelt CLASS IS-block i SELECT TYPE-sats vid %LDubbelprecisions flyttalsenhetNedgradera följsamhetsfel till varningarDriver:Attrapp-”%s” vid %L kan inte ha en initierareAttrappargumentet ”%s” vid %L fĂĄr inte vara INTENT(OUT)Attrappargumentet ”%s” vid %L fĂĄr inte vara OPTIONALAttrappargumentet ”%s” vid %L av LOCK_TYPE fĂĄr inte vara INTENT(OUT)Attrappargument ”%s” vid %L deklarerades INTENT(OUT) men sattes inteAttrappargument ”%s” mĂĄste vara en pekare, vektor med antagen form eller ordning utan attributet CONTIGUOUS - eftersom det aktuella argumentet vid %L inte är enkelt sammanhängande och bĂĄda är ASYNCHRONOUS eller VOLATILEAttrappvariabeln ”%s” är inte tillĂĄten i uttrycket vid %LAttrappargument ”%s” till ”%s” vid %L skulle ha namnet ”%s” för att stämma med motsvarande argument i den ĂĄsidosatta procedurenAttrappargument ”%s” med INTENT(IN) i pekarassociationssammanhang (%s) vid %LAttrappargument ”%s” med INTENT(IN) i variabeldefinitionssammanhang (%s) vid %LAttrappflagga. Detta är standard om inte FPX-flaggor uttryckligen gesAttrapprocedur ”%s” vid %C kan inte ha generiskt gränssnittAttrapprocedur ”%s” vid %L skall inte vara elementärAttrapprocedur ”%s” är inte tillĂĄten i elementär procedur ”%s” vid %LAttrapprocedur ”%s” av PURE-procedur vid %L mĂĄste ocksĂĄ vara PUREAttrapprocedur vid %C kan inte ha attributet BIND(c) tillsammans med NAMESkicka deklarationer till en .decl-filDumpa optimeringspassDubblerat %s-attribut vid %LDubblerat %s-attribut angivna vid %LDubblerad %s-etikettspecifikation vid %CDubblerad %s-specifikation vid %CDubblerat ASYNCHRONOUS-attribut angivet vid %LDubblerat BIND-attribut angivna vid %LDubblerad DEFERRED vid %CDubblerad ELSE-sats vid %L och %CDubblerat EXTENDS-attribut angivet vid %LDubblerad IMPLICIT NONE-sats vid %CDubblerad NML-specifikation vid %CDubblerad NON_OVERRIDABLE vid %CDubblerat POINTER-attribut vid %CDubblerad PRIVATE-sats vid %CDubblerat PROTECTED-attribut angivet vid %LDubblerat SAVE-attribut angivet vid %LDubblerad SEQUENCE-sats vid %CDubblerad UNIT-specifikation vid %CDubblerat VALUE-attribut angivet vid %LDubblerat VOLATILE-attribut angivet vid %LDubblerad ĂĄtkomstspecifikation vid %CDubblerat argument ”%s” vid %L till inbyggd %sDubblerad vektorspecifikation för Cray-utpekad vid vid %CDubblerad konstruktionsetikett ”%s” vid %CDubblerad formatspecifikation vid %CDubblerat namn ”%s” i association vid %CDubblerad satsetikett %d vid %L och %LDubblerad symbol ”%s” i formell argumentlista vid %CAllokera cc-register dynamisktSpecificeraren E är inte tillĂĄten vid g0-deskriptorE500 och FPR:er stödjs inteEDGE_CROSSING felaktigt satt över samma sektionEDGE_CROSSING saknas över sektionsgränsEH-bĂĄge korsar sektionsgräns gb %iEH-landningsplattas etikett ELEMENTAL-funktion ”%s” vid %L mĂĄste ha ett skalärt resultatELEMENTAL icke INTRINSIC procedur ”%s” är inte tillĂĄten som aktuellt argument vid %LELSE IF-sats vid %C kan inte följa ELSE-sats vid %LELSEWHERE-sats vid %C följer tidigare omaskerat ELSEWHEREELSEWHERE-sats vid %C inte innesluten i WHERE-blockENCODING= vid %C är inte tillĂĄtet i Fortran 95END-sats istället för %s-sats vid %LEND-tagg vid %C är inte tillĂĄten i utmatningssatsEND-taggetikett %d vid %L inte definieradENTRY ”%s” vid %L fĂĄr inte anropas rekursivt, eftersom funktionen ”%s” inte är RECURSIVEENTRY ”%s” vid %L är fĂĄr inte anropas rekursivt, eftersom subrutinen ”%s” inte är RECURSIVEENTRY ”%s” vid %L har ingen IMPLICIT-typENTRY-resultat %s fĂĄr inte vara en POINTER i FUNCTION %s vid %LENTRY-resultat %s fĂĄr inte vara en vektor i FUNCTION %s vid %LENTRY-resultat %s fĂĄr inte vara av typen %s i FUNCTION %s vid %LENTRY-sats vid %CENTRY-sats vid %C kan inte förekomma i en innesluten procedurENTRY-sats vid %C kan inte förekomma inuti ett BLOCK DATAENTRY-sats vid %C kan inte förekomma inuti en ett DERIVED TYPE-blockENTRY-sats vid %C kan inte förekomma inuti ett DO-blockENTRY-sats vid %C kan inte förekomma inuti ett FORALL-blockENTRY-sats vid %C kan inte förekomma inuti en MODULEENTRY-sats vid %C kan inte förekomma inuti ett PROGRAMENTRY-sats vid %C kan inte förekomma inuti ett SELECT-blockENTRY-sats vid %C kan inte förekomma inuti ett WHERE-blockENTRY-sats vid %C kan inte förekomma inuti ett inneslutet underprogramENTRY-sats vid %C kan inte förekomma inuti ett IF-THEN-blockENTRY-sats vid %C kan inte förekomma inuti ett INTERFACEENTRY_BLOCK har IL associerat med sigENUM och ENUMERATOR vid %CENUM-deklaration vid %C har inga ENUMERATORSENUM-definitionssats förväntades före %CENUMERATOR %L är inte initierad med ett heltalsuttryckEOR-taggetikett %d vid %L inte definieradEQUIVALENCE vid %C kräver tvĂĄ eller flera objektERR-taggetikett %d vid %L inte definieradERRMSG vid %LERRMSG vid %L är oanvändbart utan en STAT-taggERRMSG-tagg vid %LERRMSG-variabelERRMSG=-variabeln vid %L mĂĄste vara en skalär CHARACTER-variabelERROR STOP-sats vid %CESA/390-arkitekturEXIT-sats vid %C avslutar !$OMP DO-slingaEXIT-sats utan nĂĄgot do-konstruktionsnamn vid %CEXIT_BLOCK har IL associerat med sigEXTENDS vid %LEXTERNAL-attribut i konflikt med FUNCTION-attribut i ”%s” vid %LAntingen alla eller inget av objekten i EQUIVALENCE-mängden vid %L kan ha attributet PROTECTEDAntingen alla eller ingen av de övre gränserna mĂĄste anges vid %LElement i %s-vektorkonstruerare vid %L är %sElement av vektor med antagen form eller pekare skickat till vektorattrappargument ”%s” vid %LElementär funktion som initieraruttryck med argument som inte är heltal/tecken vid %LElement med samma värde vid %L och %L i vektorindex i ett variabeldefinitionssammanhang (%s)Eliminera multipla funktionsanrop även för orena funktionerInbäddad blank i NAME=-specificerare vid %CAvge 16-bitars omlokaliseringar till de smĂĄ dataareornaAvge 32-bitars omlokaliseringar till de smĂĄ dataareornaMata ut DWARF-tillägg utöver vald versionAvge kod som följer IEEE, utan oexakta undantagMata ut anropsgrafsinformationMata ut kontroller som fĂĄr ”break 8”-instruktioner att köra när atomära inbyggda används pĂĄ feljusterat minneMata ut cmpeqdi_t-mönster även när -mcbranchdi är aktivt.Avge kod för byte/ord-ISA-utökningenAvge kod för ISA-utökningen för räkningAvge kod för ISA-utökningen för fp move och sqrtAvge kod för ISA-utökningen för rörlig videoAvge kod som använder uttryckliga omlokaliseringsdirektivMata ut common-liknande symboler som svaga symbolerMata ut felsökningsannoteringar under preprocessningMata ut direkta hopp till lokala funktionerGenerera felmeddelanden när körtidsomlokaliseringar genererasMata ut extra kod i funktionsprologen för att fĂĄnga om stackstorleken överskrider den givna gränsenMata ut funktionsprologer bara före delar av funktionen som behöver det,Mata ut funktionsanrop som använder en global avstĂĄndstabell när PIC genererasSkapa implicita instansieringar av inline:ade mallarSkapa implicita instansieringar av mallarMata ut indirekta hopp till lokala funktionerMata ut lĂĄnga load-/store-sekvenserGenerera profileringsräknaranrop vid funktionsstart före prologenAvge rdval istället för rduniq för trĂĄdpekareMata ut static const-variabler även om de inte användsMata ut stoppbitar före och efter flyktiga utökade asm:erMata ut fällor som ”break 8”, standard för CRIS v3 och uppĂĄt. Om avaktiverat används anrop till abort().Mata ut utförlig felsökningsinformation i assemblerkodGenerera varningar när körtidsomlokaliseringar genererasTom FINAL vid %CTom IMPLICIT-sats vid %CTom vektorkonstruerare vid %C är inte tillĂĄtetTom siffermängd i BOZ-konstant vid %CAktivera ”q”-instruktionsalternativ.Använd 32-bitars divisionsinstruktionerAnvänd 32-bitars multiplikationsinstruktionerAktivera utökningsingsinstruktioner för 64-bitars tidsstämpelräknareAktivera CFI-tabeller via GAS-assemblerdirektiv.Aktiver Cilk PlusAktivera DIV, DIVUAktivera utvidgningarna DSP 3.1 Pack AAnvänd dubbel- och enkelperandinstruktioner för telefoniAktivera Dwarf 2 radfelsökningsinformation via GNU asAktivera fullständig överflödseliminering (FRE) i trädAktivera funktionsbeskrivar-PIC-lägeAktivera Graphite-identitetstransformationAktivera ID-baserat delat bibliotekAnvänd IVC2-schemaläggningAktivera utökningen lĂĄst ladda/lagra villkorligAktivera slingblockeringstransformationAktivera transformationen utbyte (interchange) i slingorAktivera transformationen utgrävning av remsor (strip mining) i slingorAnvänd MUL-instruktionerAnvänd MULX-instruktioner, anta snabb skiftareAnvänd MeP-hjälpprocessorAnvänd MeP-koprocessor med 32-bitars registerAnvänd MeP-koprocessor med 64-bitars registerAktivera Objective-C-undantags- och synkroniseringssyntaxAktivera Objective-C:s setjmp-undantagshantering i körtidsmiljönAktivera OpenMP (implicerar -frecursive i Fortran)Aktivera OpenMP:s SIMD-direktivAktivera PIC-stöd för att bygga bibliotekAktivera sprĂĄkutvidgningar frĂĄn Plan 9Aktivera hantering av Rcq-begränsningar — den mesta genereringen av kort kod beror pĂĄ detta.Aktivera hantering av Rcw--begränsningar — ccfsm-kodexekvering beror i huvudsak pĂĄ detta.Aktivera sätt att kringgĂĄ SH5 cut2Aktivera SSA-kodsänkning i trädAktivera eliminering av död kod i SSA-optimeringen i trädAktivera SSA-BIT-CCP-optimering av trädAktivera SSA-CCP-optimering av trädAktivera SSA-PRE-optimeringar i trädAktivera TPF-OS-spĂĄrningskodAktivera XY-minnesutökningar (DSP version 3)Använd instruktioner för absoluta skillnadAktivera justering av COMMON-blockAktivera alla -Wunused-varningarAktivera alla optimeringsinformationsdumpar pĂĄ standard felAnvänd alla valbara instruktionerAktivera ett RTL-nyckelhĂĄlspass före sched2Aktivera asan-skydd av inbyggda funktionerAktivera globalt asan-skyddAktivera asan-skydd av laddningsoperationerAktivera asan-skydd av stackAktivera asan-skydd av lagringsoperationerAktivera assembler- och länkarlättnader. Aktiverat som standard med -Os.Aktivera kontroll av tilldelningsbarhet för lagring i objektvektorerAktivera automatisk parallellisering av slingorSlĂĄ pĂĄ automatisk mallinstansieringAnvänd genomsnittsinstruktionerAktivera bakändefelsökningAnvänd barrel-shift-instruktionerAktivera grundblocksvektorisering (SLP) i trädAktivera grundläggande programprofileringskodAktivera bbit peephole2Använd bithanteringsinstruktionerAktivera kringĂĄende av cachen för volatila referenserAktivera cbranchdi4-mönsterAnvänd clip-instruktionerAktivera sammanläggning av alla kopierelaterade användarvariablerAktivera sammanläggning av kopieringsrelaterade användarvariabler som är inline:adeAktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av ĂĄtermatad profilAktivera vanliga flaggor för att generera profileringsinformation för optimeringar styrda av ĂĄtermatad profil, och sätt -fprofile-dir=Aktivera vanliga flaggor för att utföra optimeringar styrda av ĂĄtermatad profilAktivera vanliga flaggor för att utföra optimeringar styrda av ĂĄtermatad profil, och sätt -fprofile-dir=Aktivera kompakt casesi-mönsterAktivera villkorlig eliminering av död för inbyggda anropAktivera villkorlig exekvering förutom moves/sccAktivera villkorliga flyttningarAktivera funktionen konstruerare/destruerare.Aktivera kopiepropagering av skalärutvecklingsinformation.Aktivera kopiepropagering i trädAktivera korrigering av profilindata med inkonsistent flödeAktivera eliminering av död lagringAktivera felsökningsutdataAktivera generering av felsökningsutdata.Använd hĂĄrdvarustöd för decimala flyttalAnvänd divisions- och modulusinstruktionerAktivera dominatoroptimeringarAktivera dubbel viterbi fjärilsutvidgningAktivera tidigare utplacering av stoppbitar för bättre schemaläggningAktivera undantagshanteringAktivera framĂĄtpropagering pĂĄ trädAktivera framändesoptimeringarAktivera funktionsprofileringAktivera omflyttning av funktioner för att förbättra kodplaceringAktivera skräpsamling (GC) i Objective-C-/Objective-C++-programAktivera generering av ARC SIMD-instruktioner via mĂĄlspecifika inbyggda.Aktivera generering av cfi för epiloger.Aktivera att grensannolikheter gissasAnvänd hĂĄrdvaruflyttalAktivera närliggande lyftningslast för att uppmuntra generering av villkorliga förflyttningar.Aktivera lyftningslast frĂĄn villkorliga pekare.Aktivera in och ut frĂĄn Graphite-representationAktivera inline-kontroller av nil-mottagare med NeXT-körtidskod och ABI-version 2.Aktivera inline:ing av PLT i funktionsanropAktivera inline:ing av funktioner deklarerade ”inline”, avslaget avaktiveras all inline:ingAktivera optimeringar av etikettjusteringAnvänd instruktioner för inledande nollorAktivera länkningsoptimeringar.Aktivera länkningsoptimeringarAktivera länkaravslappningar.Aktivera länkaravslappningarAktivera länkaravslappningAktivera slingdistribution för mönster transformerade till biblioteksanropAktivera slingdistribution i trädAktivera slinghuvdkopiering av trädAktivera transformationen utbyte (interchange) i slingor. Samma som -floop-interchangeAktivera förflyttning av slingoberoende delar i trädAktivera slingoptimeringar pĂĄ trädnivĂĄAktivera slingvektorisering i trädAktivera maskinspecifika nyckelhĂĄlsoptimeringarAnvänd min/max-instruktionerAktivera de flesta varningsmeddelandenAktivera stöd för flera kärnorAnvänd multiplikationsinstruktionerAktivera nästade optimeringar av villkorlig exekveringAktivera optimeringar av initieringskod för statiska klasserAktivera optimering av &&/|| i villkorliga uttryckAktivera förladdningsanvändning av cbranchsi-mönsterAktivera preprocessningAktivera intervallkontroller under kompileringAktivera ĂĄterassociering pĂĄ trädnivĂĄAktivera registertryckskänslig instruktionsschemaläggningAktivera avslappning i assemblernAnvänd mättnads-instruktionerAktivera schemaläggning mellan grundblockAktivera separat datasegmentAktivera sättande av GPR:er till resultatet av jämförelserAktivera teckenutökningsinstruktionerAktivera delning av 32-bitars omedelbara laddningar i lĂĄg/hög delAktivera stackavkänningAktivera strikt 32-bits psABI-kontroller av postreturer.Aktivera stränglängdsoptimering av trädAktivera stöd för GNU:s transationsminneAktivera stöd för ABI:et RH850. Detta är standard.Aktivera stöd för det gamla GCC-ABI:etAktivera utökningsinstruktionen för byte-ordningsväxlingAktivera svanssammanslagning av trädAktevera den ISL-baserade optimeraren av slingnästningAktivera heuristiken för kritisk väg i schemaläggarenAktivera heuristiken för beroende antal i schemaläggarenAktivera gruppheuristiken i schemaläggarenAktivera heuristiken för sista instruktion i schemaläggarenAktivera normalt lägeAktivera ordningsheuristiken i schemaläggarenAktivera den spekulativa instruktionsheuristiken i schemaläggarenMöjliggör användningen av 64-bitars flyttalsregister i fmov-instruktioner. Se -mdalign om 64-bitars justering krävs.Möjliggör användning av RX FPU-instruktionerna. Detta är standard.Aktivera användning av indexerade laddningarAktivera användningen av pre-/postmodifieringar med registerförflyttning.Aktivera användningen av LRA-registerallokeraren.Aktivera användningen av instruktionen fscaAktivera användningen av instruktionen fsrraAktivera användning av det indexerade adresseringsläget för SHmedia32/SHcompactAktivera användningen av det gamla, trasiga, ABI:et där alla stackade funktionsargument justeras till 32 bitar.Möjliggör användning av de korta load-instruktionernaAktivera användningen av standard RX ABI:et där alla stackade funktionsargument justeras naturligt. Detta är standard.Aktivera traditionell preprocessningAnvänd ojusterade load/store-instruktionerTillĂĄt ojusterade ord- och halvordsĂĄtkomster till packade data.Aktivera användning av GPREL för endast läsbara data i FDPICAktivera användning av POST_INC/POST_DECAktivera användning av POST_MODIFYAktivera användningen av sdata/scommon/sbssAnvänd användardefinierade instruktionerAnvänd slinginstruktionerna i v850e3v5Aktivera variabel polynomiell CRC-utvidgningAktivera vektorisering av trädAktivera utförlig utskriftAktivera en lösning för ensamt errata för processorn AT697FAktivera en lösning för errata för processorn UT699Aktivera/deaktivera den traditionella schemaläggningen i slingor som redan passerat modulo-schemaläggningAktivera ID-baserat delat bibliotekAktivera läget för positionsoberoende data (PID).Aktivera den dynamiska kostnadsmodellen för vektoriseraren. Bevarad för bakĂĄtkompatibilitet.Aktivera den obegränsade kostnadsmodellen för vektoriseraren. Bevarad för bakĂĄtkompatibilitet.Koda SSE-instruktioner med VEX-prefixSlututtryck i DO-slingaSlut pĂĄ DO-sats utan block vid %C är sammanvävt med en annan DO-slingaSlut pĂĄ DO-sats utan block vid %C är inuti ett annat blockSlut pĂĄ söklistan. UpprätthĂĄll ĂĄtkomstsemantik för klassmedlemmarEnheten ”%s” vid %L har en fördröjd typparameter och kräver antingen attributet pointer eller allocatableEntiteten ”%s” vid %L finns redan i gränssnittetEntitet med antagen teckenlängd vid %L mĂĄste vara ett attrappargument eller en PARAMETERUppräkningstypen överskrider C:s heltalstyp vid %CEkvivalens för ”%s” stämmer inte med ordningen av COMMON ”%s” vid %LErrmsg-variabeln vid %L mĂĄste vara en skalär CHARACTER-variabelErrmsg-variabel vid %L skall inte %s:as i samma %s-satsFel vid konvertering av PARAMETER-konstant i komplex konstant vid %CFel vid konvertering av heltalFelantal nĂĄdde gränsen vid %d.Fel i pekarinitiering vid %CFel i typspecifikation vid %LFel när modulfilen ”%s” skrevs: %sFel när modulfil skrevs: %sFel när utdatafilen ”%s” skrevs Fel:Beräkning av ett initieringuttryck utanför standarden vid %LHändelseAvslutsvillkor i DO WHILE-slinga vid %L mĂĄste vara ett skalärt LOGICAL-uttryckAvsluta vid första felet som uppstĂĄrExpandera 32bits/64bits heltalsdivision till 8bitars teckenlös heltalsdivision med kontroll vid körning.Expandera addi3 och subdi3 vid rtl-genereringstillfället till add.f /adc etc.”)” förväntades vid %C”,” förväntades vid %C”,” ellerslut pĂĄ sats förväntades vid %C”(” förväntades vid %C”)” eller ”,” förväntades vid %C”*” förväntades i co-indexspecifikation i ALLOCATE-sats vid %L”,” förväntades vid %C”::” förväntades efter bindningsattribut vid %C”::” förväntades vid %C”=>” förväntades vid %C”END INTERFACE ASSIGNMENT (=)” förväntades vid %C:: förväntades i TYPE-definition vid %C=-tecken i PARAMETER-sats förväntades vid %CRedigeringsbeskrivning P förväntadesPARAMETER-symbol förväntades i komplex konstant vid %CSHAPE-argument förväntades till C_F_POINTER med vektor FPTR vid %LEn TYPE IS-, CLASS IS- eller END SELECT-sats förväntades följa efter SELECT TYPE vid %CEn CASE- eller END SELECT-sats förväntades följa efter SELECT CASE vid %CFörväntade ett namnlöst gränssnitt vid %CFörväntade en procedur som argument ”%s” vid %LEn procedurpekare förväntade som argument ”%s” vid %LEn högerparentes förväntades i uttrycket vid %CEtt stegvärde förväntades i iterator vid %CĂ…tkomstspecificerare förväntades vid %CAlternativ returetikett förväntades vid %CEtt initieringsuttryck förväntades vid %CFörväntade en annan dimension i vektordeklaration vid %CArgumentlista förväntades vid %CFörväntade vektorindex vid %CFörväntade intervall av vektorindex vid %CAssociation förväntade vid %CAssociationslista förväntades vid %CAttributbitnamn förväntadesBindningsattribut förväntades vid %CBindningsnamn förväntades vid %CBindningsmĂĄl förväntades efter ”=>” vid %CBlocknamnet ”%s” förväntades av SELECT-konstruktionen vid %CBlocknamn pĂĄ ”%s” i %s-sats förväntades vid %LBegränsningsspecifikation för ”%s” förväntades vid %LCo-vektorindex förväntades som ”%s”-argument till inbyggd %s vid %LKomma förväntades i I/O-lista vid %CKomponentreferens förväntades vid %CFörväntade exponent i uttryck vid %CUttryck förväntades vid %C i PARAMETER-satsFörväntade uttryck i %s-sats vid %CFörväntade uttryck i vektorspecifikation vid %CUttryckstyp förväntadesFormell argumentlista förväntades i funktionsdefinitionen vid %CGeneriskt namn eller operatorbeskrivare förväntades vid %CInitieringsuttryck förväntades vid %CInitieringsuttryck förväntades i CASE vid %CHeltal förväntadesHeltalssträng förväntadesEtikett ”%s” för %s-sats förväntades vid %CVänsterparentes förväntadesModulprocedurnamn förväntades vid %CFörväntade ett namnFörväntade reell strängHögerparentes förväntadesEtt skalärt initieringsuttryck förväntades vid %CSpecifikt bindningsnamn förväntades vid %CSträng förväntadesPostkomponentnamn förväntades vid %CAvslutande namn förväntades vid %CTypbunden procedurreferens eller procedurpekarkomponent förväntades vid %CVariabel förväntades i READ-sats vid %CVariabelnamn förväntades vid %CVariabelnamn förväntades vid %C i PARAMETER-sats%s-sats förväntades vid %L”END INTERFACE %s” förväntades vid %C”END INTERFACE OPERATOR (%s)” förväntades vid %C, men fick %s”END INTERFACE OPERATOR (.%s.)” förväntades vid %CKomma förväntades i EQUIVALENCE vid %CLista med namngivna entiteter förväntades vid %CFörklara vilka justeringsöverväganden som leder till beslutet att göra en instruktion kort eller lĂĄng.Explicit gränssnitt krävs för ”%s” vid %L: %sExportera funktioner även om de kan inline:asUttrycket vid %L i detta sammanhang mĂĄste vara konstantUttryck vid %L mĂĄste vara av INTEGER-typ, hittade %sUttryck vid %L mĂĄste vara skalärtUttryck i CASE-sats vid %L ligger inte i intervallet %sUttryck i CASE-sats vid %L mĂĄste ha sort %duttryck i CASE-sats vid %L mĂĄste vara av typ %sUttryck i CASE-sats vid %L mĂĄste vara skalärtUtökning: %s-specifierare i %s-sats vid %C har värdet ”%s”Utökning: Konvertering frĂĄn %s till %s vid %LUtökning: Positiv bredd saknas efter L-beskrivare vid %LUtökning: Skalärt CHARACTER-argument som inte är av standardsort och inte C_CHAR-sort med vektoratrappargument ”%s” vid %LUtökning: Tabulatortecken i format vid %CUtökning: Unär operator följer aritmetisk operator (använd parenteser) vid %CUtökning: omvänt snedstreck vid %CUtökning: exponentbokstav ”q” i reeel literal konstant vid %CExtern ”%s” vid %L kan inte ha en initierareExtern IO UNIT fĂĄr inte vara en vektor vid %LExternt objekt ”%s” vid %L kan inte ha en initierareĂ–verflödiga tecken i format vid %LFINAL-klausul vid %L kräver ett skalärt LOGICAL-uttryckFINAL-deklaration vid %C mĂĄste vara inuti CONTAINSFINAL-deklaration vid %C mĂĄsta vara inuti en härledd typs CONTAINS-sektionFINAL-procedur ”%s” vid %L är inte en SUBROUTINEFINAL-procedur ”%s” deklarerad vid %L har samma ordning (%d) som ”%s”FINAL-procedur vid %L mĂĄste ha precis ett argumentFINAL-procedurdeklaration vid %CFLUSH-sats vid %CFORALL-slututtryck vid %L mĂĄste vara en skalär INTEGERFORALL-index ”%s” fĂĄr inte förekomma i triplettspecifikation vid %LFORALL-indexnamn vid %L mĂĄste vara en skalär INTEGERFORALL-maskklausul vid %L kräver ett skalärt LOGICAL-uttryckFORALL-slututtryck vid %L mĂĄste vara en skalär INTEGERFORALL-steguttryck vid %L fĂĄr inte vara nollFORALL-steguttryck vid %L mĂĄste vara en skalär %sFORMAT-etikett %d vid %L inte definieradFORMAT-sats vid %L har inte en satsetikettFORMAT-tagg vid %L mĂĄste ha typen standardsorts CHARACTER eller INTEGERFP-undantag är aktiveradeArgumentet FPTR vid %L till C_F_POINTER fĂĄr inte vara polymorftFPX-utvidgningar är inte tillgängliga för kärnor föra ARC600Snabba och kompakta FPX-flaggor kan inte användas tillsammansFPX: aktivera utökningarna för Argonaut ARC CPU flyttal i dubbel precision.FPX: generera dubbelprecisions FPX- (kompakta) instruktioner.FPX: generera dubbelprecisions FPX- (snabba) instruktioner.FPX: generera enkelprecisions FPX-instruktioner (kompakta).FPX: generera enkelprecisions FPX- (snabba) instruktioner.FUNCTION-resultat %s fĂĄr inte vara en POINTER i FUNCTION %s vid %LFUNCTION-resultat %s fĂĄr inte vara en vektor i FUNCTION %s vid %LFUNCTION-resultat %s fĂĄr inte vara av typen %s i FUNCTION %s vid %LFaktorisera komplexa konstruerare och destruerare till förmĂĄn för utrymme snarare än hastighetDet gick inte att öppna filen %s för att skriva tillstĂĄndet: %sMisslyckades att öppna tillstĂĄndsfilen %s för läsning [%s]Ă–desdigert fel:Filen ”%s” öppnad vid %C är inte en GNU Fortran-modulfilFinkorning styrning av trimningsfunktionerFörsta argumentet till definierad tilldelning vid %L mĂĄste vara INTENT(OUT) eller INTENT(INOUT)Första argumentet till operatorgränssnitt vid %L fĂĄr inte vara frivilligtFörsta argumentet till operatorgränssnitt vid %L mĂĄste vara INTENT(IN)Första eller sista !$OMP ATOMIC-inbyggds argument mĂĄste vara ”%s” vid %LFast radlängd mĂĄste vara minst sju.Flaggan -fmax-stack-var-size=%d ĂĄsidosätter -frecursive som impliceras av -fopenmpFlaggan -fno-automatic ĂĄsidosätter -fmax-stack-var-size=%dFlaggan -fno-automatic ĂĄsidosätter -frecursiveFlaggan -fno-automatic ĂĄsidosätter -frecursive som impliceras av -fopenmpFlaggan -frecursive ĂĄsidosätter -fmax-stack-var-size=%dNamn pĂĄ anpassad instruktionskonfiguration för flyttalFlyttalsenheten stödjer inte division & kvadratrotFölj Renesas (tidigare Hitachi) / SuperH-anropskonventionerFölj länkningskraven EABIFör felrapporteringsinstruktioner se: %s. *************** SPECIELLT Ă„NDAMĂ…L. *** 2352,2366 **** Använd ”-Wl,FLAGGA” för att skicka ”FLAGGA” till länkaren. Använd -G för data som inte är definierat av det aktuella objektetAnvänd -G för objektlokala dataAnvänd 128-bitars AVX-instruktioner istället för 256-bitars AVX-instruktioner i automatvektoriseraren.Använd 128-bitars long doubleAnvänd 16 bits intAnvänd 32 bits floatAnvänd 32 bits intAnvänd 32-bitars ABIAnvänd 32-bitars flyttalsregisterAnvänd 32-bitars allmänna registerAnvänd 4-byteposter i hopptabellerAnvänd 4 mediaackumulatorerAnvänd 4xx:s halvords multiplikationsinstruktionerAnvänd 4xx:s strängsöknings dlmzb-instruktionAnvänd 64 FPR:erAnvänd 64 GPR:erAnvänd 64 bits floatAnvänd 64-bitars ABIAnvänd 64-bitars flyttalsregisterAnvänd 64-bitars allmänna registerAnvänd 64-bitars long doubleAnvänd 8 mediaackumulatorerAnvänd 80-bitars long doubleAnvänd register reserverade av ABIAnvänd AltiVec-instruktionerAnvänd C-biblioteket BionicAnvänd Branch Likely-instruktioner, ĂĄsidosätt arkitekturens standarvalAnvänd CONST16-instruktioner för att läsa konstanterAnvänd EABIAnvänd instruktioner för förbättrad virtuell adresseringAnvänd GNU C-bibliotekAnvänd GP relativt sdata/sbss-sektionerAnvänd GP-relativ adressering för att komma ĂĄt smĂĄ dataAnvänd H8/300-regler för justeringAnvänd IEEE matematik för flyttaljämförelserAnvänd IRA-baserad registertryckberäkningAnvänd ISA 2.07 kryptoinstruktionerAnvänd ISA 2.07:s direkta förflyttning mellan GPR- och VSX-registerinstruktionerAnvänd ISA 2.07 transaktionsminnesinstruktioner (HTM)Använd LRA istället för omladdningAnvänd LRA istället för reload (tillfällig)Använd MCU-instruktionerAnvänd MIPS-3D-instruktionerAnvänd MIPS-DSP REV 2-instruktionerAnvänd MIPS-DSP-instruktionerAnvänd Mingw-specifikt trĂĄdstödAnvänd Neons dubbelords- (snarare än quad-ords-)register för vektoriseringarAnvänd Neons quad-ords- (snarare än dubbelords-)register för vektoriseringarAnvänd Neon till att utföra 64-bitars operationer istället för kärnregister.Använd assembleroperator %reloc() i NewABI-stilAnvänd P-mnemonics för grenar som statiskt förutsägs tasAnvänd ”mad”-instruktioner i PMC-stilAnvänd valbara instruktioner i gruppen PowerPC General PurposeAnvänd valbara instruktioner i gruppen PowerPC GraphicsAnvänd PowerPC V2.01:s enkelfälts mfcr-instruktionAnvänd PowerPC V2.02:s flyttalsavrundningsinstruktionerAnvänd PowerPC V2.02:s popcntb-instruktionAnvänd PowerPC V2.05:s bytejämförelseinstruktionAnvänd PowerPC V2.06:s popcntd-instruktionAnvänd instruktionsuppsättning för PowerPC-64Använd ROM istället för RAMAnvänd konventioner för att skicka SSE-register i SF- och DF-lägeAnvänd SmartMIPS-instruktionerAnvänd assemblersyntax för UNIXUtnyttja UltraSPARC-utökningen jämför-och-grenaUtnyttja UltraSPARC-utökningen sammansmält multiplicera-adderaUtnyttja UltraSparc:s instruktion populeringsantalUtnyttja UltraSPARC-utökningarna Visual Instruction Set version 1.0Utnyttja UltraSPARC-utökningarna Visual Instruction Set version 2.0Utnyttja UltraSPARC-utökningarna Visual Instruction Set version 3.0Använd VAX fpAnvänd VAXC:s konventioner för structAnvänd VMS-slutkoder istället för posix-koderAnvänd __cxa_atexit till registerdestruerareAnvänd __cxa_get_exception_ptr i undantagshanteringAnvänd en 32-bitars long-typAnvänd 4-bytes postmarkeringar för oformaterade filerAnvänd en 64-bitars long-typAnvänd en minimal körmiljö (inga statiska initerare eller ctors) för minnesbegränsade enheter.Använd en smart metod att skydda stacken för vissa funktionerAnvänd en metod att skydda stacken för varje funktionAnvänd adresser som allokerar globala registerAnvänd alla register, reservera inget för avbrottshanterare.Använd alternativa registernamnAnvänd en 8-bitars ”int”-typAnvänd 8-bytes postmarkeringar för oformaterade filerAnvänd godtyckligt stora omedelbara i bitoperationerAnvänd rak byteordningAnvänd rak byteordning för oformaterade filerAnvänd branch-and-break-sekvenser för att upptäcka heltalsdivision med nollAnvänd bras för körbara program < 64kAnvänd anropsöverskrivna register för parametrar och returvärdeAnvänd styrspekulationAnvänd dataspekulation efter omläsningAnvänd dataspekulation före omläsningAnvänd decimala flyttalsinstruktionerAnvänd standardmetod för hantering av sdataAnvänd en annan anropskonvention som använder ”rtd”Använd direkta referenser mot %gs vid ĂĄtkomst av tls-dataAnvänd flyttalsjämförelseinstruktioner som respekterar epsilonAnvänd uttrycksvärdeprofiler i optimeringarAnvänd utökad PowerPC V2.05:s instruktion för att flytta flyttal till/frĂĄn GPRAnvänd f2c:s anropskonventionAnvänd funktioner i och schemalägg kod för angiven CPUAnvänd funktioner i och schemalägg för angiven CPUAnvänd platt registerfönstermodellAnvänd fp-double-instruktionerAnvänd fp-registerAnvänd hela mängden av register för registertilldelning.Använd gcc:s standardbitfältslayoutAnvänd angiven SPARC-V9-kodmodellAnvänd angiven TILE-Gx kodmodellAnvänd angivet adresslägeAnvänd angiven assemblerdialektAnvänd angiven stackskyddsvaktAnvänd angiven trĂĄdlokal lagringsdialektAnvänd angiven x86-64 kodmodellAnvänd hĂĄrdvaru-fpAnvänd hĂĄrdvarudivisionsinstruktioner pĂĄ ColdFireAnvänd hĂĄrdvaruflyttalAnvänd flyttalskonverteringsinstruktioner i hĂĄrdvaraAnvänd flyttalsinstruktioner i hĂĄrdvaraAnvänd flyttalsinstruktion för kvadratrot i hĂĄrdvaraAnvänd hĂĄrdvaru-fpAnvänd hĂĄrdvaruinstruktioner för quad fpAnvänd transaktionskörningsinstruktioner i hĂĄrdvaraAnvänd inblocksstyrspekulationAnvänd inblocksdataspekulation efter omläsningAnvänd inblocksdataspekulation före omläsningAnvänd in/loc/out-registernamnAnvänd indirekta CALLXn-instruktioner för stora programAnvänd indirekta anropAnvänd inline-mönster för att kopiera minneAnvänd heltals-madd-/msub-instruktionerAnvänd hopptabeller för tillräckligt stora switch-satserAnvänd omvänd byteordningAnvänd omvänd byteordning för oformaterade filerAnvänd ll-, sc- och sync-instruktionerAnvänd mediainstruktionerAnvänd microMIPS-instruktionerAnvänd multiplicera-addera-/-subtraherainstruktionerAnvänd högmultiplikationsinstruktioner för den höga delen av 32·32-multiplikationerAnvänd inbyggd (MS) bitfältslayoutAnvänd naturlig byteordning för oformaterade filerAnvänd nya adddi3/subdi3-mönsterAnvänd normal anropskonventionAnvändning av -fdefault-double-8 kräver -fdefault-real-8Användning av inbyggd modul ”%s” vid %C stĂĄr i konflikt med namn pĂĄ ej inbyggd modul använd tidigareAnvändning av ej inbyggd modul ”%s” vid %C stĂĄr i konflikt med namn pĂĄ inbyggd modul använd tidigareAnvändning av namngiven NUMERIC_STORAGE_SIZE-konstant frĂĄn inbyggd modul ISO_FORTRAN_ENV vid %C är inte kompatibelt med flaggan %sAnvändning av namngiven NUMERIC_STORAGE_SIZE-konstant frĂĄn inbyggd modul ISO_FORTRAN_ENV vid %L är inte kompatibelt med flaggan %sAnvänd avstĂĄndstabeller för anrop av virtuella metoderAnvänd endast en TOC-post per procedurAnvänd normalt cachade minnesaccesser för volatila referenserAnvänd packad stacklayoutAnvänd parvisa enkla flyttalsinstruktionerAnvänd mönsterjämförelseinstruktionerAnvänd pc-relativa switch-falltabeller — detta aktiverar förkortning av falltabeller.Använd portabla anropskonventionerAnvänd profileringsinformation för grensannolikheterAnvänd propolice som en metod att skydda stackenAnvänd push-instruktioner för att spara utgĂĄende argumentAnvänd röd zon i x86-64-kodenAnvänd reducerad mängd av register för registertilldelning.Använd registerstacken för parametrar och returvärdeAnvänd register för argumentskickningAnvänd registeren r2 och r5Använd ordningsändringinstruktioner (växlad och byte-omvänd lastning/lagring) (standard)Använd sdram-version av körtidskodAnvänd delade bibliotekAnvänd enkel dataspekulationskontrollAnvänd enkel dataspekulationskontroll för styrspekulationAnvänd simulatorkörtiderAnvänd simulatorkörtider utan vektorerAnvänd programvaruemulering för lyttal (standard)Använd mjukvaruflyttalAnvänd flyttalsjämförelser i programvaraKör speciella direktiv för att leda länkaren i att göra ex9-optimeringar.Använd stackförskjutningAnvänd standard main-funktion som ingĂĄng vid uppstartAnvänd starkare justering för poster för dubbelordkopieringarAnvänd stubbar för funktionsprologerAnvänd subrutiner för funktionprologer och -epilogerAnvänd synci-instruktioner för att invalidera i-cachenAnvänd tabellbaserad snabb division (standard för -O3)Aktivera tabelluppslagningsoptimeringar för divisioner med smĂĄ heltal med teckenAnvänd instruktionen tas.b till __atomic_test_and_setAnvänd ABI-utökningarna AltiVecAnvänd Cray-pekarutökningenAnvänd assemblersyntax för DECAnvänd ELFv1 ABIAnvänd ELFv2 ABIAnvänd GNU-utvidgningarna för PE-formatet för justerade common-dataAnvänd passet pĂĄ RTL för eliminering av död kodAnvänd passet pĂĄ RTL för eliminering av död lagringAnvänd ABI-utökningarna SPEAnvänd bfd-länkaren istället för standardlänkarenAnvänd bitfältsinstruktionernaAnvänd divisionsinstruktionenAnvänd flyttalsenheten för addition/subtraktion av heltal.Använd gold-länkaren istället för standardlänkarenAnvänd tunnskiftaren i hĂĄrdvara istället för emuleringAnvänd de flaggor bland övriga flaggor som slĂĄr pĂĄ flest funktionerAnvänd den smalaste möjliga heltalstypen för uppräkningstyperAnvänd de nya generiska RTX-kostnadstabellerna om nya kärnspecifika kostnadstabeller inte är tillgängliga (tillfällig).Använd de gamla RTX-kostnadstabellerna (tillfällig).Använd samma storlek för double som för floatAnvänd simulatorkörtidskod.Använd programvaruemulering av multiplikation (standard)Använd programvaruemulering av division (standard)Använd traditionell C-semantik för inline-funktionerFĂĄnga trap-instruktioner för att upptäcka heltalsdivision med nollAnvänd C-biblioteket uClibcAnvänd unicode-uppstart och definiera ett UNICODE-makroAnvänd vektor-/skalärinstruktioner (VSX)Använd nollutfyllda minnesladdningar, inte teckenutfylldaAnvänd/använd inte r11 för att hĂĄlla den statiska länken i anrop till funktioner via pekare.Använd/använd inte vektor och skalära instruktioner som lades till i ISA 2.07.Används i Fix-and-Continue-läge för att objektfiler kan bytas ut vid körtillfälletAnvändardefinierad ej ELEMENTAL funktion ”%s” vid %L är inte tillĂĄten i WORKSHARE-konstruktionAnvändaroperatorn ”%s” refererad frĂĄn %L finns inte i modulen ”%s”Användaroperatorprocedur ”%s” vid %L fĂĄr inte ha antagen teckenlängdAnvändaroperatorprocedur ”%s” vid %L mĂĄste vara en FUNCTIONAnvändaroperatorprocedur ”%s” vid %L mĂĄste ha ĂĄtminstone ett argumentAnvänder inbyggda specifikationer. ! VALUE-argumentet till den inbyggda funktionen %s vid %L mĂĄste vara definierbartAttributet VALUE vid %CVALUE är inte tillĂĄtet inuti BLOCK vid %CVALUE-sats vid %CVLIW-funktioner är inte tillĂĄtan utan en VLIW-konfigurationVOIDmode vid utmatningAttributet VOLATILE vid %CVOLATILE-sats vid %CVSX- och SPE-instruktioner kan inte samexisteraGiltiga argument till flaggan -msdata=Giltiga argument till -malign-:Giltiga argument till -mcode-readable=:Giltiga argument till -mfloat-gprs=:Giltiga argument till -mfpmath=:Giltiga argument till -mr10k-cache-barrier=:Giltiga argument till -mstringop-strategy=:Giltiga argument till -mtp=:Validera vtable-pekare före de används.Variabeln %s vid %L av typen LOCK_TYPE eller med en delkomponent av typen LOCK_TYPE mĂĄste vara en co-vektorVariabeln ”%s” vid %L med attributet NO_ARG_CHECK fĂĄr inte ha attributet ALLOCATABLE, CODIMENSION, POINTER eller VALUEVariabeln ”%s” vid %L fĂĄr inte ha attributet INTENT(OUT)Variabeln %s vid %L med attributet NO_ARG_CHECK fĂĄr bara användas som ett aktuellt argumentVariabeln %s vid %L med attributet NO_ARG_CHECK skall vara ett attrappargumentVariabeln %s vid %L med attributet NO_ARG_CHECK skall ha typen TYPE(*) eller en numerisk inbyggd typVariabeln %s vid %L med attributet NO_ARG_CHECK skall antingen vara en skalär eller en vektor med förmodad storlekVariabeln %s vid %L med attributet NO_ARG_CHECK skall inte ha en subobjektreferensVariabeln %s fĂĄr inte vara INTENT(IN) vid %CVariabel %s kan inte tilldelas i en PURE-procedur vid %CVariabeln %s frĂĄn modulen %s med bindningsetikett %s vid %L använder samma globala identifierare som enheten vid %L frĂĄn modulen %sVariabeln %s med bindningsetiketten ”%s” vid %L använder samma globala identifierare som en enhet vid %LVariabeln ”%s” vid %C fĂĄr inte definieras om inuti slingan som börjar vid %LVariabeln ”%s” vid %C med en initierare finns redan i en DATA-satsVariabel ”%s” vid %L kan inte vara BIND(C) eftersom den varken är ett COMMON-block eller deklarerad med räckvidd modulnivĂĄVariabeln ”%s” vid %L fĂĄr inte ha bĂĄde attributet ALLOCATABLE och BIND(C)Variabeln ”%s” vid %L kan inte bĂĄde ha attributet OPTIONAL och VALUE eftersom proceduren ”%s” är BIND(C)Variabeln ”%s” vid %L fĂĄr inte ha bĂĄde attributet POINTER och BIND(C)Variabeln ”%s” vid %L har inte tilldelats en formatetikettVariabel ”%s” vid %L i common-block ”%s” vid %C mĂĄste deklareras med en C-interoperativ sort eftersom common-block ”%s” är bind(c)Variabeln ”%s” vid %L i detta sammanhang mĂĄste vara en konstantVariabeln ”%s” vid %L är INTENT(OUT) och kan alltsĂĄ inte vara en allokerbara co-vektor eller har co-vektorkomponenterVariabeln ”%s” vid %L är en co-vektor och är inte ALLOCATABLE, SAVE eller ett attrappargumentVariabeln ”%s” vid %L är en attrapparameter till BIND(C)-proceduren ”%s” men är kanske inte interoperativ med CTypen ”%s” vid %L är ett atrappargument till BIND(C)-proceduren ”%s” men är inte interoperativ med C för att den härledda typen ”%s” inte är interoperativ med CVariabeln ”%s” vid %L är ett atrappargument till BIND(C)-proceduren ”%s” men är inte interoperativ med C eftersom den är polymorfVariabel ”%s” vid %L är i COMMON men endast i BLOCK DATA är initiering tillĂĄtenVariabeln ”%s” vid %L fĂĄr inte ha en C-interoperativ sort men den är bind(c)Variabeln ”%s” vid %L ej definierbar inuti slingan som börjar vid %L är argument INTENT(OUT) till funktionen ”%s”Variabeln ”%s” vid %L ej definierbar inuti slingan som börjar vid %L är argument INTENT(OUT) till subrutin ”%s”Variabeln ”%s” vid %L av TYPE(C_PTR) eller TYPE(C_FUNPTR) fĂĄr inte vara en co-vektorVariabeln ”%s” vid %L satt till odefinierad inuti en slinga som börjar vid %L är argument INTENT(OUT) till subrutin ”%s”Variabeln ”%s” vid %L satt till odefinierad inuti slingan som börjar vid %L är argument INTENT(OUT) till funktionen ”%s”Variabeln ”%s” vid %L med attributet ALLOCATABLE i proceduren ”%s” med BIND(C)Variabeln ”%s” vid %L med attributet OPTIONAL i proceduren ”%s” som är BIND(C)Variabeln ”%s” vid %L med attributet POINTER i proceduren ”%s” med BIND(C)Variabeln ”%s” vid %L med co-vektorkomponent skall vara en skalär som inte är en pekare eller allokerbar och inte en co-vaktorVariabeln ”%s” kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %LVariabeln ”%s” kan inte förekomma i uttrycket vid %LVariabeln ”%s” har inte tilldelats nĂĄgon mĂĄletikett vid %LVariabeln ”%s” i %s-klausul används i NAMELIST-sats vid %LVariabel ”%s” i common-block ”%s” vid %C fĂĄr inte vara bind(c) eftersom det inte är globaltVariabeln ”%s” i common-blocket ”%s” vid %C mĂĄste deklareras med en sort som är C-interoperativ eftersom common-blocket ”%s” är BIND(C)Variabeln ”%s” i common-blocket ”%s” vid %L fĂĄr inte deklareras med BIND(C) eftersom den inte är en globalVariabeln ”%s” i common-blocket ”%s” vid %L fĂĄr inte vara en sort interoperativ med C men common-blocket ”%s” är BIND(C)Variabeln ”%s” är PROTECTED och kan inte förekomma i ett pekarassociationssammanhang (%s) vid %LVariabeln ”%s” är PROTECTED och kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %LVariabel ”%s” används vid %L före ENTRY-satsen i vilken den är en parameterVariabel ”%s”, använd i ett specifikationsuttryck, refereras vid %L före ENTRY-satsen i vilken den är en parameterVariabeltypen är OKĂ„ND i tilldelning vid %LVariabeln med attributet NO_ARG_CHECK vid %L är endast tillĂĄtet som argument till de inbyggda funktionerna C_LOC och PRESENTVariabler av denna storlek och mindra placeras i based-sektionen. (standard 0)Variabler av denna storlek och mindre läggs i tiny-sektionen. (standard 4)Vektorbiblioteks-ABI att användaVektorisera för dubbelordsoperationer.Multiversionering av virtuell funktion stödjs inteVolatila minnesĂĄtkomster använder inte I/O ladda-/lagrainstruktionerVolatila minnesĂĄtkomster använder I/O ladda-/lagrainstruktionerWAIT vid %C är inte tillĂĄtet i Fortran 95WAIT-sats är är inte tillĂĄtet i PURE-procedur vid %CWHERE-tilldelningsmĂĄl vid %L har inkonsistent formWHERE-mask vid %L har inkonsistent formWHERE/ELSEWHERE-klausul vid %L kräver en LOGICAL-vektorVarna för ”extern”-deklaration som inte är pĂĄ filnivĂĄVarna för ”misstänkta” konstruktionerVarna för @selector()er utan tidigare deklarerade metoderVarna för C-konstruktioner som inte är i den gemensamma delmängden av C och C++Varna för C++-konstruktioner vars betydelse skiljer mellan ISO C++ 1998 och ISO C++ 2011Varna för C++11 ärvda konstruerare när basen har en variadisk konstruerareVarna om NULL skickas som argument som är markerade att de kräver icke-NULLVarna för PCH-filer som hittas men inte användsWarn för använding av __TIME__, __DATE__ och __TIMESTAMP__Varna för justering av COMMON-blockVarna för alla uppräkningshopptabeller som saknar ett specifikt fallVarna för en tom kropp i en if- eller else-satsVarna för anrop av procedurer som inte explicit deklareratsVarna för anrop med implicit gränssnittVarna för typkonvertering av funktioner till inkompatibla typerVarna för typkonvertering som slänger kvalificerareVarna för kod som kan bryta strikta aliasreglerVarna för jämförelser av skilda uppräkningstyperVarna för heltalsdivision med noll vid kompileringstillfälletVarna om vektortemporärer skapasVarna för radering av polymorfa objekt med ickevirtuella destruerareVarna för användning av AltiVec-typen ”vector long ...” som bör undvikasVarna för uppräkningshopptabeller saknar en ”default:”-satsVarna när hopptabeller för uppräkningstyper inte har standardfall och saknar ett fallVarna för likhetsjämförelser som involverar REAL- eller COMPLEX-uttryckVarna för funktioner som inte finns i traditionell CVarna för formatsträngar som inte är literalerVarna för formatsträngar som innehĂĄller NUL-byte:arVarna för eliminering av funktionsanropVarna för funktionsparametrar som deklarerats utan en typangivelse i K&R-stilfunktionerVarna för aritmetik med funktionspekareVarna för funktioner som är möjliga kandidater för __attribute__((const))Varna för funktioner som är möjliga kandidater för __attribute__((noreturn))Varna för funktioner som är möjliga kandidater för __attribute__((pure))Varna för funktioner som kan vara kandidater för formatattributVarna för globala globala funktioner utan tidigare deklarationVarna för globala funktioner utan prototyperVarna för implicita konverteringar frĂĄn ”float” till ”double”Varna för implicita deklarationerVarna för implicita funktionsdeklarationerVarna för felaktig användning av attributVarna för ogiltiga användningar av makrot ”offsetof”Varna för makron definierade i huvudfilen som inte användsVarna för eventuellt oinitierade automatiska variablerVarna för saknade et-tecken i fortsatta teckenkonstanterVarna för saknade fält i postinitierareVarna för missbruk av pragmanVarna för de flesta implicita konvertingarVarna för multipla deklarationer av samma objektVarna för avsmalnande konverteringar inom { } som är felformulerad i C++11Varna för ickevirtuella destruerareVarna för msvcrt-breddutökningar av scanf/printf som inte följer ISOVarna för optimeringar som antar spill med tecken är odefinieratVarna för spill i aritmetiska uttryckVarna för överlagrade virtuella funktionsnamnVarna för ĂĄsidosättande initierare utan sidoeffekterVarna för packade bitfält vars avstĂĄnd ändrats i GCC 4.4Varna för typkonvertering av pekare som ökar justeringenVarna för eventuella attrappargumentaliasVarna för möjliga säkerhetsproblem med formatfunktionerVarna för möjliga brott mot sekvenspunktreglerVarna för eventuellt saknade klamrar runt initierareVarna för eventuellt saknade parenteserVarna för möjliga nästade blockkommentarer, och C++-kommentarer som spänner över mer än en fysisk radVarna för anomalier i formatsträngar till printf/scanf/strftime/strfmonVarna för tveksam användning av de makron som används för att hämta variabla argument.Varna för reella literala konstanter med exponentbokstav ”q”Varna för retur av en pekare/referens till en lokal eller temporär variabel.Varna för retur av poster, unioner eller vektorerVarna för jämförelser mellan signed/unsignedVarna för vilsekomna symboler efter #elif och #endifVarna för format till strftime som ger 2-siffrigt ĂĄrtalVarna för index vars typ är ”char”Varna för tveksamma deklarationer av ”main”Varna för misstänkt användning av minnesadresserVarna för saker som skulle ändras vid kompilering med en kompilator som följer ABIVarna för avhuggna teckenuttryckVarna för avhuggna källkodsraderVarna för ej typkonverterad NULL används som vaktpostVarna för underspill i numeriska konstantuttryckVarna för oinitierade automatiska variablerVarna för funktionsdeklarationer utan prototypVarna för okända pragmanVarna för flyttalskonstanter utan suffixVarna för oanvända attrappargument.Varna vid användning av flerteckens teckenkonstantVarna för oanvändbara typkonverteringarVarna för användarangivna inkluderingskataloger som inte finnsVarna för användning av __attribute__((deprecated))-deklarationerVarna för användning av variadiska makronVarna för variabler som kan ändras av ”longjmp” eller ”vfork”Varna för variabler som initieras till sig självaVarna för brott mot stilreglerna i Effective C++Varna för format med längden nollVarna för DO-slingor med noll-tripparVarna för konstruktioner med villkorligt stödVarna för konvertering av NULL till icke-pekartypVarna för implicita typkonverteringar mellan heltalsuttryck med och utan teckenVarna för implicita typkonverteringar som orsakar förlust av flyttalsprecisionVarna för implicita typkonverteringar som kan ändra ett värdeVarna för förĂĄldrad användning i en deklarationVarna om .class-filer är inaktuellaVarna för en typkonvertering i C-stil används i ett programVarna om anroparen av en funktion, deklarerad med attributet warn_unused_result, inte använder dess returvärdeVarna om en jämförelse alltid är sann eller falsk pĂĄ grund av begränsat intervall för datatypenVarna för en kompilatorfunktion, klass, metod eller fält som bör undvikas användsVarna om en funktion använder alloca eller skapar en vektor med dynamisk storlekVarna om en slinga med konstant antal iterationer orsakar odefinerat beteendeVarna om en egenskap för ett Objective-C-objekt inte har nĂĄgon tilldelningssemantik angivenVarna för en väljare har multipla metoderVarna om ett simd-direktiv ĂĄsidosätts av vektoriserarens kostnadsmodellVarna om en enskild funktions ramstorlek överskrider den angivna ramstorlekenVarna om en sträng är längre än den maximala portabla längden som anges i standardenVarna om ett underobjekt har ett abi-tag-attribut som det fullständiga objektets typ inte harVarna om en användarprocedur har samma namn som en inbyggdVarna om en vektor med variabel längd användsVarna om en virtuella bas har en icketrivial flyttningstilldelningsoperatorVarna om en vektor accessas utanför gränsernaVarna för en gammaldags parameterdefinition användsVarna för ett odefinierat makro används i ett #if-direktivVarna om konstanta CFString-objekt innehĂĄller icke-portabla teckenVarna om tomma satser som bör undvikas finnsVarna för ärvda metoder är oimplementeradeVarna om modifierare anges när de inte behövsVarna för för mĂĄnga argument argument till en funktion för dess formatsträngVarna om stackanvändningen kan vara större än den angivna mängdenVarna vid test av flyttal pĂĄ likhetVarna om adressrymden för en adress ändras.Varna för slingan inte kan optimeras pĂĄ grund av icketriviala antaganden.Varna om pekaren i en pekartilldelning kan överleva sitt mĂĄlVarna om typen pĂĄ en variabel kanske inte är interoperabel med CVarna för trigrafer upptäcks som kan pĂĄverka betydelsen av programmetVarna för typsignaturer till kandidatmetoder inte stämmer exaktVarna om profiler i -fprofile-use inte stämmerVarna för prototyper som orsakar andra typkonverteringar än de som skulle skett i frĂĄnvaro av prototypInbyggd för inbyggda om inte är med i den valda standardenVarna när de inbyggda funktionerna __sync_fetch_and_nand och __sync_nand_and_fetch användsVarna när ett #warning-direktiv pĂĄträffasVarna när en Cell-mikrokodsinstruktion avgesVarna när ett inbyggt preprocessormakro avdefinieras eller omdefinierasVarna när en deklaration inte anger en typVarna när en deklaration hittas efter en satsVarna när en funktion är oanvändVarna när en funktionsparameter bara sätts, och i övrigt är oanvändVarna när en funktionsparameter är oanvändVarna när ett hopp missare en variabelinitieringVarna när en etikett är oanvändVarna när en vektorvariabel pĂĄ vänsterhandssidan allokeras omVarna när en variabel pĂĄ vänsterhandssidan allokeras omVarna när en ordagrann ”0” används som en nollpekareVarna när en logisk operator misstänkt nog alltid beräknas till sant eller falsktVarna när ett noexcept-uttryck beräknas till false även om uttrycket inte faktiskt kan kastaVarna när en pekare skiljer i teckenhet i en tilldelningVarna när en pekare typkonverteras till ett heltal av annan storlekVarna när en registervariabel är deklarerad volatileVarna när en sträng- eller teckenkonstant följs av ett ud-suffix som inte börjar med ett understrykningstecken.Varna när en variabel bara sätts, och i övrigt är oanvändVarna när en variabel är oanvändVarna när en vektoroperation kompileras utanför SIMD:nVarna när ett alla konstruerare och destruerare är privataVarna när en atomisk minnesmodellparameter med säkerhet är utanför det giltiga intervallet.Varna när ett uttrycksvärde är oanväntVarna när en inline:ad funktion inte kan inline:asVarna när ett optimerarpass är avaktiveratVarna vid försök att frigöra ett icke-heap-objektVarna vid typkonvertering av pekare till medlemsfunktionerVarna när en pekare till en ofullständig typ raderasVarna när multipla, olika, snabba avbrottshanterare finns in kompileringsenheten.Varna när en vänfuktion som inte är en mall deklareras inuti en mallVarna när stacköverskrivningsskydd inte läggs ut av nĂĄgon anledningVarna när en lokal variabel skuggar en annanVarna när överlagring anpassar frĂĄn teckenlöst till med teckenVarna när utfyllnad krävs för att justera postmedlemmarVarna när kompilatorn ändrar ordning pĂĄ kodVarna när attributet packed inte har nĂĄgon effekt pĂĄ postformatetVarna för typkonverteringar till pekare frĂĄn ett heltal med annan storlekVarna när typedef:ar lokalt definierade i en funktion inte användsVarna när en funktions returtyp fĂĄr ”int” som skönsvärde (C), eller om inkonsistenta returtyper (C++)Varna närhelst en trampolin genererasVarna när en Objective-C-tilldelning fĂĄngas upp av skräpsamlarenVarna när typkvalificerare ignoreras.Varning:När ”signed” eller ”unsigned” inte anges lĂĄt bitfältet ha teckenNär ”signed” eller ”unsigned” inte anges görs bitfälten teckenlösaNär RAM skall nĂĄs, använd X som hĂĄrdvaran framtvingar, d.v.s. använda bara för-dekrementering, efter-inkrementering och indirekt adressering med registret X. Utan denna flagga kan kompilatorn anta att det finns ett adresseringsläge X+konstant liknande Y+konstant och Z+konstant och mata ut instriktioner för att emulera ett sĂĄdant adresseringsläge för X.Vid generering av -mabicalls-kod, tillĂĄt körbara att använda PLT:er och kopieringsomlokaliseringarVid generering av -mabicalls-kod, gör sĂĄ att koden passar för användning i delade bibliotekLĂĄt bli att generera stackramar när det är möjligtNär CSE körs, följ hopp till deras mĂĄlNär satt till 1, använd dyra metoder för att eliminera alla överflödiga bivillkorNär de är kortare, använd kanoniska sökvägar till systemhuvuden.Om kanoniska typer skall användasVilken -fsched-pressure-algoritm som skall användasNär signalhanterare sattes upp: %mNär signalstacken sattes upp: %mUtan utfyllnad finns det inte tillräckligt med element i inbyggda RESHAPE-källan vid %L för att stämma med formenGĂĄ runt mflo/mfhi-fel i VR4130GĂĄ runt en hĂĄrdvaruanomali genom att lägga till ett antal NOP:ar före enGĂĄ runt ett hĂĄrdvarufel i tidiga 4300GĂĄ runt fel i multiplikationsinstruktionGĂĄ runt vissa fel i 24KGĂĄ runt vissa fel i R10000GĂĄ runt vissa fel i R4000GĂĄ runt vissa fel i R4400GĂĄ runt vissa fel i RM7000GĂĄ runt vissa fel i VR4120GĂĄ runt fel i tidiga SB-1 revision 2-kärnorGĂĄ runt multiplikationsfel i hĂĄrdvaraSkriv alla deklarationer som Adakod endast för den angivna filenSkriv alla deklarationer som Adakod transitivtNär modul %s pĂĄ rad %d kolumn %d lästes: %sX-argumentet vir %L till C_LOC fĂĄr inte vara polymorftX-beskrivare kräver inledande utrymmesantal vid %LXXX gĂĄr in i pop_everything () XXX lämnar pop_everything () Du kan inte ta adressen till en nästad funktion om du använder flaggan -mno-pointers-to-nested-functionsDu behöver en C-uppstartsfil för -msys-crt0=Noll är inte en giltig satsetikett vid %CNollbredd i formatbeskrivning[...]-stils vektorkonstruerare vid %C[Lämnar %s] ! [kan inte hitta %s][standard][avslagen][aktiverad][super ...] mĂĄste stĂĄ i metodkontextattributet __BELOW100__ är inte tillĂĄtet med lagringsklassen auto__builtin_arc_aligned med icke konstant justering__builtin_eh_return stödjs inte pĂĄ denna mĂĄlarkitektur__builtin_rx_%s tar ”C”, ”Z”, ”S”, ”O”, ”I” eller ”U”__builtin_saveregs stödjs inte pĂĄ denna mĂĄlunderarkitektur__builtin_saveregs stödjs inte pĂĄ denna mĂĄlarkitektur__builtin_eh_thread_pointer stödjs inte pĂĄ denna mĂĄlarkitektur__builtin_shuffle argumentvektorns inre typ mĂĄste ha samma storlek som den inre typen för maskenargumentvektorerna till __builtin_shuffle mĂĄste ha samma typargumenten till __builtin_shuffle mĂĄste vara vektorersista argumentet till __builtin_shuffle mĂĄste vara en heltalsvektor__builtin_shuffle antalet element i argumentvektorn och maskvektorn skall vara samma__builtin_thread_pointer stödjs inte pĂĄ denna mĂĄlarkitektur__fp16 och ingen ldrh__io adress 0x%x är samma för %qE och %qE__io-variabler är volatila som standard__is_convertible_to__label__-deklarationer fĂĄr bara förekomma pĂĄ funktionsnivĂĄargument %d till __sec_implicit_index mĂĄste vara mindre än ordningen pĂĄ %qEparametern till __sec_implicit_index mĂĄste vara ett konstant heltalsuttryck__sec_reduce_min_ind eller __sec_reduce_max_ind kan inte ha vektorer med dimensioner större än 1”argumentet ”custom-%s=” behöver numeriska siffroren klammeromsluten initierare är inte tillĂĄten härett anrop till en konstruerare fĂĄr inte finnas i ett konstantuttrycken typomvandling till en annan typ än en heltals- eller uppräkningstyp kan inte förekomma i ett konstantuttrycken kommaoperator fĂĄr inte finnas i ett konstantuttrycken destruerare kan inte vara %ett funktionsanrop fĂĄr inte finnas i ett konstantuttrycken funktionsdefinition är inte tillĂĄten hären etikett kan endast vara en del av en sats och en deklaration är inte en satsen lambdahöljetyp har en raderad koperingstilldelningsoperatoren lambdahöljestyp har en raderad standardkonstruerareen medlem av an post eller union fĂĄr inte ha variabel typen nästad funktion stödjs inte för reducerade registeren parameter kan inte deklareras %en parameterlista med ellips kan inte matcha en tom parameternamnlistdeklarationen lagringsklass kan bara anges för objekt och funktioneren lagringklass pĂĄ ett anonymt aggregat i klassräckvidd tillĂĄts inteen mall kan inte standarddefinierasen malldeklaration fĂĄr inte förekomma pĂĄ blocknivĂĄett mall-id fĂĄr inte förekomma i en using-deklarationen temporär bunden till %qD bestĂĄr endast tills konstrueraren avslutarett transaktionsuttryck fĂĄr inte finnas i ett konstantuttrycken typ med samma namn men andra baser är definerad i en annan översättningsenheten typ med samma namn men annan layout är definierad i en annan översättningsenheten using-deklaration kan inte ange ett mall-id. Försök med %en bred sträng är inte tillĂĄten i denna kontextonormala anropsbĂĄgar för instruktion som inte är anrop i gb %ionormala bĂĄgar utan syfte i gb %iavbrott i %s, vid %s:%dabstrakt deklarerare %qT använd som deklarationabstrakt metod i icke-abstrakt klassĂĄtkomstdeklarationer bör undvikas till förmĂĄn för using-deklarationer; förslag: lägg till nyckelordet %använder medlem %qD istället för initierad medlem %qD i ett konstant uttryckĂĄtkomst av dataminne med programminnesadressĂĄtkomst av programminne med dataminnesadressanvänder värdet av %qE genom ett %qT-glvalue i ett konstant uttryckackumulatorn är inte ett konstant heltalackumulatortalet är utanför gränsenaktuellt argument till INTENT = OUT/INOUTadressomrĂĄdesattribut kan inte anges för funktioneradressomrĂĄdet för %q+D stĂĄr i konflikt med tidigare deklarationadressläget %qs stödjs inte i %s-bitslägeadress till explicit registervariabel %qD begärdadress till global registervariabel %qD efterfrĂĄgadadress till lokal variabel %q+D returneradadress till överlagrad funktion utan typinformation frĂĄn sammanhangetadress pĂĄ registervariabeln %qD efterfrĂĄgadadressavstĂĄnd inte en konstantadressoperander kräver begränsning för X-, Y- eller Z-registeradressregionattribut är inte tillĂĄtna med lagringsklassen autoadressregionattribut pĂĄ pekade pĂĄ typer ignorerasadress begärd till %qD, som är deklarerad %adress tagen, men ADDRESSABLE-biten är inte sattadress-av pĂĄ ett objekt %qE med trĂĄdlokal eller automatisk lagring är inte ett konstant uttryckaggregatet %q#D har ofullständig typ och kan inte definierassammansatt värde använt där ett komplext värde förväntadessammansatt värde använt där ett fixdecimalvärde förväntadessammansatt värde använt där ett flyttalsvärde förväntadessammansatt värde användes där ett heltal förväntadesaliasdefinitioner stödjs inte i Mach-O, ignorerasaliasdefinitioner stödjs inte i denna konfigurationjustering (%u) för %s överskrider maximal justering för globala common-data. Använder %ujustering för %q+D mĂĄste vara ĂĄtminstone %djustering för %q+D angavs tidigare som %d och fĂĄr inte minskaminnesjustering kan inte anges för %q+Djustering mĂĄste vara tvĂĄ upphöjt till ett litet tal, inte %djusteringen av %q+D är större än den objektfilers maximala justering %djustering av %qD är större än orginaldeklarationenjusteringen av vektorelement är större än elementstorlekenminnesjustering angiven för %-objekt %qEminnesjustering angiven för bitfältet %qEminnesjustering angiven för funktionen %qEminnesjustering angiven för parameter %qEminnesjustering angiven för typedef %qEminnesjustering angiven för namnlöst bitfältminnesjustering angiven för namnlös parameteralla medlemsfunktioner i klass %qT är privataalloc_size-parameter utanför giltigt intervallallokerbart argumentredan infĂĄngad %qD i lambdauttryckredan kompilerade .class-filer ignoreras med -Chittade ocksĂĄ %<%c%s%>always_inline-funktion kanske inte kan inline:asny deklaration %q#D som skapar tvetydighetny deklaration av %q#D som skapar tvetydighettvetydig klassmallinstansiering av %q#Ttvetydig konvertering av fältindextvetydig standartypkonvertering frĂĄn %qTtvetydig metod %s%s%stvetydig överlagring för tvetydig mallspecialisering %qD för %q+Dett adressomrĂĄdesattribut kan inte anges för lokala variableren anonym post kan inte ha funktionsmedlemmaren anonym union kan inte ha funktionsmedlemmaren argumenttyp med en standardkonvertering kan inte matcha en tom parameternamnlistdeklarationen vektorreferens fĂĄr inte finnas i ett konstantuttrycken asm-specifikation är inte tillĂĄten pĂĄ en funktionsdefinitionen tilldelning fĂĄr inte finnas i ett konstantuttryckEtt attribut som gäller en viss typspecificerare ignorerasen minskning fĂĄr inte finnas i ett konstantuttrycken explicit specialisering mĂĄste föregĂĄs av %