aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-11-17re PR c++/4225 (documentation about CPLUS_INCLUDE_PATH vs. system headers ↵Sandra Loosemore2-0/+9
incomplete) 2018-11-17 Sandra Loosemore <sandra@codesourcery.com> PR c++/4225 gcc/ * doc/cpp.texi (System Headers): Add note about implicit extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. From-SVN: r266240
2018-11-17re PR c++/4025 (Document use/non-use of -fno-implicit-templates in bootflags)Sandra Loosemore2-0/+9
2018-11-17 Sandra Loosemore <sandra@codesourcery.com> PR c++/4025 gcc/ * doc/invoke.texi (C++ Dialect Options): Clarify usage of -fno-implicit-templates. From-SVN: r266239
2018-11-17libphobos: Add IEEE quadruple support for std.convIain Buclaw1-256/+122
Backport from upstream phobos 2.079 for AArch64. Reviewed-on: https://github.com/dlang/phobos/pull/5965 From-SVN: r266238
2018-11-17re PR tree-optimization/87546 (Gcc miscompiles at -O3 on valid code)Jakub Jelinek4-2/+48
PR tree-optimization/87546 * tree-vect-patterns.c (vect_look_through_possible_promotion): Add min_precision variable, initially set it to orig_precision, only does something if op_type's precision is <= min_precision and update min_precision whenever calling set_op. * gcc.dg/vect/O3-pr87546.c: New test. From-SVN: r266237
2018-11-17re PR rtl-optimization/88018 (ICE in insert_insn_on_edge at cfgrtl.c:1952 ↵Jakub Jelinek1-0/+6
since r255066) PR rtl-optimization/88018 * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge on the presence of fallthru edge, rather than if it is a USE or not. * g++.dg/tsan/pr88018.C: New test. From-SVN: r266236
2018-11-17re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl ↵Jan Hubicka2-6/+23
minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519) PR ipa/87957 * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. From-SVN: r266235
2018-11-17Fix wrong alignment returned by .alignof property.Iain Buclaw2-1/+6
The D language expects the value to be the minimum alignment required for the type, not the preferred alignment. gcc/d/ChangeLog: 2018-11-17 Iain Buclaw <ibuclaw@gdcproject.org> PR d/87824 * d-target.cc (Target::alignsize): Return min_align_of_type. From-SVN: r266234
2018-11-16invoke.texi (Option Summary): Fix whitespace and line breaks in @gccoptlist ↵Sandra Loosemore2-67/+75
environments. 2018-11-16 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/invoke.texi (Option Summary): Fix whitespace and line breaks in @gccoptlist environments. (Warning Options): Likewise. (Optimize Options): Likewise. (PowerPC SPE Options): Likewise. (RS/6000 and PowerPC Options): Likewise. From-SVN: r266233
2018-11-16mn10300.md (adddi3_degenerate): Remove bogus gcc_assert.Jeff Law2-1/+5
* config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus gcc_assert. From-SVN: r266232
2018-11-16re PR middle-end/23197 (Improve documentation on -fprofile-generate, ↵Sandra Loosemore2-25/+61
-fprofile-use) 2018-11-16 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/23197 gcc/ * doc/invoke.texi (Optimize Options): Update options enabled by fprofile-generate, -fprofile-use, and -fauto-profile. From-SVN: r266231
2018-11-17re PR middle-end/87854 (gcc.c-torture/compile/pr46534.c ICE for 16-bit size_t)Jozef Lawrynowicz4-10/+14
2018-11-17 Jozef Lawrynowicz <jozef.l@mittosystems.com> PR middle-end/87854 * g++.dg/parse/concat1.C: Add dg-error for targets with size_t < 32 bits. Update comment. * gcc.dg/concat2.c: Likewise. * gcc.c-torture/compile/pr46534.c: Likewise. From-SVN: r266230
2018-11-17Daily bump.GCC Administrator1-1/+1
From-SVN: r266229
2018-11-16re PR target/87927 (ICE: segmentation fault with patchable_function_entry ↵Jozef Lawrynowicz8-1/+67
attribute for msp430-elf -mlarge) 2018-11-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> PR target/87927 * target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP. Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs. * target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in the byte_op hook. * target.h: Add psi, pdi, pti to struct asm_int_op definition. * targhooks.c (default_print_patchable_function_entry): Assert asm_int_op does not return a NULL string. * varasm.c (integer_asm_op): Return the op for a partial int type when the requested size does not correspond to an integer type. * config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP. * doc/tm.texi: Regenerate. From-SVN: r266226
2018-11-17re PR c++/87269 (ICE in tsubst_copy, at cp/pt.c:15475 starting from r261802)Jakub Jelinek2-1/+11
PR c++/87269 * g++.dg/lookup/pr87269.C (std::size_t): New typedef. (operator"" _a) Change unsigned long type to std::size_t. From-SVN: r266225
2018-11-16re PR c++/52869 ([DR 1207] "this" not being allowed in noexcept clauses)Kamlesh Kumar4-0/+51
PR c++/52869 DR 1207 * parser.c (cp_parser_noexcept_specification_opt): Call inject_this_parameter. From-SVN: r266224
2018-11-16Implement P0479R5, [[likely]] and [[unlikely]].Jason Merrill18-14/+296
[[likely]] and [[unlikely]] are equivalent to the GNU hot/cold attributes, except that they can be applied to arbitrary statements as well as labels; this is most likely to be useful for marking if/else branches as likely or unlikely. Conveniently, PREDICT_EXPR fits the bill nicely as a representation. I also had to fix marking case labels as hot/cold, which didn't work before. Which then required me to force __attribute ((fallthrough)) to apply to the statement rather than the label. gcc/ * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes. gcc/c-family/ * c-lex.c (c_common_has_attribute): Handle likely/unlikely. * c-attribs.c (attr_cold_hot_exclusions): Make public. gcc/cp/ * tree.c (handle_likeliness_attribute): New. (std_attribute_table): Add likely/unlikely. * cp-gimplify.c (lookup_hotness_attribute, remove_hotness_attribute) (process_stmt_hotness_attribute, first_stmt): New. (genericize_if_stmt): Check for duplicate predictions. * parser.c (cp_parser_statement): Call process_stmt_hotness_attribute. (cp_parser_label_for_labeled_statement): Apply attributes to case. * decl.c (finish_case_label): Give label in template type void. * pt.c (tsubst_expr) [CASE_LABEL_EXPR]: Copy attributes. [PREDICT_EXPR]: Handle. From-SVN: r266223
2018-11-16libphobos: Add IEEE quadruple support to core.internal.convertIain Buclaw1-21/+114
Backport from upstream druntime 2.083 for AArch64. Reviewed-on: https://github.com/dlang/druntime/pull/2257 From-SVN: r266222
2018-11-16constraints.md (wF constraint): Remove power9 fusion documentation.Michael Meissner12-719/+83
[gcc] 2018-11-16 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/constraints.md (wF constraint): Remove power9 fusion documentation. Just document wF's use for power8 fusion. * config/rs6000/predicates.md (p9_fusion_reg_operand): Delete. (fusion_gpr_addis): Delete power9 fusion support. Change power8 fusion support to require the upper 12 bits to be all 0's or all 1's. (fusion_gpr_mem_load): Add comment. (fusion_addis_mem_combo_load): Remove power9 fusion support. (fusion_addis_mem_combo_store): Delete. (fusion_offsettable_mem_operand): Delete. * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set power8 fusion here. (ISA_3_0_MASKS_SERVER): Delete power9 fusion. (POWERPC_MASKS): Delete power9 fusion. * config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete. (fusion_p9_p): Delete. (expand_fusion_p9_load): Delete. (expand_fusion_p9_store): Delete. (emit_fusion_p9_load): Delete. (emit_fusion_p9_store): Delete. * config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9 fusion support. (rs6000_option_override_internal): Set power8 fusion based on whether we are tuning for power8. Delete power9 fusion support. (rs6000_opt_masks): Delete -mpower9-fusion switch. (emit_fusion_load): Rename emit_fusion_load_store to emit_fusion_load, and drop fusion store support. Update callers. (emit_fusion_load_store): Likewise. (emit_fusion_gpr_load): Likewise. (fusion_p9_p): Delete. (expand_fusion_p9_load): Delete. (expand_fusion_p9_store): Delete. (emit_fusion_p9_load): Delete. (emit_fusion_p9_store): Delete. * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete. (GPR_FUSION): Delete. (FPR_FUSION): Delete. (power9 fusion peephole2s): Delete. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete. (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete. (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete. (fusion_p9_<mode>_constant): Delete. * config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented power9 fusion switch. * doc/md.texi (PowerPC constraints): Update wF constraint documentation for power8 fusion only. [gcc/testsuite] 2018-11-16 Michael Meissner <meissner@linux.ibm.com> * gcc.target/powerpc/fusion3.c: Delete. * gcc.target/powerpc/fusion4.c: Delete. From-SVN: r266220
2018-11-16re PR rtl-optimization/87475 (ICE in patch_jump_insn, at cfgrtl.c:1275)Jakub Jelinek4-2/+26
PR rtl-optimization/87475 * cfgrtl.c (patch_jump_insn): Allow redirection failure for CROSSING_JUMP_P insns. (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. * g++.dg/opt/pr87475.C: New test. From-SVN: r266219
2018-11-16re PR target/88051 (internal compiler error: in add_clobbers, at ↵Uros Bizjak3-5/+16
config/i386/sync.md:1762) PR target/88051 * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. From-SVN: r266218
2018-11-16re PR middle-end/87854 (gcc.c-torture/compile/pr46534.c ICE for 16-bit size_t)Jakub Jelinek2-5/+24
PR middle-end/87854 * c-common.c (fix_string_type): Reject string literals larger than TYPE_MAX_VALUE (ssizetype) bytes. From-SVN: r266217
2018-11-16re PR middle-end/88032 (ICE in operand_subword_force, at emit-rtl.c:1793)Jakub Jelinek2-2/+12
PR middle-end/88032 * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it is VOIDmode, in which case use int_mode. Similarly for op1_mode. From-SVN: r266216
2018-11-16When running the testsuite on boards that can't report an error status ↵Matthew Malcomson3-0/+7
DejaGNU... When running the testsuite on boards that can't report an error status DejaGNU uses a special wrapper to print the exit code on stdout and parses stdout to find whether an execution failed or passed. In testcases that use "freopen (..., ..., stdout)" this special line is printed to the alternate location described in the freopen call and DejaGNU can't find the error code. This results in DejaGNU using a default return status of 2 and the test failing. This patch skips the two testcases that use freopen on stdout when testing a board that requires this wrapper. Testing done by running these two tests on arm-none-eabi cross build and observing that they are unsupported. gcc/testsuite/ChangeLog: 2018-11-16 Matthew Malcomson <matthew.malcomson@arm.com> * gcc.c-torture/execute/printf-2.c: Skip on wrapped boards. * gcc.c-torture/execute/user-printf.c: Likewise. From-SVN: r266214
2018-11-16tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add ↵Eric Botcazou3-24/+45
location_t parameter. * tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add location_t parameter. (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. (switch_decision_tree::do_jump_if_equal): Likewise. * tree-switch-conversion.c (switch_decision_tree::emit): Pass location of switch statement to emit_case_nodes. (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and set it on the newly built GIMPLE comparison statement. (switch_decision_tree::do_jump_if_equal): Likewise. (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it in calls to do_jump_if_equal as well as recursive calls. From-SVN: r266213
2018-11-16Remove ovl_used, it is no longer neededNathan Sidwell7-97/+20
Remove ovl_used, it is no longer needed * cp-tree.h (OVL_USED_P): Delete. (lookup_keep): Delete. * friend.c (add_friend): Don't call it. * parser.c (lookup_literal_operator): Likewise. (cp_parser_primary_expression): Likewise. * semantics.c (perform_koenig_lookup): Likewise. * pt.c (tsubst_copy <OVERLOAD>): Don't assert OVL_USED_P. * tree.c (ovl_copy): Delete. (ovl_insert): Remove OVL_USED_P checks. (ovl_iterator::reveal_node): Likewise. (ovl_iterator::remove__node): Likewise. (ovl_used, lookup_keep): Delete. From-SVN: r266212
2018-11-16Allow memory operands for PTWRITEAndi Kleen2-1/+5
The earlier PTWRITE builtin definition was unnecessarily restrictive, only allowing register input to PTWRITE. The instruction actually supports memory operands too, so allow that too. gcc/: 2018-11-16 Andi Kleen <ak@linux.intel.com> * config/i386/i386.md: Allow memory operands to ptwrite. From-SVN: r266211
2018-11-16[PR c++/87269] Mark string operator overload in template defn.Nathan Sidwell4-8/+40
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01458.html PR c++/87269 * parser.c (lookup_literal_operator): Mark overload for keeping when inside template. Refactor. * g++.dg/lookup/pr87269.C: New. From-SVN: r266210
2018-11-16[Patch][libstdc++.exp] Update the usage of cached result.Renlin Li2-714/+225
This patch replaces the usage of cached results with a global dictionary. Additionally, check_v3_target_namedlocale is updated to check on every variant. Originally, it is only checked once. gcc/libstdc++-v3/: 2018-11-16 Renlin Li <renlin.li@arm.com> Tejas Belagod <tejas.belagod@arm.com> testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc. (check_v3_target): Use check_v3_target_prop_cached. Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com> From-SVN: r266209
2018-11-16Don't use %z printf length specifierMichael Matz14-75/+101
* system.h (PRsa): New macro. (SIZE_AMOUNT): Cast number to uint64_t. * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. (pool_usage::dump_footer): Likewise and also use PRIu64. * bitmap.h (bitmap_usage::dump): Likewise. * ggc-common.c (ggc_usage::dump): Likewise. * ggc-page.c (ggc_print_statistics): Likewise. * input.c (dump_line_table_statistics): Likewise. * mem-stats.h (mem_usage::dump): Likewise. (mem_usage::dump_footer): Likewise. * rtl.c (dump_rtx_statistics): Likewise. * tree-cfg.c (dump_cfg_stats): Likewise. * tree-dfa.c (dump_dfa_stats): Likewise. * tree-phinodes.c (phinodes_print_statistics): Likewise. * tree-ssanames (ssanames_print_statistics): Likewise. * vec.c (vec_usage::dump): Likewise. (vec_usage::dump_footer): Likewise. From-SVN: r266208
2018-11-16Fix ICE in lto_symtab_merge_symbols_1 (PR lto/88004).Martin Liska2-2/+10
2018-11-16 Martin Liska <mliska@suse.cz> PR lto/88004 * lto-symtab.c (lto_symtab_merge_symbols_1): Do not call lto_symtab_symbol_p as it does checking of transparent alias. These needs to be also merged in the function. From-SVN: r266207
2018-11-16re PR testsuite/88053 (g++.dg/lto/pr54625-1.C fails with r266194)Richard Biener2-0/+6
2018-11-16 Richard Biener <rguenther@suse.de> PR testsuite/88053 * g++.dg/lto/pr54625-2_0.c: Add -w. From-SVN: r266206
2018-11-16re PR tree-optimization/88011 (r266028 causes a bunch of go failures)Richard Biener2-1/+8
2018-11-16 Richard Biener <rguenther@suse.de> PR tree-optimization/88011 * tree-vrp.c (extract_range_from_binary_expr): Fix error in replacing set_value_range_to_undefined and set_value_range_to_varying with method calls. From-SVN: r266205
2018-11-16S/390: Add a new pattern for r{o,x}sbgIlya Leoshkevich5-12/+63
Fixes rXsbg_mode_sXl test failures. Combine used to give us (set (reg:SI 65) (ior:SI (lshiftrt:SI (reg:SI 3 %r3 [ bD.2238 ]) (const_int 2 [0x2])) (reg:SI 2 %r2 [ aD.2237 ]))) but now we get (set (reg:SI 65) (ior:SI (subreg:SI (zero_extract:DI (reg:DI 69) (const_int 32 [0x20]) (const_int 30 [0x1e])) 4) (subreg:SI (reg:DI 68) 4))) or (set (reg:SI 65) (ior:SI (subreg:SI (and:DI (lshiftrt:DI (reg:DI 69) (const_int 2 [0x2])) (const_int 4294967295 [0xffffffff])) 4) (subreg:SI (reg:DI 68) 4))) with an extra subreg, which appears because pseudos, unlike hard registers, can be accessed only using their natural mode. This patch adds a special case for that. Also, it performs r*sbg bit index computations during gcc run, so that expectations do not depend on which concrete pattern was matched. gcc/ChangeLog: 2018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to assembler. (*r<noxa>sbg_<mode>_sll): Likewise. (*r<noxa>sbg_<mode>_srl): Likewise. (*r<noxa>sbg_sidi_srl): New pattern. gcc/testsuite/ChangeLog: 2018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/md/rXsbg_mode_sXl.c: Do not use arithmetic in r{o,x}sbg expectations. * gcc.target/s390/risbg-ll-2.c: Likewise. From-SVN: r266203
2018-11-16re PR testsuite/88053 (g++.dg/lto/pr54625-1.C fails with r266194)Richard Biener2-0/+6
2018-11-16 Richard Biener <rguenther@suse.de> PR testsuite/88053 * g++.dg/lto/pr54625-1_0.c: Add -w. From-SVN: r266202
2018-11-16Allow target overrides of ctors/dtors support advertisement on VxWorksJerome Lambourg3-11/+29
2018-11-16 Jerome Lambourg <lambourg@adacore.com> * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. Default to TARGET_VXWORKS_RTP. (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead of TARGET_VXWORKS_RTP. * config/vxworksae.h: Also define TARGET_VXWORKS_HAVE_CTORS_DTORS. * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. From-SVN: r266201
2018-11-16linux-unwind.h (sc_pt_regs): Update for kernel.Xianmiao Qu2-3/+9
2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com> libgcc/ * config/csky/linux-unwind.h (sc_pt_regs): Update for kernel. (sc_pt_regs_lr): Update for kernel. (sc_pt_regs_tls): Update for kernel. From-SVN: r266200
2018-11-15re PR c++/25759 (Documentation not clear, attribute packed on class in C++)Sandra Loosemore2-11/+17
2018-11-15 Sandra Loosemore <sandra@codesourcery.com> PR c++/25759 gcc/ * doc/extend.texi (Common Type Attributes): Make it explicit that attribute "packed" can apply to C++ classes. From-SVN: r266199
2018-11-16Daily bump.GCC Administrator1-1/+1
From-SVN: r266198
2018-11-15PR c++/87541 - ICE using a constant decl as an attribute alloc_size argumentMartin Sebor26-209/+730
PR c++/87541 - ICE using a constant decl as an attribute alloc_size argument PR c++/87542 - bogus error on attribute format with a named constant argument gcc/ChangeLog: PR c++/87541 PR c++/87542 * tree.c (type_argument_type): New function. * tree.h (type_argument_type): Declare it. * gcc/doc/extend.texi (alloc_align): Update and clarify. (alloc_size, nonnull, sentinel): Same. gcc/c-family/ChangeLog: PR c++/87541 PR c++/87542 * c-attribs.c (positional_argument): New function. (handle_alloc_size_attribute): Use it and simplify. (handle_alloc_align_attribute): Same. (handle_assume_aligned_attribute): Same. (handle_nonnull_attribute): Same. * c-common.c (check_function_arguments): Pass fntype to check_function_format. * c-common.h (check_function_format): Add an argument. (PosArgFlags, positional_argument): Declare new type and function. * c-format.c (decode_format_attr): Add arguments. (check_format_string, get_constant): Same. (convert_format_name_to_system_name): Adjust. gcc/testsuite/ChangeLog: PR c++/87541 PR c++/87542 * g++.dg/ext/attr-alloc_size.C: New test. * c-c++-common/pr71574.c: Adjust diagnostics. * c-c++-common/attributes-1.c: Same. * gcc.dg/attr-alloc_align-2.c: Same. * gcc.dg/attr-alloc_align-4.c: New test. * gcc.dg/attr-alloc_size-2.c: Adjust diagnostics. * gcc.dg/attr-alloc_size.c: Same. * gcc.dg/attr-assume_aligned-4.c: New test. * gcc.dg/format/attr-3.c: Adjust diagnostics. * gcc.dg/nonnull-2.c: Same. * gcc.dg/torture/pr80612.c: Same. * obj-c++.dg/attributes/method-format-1.mm: Same. * obj-c++.dg/attributes/method-nonnull-1.mm: Same. * objc.dg/attributes/method-format-1.m: same. * objc.dg/attributes/method-nonnull-1.m: Same. From-SVN: r266195
2018-11-15PR c/83656 - missing -Wbuiltin-declaration-mismatch on declaration without ↵Martin Sebor28-264/+937
prototype gcc/c/ChangeLog: PR c/83656 * c-decl.c (header_for_builtin_fn): Declare. (diagnose_mismatched_decls): Diagnose declarations of built-in functions without a prototype. * c-typeck.c (maybe_warn_builtin_no_proto_arg): New function. (convert_argument): Same. (convert_arguments): Factor code out into convert_argument. Detect mismatches between built-in formal arguments in calls to built-in without prototype. (build_conditional_expr): Same. (type_or_builtin_type): New function. (convert_for_assignment): Add argument. Conditionally issue warnings instead of errors for mismatches. gcc/testsuite/ChangeLog: PR c/83656 * gcc.dg/20021006-1.c * gcc.dg/Wbuiltin-declaration-mismatch.c: New test. * gcc.dg/Wbuiltin-declaration-mismatch-2.c: New test. * gcc.dg/Wbuiltin-declaration-mismatch-3.c: New test. * gcc.dg/Wbuiltin-declaration-mismatch-4.c: New test. * gcc.dg/Walloca-16.c: Adjust. * gcc.dg/Wrestrict-4.c: Adjust. * gcc.dg/Wrestrict-5.c: Adjust. * gcc.dg/atomic/stdatomic-generic.c: Adjust. * gcc.dg/atomic/stdatomic-lockfree.c: Adjust. * gcc.dg/initpri1.c: Adjust. * gcc.dg/pr15698-1.c: Adjust. * gcc.dg/pr69156.c: Adjust. * gcc.dg/pr83463.c: Adjust. * gcc.dg/redecl-4.c: Adjust. * gcc.dg/tls/thr-init-2.c: Adjust. * gcc.dg/torture/pr55890-2.c: Adjust. * gcc.dg/torture/pr55890-3.c: Adjust. * gcc.dg/torture/pr67741.c: Adjust. * gcc.dg/torture/stackalign/sibcall-1.c: Adjust. * gcc.dg/torture/tls/thr-init-1.c: Adjust. * gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Adjust. From-SVN: r266194
2018-11-15[PR c++/86246] ICE tsubst explicit operator callNathan Sidwell5-2/+79
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01405.html PR c++/86246 PR c++/87989 * typeck.c (finish_class_member_access_expr): Conversion operator to dependent type is dependent. * g++.dg/template/pr86246.C: New. * g++.dg/template/pr87989.C: New. From-SVN: r266193
2018-11-15constexpr.c (ensure_literal_type_for_constexpr_object): Use ↵Paolo Carlini9-12/+31
DECL_SOURCE_LOCATION in error_at calls. /cp 2018-11-15 Paolo Carlini <paolo.carlini@oracle.com> * constexpr.c (ensure_literal_type_for_constexpr_object): Use DECL_SOURCE_LOCATION in error_at calls. /testsuite 2018-11-15 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/constexpr-diag3.C: Check locations too. * g++.dg/cpp0x/constexpr-ice19.C: Likewise. * g++.dg/cpp0x/constexpr-nonlit2.C: Likewise. * g++.dg/cpp1z/constexpr-lambda15.C: Likewise. * g++.dg/ext/constexpr-vla5.C: Likewise. * g++.dg/gomp/pr85134.C: Likewise. From-SVN: r266192
2018-11-15Handle vectors that don't fit in an integer.Andrew Stubbs2-4/+11
GCN vector sizes range between 64 and 512 bytes, none of which have correspondingly sized integer modes. This breaks a number of assumptions throughout the compiler, but I don't really want to create modes just for this purpose. Instead, this patch fixes up the cases that I've found, so far, such that the compiler tries something else, or fails to optimize, rather than just ICE. 2018-11-15 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * tree-vect-stmts.c (vectorizable_store): Don't ICE when int_mode_for_size fails. (vectorizable_load): Likewise. Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> From-SVN: r266190
2018-11-15[C++ DR 2336] virtual dtors, exception specs & abstract classesNathan Sidwell5-13/+75
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01389.html DR 2336 * cp-tree.h (enum special_function_kind): Add sfk_virtual_destructor. * method.c (type_has_trivial_fn): Add it. (SFK_DTOR_P): Likewise. (synthesized_method_base_walk): Don't check access of vbases of abstract classes when sfk_virtual_destructor. (synthesized_method_walk): Skip vbases of abstract classes except when sfk_virtual_destructor. (get_defaulted_eh_spec): Set sfk_virtual_destructor as needed. * g++.dg/cpp1y/pr79393-3.C: New. From-SVN: r266188
2018-11-15doc/ux.texi: auto_diagnostic_group now does somethingDavid Malcolm2-3/+12
As of r266186, auto_diagnostic_group is now user-visible (via -fdiagnostics-format=json), so update the diagnostic guidelines accordingly. gcc/ChangeLog: * doc/ux.texi (Group logically-related diagnostics): Move discussion of auto_diagnostic_group into this new subsection. Give an example of where this grouping is used. From-SVN: r266187
2018-11-15Machine-readable diagnostic output (PR other/19165)David Malcolm28-28/+861
This patch implements a -fdiagnostics-format=json option which converts the diagnostics to be output to stderr in a JSON format; see the documentation in invoke.texi. Logically-related diagnostics are nested at the JSON level, using the auto_diagnostic_group mechanism. gcc/ChangeLog: PR other/19165 * Makefile.in (OBJS): Move json.o to... (OBJS-libcommon): ...here and add diagnostic-format-json.o. * common.opt (fdiagnostics-format=): New option. (diagnostics_output_format): New enum. * diagnostic-format-json.cc: New file. * diagnostic.c (default_diagnostic_final_cb): New function, taken from start of diagnostic_finish. (diagnostic_initialize): Initialize final_cb to default_diagnostic_final_cb. (diagnostic_finish): Move "being treated as errors" messages to default_diagnostic_final_cb. Call any final_cb. (default_diagnostic_finalizer): Add diagnostic_t param. (diagnostic_report_diagnostic): Pass "orig_diag_kind" to diagnostic_finalizer callback. * diagnostic.h (enum diagnostics_output_format): New enum. (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. (struct diagnostic_context): Add "final_cb". (default_diagnostic_finalizer): Add diagnostic_t param. (diagnostic_output_format_init): New decl. * doc/invoke.texi (-fdiagnostics-format): New option. * dwarf2out.c (gen_producer_string): Ignore OPT_fdiagnostics_format_. * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. * lto-wrapper.c (append_diag_options): Ignore it. * opts.c (common_handle_option): Handle it. gcc/c-family/ChangeLog: PR other/19165 * c-opts.c (c_diagnostic_finalizer): Add diagnostic_t param. gcc/fortran/ChangeLog: PR other/19165 * error.c (gfc_diagnostic_finalizer): Add diagnostic_t param. gcc/jit/ChangeLog: PR other/19165 * dummy-frontend.c (jit_begin_diagnostic): Add diagnostic_t param. gcc/testsuite/ChangeLog: PR other/19165 * c-c++-common/diagnostic-format-json-1.c: New test. * c-c++-common/diagnostic-format-json-2.c: New test. * c-c++-common/diagnostic-format-json-3.c: New test. * c-c++-common/diagnostic-format-json-4.c: New test. * c-c++-common/diagnostic-format-json-5.c: New test. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (custom_diagnostic_finalizer): Add diagnostic_t param. * gcc.dg/plugin/location_overflow_plugin.c (verify_unpacked_ranges): Likewise. (verify_no_columns): Likewise. * gfortran.dg/diagnostic-format-json-1.F90: New test. * gfortran.dg/diagnostic-format-json-2.F90: New test. * gfortran.dg/diagnostic-format-json-3.F90: New test. From-SVN: r266186
2018-11-15graphite: add missing dump_enabled_p checks (PR tree-optimization/88015)David Malcolm3-12/+24
gcc/ChangeLog: PR tree-optimization/88015 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check for dump_enabled_p. * graphite-sese-to-poly.c (build_poly_scop): Likewise. From-SVN: r266184
2018-11-15re PR tree-optimization/88029 (ICE in execute_todo, at passes.c:1974)Richard Biener5-20/+35
2018-11-15 Richard Biener <rguenther@suse.de> PR middle-end/88029 * gimple.c (gimple_call_flags): Union flags from decl, type and call fntype. * trans-mem.c (is_tm_pure_call): Simplify. * gcc.dg/tree-ssa/pr88029.c: New testcase. From-SVN: r266183
2018-11-15re PR tree-optimization/88031 (ICE in vectorizable_reduction, at ↵Richard Biener6-57/+71
tree-vect-loop.c:6953) 2018-11-15 Richard Biener <rguenther@suse.de> PR tree-optimization/88031 * tree-vect-loop.c (vectorizable_reduction): Move check for multiple types earlier so we get the expected dump. Simplify calls to vectorizable_condition. * tree-vect-stmts.h (vectorizable_condition): Update prototype. * tree-vect-stmts.c (vectorizable_condition): Instead of reduc_def and reduc_index take just a flag. Simplify code-generation now that we can rely on the defs being set up. (vectorizable_comparison): Remove unused argument. * gcc.dg/pr88031.c: New testcase. From-SVN: r266182
2018-11-15[C++ DR 2336] Clean up synth walkers firstNathan Sidwell3-88/+73
https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01376.html * cp-tree.h (enum special_function_kind): Reorder and comment. * method.c (SFK_CTOR_P, SFK_DTOR_P, SFK_ASSIGN_P, SFK_COPY_P) (SFK_MOVE_P): New predicates. (walk_field_subobs, synthesized_method_base_walk): Drop copy_arg_p, move_p, assign_p args. Use new SFK predicates. Order parameters consistently. (synthesized_method_walk): Drop ctor_p, copy_arg_p, move_p, assign_p calculations. Use new SFK predicates. Adjust calls to worker functions. From-SVN: r266180