This is an automated email from the git hooks/post-receive script.
tcwg-buildslave pushed a change to branch linaro-local/ci/tcwg_gnu/gnu-master-aarch64-bootstrap_O3 in repository toolchain/ci/gcc.
from a292e31dac7 vec: use inexact growth where possible. adds 49bfbf18c0b analyzer: fix false NULL deref warning after previous deref [...] adds b1850c617b1 libstdc++: Constrain chrono::duration conversions [LWG 2094] adds 8bc0f24d7a2 rs6000: MMA built-in dies with incorrect sharing of tree no [...] adds 10f51543bb8 libstdc++: Add compile-time checks to__glibcxx_assert [PR 71960] adds b1c59b31ef7 c++: Allow new char[4]{"foo"} [PR77841] adds 0c344a649d8 Use the determined lower bound of the range of offsets in a [...] adds e1a4a8a03f7 Daily bump. adds c9d44022359 bpf: use elfos.h adds 7047a8bab6e bpf: use the default asm_named_section target hook adds 6640a5b9e7c hppa: Improve hppa_rtx_costs for shifts by constants. adds b567d3bd302 fortran: Fix o'...' boz to integer/real conversions [PR96859] adds 6bdbf0f37bd libstdc++: Break header cycle between <new> and <exception> adds d45a6c7099a MSP430: Skip gcc.dg/pr55940.c in the small memory model adds 2f983fa6900 libstdc++: Fix three-way comparison for std::array [PR 96851] adds 0edc2c1a244 MSP430: Fix -mlarge documentation to indicate size_t is a 2 [...] adds c71644776f4 libstdc++: Fix test to use correct function adds ce90d203cea testsuite: Add missing <exception> header to testcase adds f049cda373d c++: Stop defining true, false and bool as macros in <stdbool.h> adds 72ddef620b2 d: Move all runnable tests in gdc.dg to gdc.dg/torture adds c285126cc0a d: Only test with default permutation flags for runnable tests. adds f0a3bab43fd d: __vectors unsupported in hardware should be rejected at [...] adds 6a8f4e47c91 Daily bump. adds 8bd5530bfa1 Adjust testcase. new 43373412699 Optimize memory broadcast for constant vector under AVX512. new eb6ea9e54f1 Look at fullest view when checking for static types in unnesting new 3cc3a373fe5 Preliminary work on support for 128bits integers new b246f5272eb Improve constant folding of vector lowering with vector bools new 3536ff2de83 lto: Cache location_ts including BLOCKs in GIMPLE streaming [...] new 3c219134152 libstdc++: Optimise GCD algorithms
The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference.
Summary of changes: gcc/ChangeLog | 82 + gcc/DATESTAMP | 2 +- gcc/ada/exp_unst.adb | 30 +- gcc/ada/fe.h | 1 + gcc/ada/opt.ads | 7 + gcc/ada/sem_util.adb | 73 + gcc/ada/sem_util.ads | 6 + gcc/ada/stand.ads | 4 + gcc/analyzer/ChangeLog | 6 + gcc/analyzer/region-model.cc | 9 + gcc/builtins.c | 9 +- gcc/c/ChangeLog | 6 + gcc/config.gcc | 1 + gcc/config/bpf/bpf.c | 17 - gcc/config/bpf/bpf.h | 46 +- gcc/config/i386/avx512fintrin.h | 27 +- gcc/config/i386/i386-features.c | 157 +- gcc/config/i386/i386-passes.def | 1 + gcc/config/i386/i386-protos.h | 1 + gcc/config/i386/sse.md | 24 + gcc/config/pa/pa.c | 21 + gcc/config/rs6000/rs6000-call.c | 10 +- gcc/cp/ChangeLog | 11 + gcc/cp/init.c | 6 + gcc/d/ChangeLog | 9 + gcc/d/d-builtins.cc | 2 +- gcc/d/d-target.cc | 15 +- gcc/doc/invoke.texi | 2 +- gcc/fold-const.c | 4 +- gcc/fortran/ChangeLog | 15 + gcc/fortran/check.c | 8 +- gcc/gimple-streamer-in.c | 19 +- gcc/gimple-streamer-out.c | 12 +- gcc/gimple.h | 16 + gcc/ginclude/stdbool.h | 7 - gcc/lto-streamer-in.c | 111 +- gcc/lto-streamer-out.c | 80 +- gcc/lto-streamer.c | 1 + gcc/lto-streamer.h | 16 +- gcc/streamer-hooks.h | 14 +- gcc/testsuite/ChangeLog | 195 ++ gcc/testsuite/g++.dg/cpp0x/initlist-new4.C | 6 + gcc/testsuite/g++.dg/warn/Wconversion-null-5.C | 6 + gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C | 1 + gcc/testsuite/g++.target/i386/avx512bw-pr96246-2.C | 9 +- gcc/testsuite/g++.target/i386/avx512f-helper.h | 1 + gcc/testsuite/g++.target/i386/avx512vl-pr96246-2.C | 21 +- gcc/testsuite/gcc.dg/Wstringop-overflow-42.c | 58 + gcc/testsuite/gcc.dg/Wstringop-overflow.c | 12 +- gcc/testsuite/gcc.dg/Wstringop-overread-4.c | 58 + gcc/testsuite/gcc.dg/analyzer/pr96792.c | 39 + gcc/testsuite/gcc.dg/pr55940.c | 1 + .../gcc.target/i386/avx2-broadcast-pr87767-1.c | 40 + gcc/testsuite/gcc.target/i386/avx512bw-pr95488-1.c | 2 +- .../gcc.target/i386/avx512f-broadcast-pr87767-1.c | 30 + .../gcc.target/i386/avx512f-broadcast-pr87767-2.c | 42 + .../gcc.target/i386/avx512f-broadcast-pr87767-3.c | 30 + .../gcc.target/i386/avx512f-broadcast-pr87767-4.c | 42 + .../gcc.target/i386/avx512f-broadcast-pr87767-5.c | 26 + .../gcc.target/i386/avx512f-broadcast-pr87767-6.c | 41 + .../gcc.target/i386/avx512f-broadcast-pr87767-7.c | 121 ++ .../gcc.target/i386/avx512vl-broadcast-pr87767-1.c | 45 + .../gcc.target/i386/avx512vl-broadcast-pr87767-2.c | 59 + .../gcc.target/i386/avx512vl-broadcast-pr87767-3.c | 37 + .../gcc.target/i386/avx512vl-broadcast-pr87767-4.c | 56 + .../gcc.target/i386/avx512vl-broadcast-pr87767-5.c | 37 + .../gcc.target/i386/avx512vl-broadcast-pr87767-6.c | 55 + gcc/testsuite/gcc.target/i386/pr92645-4.c | 2 +- gcc/testsuite/gcc.target/i386/pr92658-avx512f.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr96808.c | 59 + gcc/testsuite/gdc.dg/cast1.d | 7 + gcc/testsuite/gdc.dg/dg.exp | 24 +- gcc/testsuite/gdc.dg/gdc213.d | 4 +- gcc/testsuite/gdc.dg/gdc284.d | 4 +- gcc/testsuite/gdc.dg/gdc67.d | 3 +- gcc/testsuite/gdc.dg/pr96869.d | 32 + gcc/testsuite/gdc.dg/simd.d | 1947 -------------------- gcc/testsuite/gdc.dg/simd1.d | 71 + gcc/testsuite/gdc.dg/simd10447.d | 11 + gcc/testsuite/gdc.dg/simd12776.d | 25 + gcc/testsuite/gdc.dg/simd13841.d | 29 + gcc/testsuite/gdc.dg/simd13927.d | 10 + gcc/testsuite/gdc.dg/simd13927b.d | 12 + gcc/testsuite/gdc.dg/simd15123.d | 17 + gcc/testsuite/gdc.dg/simd15144.d | 11 + gcc/testsuite/gdc.dg/simd16087.d | 98 + gcc/testsuite/gdc.dg/simd16697.d | 12 + gcc/testsuite/gdc.dg/simd17237.d | 18 + gcc/testsuite/gdc.dg/simd17695.d | 8 + gcc/testsuite/gdc.dg/simd17720a.d | 43 + gcc/testsuite/gdc.dg/simd17720b.d | 43 + gcc/testsuite/gdc.dg/simd19224.d | 17 + gcc/testsuite/gdc.dg/simd19627.d | 6 + gcc/testsuite/gdc.dg/simd19628.d | 41 + gcc/testsuite/gdc.dg/simd19629.d | 41 + gcc/testsuite/gdc.dg/simd19630.d | 77 + gcc/testsuite/gdc.dg/simd2a.d | 69 + gcc/testsuite/gdc.dg/simd2b.d | 69 + gcc/testsuite/gdc.dg/simd2c.d | 70 + gcc/testsuite/gdc.dg/simd2d.d | 69 + gcc/testsuite/gdc.dg/simd2e.d | 69 + gcc/testsuite/gdc.dg/simd2f.d | 69 + gcc/testsuite/gdc.dg/simd2g.d | 69 + gcc/testsuite/gdc.dg/simd2h.d | 69 + gcc/testsuite/gdc.dg/simd2i.d | 69 + gcc/testsuite/gdc.dg/simd2j.d | 69 + gcc/testsuite/gdc.dg/simd7951.d | 22 + gcc/testsuite/gdc.dg/torture/array2.d | 25 + gcc/testsuite/gdc.dg/torture/array3.d | 15 + gcc/testsuite/gdc.dg/{ => torture}/gdc115.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc131.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc141.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc17.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc171.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc179.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc186.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc187.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc191.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc198.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc200.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc210.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc240.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc242b.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc248.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc250.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc273.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc283.d | 3 +- gcc/testsuite/gdc.dg/{ => torture}/gdc285.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc286.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc309.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc35.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc36.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc51.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc57.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/gdc66.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/imports/gdc36.d | 0 gcc/testsuite/gdc.dg/{ => torture}/init1.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr92309.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr94424.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr94777b.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr96152.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr96153.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr96156.d | 2 +- gcc/testsuite/gdc.dg/{ => torture}/pr96157a.d | 2 +- gcc/testsuite/gdc.dg/torture/simd16488a.d | 106 ++ gcc/testsuite/gdc.dg/torture/simd16488b.d | 103 ++ gcc/testsuite/gdc.dg/torture/simd16703.d | 36 + gcc/testsuite/gdc.dg/torture/simd19223.d | 19 + gcc/testsuite/gdc.dg/torture/simd19607.d | 19 + gcc/testsuite/gdc.dg/torture/simd3.d | 34 + gcc/testsuite/gdc.dg/torture/simd4.d | 14 + gcc/testsuite/gdc.dg/torture/simd7411.d | 16 + gcc/testsuite/gdc.dg/torture/simd7413a.d | 95 + gcc/testsuite/gdc.dg/torture/simd7413b.d | 95 + gcc/testsuite/gdc.dg/torture/simd7414.d | 54 + gcc/testsuite/gdc.dg/torture/simd9200.d | 25 + gcc/testsuite/gdc.dg/torture/simd9304.d | 17 + gcc/testsuite/gdc.dg/torture/simd9449.d | 31 + gcc/testsuite/gdc.dg/torture/simd9910.d | 15 + .../gdc.dg/{dg.exp => torture/torture.exp} | 8 +- gcc/testsuite/gfortran.dg/pr96859.f90 | 25 + gcc/testsuite/lib/gdc-utils.exp | 29 +- gcc/tree-vect-generic.c | 14 +- libstdc++-v3/ChangeLog | 71 + libstdc++-v3/include/bits/c++config | 35 +- libstdc++-v3/include/bits/cpp_type_traits.h | 60 + libstdc++-v3/include/bits/deque.tcc | 8 +- libstdc++-v3/include/bits/range_access.h | 10 +- libstdc++-v3/include/bits/ranges_algo.h | 5 +- libstdc++-v3/include/bits/stl_algobase.h | 7 +- libstdc++-v3/include/bits/stl_iterator.h | 3 +- libstdc++-v3/include/parallel/base.h | 5 +- libstdc++-v3/include/std/array | 22 +- libstdc++-v3/include/std/chrono | 33 +- libstdc++-v3/include/std/numeric | 34 +- libstdc++-v3/include/std/ranges | 4 +- libstdc++-v3/libsupc++/new | 4 +- libstdc++-v3/libsupc++/new_opvnt.cc | 3 +- .../testsuite/18_support/destroying_delete.cc | 1 + .../testsuite/20_util/duration/cons/dr2094.cc | 64 + .../duration/requirements/reduced_period.cc | 10 +- .../20_util/duration/requirements/typedefs_neg2.cc | 1 + .../testsuite/20_util/variant/index_type.cc | 2 +- .../array/comparison_operators/96851.cc | 119 ++ .../23_containers/array/tuple_interface/get_neg.cc | 6 +- libstdc++-v3/testsuite/26_numerics/gcd/1.cc | 17 +- libstdc++-v3/testsuite/26_numerics/gcd/2.cc | 133 ++ libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc | 8 +- libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc | 8 +- .../testsuite/experimental/numeric/92978.cc | 2 +- libstdc++-v3/testsuite/experimental/numeric/gcd.cc | 136 +- 191 files changed, 4700 insertions(+), 2320 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp0x/initlist-new4.C create mode 100644 gcc/testsuite/g++.dg/warn/Wconversion-null-5.C create mode 100644 gcc/testsuite/g++.target/i386/avx512f-helper.h create mode 100644 gcc/testsuite/gcc.dg/Wstringop-overflow-42.c create mode 100644 gcc/testsuite/gcc.dg/Wstringop-overread-4.c create mode 100644 gcc/testsuite/gcc.dg/analyzer/pr96792.c create mode 100644 gcc/testsuite/gcc.target/i386/avx2-broadcast-pr87767-1.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-1.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-3.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-4.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-5.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-6.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-broadcast-pr87767-7.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-1.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-3.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-4.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-5.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512vl-broadcast-pr87767-6.c create mode 100644 gcc/testsuite/gcc.target/powerpc/pr96808.c create mode 100644 gcc/testsuite/gdc.dg/cast1.d create mode 100644 gcc/testsuite/gdc.dg/pr96869.d delete mode 100644 gcc/testsuite/gdc.dg/simd.d create mode 100644 gcc/testsuite/gdc.dg/simd1.d create mode 100644 gcc/testsuite/gdc.dg/simd10447.d create mode 100644 gcc/testsuite/gdc.dg/simd12776.d create mode 100644 gcc/testsuite/gdc.dg/simd13841.d create mode 100644 gcc/testsuite/gdc.dg/simd13927.d create mode 100644 gcc/testsuite/gdc.dg/simd13927b.d create mode 100644 gcc/testsuite/gdc.dg/simd15123.d create mode 100644 gcc/testsuite/gdc.dg/simd15144.d create mode 100644 gcc/testsuite/gdc.dg/simd16087.d create mode 100644 gcc/testsuite/gdc.dg/simd16697.d create mode 100644 gcc/testsuite/gdc.dg/simd17237.d create mode 100644 gcc/testsuite/gdc.dg/simd17695.d create mode 100644 gcc/testsuite/gdc.dg/simd17720a.d create mode 100644 gcc/testsuite/gdc.dg/simd17720b.d create mode 100644 gcc/testsuite/gdc.dg/simd19224.d create mode 100644 gcc/testsuite/gdc.dg/simd19627.d create mode 100644 gcc/testsuite/gdc.dg/simd19628.d create mode 100644 gcc/testsuite/gdc.dg/simd19629.d create mode 100644 gcc/testsuite/gdc.dg/simd19630.d create mode 100644 gcc/testsuite/gdc.dg/simd2a.d create mode 100644 gcc/testsuite/gdc.dg/simd2b.d create mode 100644 gcc/testsuite/gdc.dg/simd2c.d create mode 100644 gcc/testsuite/gdc.dg/simd2d.d create mode 100644 gcc/testsuite/gdc.dg/simd2e.d create mode 100644 gcc/testsuite/gdc.dg/simd2f.d create mode 100644 gcc/testsuite/gdc.dg/simd2g.d create mode 100644 gcc/testsuite/gdc.dg/simd2h.d create mode 100644 gcc/testsuite/gdc.dg/simd2i.d create mode 100644 gcc/testsuite/gdc.dg/simd2j.d create mode 100644 gcc/testsuite/gdc.dg/simd7951.d create mode 100644 gcc/testsuite/gdc.dg/torture/array2.d create mode 100644 gcc/testsuite/gdc.dg/torture/array3.d rename gcc/testsuite/gdc.dg/{ => torture}/gdc115.d (89%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc131.d (89%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc141.d (89%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc17.d (95%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc171.d (95%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc179.d (93%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc186.d (97%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc187.d (94%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc191.d (99%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc198.d (97%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc200.d (90%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc210.d (97%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc240.d (89%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc242b.d (91%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc248.d (94%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc250.d (90%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc273.d (91%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc283.d (96%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc285.d (91%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc286.d (95%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc309.d (96%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc35.d (97%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc36.d (98%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc51.d (93%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc57.d (90%) rename gcc/testsuite/gdc.dg/{ => torture}/gdc66.d (87%) rename gcc/testsuite/gdc.dg/{ => torture}/imports/gdc36.d (100%) rename gcc/testsuite/gdc.dg/{ => torture}/init1.d (83%) rename gcc/testsuite/gdc.dg/{ => torture}/pr92309.d (91%) rename gcc/testsuite/gdc.dg/{ => torture}/pr94424.d (93%) rename gcc/testsuite/gdc.dg/{ => torture}/pr94777b.d (99%) rename gcc/testsuite/gdc.dg/{ => torture}/pr96152.d (96%) rename gcc/testsuite/gdc.dg/{ => torture}/pr96153.d (97%) rename gcc/testsuite/gdc.dg/{ => torture}/pr96156.d (93%) rename gcc/testsuite/gdc.dg/{ => torture}/pr96157a.d (90%) create mode 100644 gcc/testsuite/gdc.dg/torture/simd16488a.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd16488b.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd16703.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd19223.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd19607.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd3.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd4.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd7411.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd7413a.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd7413b.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd7414.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd9200.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd9304.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd9449.d create mode 100644 gcc/testsuite/gdc.dg/torture/simd9910.d copy gcc/testsuite/gdc.dg/{dg.exp => torture/torture.exp} (91%) create mode 100644 gcc/testsuite/gfortran.dg/pr96859.f90 create mode 100644 libstdc++-v3/testsuite/20_util/duration/cons/dr2094.cc create mode 100644 libstdc++-v3/testsuite/23_containers/array/comparison_operators [...] create mode 100644 libstdc++-v3/testsuite/26_numerics/gcd/2.cc