{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":22711503,"defaultBranch":"master","name":"gcc","ownerLogin":"gcc-mirror","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-08-07T06:50:37.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8382043?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716279098.0","currentOid":""},"activityList":{"items":[{"before":"ef2169090d0868e4718c2ebf25365aaa52c22139","after":"6eb0e931097a8fec01591051c9ef582d52fe7f0c","ref":"refs/heads/releases/gcc-13","pushedAt":"2024-06-11T19:52:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"Fix building JIT with musl libc [PR115442]\n\nJust like r13-6662-g0e6f87835ccabf but this time for jit/jit-recording.cc.\n\nPushed as obvious after a quick build to make sure jit still builds.\n\ngcc/jit/ChangeLog:\n\n\tPR jit/115442\n\t* jit-recording.cc: Define INCLUDE_SSTREAM before including\n\tsystem.h and don't directly incldue sstream.\n\nSigned-off-by: Andrew Pinski \n(cherry picked from commit e4244b88d75124f6957bfa080c8ad34017364e53)","shortMessageHtmlLink":"Fix building JIT with musl libc [PR115442]"}},{"before":"2b438a0d2aa80f051a09b245a58f643540d4004b","after":"e4244b88d75124f6957bfa080c8ad34017364e53","ref":"refs/heads/trunk","pushedAt":"2024-06-11T19:52:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"Fix building JIT with musl libc [PR115442]\n\nJust like r13-6662-g0e6f87835ccabf but this time for jit/jit-recording.cc.\n\nPushed as obvious after a quick build to make sure jit still builds.\n\ngcc/jit/ChangeLog:\n\n\tPR jit/115442\n\t* jit-recording.cc: Define INCLUDE_SSTREAM before including\n\tsystem.h and don't directly incldue sstream.\n\nSigned-off-by: Andrew Pinski ","shortMessageHtmlLink":"Fix building JIT with musl libc [PR115442]"}},{"before":"2b438a0d2aa80f051a09b245a58f643540d4004b","after":"e4244b88d75124f6957bfa080c8ad34017364e53","ref":"refs/heads/master","pushedAt":"2024-06-11T19:52:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"Fix building JIT with musl libc [PR115442]\n\nJust like r13-6662-g0e6f87835ccabf but this time for jit/jit-recording.cc.\n\nPushed as obvious after a quick build to make sure jit still builds.\n\ngcc/jit/ChangeLog:\n\n\tPR jit/115442\n\t* jit-recording.cc: Define INCLUDE_SSTREAM before including\n\tsystem.h and don't directly incldue sstream.\n\nSigned-off-by: Andrew Pinski ","shortMessageHtmlLink":"Fix building JIT with musl libc [PR115442]"}},{"before":"7d64bc0990381221c480ba15cb9cc950e51e2cef","after":"e6b1c0820590a1f330099ed7560982b5c6da4e91","ref":"refs/heads/releases/gcc-14","pushedAt":"2024-06-11T19:52:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"Fix building JIT with musl libc [PR115442]\n\nJust like r13-6662-g0e6f87835ccabf but this time for jit/jit-recording.cc.\n\nPushed as obvious after a quick build to make sure jit still builds.\n\ngcc/jit/ChangeLog:\n\n\tPR jit/115442\n\t* jit-recording.cc: Define INCLUDE_SSTREAM before including\n\tsystem.h and don't directly incldue sstream.\n\nSigned-off-by: Andrew Pinski \n(cherry picked from commit e4244b88d75124f6957bfa080c8ad34017364e53)","shortMessageHtmlLink":"Fix building JIT with musl libc [PR115442]"}},{"before":"1588983be6112561c805a50eb7a3c585865beffa","after":"2b438a0d2aa80f051a09b245a58f643540d4004b","ref":"refs/heads/trunk","pushedAt":"2024-06-11T18:10:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"vect: Merge loop mask and cond_op mask in fold-left reduction [PR115382].\n\nCurrently we discard the cond-op mask when the loop is fully masked\nwhich causes wrong code in\ngcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c\nwhen compiled with\n-O3 -march=cascadelake --param vect-partial-vector-usage=2.\n\nThis patch ANDs both masks.\n\ngcc/ChangeLog:\n\n\tPR tree-optimization/115382\n\n\t* tree-vect-loop.cc (vectorize_fold_left_reduction): Use\n\tprepare_vec_mask.\n\t* tree-vect-stmts.cc (check_load_store_for_partial_vectors):\n\tRemove static of prepare_vec_mask.\n\t* tree-vectorizer.h (prepare_vec_mask): Export.","shortMessageHtmlLink":"vect: Merge loop mask and cond_op mask in fold-left reduction [PR1153…"}},{"before":"1588983be6112561c805a50eb7a3c585865beffa","after":"2b438a0d2aa80f051a09b245a58f643540d4004b","ref":"refs/heads/master","pushedAt":"2024-06-11T18:10:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"vect: Merge loop mask and cond_op mask in fold-left reduction [PR115382].\n\nCurrently we discard the cond-op mask when the loop is fully masked\nwhich causes wrong code in\ngcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c\nwhen compiled with\n-O3 -march=cascadelake --param vect-partial-vector-usage=2.\n\nThis patch ANDs both masks.\n\ngcc/ChangeLog:\n\n\tPR tree-optimization/115382\n\n\t* tree-vect-loop.cc (vectorize_fold_left_reduction): Use\n\tprepare_vec_mask.\n\t* tree-vect-stmts.cc (check_load_store_for_partial_vectors):\n\tRemove static of prepare_vec_mask.\n\t* tree-vectorizer.h (prepare_vec_mask): Export.","shortMessageHtmlLink":"vect: Merge loop mask and cond_op mask in fold-left reduction [PR1153…"}},{"before":"d30afaae6764379a63c22459b40aaecfa82b0fc4","after":"a995fded34fe488153b06bb41e026277f01efded","ref":"refs/heads/releases/gcc-12","pushedAt":"2024-06-11T18:10:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"Include safe-ctype.h after C++ standard headers, to avoid over-poisoning\n\nWhen building gcc's C++ sources against recent libc++, the poisoning of\nthe ctype macros due to including safe-ctype.h before including C++\nstandard headers such as , , etc, causes many compilation\nerrors, similar to:\n\n In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23:\n In file included from /home/dim/src/gcc/master/gcc/system.h:233:\n In file included from /usr/include/c++/v1/vector:321:\n In file included from\n /usr/include/c++/v1/__format/formatter_bool.h:20:\n In file included from\n /usr/include/c++/v1/__format/formatter_integral.h:32:\n In file included from /usr/include/c++/v1/locale:202:\n /usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute\n only applies to structs, variables, functions, and namespaces\n 546 | _LIBCPP_INLINE_VISIBILITY\n | ^\n /usr/include/c++/v1/__config:813:37: note: expanded from macro\n '_LIBCPP_INLINE_VISIBILITY'\n 813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI\n | ^\n /usr/include/c++/v1/__config:792:26: note: expanded from macro\n '_LIBCPP_HIDE_FROM_ABI'\n 792 |\n __attribute__((__abi_tag__(_LIBCPP_TOSTRING(\n _LIBCPP_VERSIONED_IDENTIFIER))))\n | ^\n In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23:\n In file included from /home/dim/src/gcc/master/gcc/system.h:233:\n In file included from /usr/include/c++/v1/vector:321:\n In file included from\n /usr/include/c++/v1/__format/formatter_bool.h:20:\n In file included from\n /usr/include/c++/v1/__format/formatter_integral.h:32:\n In file included from /usr/include/c++/v1/locale:202:\n /usr/include/c++/v1/__locale:547:37: error: expected ';' at end of\n declaration list\n 547 | char_type toupper(char_type __c) const\n | ^\n /usr/include/c++/v1/__locale:553:48: error: too many arguments\n provided to function-like macro invocation\n 553 | const char_type* toupper(char_type* __low, const\n char_type* __high) const\n | ^\n /home/dim/src/gcc/master/gcc/../include/safe-ctype.h:146:9: note:\n macro 'toupper' defined here\n 146 | #define toupper(c) do_not_use_toupper_with_safe_ctype\n | ^\n\nThis is because libc++ uses different transitive includes than\nlibstdc++, and some of those transitive includes pull in various ctype\ndeclarations (typically via ).\n\nThere was already a special case for including before\nsafe-ctype.h, so move the rest of the C++ standard header includes to\nthe same location, to fix the problem.\n\n\tPR middle-end/111632\n\ngcc/ChangeLog:\n\n\t* system.h: Include safe-ctype.h after C++ standard headers.\n\nSigned-off-by: Dimitry Andric \n(cherry picked from commit 9970b576b7e4ae337af1268395ff221348c4b34a)","shortMessageHtmlLink":"Include safe-ctype.h after C++ standard headers, to avoid over-poisoning"}},{"before":"870e389a050b2b194614fc961a95c774c18473b7","after":"d30afaae6764379a63c22459b40aaecfa82b0fc4","ref":"refs/heads/releases/gcc-12","pushedAt":"2024-06-11T17:44:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"PHIOPT: Don't transform minmax if middle bb contains a phi [PR115143]\n\nThe problem here is even if last_and_only_stmt returns a statement,\nthe bb might still contain a phi node which defines a ssa name\nwhich is used in that statement so we need to add a check to make sure\nthat the phi nodes are empty for the middle bbs in both the\n`CMP?MINMAX:MINMAX` case and the `CMP?MINMAX:B` cases.\n\nBootstrapped and tested on x86_64_linux-gnu with no regressions.\n\n\tPR tree-optimization/115143\n\ngcc/ChangeLog:\n\n\t* tree-ssa-phiopt.cc (minmax_replacement): Check for empty\n\tphi nodes for middle bbs for the case where middle bb is not empty.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.c-torture/compile/pr115143-1.c: New test.\n\t* gcc.c-torture/compile/pr115143-2.c: New test.\n\t* gcc.c-torture/compile/pr115143-3.c: New test.\n\nSigned-off-by: Andrew Pinski \n(cherry picked from commit 9ff8f041331ef8b56007fb3c4d41d76f9850010d)","shortMessageHtmlLink":"PHIOPT: Don't transform minmax if middle bb contains a phi [PR115143]"}},{"before":"53ac88cedf9348b0139fa92c3257b877694f6194","after":"1588983be6112561c805a50eb7a3c585865beffa","ref":"refs/heads/trunk","pushedAt":"2024-06-11T17:18:44.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"RISC-V: Add Zalrsc amo-op patterns\n\nAll amo patterns can be represented with lrsc sequences.\nAdd these patterns as a fallback when Zaamo is not enabled.\n\ngcc/ChangeLog:\n\n\t* config/riscv/sync.md (atomic_): New expand pattern.\n\t(amo_atomic_): Rename amo pattern.\n\t(atomic_fetch_): New lrsc sequence pattern.\n\t(lrsc_atomic_): New expand pattern.\n\t(amo_atomic_fetch_): Rename amo pattern.\n\t(lrsc_atomic_fetch_): New lrsc sequence pattern.\n\t(atomic_exchange): New expand pattern.\n\t(amo_atomic_exchange): Rename amo pattern.\n\t(lrsc_atomic_exchange): New lrsc sequence pattern.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/riscv/amo-zaamo-preferred-over-zalrsc.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-1.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-2.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-3.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-4.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-5.c: New test.\n\nSigned-off-by: Patrick O'Neill ","shortMessageHtmlLink":"RISC-V: Add Zalrsc amo-op patterns"}},{"before":"53ac88cedf9348b0139fa92c3257b877694f6194","after":"1588983be6112561c805a50eb7a3c585865beffa","ref":"refs/heads/master","pushedAt":"2024-06-11T17:18:44.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"RISC-V: Add Zalrsc amo-op patterns\n\nAll amo patterns can be represented with lrsc sequences.\nAdd these patterns as a fallback when Zaamo is not enabled.\n\ngcc/ChangeLog:\n\n\t* config/riscv/sync.md (atomic_): New expand pattern.\n\t(amo_atomic_): Rename amo pattern.\n\t(atomic_fetch_): New lrsc sequence pattern.\n\t(lrsc_atomic_): New expand pattern.\n\t(amo_atomic_fetch_): Rename amo pattern.\n\t(lrsc_atomic_fetch_): New lrsc sequence pattern.\n\t(atomic_exchange): New expand pattern.\n\t(amo_atomic_exchange): Rename amo pattern.\n\t(lrsc_atomic_exchange): New lrsc sequence pattern.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/riscv/amo-zaamo-preferred-over-zalrsc.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-1.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-2.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-3.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-4.c: New test.\n\t* gcc.target/riscv/amo-zalrsc-amo-add-5.c: New test.\n\nSigned-off-by: Patrick O'Neill ","shortMessageHtmlLink":"RISC-V: Add Zalrsc amo-op patterns"}},{"before":"d4126b329b2ae4f2b60efa1c7ad51b576de168bd","after":"870e389a050b2b194614fc961a95c774c18473b7","ref":"refs/heads/releases/gcc-12","pushedAt":"2024-06-11T17:18:44.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"libstdc++: Fix fwrite error parameter\n\nThe first parameter of fwrite should be the const char* __s which want\nwrite to FILE *__file, rather than the FILE *__file write to the FILE\n*__file.\n\nlibstdc++-v3/ChangeLog:\n\n\t* config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix\n\tfirst argument.\n\n(cherry picked from commit bb4f8f14ed15310b5e01f1c6013585550debdab9)","shortMessageHtmlLink":"libstdc++: Fix fwrite error parameter"}},{"before":"2f0c09c00b8ccf41c27d4b7ba0cafdeb99242a29","after":"53ac88cedf9348b0139fa92c3257b877694f6194","ref":"refs/heads/trunk","pushedAt":"2024-06-11T16:53:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"C++: Support constexpr strings for asm statements\n\nSome programing styles use a lot of inline assembler, and it is common\nto use very complex preprocessor macros to generate the assembler\nstrings for the asm statements. In C++ there would be a typesafe alternative\nusing templates and constexpr to generate the assembler strings, but\nunfortunately the asm statement requires plain string literals, so this\ndoesn't work.\n\nThis patch modifies the C++ parser to accept strings generated by\nconstexpr instead of just plain strings. This requires new syntax\nbecause e.g. asm(\"...\" : \"r\" (expr)) would be ambigious with a function\ncall. I chose () to make it unique. For example now you can write\n\nconstexpr const char *genasm() { return \"insn\"; }\nconstexpr const char *genconstraint() { return \"r\"; }\n\n\tasm(genasm() :: (genconstraint()) (input));\n\nThe constexpr strings are allowed for the asm template, the\nconstraints and the clobbers (every time current asm accepts a string)\n\nThis version allows the same constexprs as C++26 static_assert,\nfollowing Jakub's suggestion.\n\nThe drawback of this scheme is that the constexpr doesn't have\nfull control over the input/output/clobber lists, but that can be\nusually handled with a switch statement. One could imagine\nmore flexible ways to handle that, for example supporting constexpr\nvectors for the clobber list, or similar. But even without\nthat it is already useful.\n\nBootstrapped and full test on x86_64-linux.\n\ngcc/c-family/ChangeLog:\n\n\t* c-cppbuiltin.cc (c_cpp_builtins): Define __GXX_CONSTEXPR_ASM__\n\ngcc/cp/ChangeLog:\n\n\t* parser.cc (cp_parser_asm_string_expression): New function\n\tto handle constexpr strings for asm.\n\t(cp_parser_asm_definition): Use cp_parser_asm_string_expression.\n\t(cp_parser_yield_expression): Dito.\n\t(cp_parser_asm_specification_opt): Dito.\n\t(cp_parser_asm_operand_list): Dito.\n\t(cp_parser_asm_clobber_list): Dito.\n\ngcc/ChangeLog:\n\n\t* doc/extend.texi: Document constexpr asm.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/ext/asm11.C: Adjust to new error message.\n\t* g++.dg/ext/asm9.C: Dito.\n\t* g++.dg/parse/asm1.C: Dito.\n\t* g++.dg/parse/asm2.C: Dito.\n\t* g++.dg/parse/asm3.C: Dito.\n\t* g++.dg/cpp1z/constexpr-asm-1.C: New test.\n\t* g++.dg/cpp1z/constexpr-asm-2.C: New test.\n\t* g++.dg/cpp1z/constexpr-asm-3.C: New test.","shortMessageHtmlLink":"C++: Support constexpr strings for asm statements"}},{"before":"2f0c09c00b8ccf41c27d4b7ba0cafdeb99242a29","after":"53ac88cedf9348b0139fa92c3257b877694f6194","ref":"refs/heads/master","pushedAt":"2024-06-11T16:53:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"C++: Support constexpr strings for asm statements\n\nSome programing styles use a lot of inline assembler, and it is common\nto use very complex preprocessor macros to generate the assembler\nstrings for the asm statements. In C++ there would be a typesafe alternative\nusing templates and constexpr to generate the assembler strings, but\nunfortunately the asm statement requires plain string literals, so this\ndoesn't work.\n\nThis patch modifies the C++ parser to accept strings generated by\nconstexpr instead of just plain strings. This requires new syntax\nbecause e.g. asm(\"...\" : \"r\" (expr)) would be ambigious with a function\ncall. I chose () to make it unique. For example now you can write\n\nconstexpr const char *genasm() { return \"insn\"; }\nconstexpr const char *genconstraint() { return \"r\"; }\n\n\tasm(genasm() :: (genconstraint()) (input));\n\nThe constexpr strings are allowed for the asm template, the\nconstraints and the clobbers (every time current asm accepts a string)\n\nThis version allows the same constexprs as C++26 static_assert,\nfollowing Jakub's suggestion.\n\nThe drawback of this scheme is that the constexpr doesn't have\nfull control over the input/output/clobber lists, but that can be\nusually handled with a switch statement. One could imagine\nmore flexible ways to handle that, for example supporting constexpr\nvectors for the clobber list, or similar. But even without\nthat it is already useful.\n\nBootstrapped and full test on x86_64-linux.\n\ngcc/c-family/ChangeLog:\n\n\t* c-cppbuiltin.cc (c_cpp_builtins): Define __GXX_CONSTEXPR_ASM__\n\ngcc/cp/ChangeLog:\n\n\t* parser.cc (cp_parser_asm_string_expression): New function\n\tto handle constexpr strings for asm.\n\t(cp_parser_asm_definition): Use cp_parser_asm_string_expression.\n\t(cp_parser_yield_expression): Dito.\n\t(cp_parser_asm_specification_opt): Dito.\n\t(cp_parser_asm_operand_list): Dito.\n\t(cp_parser_asm_clobber_list): Dito.\n\ngcc/ChangeLog:\n\n\t* doc/extend.texi: Document constexpr asm.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/ext/asm11.C: Adjust to new error message.\n\t* g++.dg/ext/asm9.C: Dito.\n\t* g++.dg/parse/asm1.C: Dito.\n\t* g++.dg/parse/asm2.C: Dito.\n\t* g++.dg/parse/asm3.C: Dito.\n\t* g++.dg/cpp1z/constexpr-asm-1.C: New test.\n\t* g++.dg/cpp1z/constexpr-asm-2.C: New test.\n\t* g++.dg/cpp1z/constexpr-asm-3.C: New test.","shortMessageHtmlLink":"C++: Support constexpr strings for asm statements"}},{"before":"84c87d1f43091c2e537182d029db9739de518096","after":"2f0c09c00b8ccf41c27d4b7ba0cafdeb99242a29","ref":"refs/heads/trunk","pushedAt":"2024-06-11T13:02:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"scev query mismatch message\n\nAdd a message to the listing if SCEV is not invoked because of a\nrange_query mismatch\n\n\t* gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Issue a\n\tmessage if SCEV is not invoked due to a mismatch.","shortMessageHtmlLink":"scev query mismatch message"}},{"before":"84c87d1f43091c2e537182d029db9739de518096","after":"2f0c09c00b8ccf41c27d4b7ba0cafdeb99242a29","ref":"refs/heads/master","pushedAt":"2024-06-11T13:02:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"scev query mismatch message\n\nAdd a message to the listing if SCEV is not invoked because of a\nrange_query mismatch\n\n\t* gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Issue a\n\tmessage if SCEV is not invoked due to a mismatch.","shortMessageHtmlLink":"scev query mismatch message"}},{"before":"75299e4fe50aa8d9b3ff529e48db4ed246083e64","after":"84c87d1f43091c2e537182d029db9739de518096","ref":"refs/heads/trunk","pushedAt":"2024-06-11T12:12:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"libstdc++: Add test for chrono::leap_seconds ostream insertion\n\nAlso add a comment to the three-way comparison oeprator for\nchrono::leap_seconds, noting the deviation from the spec (which is\nfunctionally equivalent). What we implement is the originally proposed\nresolution to LWG 3383, which should compile slightly more efficiently\nthan the final accepted resolution.\n\nlibstdc++-v3/ChangeLog:\n\n\t* include/std/chrono (leap_seconds): Add comment.\n\t* testsuite/std/time/leap_seconds/io.cc: New test.","shortMessageHtmlLink":"libstdc++: Add test for chrono::leap_seconds ostream insertion"}},{"before":"75299e4fe50aa8d9b3ff529e48db4ed246083e64","after":"84c87d1f43091c2e537182d029db9739de518096","ref":"refs/heads/master","pushedAt":"2024-06-11T12:12:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"libstdc++: Add test for chrono::leap_seconds ostream insertion\n\nAlso add a comment to the three-way comparison oeprator for\nchrono::leap_seconds, noting the deviation from the spec (which is\nfunctionally equivalent). What we implement is the originally proposed\nresolution to LWG 3383, which should compile slightly more efficiently\nthan the final accepted resolution.\n\nlibstdc++-v3/ChangeLog:\n\n\t* include/std/chrono (leap_seconds): Add comment.\n\t* testsuite/std/time/leap_seconds/io.cc: New test.","shortMessageHtmlLink":"libstdc++: Add test for chrono::leap_seconds ostream insertion"}},{"before":"d73137ab352d654f50b703925bd92e021dce1cab","after":"d4126b329b2ae4f2b60efa1c7ad51b576de168bd","ref":"refs/heads/releases/gcc-12","pushedAt":"2024-06-11T10:55:42.000Z","pushType":"push","commitsCount":31,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"c: Fix up pointer types to may_alias structures [PR114493]\n\nThe following testcase ICEs in ipa-free-lang, because the\nfld_incomplete_type_of\n gcc_assert (TYPE_CANONICAL (t2) != t2\n && TYPE_CANONICAL (t2) == TYPE_CANONICAL (TREE_TYPE (t)));\nassertion doesn't hold.\nThis is because t is a struct S * type which was created while struct S\nwas still incomplete and without the may_alias attribute (and TYPE_CANONICAL\nof a pointer type is a type created with can_alias_all = false argument),\nwhile later on on the struct definition may_alias attribute was used.\nfld_incomplete_type_of then creates an incomplete distinct copy of the\nstructure (but with the original attributes) but pointers created for it\nare because of the \"may_alias\" attribute TYPE_REF_CAN_ALIAS_ALL, including\ntheir TYPE_CANONICAL, because while that is created with !can_alias_all\nargument, we later set it because of the \"may_alias\" attribute on the\nto_type.\n\nThis doesn't ICE with C++ since PR70512 fix because the C++ FE sets\nTYPE_REF_CAN_ALIAS_ALL on all pointer types to the class type (and its\nvariants) when the may_alias is added.\n\nThe following patch does that in the C FE as well.\n\n2024-06-06 Jakub Jelinek \n\n\tPR c/114493\n\t* c-decl.cc (c_fixup_may_alias): New function.\n\t(finish_struct): Call it if \"may_alias\" attribute is\n\tspecified.\n\n\t* gcc.dg/pr114493-1.c: New test.\n\t* gcc.dg/pr114493-2.c: New test.\n\n(cherry picked from commit d5a3c6d43acb8b2211d9fb59d59482d74c010f01)","shortMessageHtmlLink":"c: Fix up pointer types to may_alias structures [PR114493]"}},{"before":"7813d94393f60ac641265cb3fc3a446f9f3aea7e","after":"ef2169090d0868e4718c2ebf25365aaa52c22139","ref":"refs/heads/releases/gcc-13","pushedAt":"2024-06-11T10:04:38.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"libstdc++: Fix simd conversion for -fno-signed-char for Clang\n\nThe special case for Clang in the trait producing a signed integer type\nlead to the trait returning 'char' where it should have been 'signed\nchar'. This workaround was introduced because on Clang the return type\nof vector compares was not convertible to '_SimdWrapper<\n__int_for_sizeof_t<...' unless '__int_for_sizeof_t' was an alias\nfor 'char'. In order to not rewrite the complete mask type code (there\nis code scattered around the implementation assuming signed integers),\nthis needs to be 'signed char'; so the special case for Clang needs to\nbe removed.\nThe conversion issue is now solved in _SimdWrapper, which now\nadditionally allows conversion from vector types with compatible\nintegral type.\n\nSigned-off-by: Matthias Kretz \n\nlibstdc++-v3/ChangeLog:\n\n\tPR libstdc++/115308\n\t* include/experimental/bits/simd.h (__int_for_sizeof): Remove\n\tspecial cases for __clang__.\n\t(_SimdWrapper): Change constructor overload set to allow\n\tconversion from vector types with integral conversions via bit\n\treinterpretation.\n\n(cherry picked from commit 8e36cf4c5c9140915d0019999db132a900b48037)","shortMessageHtmlLink":"libstdc++: Fix simd<char> conversion for -fno-signed-char for Clang"}},{"before":"a0004feb87efbe41fb1e9cd77f1c9af06e98ccb5","after":"75299e4fe50aa8d9b3ff529e48db4ed246083e64","ref":"refs/heads/trunk","pushedAt":"2024-06-11T09:39:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"rust: Do not link with libdl and libpthread unconditionally\n\nChangeLog:\n\n\t* Makefile.tpl: Add CRAB1_LIBS variable.\n\t* Makefile.in: Regenerate.\n\t* configure: Regenerate.\n\t* configure.ac: Check if -ldl and -lpthread are needed, and if so, add\n\tthem to CRAB1_LIBS.\n\ngcc/rust/ChangeLog:\n\n\t* Make-lang.in: Remove overazealous LIBS = -ldl -lpthread line, link\n\tcrab1 against CRAB1_LIBS.","shortMessageHtmlLink":"rust: Do not link with libdl and libpthread unconditionally"}},{"before":"a0004feb87efbe41fb1e9cd77f1c9af06e98ccb5","after":"75299e4fe50aa8d9b3ff529e48db4ed246083e64","ref":"refs/heads/master","pushedAt":"2024-06-11T09:39:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"rust: Do not link with libdl and libpthread unconditionally\n\nChangeLog:\n\n\t* Makefile.tpl: Add CRAB1_LIBS variable.\n\t* Makefile.in: Regenerate.\n\t* configure: Regenerate.\n\t* configure.ac: Check if -ldl and -lpthread are needed, and if so, add\n\tthem to CRAB1_LIBS.\n\ngcc/rust/ChangeLog:\n\n\t* Make-lang.in: Remove overazealous LIBS = -ldl -lpthread line, link\n\tcrab1 against CRAB1_LIBS.","shortMessageHtmlLink":"rust: Do not link with libdl and libpthread unconditionally"}},{"before":"60e4cc3625105b45f9f2b453a53f7551e2e2af3b","after":"7d64bc0990381221c480ba15cb9cc950e51e2cef","ref":"refs/heads/releases/gcc-14","pushedAt":"2024-06-11T09:13:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"ira: Fix go_through_subreg offset calculation [PR115281]\n\ngo_through_subreg used:\n\n else if (!can_div_trunc_p (SUBREG_BYTE (x),\n\t\t\t REGMODE_NATURAL_SIZE (GET_MODE (x)), offset))\n\nto calculate the register offset for a pseudo subreg x. In the blessed\ndays before poly-int, this was:\n\n *offset = (SUBREG_BYTE (x) / REGMODE_NATURAL_SIZE (GET_MODE (x)));\n\nBut I think this is testing the wrong natural size. If we exclude\nparadoxical subregs (which will get an offset of zero regardless),\nit's the inner register that is being split, so it should be the\ninner register's natural size that we use.\n\nThis matters in the testcase because we have an SFmode lowpart\nsubreg into the last of three variable-sized vectors. The\nSUBREG_BYTE is therefore equal to the size of two variable-sized\nvectors. Dividing by the vector size gives a register offset of 2,\nas expected, but dividing by the size of a scalar FPR would give\na variable offset.\n\nI think something similar could happen for fixed-size targets if\nREGMODE_NATURAL_SIZE is different for vectors and integers (say),\nalthough that case would trade an ICE for an incorrect offset.\n\ngcc/\n\tPR rtl-optimization/115281\n\t* ira-conflicts.cc (go_through_subreg): Use the natural size of\n\tthe inner mode rather than the outer mode.\n\ngcc/testsuite/\n\tPR rtl-optimization/115281\n\t* gfortran.dg/pr115281.f90: New test.\n\n(cherry picked from commit 46d931b3dd31cbba7c3355ada63f155aa24a4e2b)","shortMessageHtmlLink":"ira: Fix go_through_subreg offset calculation [PR115281]"}},{"before":"a797398cfbc75899fdb7d97436c0c89c02b133c0","after":"a0004feb87efbe41fb1e9cd77f1c9af06e98ccb5","ref":"refs/heads/trunk","pushedAt":"2024-06-11T09:13:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"PR modula2/114529 Avoid ODR violations in bootstrap translated sources\n\nThis patch changes the bootstrap tool mc to avoid redefining any data\ntypes and therefore preventing ODR violations. All exported opaque type\nusages are implemented as void *. Local opaque type usages (static\nfunctions containing opaque type parameters) use the full declaration.\nmc casts usages between void * and full opaque type as necessary.\nThe --extended-opaque option in mc has been disabled, as this generated\nODR violations. The extended-opaque option inlined all declarations in\nthe translated implementation module. As this is no longer used there\nis now a .h file for each .def file and a .cc file for every .mod file.\nThis results in more Makefile rules for the ppg tool in Make-maintainer.in.\n\ngcc/m2/ChangeLog:\n\n\tPR modula2/114529\n\t* Make-lang.in (MC_EXTENDED_OPAQUE): Assign to nothing.\n\t* Make-maintainer.in (mc-basetest): New rule.\n\t(mc-devel-basetest): New rule.\n\t(mc-clean): Remove mc.\n\t(m2/mc-boot-gen/$(SRC_PREFIX)decl.cc): Replace --extended-opaque\n\twith $(EXTENDED_OPAQUE).\n\t(PG-SRC): Move define before generic rules.\n\t(PGE-DEF): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)%.h): New rule.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.\n\t(m2/ppg$(exeext)): Ditto.\n\t(m2/gm2-ppg-boot/main.o): Ditto.\n\t(m2/gm2-auto): Ditto.\n\t(c-family/m2pp.o): Ditto.\n\t(BUILD-BOOT-PG-H): Correct macro definition.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)%.h): New rule.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Output.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Output.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o): Ditto.\n\t(BUILD-BOOT-PGE-H): Correct macro definition.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Output.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.\n\t(mc-basetest): Ditto.\n\t(mc-devel-basetest): Ditto.\n\t* gm2-compiler/M2Options.def (SetM2Dump): Add BOOLEAN return.\n\t* gm2-compiler/M2Quads.def (BuildAlignment): Add tokno parameter.\n\t(BuildBitLength): Ditto.\n\t* gm2-compiler/P3Build.bnf (ByteAlignment): Move tokpos assignment\n\tto the start of the block.\n\t* gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.\n\t(SetOrDesignatorOrFunction): Ditto.\n\t* gm2-compiler/PHBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.\n\t(SetOrDesignatorOrFunction): Ditto.\n\t(ByteAlignment): Ditto.\n\t* gm2-libs/dtoa.def (dtoa): Change mode to INTEGER.\n\t* gm2-libs/ldtoa.def (ldtoa): Ditto.\n\t* mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_init): Correct parameter list.\n\t(_M2_SYSTEM_fini): Ditto.\n\t* mc-boot-ch/Gdtoa.cc (dtoa_calcsign): Return bool.\n\t(dtoa_dtoa): Return void * and use bool in the fifth parameter.\n\t(_M2_dtoa_init): Correct parameter list.\n\t(_M2_dtoa_fini): Ditto.\n\t* mc-boot-ch/Gerrno.cc (_M2_errno_init): Ditto.\n\t(_M2_errno_fini): Ditto.\n\t* mc-boot-ch/Gldtoa.cc (dtoa_calcsign): Return bool.\n\t(ldtoa_ldtoa): Return void * and use bool in the fifth parameter.\n\t(_M2_ldtoa_init): Correct parameter list.\n\t(_M2_ldtoa_fini): Ditto.\n\t* mc-boot-ch/Glibc.c (tracedb_zresult): New function.\n\t(libc_read): Return size_t and use size_t in parameter three.\n\t(libc_write): Return size_t and use size_t in parameter three.\n\t(libc_printf): Add const to the format specifier.\n\tChange declaration of c to use const.\n\t(libc_snprintf): Add const to the format specifier.\n\tChange declaration of c to use const.\n\t(libc_malloc): Use size_t.\n\t(libc_memcpy): Ditto.\n\t* mc-boot/GASCII.cc: Regenerate.\n\t* mc-boot/GArgs.cc: Ditto.\n\t* mc-boot/GAssertion.cc: Ditto.\n\t* mc-boot/GBreak.cc: Ditto.\n\t* mc-boot/GCmdArgs.cc: Ditto.\n\t* mc-boot/GDebug.cc: Ditto.\n\t* mc-boot/GDynamicStrings.cc: Ditto.\n\t* mc-boot/GEnvironment.cc: Ditto.\n\t* mc-boot/GFIO.cc: Ditto.\n\t* mc-boot/GFormatStrings.cc: Ditto.\n\t* mc-boot/GFpuIO.cc: Ditto.\n\t* mc-boot/GIO.cc: Ditto.\n\t* mc-boot/GIndexing.cc: Ditto.\n\t* mc-boot/GM2Dependent.cc: Ditto.\n\t* mc-boot/GM2EXCEPTION.cc: Ditto.\n\t* mc-boot/GM2RTS.cc: Ditto.\n\t* mc-boot/GMemUtils.cc: Ditto.\n\t* mc-boot/GNumberIO.cc: Ditto.\n\t* mc-boot/GPushBackInput.cc: Ditto.\n\t* mc-boot/GRTExceptions.cc: Ditto.\n\t* mc-boot/GRTint.cc: Ditto.\n\t* mc-boot/GSArgs.cc: Ditto.\n\t* mc-boot/GSFIO.cc: Ditto.\n\t* mc-boot/GStdIO.cc: Ditto.\n\t* mc-boot/GStorage.cc: Ditto.\n\t* mc-boot/GStrCase.cc: Ditto.\n\t* mc-boot/GStrIO.cc: Ditto.\n\t* mc-boot/GStrLib.cc: Ditto.\n\t* mc-boot/GStringConvert.cc: Ditto.\n\t* mc-boot/GSysStorage.cc: Ditto.\n\t* mc-boot/GTimeString.cc: Ditto.\n\t* mc-boot/Galists.cc: Ditto.\n\t* mc-boot/Gdecl.cc: Ditto.\n\t* mc-boot/Gkeyc.cc: Ditto.\n\t* mc-boot/Glists.cc: Ditto.\n\t* mc-boot/GmcComment.cc: Ditto.\n\t* mc-boot/GmcComp.cc: Ditto.\n\t* mc-boot/GmcDebug.cc: Ditto.\n\t* mc-boot/GmcError.cc: Ditto.\n\t* mc-boot/GmcFileName.cc: Ditto.\n\t* mc-boot/GmcLexBuf.cc: Ditto.\n\t* mc-boot/GmcMetaError.cc: Ditto.\n\t* mc-boot/GmcOptions.cc: Ditto.\n\t* mc-boot/GmcPreprocess.cc: Ditto.\n\t* mc-boot/GmcPretty.cc: Ditto.\n\t* mc-boot/GmcPrintf.cc: Ditto.\n\t* mc-boot/GmcQuiet.cc: Ditto.\n\t* mc-boot/GmcReserved.cc: Ditto.\n\t* mc-boot/GmcSearch.cc: Ditto.\n\t* mc-boot/GmcStack.cc: Ditto.\n\t* mc-boot/GmcStream.cc: Ditto.\n\t* mc-boot/Gmcp1.cc: Ditto.\n\t* mc-boot/Gmcp2.cc: Ditto.\n\t* mc-boot/Gmcp3.cc: Ditto.\n\t* mc-boot/Gmcp4.cc: Ditto.\n\t* mc-boot/Gmcp5.cc: Ditto.\n\t* mc-boot/GnameKey.cc: Ditto.\n\t* mc-boot/GsymbolKey.cc: Ditto.\n\t* mc-boot/Gvarargs.cc: Ditto.\n\t* mc-boot/Gwlists.cc: Ditto.\n\t* mc-boot/Gdecl.h: Ditto.\n\t* mc-boot/Gldtoa.h: Ditto.\n\t* mc-boot/Glibc.h: Ditto.\n\t* mc/decl.def (putTypeOpaque): New procedure.\n\t(isTypeOpaque): New procedure function.\n\t* mc/decl.mod (debugOpaque): New constant.\n\t(nodeT): New enumeration field opaquecast.\n\t(node): New record field opaquecastF.\n\t(opaqueCastState): New record.\n\t(opaquecastT): New record.\n\t(typeT): New field isOpaque.\n\t(varT): New field opaqueState.\n\t(arrayT): Ditto.\n\t(varparamT): Ditto.\n\t(paramT): Ditto.\n\t(pointerT): Ditto.\n\t(recordfieldT): Ditto.\n\t(componentrefT): Ditto.\n\t(pointerrefT): Ditto.\n\t(arrayrefT): Ditto.\n\t(procedureT): Ditto.\n\t(proctypeT): Ditto.\n\t(makeType): Initialize field isOpaque.\n\t(makeTypeImp): Initialize field isOpaque.\n\t(putVar): Call initNodeOpaqueCastState.\n\t(putReturnType): Ditto.\n\t(makeProcType): Ditto.\n\t(putProcTypeReturn): Ditto.\n\t(makeVarParameter): Ditto.\n\t(makeNonVarParameter): Ditto.\n\t(makeFuncCall): Ditto.\n\t(putTypeOpaque): New procedure.\n\t(isTypeOpaque): New procedure function.\n\t(doMakeComponentRef): Call initNodeOpaqueCastState.\n\t(makePointerRef): Call initNodeOpaqueCastState.\n\t(doGetFuncType): Call initNodeOpaqueCastState.\n\t(doBinary): Add FALSE parameter to doExprCup.\n\t(doDeRefC): Rewrite.\n\t(doComponentRefC): Call flushOpaque.\n\t(doPointerRefC): Call flushOpaque.\n\t(doArrayRefC): Add const_cast for unbounded array.\n\t(doExprCup): Rewrite.\n\t(doTypeAliasC): Remove.\n\t(isDeclType): New procedure function.\n\t(doEnumerationC): New procedure function.\n\t(doParamTypeEmit): Ditto.\n\t(doParamTypeNameModifier): Ditto.\n\t(initOpaqueCastState): Ditto.\n\t(initNodeOpaqueCastState): Ditto.\n\t(setOpaqueCastState): Ditto.\n\t(setNodeOpaqueVoidStar): Ditto.\n\t(nodeUsesOpaque): Ditto.\n\t(getNodeOpaqueVoidStar): Ditto.\n\t(getOpaqueFlushNecessary): Ditto.\n\t(makeOpaqueCast): Ditto.\n\t(flushOpaque): Ditto.\n\t(castOpaque): Ditto.\n\t(isTypeOpaqueDefImp): Ditto.\n\t(isParamVoidStar): Ditto.\n\t(isRefVoidStar): Ditto.\n\t(isReturnVoidStar): Ditto.\n\t(isVarVoidStar): Ditto.\n\t(initNodeOpaqueState): Ditto.\n\t(assignNodeOpaqueCastState): Ditto.\n\t(assignNodeOpaqueCastFalse): Ditto.\n\t(dumpOpaqueState): Ditto.\n\t(doProcTypeC): Rewrite.\n\t(isDeclInImp): New procedure function.\n\t(doTypeNameModifier): Ditto.\n\t(doTypeC): Emit typedef if enum is declared in this module.\n\t(doCompletePartialProcType): Rewrite.\n\t(outputCompletePartialProcType): New procedure.\n\t(doOpaqueModifier): Ditto.\n\t(doVarC): Ditto.\n\t(doProcedureHeadingC): Add opaque modifier to return type if\n\tnecessary.\n\t(doReturnC): Cast opaque type for return if necessary.\n\t(forceCastOpaque): New procedure.\n\t(forceReintCastOpaque): New procedure.\n\t(doUnConstCastUnbounded): New procedure.\n\t(doAssignmentC): Cast opaque for both des and expr if necessary.\n\t(doAdrExprC): Use static_cast for void * casting.\n\t(doFuncVarParam): New procedure.\n\t(doFuncParamC): Rewrite.\n\t(doAdrArgC): Rewrite.\n\t(getFunction): New procedure function.\n\t(stop): Rename to ...\n\t(localstop): ... this.\n\t(dupFunccall): Call assignNodeOpaqueCastState.\n\t(dbg): Rewrite.\n\t(addDone): Rewrite.\n\t(addDoneDef): Do not add opaque types to the doneQ when declared in\n\tthe definition module.\n\t* mc/mc.flex (openSource): Return bool.\n\t(_M2_mcflex_init): Correct parameter list.\n\t(_M2_mcflex_fini): Ditto.\n\t* mc/mcComment.h (stdbool.h): Include.\n\t(mcComment_initComment): Change unsigned int to bool.\n\t* mc/mcOptions.mod (handleOption): Disable --extended-opaque\n\tand issue warning.\n\t* mc/mcp1.bnf (DefTypeDeclaration): Call putTypeOpaque.\n\ngcc/testsuite/ChangeLog:\n\n\tPR modula2/114529\n\t* gm2/base-lang/pass/SYSTEM.def: New test.\n\t* gm2/base-lang/pass/base-lang-test.sh: New test.\n\t* gm2/base-lang/pass/globalproctype.def: New test.\n\t* gm2/base-lang/pass/globalproctype.mod: New test.\n\t* gm2/base-lang/pass/globalvar.def: New test.\n\t* gm2/base-lang/pass/globalvar.mod: New test.\n\t* gm2/base-lang/pass/globalvarassign.def: New test.\n\t* gm2/base-lang/pass/globalvarassign.mod: New test.\n\t* gm2/base-lang/pass/localproctype.def: New test.\n\t* gm2/base-lang/pass/localproctype.mod: New test.\n\t* gm2/base-lang/pass/localvar.def: New test.\n\t* gm2/base-lang/pass/localvar.mod: New test.\n\t* gm2/base-lang/pass/localvarassign.def: New test.\n\t* gm2/base-lang/pass/localvarassign.mod: New test.\n\t* gm2/base-lang/pass/opaquefield.def: New test.\n\t* gm2/base-lang/pass/opaquefield.mod: New test.\n\t* gm2/base-lang/pass/opaquenew.def: New test.\n\t* gm2/base-lang/pass/opaquenew.mod: New test.\n\t* gm2/base-lang/pass/opaqueparam.def: New test.\n\t* gm2/base-lang/pass/opaqueparam.mod: New test.\n\t* gm2/base-lang/pass/opaquestr.def: New test.\n\t* gm2/base-lang/pass/opaqueuse.def: New test.\n\t* gm2/base-lang/pass/opaqueuse.mod: New test.\n\t* gm2/base-lang/pass/opaqueusestr.def: New test.\n\t* gm2/base-lang/pass/opaqueusestr.mod: New test.\n\t* gm2/base-lang/pass/opaquevariant.def: New test.\n\t* gm2/base-lang/pass/opaquevariant.mod: New test.\n\t* gm2/base-lang/pass/opaquevarparam.def: New test.\n\t* gm2/base-lang/pass/opaquevarparam.mod: New test.\n\t* gm2/base-lang/pass/simplelist.def: New test.\n\t* gm2/base-lang/pass/simplelist.mod: New test.\n\t* gm2/base-lang/pass/simplelistiter.def: New test.\n\t* gm2/base-lang/pass/simplelistiter.mod: New test.\n\t* gm2/base-lang/pass/simpleopaque.def: New test.\n\t* gm2/base-lang/pass/simpleopaque.mod: New test.\n\t* gm2/base-lang/pass/straddress.def: New test.\n\t* gm2/base-lang/pass/straddress.mod: New test.\n\t* gm2/base-lang/pass/straddressexport.def: New test.\n\t* gm2/base-lang/pass/straddressexport.mod: New test.\n\t* gm2/base-lang/pass/unboundedarray.def: New test.\n\t* gm2/base-lang/pass/unboundedarray.mod: New test.\n\nSigned-off-by: Gaius Mulley ","shortMessageHtmlLink":"PR modula2/114529 Avoid ODR violations in bootstrap translated sources"}},{"before":"a797398cfbc75899fdb7d97436c0c89c02b133c0","after":"a0004feb87efbe41fb1e9cd77f1c9af06e98ccb5","ref":"refs/heads/master","pushedAt":"2024-06-11T09:13:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"PR modula2/114529 Avoid ODR violations in bootstrap translated sources\n\nThis patch changes the bootstrap tool mc to avoid redefining any data\ntypes and therefore preventing ODR violations. All exported opaque type\nusages are implemented as void *. Local opaque type usages (static\nfunctions containing opaque type parameters) use the full declaration.\nmc casts usages between void * and full opaque type as necessary.\nThe --extended-opaque option in mc has been disabled, as this generated\nODR violations. The extended-opaque option inlined all declarations in\nthe translated implementation module. As this is no longer used there\nis now a .h file for each .def file and a .cc file for every .mod file.\nThis results in more Makefile rules for the ppg tool in Make-maintainer.in.\n\ngcc/m2/ChangeLog:\n\n\tPR modula2/114529\n\t* Make-lang.in (MC_EXTENDED_OPAQUE): Assign to nothing.\n\t* Make-maintainer.in (mc-basetest): New rule.\n\t(mc-devel-basetest): New rule.\n\t(mc-clean): Remove mc.\n\t(m2/mc-boot-gen/$(SRC_PREFIX)decl.cc): Replace --extended-opaque\n\twith $(EXTENDED_OPAQUE).\n\t(PG-SRC): Move define before generic rules.\n\t(PGE-DEF): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)%.h): New rule.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o): Ditto.\n\t(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.\n\t(m2/ppg$(exeext)): Ditto.\n\t(m2/gm2-ppg-boot/main.o): Ditto.\n\t(m2/gm2-auto): Ditto.\n\t(c-family/m2pp.o): Ditto.\n\t(BUILD-BOOT-PG-H): Correct macro definition.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)%.h): New rule.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Output.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)Output.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o): Ditto.\n\t(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o): Ditto.\n\t(BUILD-BOOT-PGE-H): Correct macro definition.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Output.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o): Ditto.\n\t(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.\n\t(mc-basetest): Ditto.\n\t(mc-devel-basetest): Ditto.\n\t* gm2-compiler/M2Options.def (SetM2Dump): Add BOOLEAN return.\n\t* gm2-compiler/M2Quads.def (BuildAlignment): Add tokno parameter.\n\t(BuildBitLength): Ditto.\n\t* gm2-compiler/P3Build.bnf (ByteAlignment): Move tokpos assignment\n\tto the start of the block.\n\t* gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.\n\t(SetOrDesignatorOrFunction): Ditto.\n\t* gm2-compiler/PHBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.\n\t(SetOrDesignatorOrFunction): Ditto.\n\t(ByteAlignment): Ditto.\n\t* gm2-libs/dtoa.def (dtoa): Change mode to INTEGER.\n\t* gm2-libs/ldtoa.def (ldtoa): Ditto.\n\t* mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_init): Correct parameter list.\n\t(_M2_SYSTEM_fini): Ditto.\n\t* mc-boot-ch/Gdtoa.cc (dtoa_calcsign): Return bool.\n\t(dtoa_dtoa): Return void * and use bool in the fifth parameter.\n\t(_M2_dtoa_init): Correct parameter list.\n\t(_M2_dtoa_fini): Ditto.\n\t* mc-boot-ch/Gerrno.cc (_M2_errno_init): Ditto.\n\t(_M2_errno_fini): Ditto.\n\t* mc-boot-ch/Gldtoa.cc (dtoa_calcsign): Return bool.\n\t(ldtoa_ldtoa): Return void * and use bool in the fifth parameter.\n\t(_M2_ldtoa_init): Correct parameter list.\n\t(_M2_ldtoa_fini): Ditto.\n\t* mc-boot-ch/Glibc.c (tracedb_zresult): New function.\n\t(libc_read): Return size_t and use size_t in parameter three.\n\t(libc_write): Return size_t and use size_t in parameter three.\n\t(libc_printf): Add const to the format specifier.\n\tChange declaration of c to use const.\n\t(libc_snprintf): Add const to the format specifier.\n\tChange declaration of c to use const.\n\t(libc_malloc): Use size_t.\n\t(libc_memcpy): Ditto.\n\t* mc-boot/GASCII.cc: Regenerate.\n\t* mc-boot/GArgs.cc: Ditto.\n\t* mc-boot/GAssertion.cc: Ditto.\n\t* mc-boot/GBreak.cc: Ditto.\n\t* mc-boot/GCmdArgs.cc: Ditto.\n\t* mc-boot/GDebug.cc: Ditto.\n\t* mc-boot/GDynamicStrings.cc: Ditto.\n\t* mc-boot/GEnvironment.cc: Ditto.\n\t* mc-boot/GFIO.cc: Ditto.\n\t* mc-boot/GFormatStrings.cc: Ditto.\n\t* mc-boot/GFpuIO.cc: Ditto.\n\t* mc-boot/GIO.cc: Ditto.\n\t* mc-boot/GIndexing.cc: Ditto.\n\t* mc-boot/GM2Dependent.cc: Ditto.\n\t* mc-boot/GM2EXCEPTION.cc: Ditto.\n\t* mc-boot/GM2RTS.cc: Ditto.\n\t* mc-boot/GMemUtils.cc: Ditto.\n\t* mc-boot/GNumberIO.cc: Ditto.\n\t* mc-boot/GPushBackInput.cc: Ditto.\n\t* mc-boot/GRTExceptions.cc: Ditto.\n\t* mc-boot/GRTint.cc: Ditto.\n\t* mc-boot/GSArgs.cc: Ditto.\n\t* mc-boot/GSFIO.cc: Ditto.\n\t* mc-boot/GStdIO.cc: Ditto.\n\t* mc-boot/GStorage.cc: Ditto.\n\t* mc-boot/GStrCase.cc: Ditto.\n\t* mc-boot/GStrIO.cc: Ditto.\n\t* mc-boot/GStrLib.cc: Ditto.\n\t* mc-boot/GStringConvert.cc: Ditto.\n\t* mc-boot/GSysStorage.cc: Ditto.\n\t* mc-boot/GTimeString.cc: Ditto.\n\t* mc-boot/Galists.cc: Ditto.\n\t* mc-boot/Gdecl.cc: Ditto.\n\t* mc-boot/Gkeyc.cc: Ditto.\n\t* mc-boot/Glists.cc: Ditto.\n\t* mc-boot/GmcComment.cc: Ditto.\n\t* mc-boot/GmcComp.cc: Ditto.\n\t* mc-boot/GmcDebug.cc: Ditto.\n\t* mc-boot/GmcError.cc: Ditto.\n\t* mc-boot/GmcFileName.cc: Ditto.\n\t* mc-boot/GmcLexBuf.cc: Ditto.\n\t* mc-boot/GmcMetaError.cc: Ditto.\n\t* mc-boot/GmcOptions.cc: Ditto.\n\t* mc-boot/GmcPreprocess.cc: Ditto.\n\t* mc-boot/GmcPretty.cc: Ditto.\n\t* mc-boot/GmcPrintf.cc: Ditto.\n\t* mc-boot/GmcQuiet.cc: Ditto.\n\t* mc-boot/GmcReserved.cc: Ditto.\n\t* mc-boot/GmcSearch.cc: Ditto.\n\t* mc-boot/GmcStack.cc: Ditto.\n\t* mc-boot/GmcStream.cc: Ditto.\n\t* mc-boot/Gmcp1.cc: Ditto.\n\t* mc-boot/Gmcp2.cc: Ditto.\n\t* mc-boot/Gmcp3.cc: Ditto.\n\t* mc-boot/Gmcp4.cc: Ditto.\n\t* mc-boot/Gmcp5.cc: Ditto.\n\t* mc-boot/GnameKey.cc: Ditto.\n\t* mc-boot/GsymbolKey.cc: Ditto.\n\t* mc-boot/Gvarargs.cc: Ditto.\n\t* mc-boot/Gwlists.cc: Ditto.\n\t* mc-boot/Gdecl.h: Ditto.\n\t* mc-boot/Gldtoa.h: Ditto.\n\t* mc-boot/Glibc.h: Ditto.\n\t* mc/decl.def (putTypeOpaque): New procedure.\n\t(isTypeOpaque): New procedure function.\n\t* mc/decl.mod (debugOpaque): New constant.\n\t(nodeT): New enumeration field opaquecast.\n\t(node): New record field opaquecastF.\n\t(opaqueCastState): New record.\n\t(opaquecastT): New record.\n\t(typeT): New field isOpaque.\n\t(varT): New field opaqueState.\n\t(arrayT): Ditto.\n\t(varparamT): Ditto.\n\t(paramT): Ditto.\n\t(pointerT): Ditto.\n\t(recordfieldT): Ditto.\n\t(componentrefT): Ditto.\n\t(pointerrefT): Ditto.\n\t(arrayrefT): Ditto.\n\t(procedureT): Ditto.\n\t(proctypeT): Ditto.\n\t(makeType): Initialize field isOpaque.\n\t(makeTypeImp): Initialize field isOpaque.\n\t(putVar): Call initNodeOpaqueCastState.\n\t(putReturnType): Ditto.\n\t(makeProcType): Ditto.\n\t(putProcTypeReturn): Ditto.\n\t(makeVarParameter): Ditto.\n\t(makeNonVarParameter): Ditto.\n\t(makeFuncCall): Ditto.\n\t(putTypeOpaque): New procedure.\n\t(isTypeOpaque): New procedure function.\n\t(doMakeComponentRef): Call initNodeOpaqueCastState.\n\t(makePointerRef): Call initNodeOpaqueCastState.\n\t(doGetFuncType): Call initNodeOpaqueCastState.\n\t(doBinary): Add FALSE parameter to doExprCup.\n\t(doDeRefC): Rewrite.\n\t(doComponentRefC): Call flushOpaque.\n\t(doPointerRefC): Call flushOpaque.\n\t(doArrayRefC): Add const_cast for unbounded array.\n\t(doExprCup): Rewrite.\n\t(doTypeAliasC): Remove.\n\t(isDeclType): New procedure function.\n\t(doEnumerationC): New procedure function.\n\t(doParamTypeEmit): Ditto.\n\t(doParamTypeNameModifier): Ditto.\n\t(initOpaqueCastState): Ditto.\n\t(initNodeOpaqueCastState): Ditto.\n\t(setOpaqueCastState): Ditto.\n\t(setNodeOpaqueVoidStar): Ditto.\n\t(nodeUsesOpaque): Ditto.\n\t(getNodeOpaqueVoidStar): Ditto.\n\t(getOpaqueFlushNecessary): Ditto.\n\t(makeOpaqueCast): Ditto.\n\t(flushOpaque): Ditto.\n\t(castOpaque): Ditto.\n\t(isTypeOpaqueDefImp): Ditto.\n\t(isParamVoidStar): Ditto.\n\t(isRefVoidStar): Ditto.\n\t(isReturnVoidStar): Ditto.\n\t(isVarVoidStar): Ditto.\n\t(initNodeOpaqueState): Ditto.\n\t(assignNodeOpaqueCastState): Ditto.\n\t(assignNodeOpaqueCastFalse): Ditto.\n\t(dumpOpaqueState): Ditto.\n\t(doProcTypeC): Rewrite.\n\t(isDeclInImp): New procedure function.\n\t(doTypeNameModifier): Ditto.\n\t(doTypeC): Emit typedef if enum is declared in this module.\n\t(doCompletePartialProcType): Rewrite.\n\t(outputCompletePartialProcType): New procedure.\n\t(doOpaqueModifier): Ditto.\n\t(doVarC): Ditto.\n\t(doProcedureHeadingC): Add opaque modifier to return type if\n\tnecessary.\n\t(doReturnC): Cast opaque type for return if necessary.\n\t(forceCastOpaque): New procedure.\n\t(forceReintCastOpaque): New procedure.\n\t(doUnConstCastUnbounded): New procedure.\n\t(doAssignmentC): Cast opaque for both des and expr if necessary.\n\t(doAdrExprC): Use static_cast for void * casting.\n\t(doFuncVarParam): New procedure.\n\t(doFuncParamC): Rewrite.\n\t(doAdrArgC): Rewrite.\n\t(getFunction): New procedure function.\n\t(stop): Rename to ...\n\t(localstop): ... this.\n\t(dupFunccall): Call assignNodeOpaqueCastState.\n\t(dbg): Rewrite.\n\t(addDone): Rewrite.\n\t(addDoneDef): Do not add opaque types to the doneQ when declared in\n\tthe definition module.\n\t* mc/mc.flex (openSource): Return bool.\n\t(_M2_mcflex_init): Correct parameter list.\n\t(_M2_mcflex_fini): Ditto.\n\t* mc/mcComment.h (stdbool.h): Include.\n\t(mcComment_initComment): Change unsigned int to bool.\n\t* mc/mcOptions.mod (handleOption): Disable --extended-opaque\n\tand issue warning.\n\t* mc/mcp1.bnf (DefTypeDeclaration): Call putTypeOpaque.\n\ngcc/testsuite/ChangeLog:\n\n\tPR modula2/114529\n\t* gm2/base-lang/pass/SYSTEM.def: New test.\n\t* gm2/base-lang/pass/base-lang-test.sh: New test.\n\t* gm2/base-lang/pass/globalproctype.def: New test.\n\t* gm2/base-lang/pass/globalproctype.mod: New test.\n\t* gm2/base-lang/pass/globalvar.def: New test.\n\t* gm2/base-lang/pass/globalvar.mod: New test.\n\t* gm2/base-lang/pass/globalvarassign.def: New test.\n\t* gm2/base-lang/pass/globalvarassign.mod: New test.\n\t* gm2/base-lang/pass/localproctype.def: New test.\n\t* gm2/base-lang/pass/localproctype.mod: New test.\n\t* gm2/base-lang/pass/localvar.def: New test.\n\t* gm2/base-lang/pass/localvar.mod: New test.\n\t* gm2/base-lang/pass/localvarassign.def: New test.\n\t* gm2/base-lang/pass/localvarassign.mod: New test.\n\t* gm2/base-lang/pass/opaquefield.def: New test.\n\t* gm2/base-lang/pass/opaquefield.mod: New test.\n\t* gm2/base-lang/pass/opaquenew.def: New test.\n\t* gm2/base-lang/pass/opaquenew.mod: New test.\n\t* gm2/base-lang/pass/opaqueparam.def: New test.\n\t* gm2/base-lang/pass/opaqueparam.mod: New test.\n\t* gm2/base-lang/pass/opaquestr.def: New test.\n\t* gm2/base-lang/pass/opaqueuse.def: New test.\n\t* gm2/base-lang/pass/opaqueuse.mod: New test.\n\t* gm2/base-lang/pass/opaqueusestr.def: New test.\n\t* gm2/base-lang/pass/opaqueusestr.mod: New test.\n\t* gm2/base-lang/pass/opaquevariant.def: New test.\n\t* gm2/base-lang/pass/opaquevariant.mod: New test.\n\t* gm2/base-lang/pass/opaquevarparam.def: New test.\n\t* gm2/base-lang/pass/opaquevarparam.mod: New test.\n\t* gm2/base-lang/pass/simplelist.def: New test.\n\t* gm2/base-lang/pass/simplelist.mod: New test.\n\t* gm2/base-lang/pass/simplelistiter.def: New test.\n\t* gm2/base-lang/pass/simplelistiter.mod: New test.\n\t* gm2/base-lang/pass/simpleopaque.def: New test.\n\t* gm2/base-lang/pass/simpleopaque.mod: New test.\n\t* gm2/base-lang/pass/straddress.def: New test.\n\t* gm2/base-lang/pass/straddress.mod: New test.\n\t* gm2/base-lang/pass/straddressexport.def: New test.\n\t* gm2/base-lang/pass/straddressexport.mod: New test.\n\t* gm2/base-lang/pass/unboundedarray.def: New test.\n\t* gm2/base-lang/pass/unboundedarray.mod: New test.\n\nSigned-off-by: Gaius Mulley ","shortMessageHtmlLink":"PR modula2/114529 Avoid ODR violations in bootstrap translated sources"}},{"before":"66d6b1861ec57ba29540a5fa7854df3978ba5409","after":"a797398cfbc75899fdb7d97436c0c89c02b133c0","ref":"refs/heads/trunk","pushedAt":"2024-06-11T08:48:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"i386: PR target/115397: AVX512 ternlog vs. -m32 -fPIC constant pool.\n\nThis patch fixes PR target/115397, a recent regression caused by my\nternlog patch that results in an ICE (building numpy) with -m32 -fPIC.\nThe problem is that ix86_broadcast_from_constant, which calls\nget_pool_constant, doesn't handle the UNSPEC_GOTOFF that's created by\ncalling validize_mem when using -fPIC on i686. The logic here is a bit\nconvoluted (and my future patches will clean some of this up), but the\nsimplest fix is to call ix86_broadcast_from_constant between the calls\nto force_const_mem and the call to validize_mem.\n\nPerhaps a better solution might be to call targetm.delegitimize_address\nfrom the middle-end's get_pool_constant, but ultimately the best approach\nwould be to not place things in the constant pool if we don't need to.\nMy plans to move (broadcast) constant handling from expand to split1\nshould simplify this.\n\n2024-06-11 Roger Sayle \n\ngcc/ChangeLog\n\tPR target/115397\n\t* config/i386/i386-expand.cc (ix86_expand_ternlog): Move call to\n\tix86_broadcast_from_constant before call to validize_mem, but after\n\tcall to force_const_mem.\n\ngcc/testsuite/ChangeLog\n\tPR target/115397\n\t* gcc.target/i386/pr115397.c: New test case.","shortMessageHtmlLink":"i386: PR target/115397: AVX512 ternlog vs. -m32 -fPIC constant pool."}},{"before":"66d6b1861ec57ba29540a5fa7854df3978ba5409","after":"a797398cfbc75899fdb7d97436c0c89c02b133c0","ref":"refs/heads/master","pushedAt":"2024-06-11T08:48:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"i386: PR target/115397: AVX512 ternlog vs. -m32 -fPIC constant pool.\n\nThis patch fixes PR target/115397, a recent regression caused by my\nternlog patch that results in an ICE (building numpy) with -m32 -fPIC.\nThe problem is that ix86_broadcast_from_constant, which calls\nget_pool_constant, doesn't handle the UNSPEC_GOTOFF that's created by\ncalling validize_mem when using -fPIC on i686. The logic here is a bit\nconvoluted (and my future patches will clean some of this up), but the\nsimplest fix is to call ix86_broadcast_from_constant between the calls\nto force_const_mem and the call to validize_mem.\n\nPerhaps a better solution might be to call targetm.delegitimize_address\nfrom the middle-end's get_pool_constant, but ultimately the best approach\nwould be to not place things in the constant pool if we don't need to.\nMy plans to move (broadcast) constant handling from expand to split1\nshould simplify this.\n\n2024-06-11 Roger Sayle \n\ngcc/ChangeLog\n\tPR target/115397\n\t* config/i386/i386-expand.cc (ix86_expand_ternlog): Move call to\n\tix86_broadcast_from_constant before call to validize_mem, but after\n\tcall to force_const_mem.\n\ngcc/testsuite/ChangeLog\n\tPR target/115397\n\t* gcc.target/i386/pr115397.c: New test case.","shortMessageHtmlLink":"i386: PR target/115397: AVX512 ternlog vs. -m32 -fPIC constant pool."}},{"before":"cc835f41ec6ffd6a2a2128d3cf5c1f5c0e28e36e","after":"d73137ab352d654f50b703925bd92e021dce1cab","ref":"refs/heads/releases/gcc-12","pushedAt":"2024-06-11T07:31:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"tree-optimization/111070 - fix ICE with recent ifcombine fix\n\nWe now got test coverage for non-SSA name bits so the following amends\nthe SSA_NAME_OCCURS_IN_ABNORMAL_PHI checks.\n\n\tPR tree-optimization/111070\n\t* tree-ssa-ifcombine.cc (ifcombine_ifandif): Check we have\n\tan SSA name before checking SSA_NAME_OCCURS_IN_ABNORMAL_PHI.\n\n\t* gcc.dg/pr111070.c: New testcase.\n\n(cherry picked from commit 966b0a96523fb7adbf498ac71df5e033c70dc546)","shortMessageHtmlLink":"tree-optimization/111070 - fix ICE with recent ifcombine fix"}},{"before":"f2ef3ac78c7832e1483085be5a5fe23b1e402e70","after":"7813d94393f60ac641265cb3fc3a446f9f3aea7e","ref":"refs/heads/releases/gcc-13","pushedAt":"2024-06-11T06:40:39.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"c: Fix up pointer types to may_alias structures [PR114493]\n\nThe following testcase ICEs in ipa-free-lang, because the\nfld_incomplete_type_of\n gcc_assert (TYPE_CANONICAL (t2) != t2\n && TYPE_CANONICAL (t2) == TYPE_CANONICAL (TREE_TYPE (t)));\nassertion doesn't hold.\nThis is because t is a struct S * type which was created while struct S\nwas still incomplete and without the may_alias attribute (and TYPE_CANONICAL\nof a pointer type is a type created with can_alias_all = false argument),\nwhile later on on the struct definition may_alias attribute was used.\nfld_incomplete_type_of then creates an incomplete distinct copy of the\nstructure (but with the original attributes) but pointers created for it\nare because of the \"may_alias\" attribute TYPE_REF_CAN_ALIAS_ALL, including\ntheir TYPE_CANONICAL, because while that is created with !can_alias_all\nargument, we later set it because of the \"may_alias\" attribute on the\nto_type.\n\nThis doesn't ICE with C++ since PR70512 fix because the C++ FE sets\nTYPE_REF_CAN_ALIAS_ALL on all pointer types to the class type (and its\nvariants) when the may_alias is added.\n\nThe following patch does that in the C FE as well.\n\n2024-06-06 Jakub Jelinek \n\n\tPR c/114493\n\t* c-decl.cc (c_fixup_may_alias): New function.\n\t(finish_struct): Call it if \"may_alias\" attribute is\n\tspecified.\n\n\t* gcc.dg/pr114493-1.c: New test.\n\t* gcc.dg/pr114493-2.c: New test.\n\n(cherry picked from commit d5a3c6d43acb8b2211d9fb59d59482d74c010f01)","shortMessageHtmlLink":"c: Fix up pointer types to may_alias structures [PR114493]"}},{"before":"95161c6abfbd7ba9fab0b538ccc885f5980efbee","after":"66d6b1861ec57ba29540a5fa7854df3978ba5409","ref":"refs/heads/trunk","pushedAt":"2024-06-11T06:15:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"fixincludes: bypass the math_exception fix on __cplusplus\n\nfixincludes/ChangeLog:\n\n\t* fixincl.x: Regenerate.\n\t* inclhack.def (math_exception): Bypass on __cplusplus.\n\t* tests/base/math.h: Regenerate.","shortMessageHtmlLink":"fixincludes: bypass the math_exception fix on __cplusplus"}},{"before":"95161c6abfbd7ba9fab0b538ccc885f5980efbee","after":"66d6b1861ec57ba29540a5fa7854df3978ba5409","ref":"refs/heads/master","pushedAt":"2024-06-11T06:15:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hubot","name":"Hubot","path":"/hubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/480938?s=80&v=4"},"commit":{"message":"fixincludes: bypass the math_exception fix on __cplusplus\n\nfixincludes/ChangeLog:\n\n\t* fixincl.x: Regenerate.\n\t* inclhack.def (math_exception): Bypass on __cplusplus.\n\t* tests/base/math.h: Regenerate.","shortMessageHtmlLink":"fixincludes: bypass the math_exception fix on __cplusplus"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYpvaFwA","startCursor":null,"endCursor":null}},"title":"Activity · gcc-mirror/gcc"}