Module Name: src Committed By: mrg Date: Thu Jan 31 08:53:07 UTC 2019
Modified Files: src/external/gpl3/gcc/dist/gcc: varasm.c Log Message: revert these two changes which cause various parts of libstdc++ to fail to build with GCC7: revision 1.3 date: 2017-07-22 13:52:52 -0700; author: joerg; state: Exp; lines: +2 -1; commitid: gesFYL8PorhYCg0A; One more missing check for DECL_INITIAL being non-NULL. revision 1.2 date: 2017-07-17 12:53:10 -0700; author: joerg; state: Exp; lines: +2149 -1573; commitid: fxGaJg3EuIcnsCZz; branches: 1.2.2; A const declaration with explicit section attribute should create a read-only section, whether it is initialized or not. XXX: i may have merged them wrongly into gcc7, but AFAICT, they're expecting to use named BSS sections, so this seems wrong now anyway. joerg, please feel free to check :-) To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/external/gpl3/gcc/dist/gcc/varasm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/dist/gcc/varasm.c diff -u src/external/gpl3/gcc/dist/gcc/varasm.c:1.6 src/external/gpl3/gcc/dist/gcc/varasm.c:1.7 --- src/external/gpl3/gcc/dist/gcc/varasm.c:1.6 Sat Jan 19 12:10:04 2019 +++ src/external/gpl3/gcc/dist/gcc/varasm.c Thu Jan 31 08:53:07 2019 @@ -969,17 +969,11 @@ decode_reg_name (const char *name) } -/* - * Return true if DECL's initializer is suitable for a BSS section. - * If there is an explicit section name attribute, assume that it is not - * for a BSS section, independent of the name. - */ +/* Return true if DECL's initializer is suitable for a BSS section. */ bool bss_initializer_p (const_tree decl) { - if (DECL_SECTION_NAME (decl) != NULL) - return false; return (DECL_INITIAL (decl) == NULL /* In LTO we have no errors in program; error_mark_node is used to mark offlined constructors. */ @@ -6471,7 +6465,7 @@ categorize_decl_for_section (const_tree ret = SECCAT_BSS; else if (! TREE_READONLY (decl) || TREE_SIDE_EFFECTS (decl) - || (DECL_INITIAL(decl) != NULL && ! TREE_CONSTANT (DECL_INITIAL (decl)))) + || ! TREE_CONSTANT (DECL_INITIAL (decl))) { /* Here the reloc_rw_mask is not testing whether the section should be read-only or not, but whether the dynamic link will have to @@ -6491,8 +6485,7 @@ categorize_decl_for_section (const_tree location. -fmerge-all-constants allows even that (at the expense of not conforming). */ ret = SECCAT_RODATA; - else if (DECL_INITIAL (decl) != NULL - && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) + else if (TREE_CODE (DECL_INITIAL (decl)) == STRING_CST) ret = SECCAT_RODATA_MERGE_STR_INIT; else ret = SECCAT_RODATA_MERGE_CONST; @@ -6516,7 +6509,6 @@ categorize_decl_for_section (const_tree no concept of a read-only thread-local-data section. */ if (ret == SECCAT_BSS || (flag_zero_initialized_in_bss - && DECL_INITIAL(decl) != NULL && initializer_zerop (DECL_INITIAL (decl)))) ret = SECCAT_TBSS; else