- 16 Mar, 2018 2 commits
-
-
2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69395 * decl.c (merge_array_spec): Limit the merging to maximum allowed dimensions, and issue error message if limit is exceeded. 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69395 * gfortran.dg/pr69395.f90: New test. From-SVN: r258580
Steven G. Kargl committed -
From-SVN: r258579
GCC Administrator committed
-
- 15 Mar, 2018 20 commits
-
-
2018-03-15 Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/nios2/nios2.md (movsi_internal): Fix thinko in split predicate. From-SVN: r258575
Sandra Loosemore committed -
PR c++/79085 * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment check and use address of target always. * g++.dg/opt/pr79085.C: New test. From-SVN: r258574
Jakub Jelinek committed -
PR libgfortran/84880 * intrinsics/kill.c (kill): Rename to... (PREFIX (kill)): ... this. Use export_proto_np instead of export_proto. From-SVN: r258571
Jakub Jelinek committed -
Function return thunks shouldn't be aliased to indirect branch thunks since indirect branch thunks are placed in COMDAT section and a COMDAT section with indirect branch may not have function return thunk. This patch generates function return thunks directly. gcc/ PR target/84574 * config/i386/i386.c (indirect_thunk_needed): Update comments. (indirect_thunk_bnd_needed): Likewise. (indirect_thunks_used): Likewise. (indirect_thunks_bnd_used): Likewise. (indirect_return_needed): New. (indirect_return_bnd_needed): Likewise. (output_indirect_thunk_function): Add a bool argument for function return. (output_indirect_thunk_function): Don't generate alias for function return thunk. (ix86_code_end): Call output_indirect_thunk_function to generate function return thunks. (ix86_output_function_return): Set indirect_return_bnd_needed and indirect_return_needed instead of indirect_thunk_bnd_needed and indirect_thunk_needed. gcc/testsuite/ PR target/84574 * gcc.target/i386/ret-thunk-9.c: Expect __x86_return_thunk label instead of __x86_indirect_thunk label. From-SVN: r258569
H.J. Lu committed -
PR c++/84222 * cp-tree.h (cp_warn_deprecated_use): Declare. * tree.c (cp_warn_deprecated_use): New function. * typeck2.c (build_functional_cast): Use it. * decl.c (grokparms): Likewise. (grokdeclarator): Likewise. Temporarily push nested class scope around grokparms call for out of class member definitions. * g++.dg/warn/deprecated.C (T::member3): Change dg-warning to dg-bogus. * g++.dg/warn/deprecated-6.C (T::member3): Likewise. * g++.dg/warn/deprecated-13.C: New test. From-SVN: r258568
Jakub Jelinek committed -
Tested by installing the gcc-locales package and running LANG=de_DE.utf8 go build hello.go Without this change, that fails, as described at https://gcc.gnu.org/PR84765. Reviewed-on: https://go-review.googlesource.com/100737 From-SVN: r258565
Ian Lance Taylor committed -
From-SVN: r258561
David Malcolm committed -
2018-03-15 Olga Makhotina <olga.makhotina@intel.com> gcc/ * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. gcc/testsuite/ * gcc.target/i386/sgx.c (_enclv_u32): Test new intrinsic. From-SVN: r258560
Olga Makhotina committed -
gcc/testsuite/ChangeLog: PR c/84852 * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. From-SVN: r258559
David Malcolm committed -
I was a bit over-enthusiastic, we still support xilinxfp. * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode resp. SFmode cases. From-SVN: r258557
Segher Boessenkool committed -
re PR c/84873 (ICE: verify_ssa failed (error: definition in block 3 does not dominate use in block 4)) 2018-03-15 Richard Biener <rguenther@suse.de> PR c/84873 * c-gimplify.c (c_gimplify_expr): Do not fold expressions. * c-c++-common/pr84873.c: New testcase. From-SVN: r258556
Richard Biener committed -
2018-03-15 Tamar Christina <tamar.christina@arm.com> PR target/84711 * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE instead of GET_MODE_SIZE when comparing Units. gcc/testsuite/ 2018-03-15 Tamar Christina <tamar.christina@arm.com> PR target/84711 * gcc.target/arm/big-endian-subreg.c: New. From-SVN: r258554
Tamar Christina committed -
2018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> PR target/68256 * varasm.c (hash_section): Return an unchangeble hash value * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): Return !aarch64_can_use_per_function_literal_pools_p (). From-SVN: r258553
Vladimir Mezentsev committed -
PR target/84860 * optabs.c (emit_conditional_move): Pass address of cmode's copy rather than address of cmode as last argument to prepare_cmp_insn. * gcc.c-torture/compile/pr84860.c: New test. From-SVN: r258552
Jakub Jelinek committed -
gcc/ * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, F_AVX512VNNI, F_AVX512BITALG): New. gcc/testsuite/ * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add cannonlake. (check_features): Add avx512vbmi2, gfni, vpclmulqdq, avx512vnni, avx512bitalg. libgcc/ * config/i386/cpuinfo.c (get_available_features): Add FEATURE_AVX512VBMI2, FEATURE_GFNI, FEATURE_VPCLMULQDQ, FEATURE_AVX512VNNI, FEATURE_AVX512BITALG. * config/i386/cpuinfo.h (processor_features) Add FEATURE_AVX512VBMI2, FEATURE_GFNI, FEATURE_VPCLMULQDQ, FEATURE_AVX512VNNI, FEATURE_AVX512BITALG. From-SVN: r258551
Julia Koval committed -
PR c/84853 * c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>: If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has INTEGER_TYPE element type. * gcc.dg/pr84853.c: New test. From-SVN: r258550
Jakub Jelinek committed -
* parser.c (cp_parser_make_indirect_declarator): Don't wrap cp_error_declarator. From-SVN: r258549
Jason Merrill committed -
We avoid complaining about unexpanded packs when inside a lambda, since the lambda as a whole could be part of a pack expansion. But that can only be true if the lambda is in a template context. * pt.c (check_for_bare_parameter_packs): Don't return early for a lambda in non-template context. From-SVN: r258548
Jason Merrill committed -
* pt.c (tsubst_baselink): Update the type of the BASELINK after mark_used. From-SVN: r258547
Jason Merrill committed -
From-SVN: r258546
GCC Administrator committed
-
- 14 Mar, 2018 18 commits
-
-
re PR target/83451 (FAIL: gfortran.dg/matmul_10.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (ICE)) PR target/83451 * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload insn for floating-point loads and stores. From-SVN: r258541
John David Anglin committed -
In order for std::less<T*> etc. to meet the total order requirements of [comparisons] p2 we need to cast unrelated pointers to uintptr_t before comparing them. Those casts aren't allowed in constant expressions, so only cast when __builtin_constant_p says the result of the comparison is not a compile-time constant (because the arguments are not constants, or the result of the comparison is unspecified). When the result is constant just compare the pointers directly without casting. This ensures that the function can be called in constant expressions with suitable arguments, but still yields a total order even for otherwise unspecified pointer comparisons. For std::less<void> etc. add new overloads for pointers, which use std::less<common_type_t<T*,U*>> directly. Also change the generic overloads to detect when the comparison would call a built-in relational operator with pointer operands, and dispatch that case to the corresponding specialization for void pointers. PR libstdc++/78420 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>) (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations to ensure total order for pointers. (greater<void>, less<void>, greater_equal<void>, less_equal<void>): Add operator() overloads for pointer arguments and make generic overloads dispatch to new _S_cmp functions when comparisons would use built-in operators for pointers. * testsuite/20_util/function_objects/comparisons_pointer.cc: New. From-SVN: r258540
Jonathan Wakely committed -
gcc/ChangeLog: 2018-03-14 Carl Love <cel@us.ibm.com> PR target/84422 * config/rs6000/rs6000-builtin.def: Change expansion for VMULESW to BU_P8V_AV_2. Change expansion for VMULEUW to BU_P8V_AV_2. * config/rs6000/rs6000.c: Change ALTIVEC_BUILTIN_VMULESW to P8V_BUILTIN_VMULESW. Change ALTIVEC_BUILTIN_VMULEUW to P8V_BUILTIN_VMULEUW. Change ALTIVEC_BUILTIN_VMULOSW to P8V_BUILTIN_VMULOSW. Change ALTIVEC_BUILTIN_VMULOUW to P8V_BUILTIN_VMULOUW. * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VMULESW to P8V_BUILTIN_VMULESW. Change ALTIVEC_BUILTIN_VMULEUW to P8V_BUILTIN_VMULEUW. Change ALTIVEC_BUILTIN_VMULOSW to P8V_BUILTIN_VMULOSW. Change ALTIVEC_BUILTIN_VMULOUW to P8V_BUILTIN_VMULOUW. From-SVN: r258539
Carl Love committed -
* pt.c (convert_template_argument): Don't substitute into type of non-type parameter if we don't have enough arg levels. (unify): Likewise. From-SVN: r258533
Jason Merrill committed -
gcc/ChangeLog: 2018-03-14 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c: Add macro definitions for ALTIVEC_BUILTIN_VEC_PERMXOR. * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. * config/rs6000/altivec.md (altivec_vpermxor): New define expand. * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case UNSPEC_VPERMXOR. * config/doc/extend.texi: Add prototypes for vec_permxor. gcc/testsuite/ChangeLog: 2018-03-14 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-7-runnable.c: New test file. From-SVN: r258530
Carl Love committed -
2018-03-14 Martin Liska <mliska@suse.cz> PR ipa/8480 * g++.dg/lto/pr84805_0.C: New test. * g++.dg/lto/pr84805_1.C: New test. * g++.dg/lto/pr84805_2.C: New test. From-SVN: r258529
Martin Liska committed -
PR c/84852 reports an ICE inside diagnostic_show_locus when printing a diagnostic for a source file with a #line >= 2^31: #line 7777777777 int foo (void) { return strlen(""); } where we're attempting to print a fix-it hint at the top of the file and underline the "strlen" (two "line spans"). The #line 7777777777 won't fix within the 32-bit linenum_type, and is truncated from 0x1cf977871 to 0xcf977871 i.e. 3482810481 in decimal. Such a #line is reported by -pedantic and -pedantic-errors, but we shouldn't ICE. The ICE is an assertion failure within layout::calculate_line_spans, where the line spans have not been properly sorted. The layout_ranges are stored as int, rather than linenum_type, giving line -812156815 for the error, and line 1 for the fix-it hint. However, line_span uses linenum_type rather than int. line_span::comparator compares these values as int, and hence decides that (linenum_type)3482810481 aka (int)-812156815 is less than line 1. This leads to this assertion failing in layout::calculate_line_spans: 1105 gcc_assert (next->m_first_line >= current->m_first_line); since it isn't the case that 1 >= 3482810481. The underlying problem is the mix of types for storing line numbers: in parts of libcpp and diagnostic-show-locus.c we use linenum_type; in other places (including libcpp's expanded_location) we use int. I looked at using linenum_type throughout, but doing so turned into a large patch, so this patch fixes the ICE in a less invasive way by merely using linenum_type more consistently just within diagnostic-show-locus.c, and fixing line_span::comparator to properly handle line numbers (and line number differences) >= 2^31, by using a new helper function for linenum_type differences, computing the difference using long long, and using the sign of the difference (as the difference might not fit in the "int" return type imposed by qsort). gcc/ChangeLog: PR c/84852 * diagnostic-show-locus.c (class layout_point): Convert m_line from int to linenum_type. (line_span::comparator): Use linenum "compare" function when comparing line numbers. (test_line_span): New function. (layout_range::contains_point): Convert param "row" from int to linenum_type. (layout_range::intersects_line_p): Likewise. (layout::will_show_line_p): Likewise. (layout::print_source_line): Likewise. (layout::should_print_annotation_line_p): Likewise. (layout::print_annotation_line): Likewise. (layout::print_leading_fixits): Likewise. (layout::annotation_line_showed_range_p): Likewise. (struct line_corrections): Likewise for field m_row. (line_corrections::line_corrections): Likewise for param "row". (layout::print_trailing_fixits): Likewise. (layout::get_state_at_point): Likewise. (layout::get_x_bound_for_row): Likewise. (layout::print_line): Likewise. (diagnostic_show_locus): Likewise for locals "last_line" and "row". (selftest::diagnostic_show_locus_c_tests): Call test_line_span. * input.c (selftest::test_linenum_comparisons): New function. (selftest::input_c_tests): Call it. * selftest.c (selftest::test_assertions): Test ASSERT_GT, ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. * selftest.h (ASSERT_GT): New macro. (ASSERT_GT_AT): New macro. (ASSERT_LT): New macro. (ASSERT_LT_AT): New macro. gcc/testsuite/ChangeLog: PR c/84852 * gcc.dg/fixits-pr84852-1.c: New test. * gcc.dg/fixits-pr84852-2.c: New test. libcpp/ChangeLog: * include/line-map.h (compare): New function on linenum_type. From-SVN: r258526
David Malcolm committed -
This fixes more than half of our testcase failures on BE. libsanitizer/ * sanitizer_common/sanitizer_stacktrace.cc (BufferedStackTrace::FastUnwindStack): Use the correct frame offset for PowerPC SYSV ABI. From-SVN: r258525
Segher Boessenkool committed -
distribute_links tries to place a log_link for whatever the destination of the modified instruction is. It shouldn't do that when that dest is pc_rtx, which isn't actually a register. * combine.c (distribute_links): Don't make a link based on pc_rtx. From-SVN: r258523
Segher Boessenkool committed -
2018-03-14 Martin Liska <mliska@suse.cz> * tree.c (record_node_allocation_statistics): Use get_stats_node_kind. (get_stats_node_kind): New function extracted from record_node_allocation_statistics. (free_node): Use get_stats_node_kind. From-SVN: r258521
Martin Liska committed -
tree-ssa-pre.c (compute_antic_aux): Remove code that asserts that the value-set of ANTIC_IN doesn't grow. 2018-03-14 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts that the value-set of ANTIC_IN doesn't grow. Revert * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs member. (BB_VISITED_WITH_VISITED_SUCCS): New define. (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. From-SVN: r258520
Richard Biener committed -
scan-assembler-times and scan-tree-dump-times dejagnu directives show a different output in the summary files depending on whether they PASS or FAIL. This means that dg-cmp-results would not show a regression because it would not see a connection between the two output. The difference comes from the FAIL showing the number of actual times the pattern was match, presumably to help debugging. This patch moves the info regarding the actual number of times the pattern match in a separate verbose message. This keeps the message unchanged but let developers have the required debug message with -v. 2018-03-14 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * lib/scanasm.exp (scan-assembler-times): Move FAIL debug info into a separate verbose message. * lib/scandump.exp (scan-dump-times): Likewise. From-SVN: r258519
Thomas Preud'homme committed -
Split-up -march=icelake on -march=icelake-server and -march=icelake-client gcc/ * config.gcc (icelake-client, icelake-server): New. (icelake): Remove. * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. (initial_ix86_arch_features): Ditto. (PTA_SKYLAKE): Add SGX. (PTA_ICELAKE): Remove. (PTA_ICELAKE_CLIENT): New. (PTA_ICELAKE_SERVER): New. (ix86_option_override_internal): Split up icelake on icelake client and icelake server. (get_builtin_code_for_version): Ditto. (fold_builtin_cpu): Ditto. * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. * config/i386/i386-c.c (ix86_target_macros_internal): Ditto * config/i386/i386.h (processor_type): Ditto. * doc/invoke.texi: Ditto. gcc/testsuite/ * g++.dg/ext/mv16.C: Split up icelake on icelake client and icelake-server. * gcc.target/i386/funcspec-56.inc: Ditto. libgcc/ * config/i386/cpuinfo.h (processor_subtypes): Split up icelake on icelake-client and icelake-server. From-SVN: r258518
Julia Koval committed -
2018-03-14 Richard Sandiford <richard.sandiford@linaro.org> gcc/testsuite/ * gcc.target/aarch64/sve/mul_highpart_1_run.c: Restrict to aarch64_sve_hw. From-SVN: r258517
Richard Sandiford committed -
re PR sanitizer/83392 (FAIL: c-c++-common/ubsan/ptr-overflow-sanitization-1.c scan-tree-dump-times) PR sanitizer/83392 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also INTEGER_CST offset, add it together with bitpos / 8 and sign extend based on POINTER_SIZE. * c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Adjust expected check count from 17 to 14. From-SVN: r258516
Jakub Jelinek committed -
re PR target/84844 (ICE in extract_constrain_insn_cached, at recog.c:2217 (error: insn does not satisfy its constraints)) PR target/84844 Revert 2017-04-20 Uros Bizjak <ubizjak@gmail.com> PR target/78090 * config/i386/constraints.md (Yc): New register constraint. * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): Use Yc constraint for alternative 2 of operand 0. Remove preferred_for_speed attribute. * gcc.target/i386/pr84844.c: New test. From-SVN: r258515
Jakub Jelinek committed -
2018-03-14 Richard Biener <rguenther@suse.de> PR tree-optimization/84830 * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN with the old one to avoid oscillations. * gcc.dg/torture/pr84830.c: New testcase. From-SVN: r258514
Richard Biener committed -
re PR c++/84596 (internal compiler error: unexpected expression '(bool)c' of kind implicit_conv_expr (cxx_eval_constant_expression)) PR c++/84596 * semantics.c (finish_static_assert): Check instantiation_dependent_expression_p instead of {type,value}_dependent_expression_p. * g++.dg/cpp0x/static_assert15.C: New test. From-SVN: r258513
Marek Polacek committed
-