1. 22 Nov, 2018 6 commits
    • re PR c++/87386 (Error message for static_assert show wrong range) · 3bcd9882
      	PR c++/87386
      	* parser.c (cp_parser_operator): Use str.get_value () instead of just
      	str in USERDEF_LITERAL_VALUE and USERDEF_LITERAL_SUFFIX_ID arguments.
      
      From-SVN: r266369
      Jakub Jelinek committed
    • Do not mix -fsanitize=thread and -mabi=ms (PR sanitizer/88017). · 577fe16a
      2018-11-22  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/88017
      	* config/i386/i386.c (ix86_option_override_internal):
      2018-11-22  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/88017
      	* gcc.dg/tsan/pr88017.c: New test.
      
      From-SVN: r266368
      Martin Liska committed
    • Replace sync builtins with atomic builtins · 0536d5b3
      The old __sync builtins have been deprecated for a long time now in
      favor of the __atomic builtins following the C++11/C11 memory model.
      This patch converts libgfortran to use the modern __atomic builtins.
      
      At the same time I weakened the consistency to relaxed for
      incrementing and decrementing the counter, and acquire-release when
      decrementing to check whether the counter is 0 and the unit can be
      freed.  This is similar to e.g. std::shared_ptr in C++.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-11-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* acinclude.m4 (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Rename and test
      	presence of atomic builtins instead of sync builtins.
      	* configure.ac (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Call new test.
      	* io/io.h (inc_waiting_locked): Use __atomic_fetch_add.
      	(predec_waiting_locked): Use __atomic_add_fetch.
      	(dec_waiting_unlocked): Use __atomic_fetch_add.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
              * Makefile.in: Regenerated.
      
      From-SVN: r266367
      Janne Blomqvist committed
    • re PR d/87824 (x86_64-linux multilib issues) · d8bcb00f
      libphobos/ChangeLog:
      
      2018-11-22  Johannes Pfau  <johannespfau@gmail.com>
      
      	PR d/87824
      	* testsuite/libphobos.shared/shared.exp: Set proper path to phobos
      	library for multilib builds.
      
      From-SVN: r266366
      Johannes Pfau committed
    • Daily bump. · 5d90d0e6
      From-SVN: r266364
      GCC Administrator committed
    • [libbacktrace] Factor out read_initial_length · 292592c5
      Factor out new function read_initial_length in dwarf.c.
      
      Bootstrapped and reg-tested on x86_64.
      
      2018-11-22  Tom de Vries  <tdevries@suse.de>
      
      	* dwarf.c (read_initial_length): Factor out of ...
      	(build_address_map, read_line_info): ... here.
      
      From-SVN: r266361
      Tom de Vries committed
  2. 21 Nov, 2018 28 commits
    • re PR c++/88122 (g++ ICE: internal compiler error: Segmentation fault) · 208a5329
      	PR c++/88122
      	* method.c (maybe_explain_implicit_delete): If
      	FUNCTION_FIRST_USER_PARMTYPE (decl) is NULL, set const_p to false
      	instead of ICEing.
      
      	* g++.dg/cpp0x/implicit15.C: New test.
      
      From-SVN: r266360
      Jakub Jelinek committed
    • re PR c++/87386 (Error message for static_assert show wrong range) · e1389417
      	PR c++/87386
      	* parser.c (cp_parser_primary_expression): Use
      	id_expression.get_location () instead of id_expr_token->location.
      	Adjust the range from id_expr_token->location to
      	id_expressio.get_finish ().
      	(cp_parser_operator_function_id): Pass location of the operator
      	token down to cp_parser_operator.
      	(cp_parser_operator): Add start_loc argument, always construct a
      	location with caret at start_loc and range from start_loc to the
      	finish of the last token.
      gcc/testsuite/
      	* g++.dg/diagnostic/pr87386.C: New test.
      	* g++.dg/parse/error17.C: Adjust expected diagnostics.
      libstdc++-v3/
      	* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust expected
      	line.
      	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
      	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
      	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
      
      From-SVN: r266359
      Jakub Jelinek committed
    • Revert the revert: · 13986a58
      	2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
      
      	Revert:
      	2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* lra-spills.c (lra_final_code_change): Remove useless move insns.
      
      From-SVN: r266358
      Uros Bizjak committed
    • re PR rtl-optimization/85925 (compilation of masking with 257 goes wrong in combine at -02) · 4fd723f8
      	PR rtl-optimization/85925
      	* gcc.c-torture/execute/20181120-1.c: Require effective target
      	int32plus.
      	(u): New variable.
      	(main): Compare d against u.f1 rather than 0x101.  Use 0x4030201
      	instead of 0x10101.
      
      From-SVN: r266357
      Jakub Jelinek committed
    • re PR middle-end/88129 (Two blockage insns are emited in the function epilogue) · 96af90b5
      	PR middle-end/88129
      	* function.c (expand_function_end): Do not emit extra blockage insn.
      
      From-SVN: r266356
      Uros Bizjak committed
    • re PR target/85667 (ms_abi rules aren't followed when returning short structs with float values) · c339a898
      	PR target/85667
      	* config/i386/i386.c (function_value_ms_64): Return AX_REG instead
      	of FIRST_SSE_REG for 4 or 8 byte modes.
      
      testsuite/ChangeLog:
      
      	PR target/85667
      	* gcc.target/pr85667-1.c: New testcase.
      	* gcc.target/pr85667-2.c: New testcase.
      	* gcc.target/pr85667-3.c: New testcase.
      	* gcc.target/pr85667-4.c: New testcase.
      
      From-SVN: r266355
      Lokesh Janghel committed
    • * invoke.texi (-fdec-include): Document. · 99b5ace4
      From-SVN: r266354
      Jakub Jelinek committed
    • PR libstdc++/88111 Make maximum block size depend on size_t width · 36d2acbd
      	PR libstdc++/88111
      	* include/std/memory_resource (pool_options): Add Doxygen comments.
      	* src/c++17/memory_resource.cc (pool_sizes): Only use suitable values
      	on targets with 16-bit or 20-bit size_t type.
      	(munge_options): Make default values depend on width of size_t type.
      
      From-SVN: r266353
      Jonathan Wakely committed
    • PR libstdc++/88113 use size_type consistently instead of size_t · afd02e4c
      On 16-bit msp430-elf size_t is either 16 bits or 20 bits, and so can't
      represent all values of the uint32_t type used for bitset::size_type.
      Using the smaller of size_t and uint32_t for size_type ensures it fits
      in size_t.
      
      	PR libstdc++/88113
      	* src/c++17/memory_resource.cc (bitset::size_type): Use the smaller
      	of uint32_t and size_t.
      	(bitset::size(), bitset::free(), bitset::update_next_word())
      	(bitset::max_blocks_per_chunk(), bitset::max_word_index()): Use
      	size_type consistently instead of size_t.
      	(chunk): Adjust static_assert checking sizeof(chunk).
      
      From-SVN: r266352
      Jonathan Wakely committed
    • re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’… · 4cd5da01
      re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519)
      
      
      	PR lto/87957
      	* g++.dg/lto/odr-1_0.C: Extend by mismatched enum.
      	* g++.dg/lto/odr-1_1.C: Extend by mismatched enum.
      	* g++.dg/lto/odr-2_0.C: New.
      	* g++.dg/lto/odr-2_0.C: New.
      	* g++.dg/lto/odr-3_1.C: New.
      	* g++.dg/lto/odr-3_1.C: New.
      
      From-SVN: r266351
      Jan Hubicka committed
    • re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’… · 7424b7c1
      re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519)
      
      
      	PR lto/87957
      	* tree.c (fld_decl_context): Break out from ...
      	(free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE
      	DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL.
      	(fld_incomplete_type_of): Build copy of TYP_DECL.
      	* ipa-devirt.c (free_enum_values): Rename to ...
      	(free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs
      	and TREE_TYPEs of TYPE_DECLs.
      	(get_odr_type): Initialize odr_vtable_hash if needed.
      
      From-SVN: r266350
      Jan Hubicka committed
    • compute discriminator info for overrides · 6bdb055e
      In some cases of overriding or resetting locations, we might retain
      discriminator info from earlier locations, when we should take
      discriminator information from the overriding location or reset it.
      
      for  gcc/ChangeLog
      
      	* final.c (compute_discriminator): Declare.  Renamed from...
      	(maybe_set_discriminator): ... this.  Set and return a local.
      	(override_discriminator): New.
      	(final_scan_insn_1): Set it.
      	(notice_source_line): Adjust.  Always set discriminator.
      
      From-SVN: r266349
      Alexandre Oliva committed
    • re PR c++/87393 (gcc/cp/parser.c:13967:37:Unused Entity Issue: expression result… · ea6306c7
      re PR c++/87393 (gcc/cp/parser.c:13967:37:Unused Entity Issue: expression result unused: -Wunused-value since r251026)
      
      	PR c++/87393
      	* parser.c (cp_parser_linkage_specification): Remove useless
      	dereference of the consume_open method result.
      
      From-SVN: r266347
      Jakub Jelinek committed
    • re PR target/87839 (ICE in final_scan_insn_1, at final.c:3070) · e21679a8
      	PR target/87839
      	* config/aarch64/atomics.md (@aarch64_compare_and_swap<mode>): Use
      	rIJ constraint for aarch64_plus_operand rather than rn.
      
      	* gcc.target/aarch64/pr87839.c: New test.
      
      From-SVN: r266346
      Jakub Jelinek committed
    • [PATCH][PR84877]Dynamically align the address for local parameter copy on the… · 0358d788
      [PATCH][PR84877]Dynamically align the address for local parameter copy on the stack when required alignment is larger than MAX_SUPPORTED_STACK_ALIGNMENT
      
      
      As described in PR84877. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84877
      The local copy of parameter on stack is not aligned.
      
      For BLKmode paramters, a local copy on the stack will be saved.
      There are three cases:
      1) arguments passed partially on the stack, partially via registers.
      2) arguments passed fully on the stack.
      3) arguments passed via registers.
      
      After the change here, in all three cases, the stack slot for the local
      parameter copy is aligned by the data type.
      The stack slot is the DECL_RTL of the parameter. All the references thereafter
      in the function will refer to this RTL.
      
      To populate the local copy on the stack,
      For case 1) and 2), there are operations to move data from the caller's stack
      (from incoming rtl) into callee's stack.
      For case 3), the registers are directly saved into the stack slot.
      
      In all cases, the destination address is properly aligned.
      But for case 1) and case 2), the source address is not aligned by the type.
      It is defined by the PCS how the arguments are prepared.
      The block move operation is fulfilled by emit_block_move (). As far as I can see,
      it will use the smaller alignment of source and destination.
      This looks fine as long as we don't use instructions which requires a strict
      larger alignment than the address actually has.
      
      Here, it only changes receiving parameters.
      The function assign_stack_local_1 will be called in various places.
      Usually, the caller will constraint the ALIGN parameter.
      For example via STACK_SLOT_ALIGNMENT macro.
      assign_parm_setup_block will call assign_stack_local () with alignment from the
      parameter type which in this case could be
      larger than MAX_SUPPORTED_STACK_ALIGNMENT.
      
      The alignment operation for parameter copy on the stack is similar to stack vars.
      First, enough space is reserved on the stack. The size is fixed at compile time.
      Instructions are emitted to dynamically get an aligned address at runtime
      within this piece of memory.
      
      This will unavoidably increase the usage of stack. However, it really depends on
      how many over-aligned parameters are passed by value.
      
      
      gcc/
      
      2018-11-21  Renlin Li  <renlin.li@arm.com>
      
      	PR middle-end/84877
      	* explow.h (get_dynamic_stack_size): Declare it as external.
      	* explow.c (record_new_stack_level): Remove function static attribute.
      	* function.c (assign_stack_local_1): Dynamically align the stack slot
      	addr for parameter copy on the stack.
      
      gcc/testsuite/
      
      2018-11-21  Renlin Li  <renlin.li@arm.com>
      
      	PR middle-end/84877
      	* gcc.dg/pr84877.c: New.
      
      From-SVN: r266345
      Renlin Li committed
    • re PR bootstrap/88133 (Build fails with host GCC < 4.3) · 566422e0
      2018-11-21  Richard Biener  <rguenther@suse.de>
      
      	PR bootstrap/88133
      	* bitmap.c (bitmap_last_set_bit): Refactor to avoid warning.
      	* Makefile.in (bitmap.o-warn): Remove again.
      
      From-SVN: r266344
      Richard Biener committed
    • re PR tree-optimization/88069 (ICE in check_loop_closed_ssa_def, at tree-ssa-loop-manip.c:709) · 0f9657f3
      2018-11-20  Jeff Law  <law@redhat.com>
      
      	PR tree-optimization/88069
      	* tree-ssa-dom.c (record_equivalences_from_phis): Propagate away
      	degenerate virtual PHIs.
      
      From-SVN: r266343
      Jeff Law committed
    • x86: Add pmovzx/pmovsx patterns with memory operands · ff8e1022
      Many x86 pmovzx/pmovsx instructions with memory operands are modeled in
      a wrong way.  For example:
      
      (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"
        [(set (match_operand:V8HI 0 "register_operand" "=Yr,*x,v")
          (any_extend:V8HI
            (vec_select:V8QI
              (match_operand:V16QI 1 "nonimmediate_operand" "Yrm,*xm,vm")
              (parallel [(const_int 0) (const_int 1)
                     (const_int 2) (const_int 3)
                     (const_int 4) (const_int 5)
                     (const_int 6) (const_int 7)]))))]
      
      should be defind for memory operands as:
      
      (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"
        [(set (match_operand:V8HI 0 "register_operand" "=Yr,*x,v")
          (any_extend:V8HI
            (match_operand:V8QI "memory_operand" "m,m,m")))]
      
      This patch updates them to
      
      (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"
        [(set (match_operand:V8HI 0 "register_operand" "=Yr,*x,v")
      	(any_extend:V8HI
      	  (vec_select:V8QI
      	    (match_operand:V16QI 1 "register_operand" "Yr,*x,v")
      	    (parallel [(const_int 0) (const_int 1)
      		       (const_int 2) (const_int 3)
      		       (const_int 4) (const_int 5)
      		       (const_int 6) (const_int 7)]))))]
      
      (define_insn "*sse4_1_<code>v8qiv8hi2<mask_name>_1"
        [(set (match_operand:V8HI 0 "register_operand" "=Yr,*x,v")
      	(any_extend:V8HI
      	  (match_operand:V8QI "subreg_memory_operand" "m,m,m")))]
      
      with a splitter:
      
      (define_insn_and_split "*sse4_1_<code>v8qiv8hi2<mask_name>_2"
        [(set (match_operand:V8HI 0 "register_operand")
              (any_extend:V8HI
                (vec_select:V8QI
                  (subreg:V16QI
                    (vec_concat:V2DI
                      (match_operand:DI 1 "memory_operand")
                      (const_int 0)) 0)
                  (parallel [(const_int 0) (const_int 1)
                             (const_int 2) (const_int 3)
                             (const_int 4) (const_int 5)
                             (const_int 6) (const_int 7)]))))]
        "TARGET_SSE4_1
         && <mask_avx512bw_condition>
         && <mask_avx512vl_condition>
        "&& can_create_pseudo_p ()"
        "#"
        "&& 1"
        [(set (match_dup 0)
              (any_extend:V8HI (match_dup 1)))]
        "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
      
      This patch requires updating apply_subst_iterator to handle
      define_insn_and_split.
      
      gcc/
      
      	PR target/87317
      	* config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Replace
      	nonimmediate_operand with register_operand.
      	(avx2_<code>v8qiv8si2<mask_name>): Likewise.
      	(sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
      	(sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
      	(sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
      	(avx512f_<code>v8qiv8di2<mask_name>): Likewise.
      	(avx2_<code>v4qiv4di2<mask_name>): Likewise.
      	(avx2_<code>v4hiv4di2<mask_name>): Likewise.
      	(sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
      	(sse4_1_<code>v2siv2di2<mask_name>): Likewise.
      	(*sse4_1_<code>v8qiv8hi2<mask_name>_1): New pattern.
      	(*sse4_1_<code>v8qiv8hi2<mask_name>_2): Likewise.
      	(*avx2_<code>v8qiv8si2<mask_name>_1): Likewise.
      	(*avx2_<code>v8qiv8si2<mask_name>_2): Likewise.
      	(*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise.
      	(*sse4_1_<code>v4qiv4si2<mask_name>_2): Likewise.
      	(*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise.
      	(*sse4_1_<code>v4hiv4si2<mask_name>_2): Likewise.
      	(*avx512f_<code>v8qiv8di2<mask_name>_1): Likewise.
      	(*avx512f_<code>v8qiv8di2<mask_name>_2): Likewise.
      	(*avx2_<code>v4qiv4di2<mask_name>_1): Likewise.
      	(*avx2_<code>v4qiv4di2<mask_name>_2): Likewise.
      	(*avx2_<code>v4hiv4di2<mask_name>_1): Likewise.
      	(*avx2_<code>v4hiv4di2<mask_name>_2): Likewise.
      	(*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise.
      	(*sse4_1_<code>v2hiv2di2<mask_name>_2): Likewise.
      	(*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise.
      	(*sse4_1_<code>v2siv2di2<mask_name>_2): Likewise.
      
      gcc/testsuite/
      
      	PR target/87317
      	* gcc.target/i386/pr87317-1.c: New file.
      	* gcc.target/i386/pr87317-2.c: Likewise.
      	* gcc.target/i386/pr87317-3.c: Likewise.
      	* gcc.target/i386/pr87317-4.c: Likewise.
      	* gcc.target/i386/pr87317-5.c: Likewise.
      	* gcc.target/i386/pr87317-6.c: Likewise.
      	* gcc.target/i386/pr87317-7.c: Likewise.
      	* gcc.target/i386/pr87317-8.c: Likewise.
      	* gcc.target/i386/pr87317-9.c: Likewise.
      	* gcc.target/i386/pr87317-10.c: Likewise.
      	* gcc.target/i386/pr87317-11.c: Likewise.
      	* gcc.target/i386/pr87317-12.c: Likewise.
      	* gcc.target/i386/pr87317-13.c: Likewise.
      
      From-SVN: r266342
      H.J. Lu committed
    • apply_subst_iterator: Handle define_split/define_insn_and_split · 12404d15
      	* read-rtl.c (apply_subst_iterator): Handle define_split and
      	define_insn_and_split.
      
      From-SVN: r266341
      H.J. Lu committed
    • re PR rtl-optimization/87817 (gcc.target/i386/bmi2-bzhi-2.c execution test) · f259abd2
      	PR rtl-optimization/87817
      	* config/i386/i386.md (bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3,
      	*bmi2_bzhi_<mode>3_1, *bmi2_bzhi_<mode>3_1_ccz): Use IF_THEN_ELSE
      	in the pattern to avoid triggering UB when operands[2] is zero.
      	(tbm_bextri_<mode>): New expander.  Renamed the old define_insn to ...
      	(*tbm_bextri_<mode>): ... this.
      
      From-SVN: r266340
      Jakub Jelinek committed
    • [libbacktrace] Factor out read_string · 17112570
      Factor out new function read_string in dwarf.c.
      
      Bootstrapped and reg-tested on x86_64.
      
      2018-11-21  Tom de Vries  <tdevries@suse.de>
      
      	* dwarf.c (read_string): Factor out of ...
      	(read_attribute, read_line_header, read_line_program): ... here.
      
      From-SVN: r266339
      Tom de Vries committed
    • [driver] Ensure --help=params lines end with period · 25baeeb3
      Ensure that gcc --help=params lines end with a period by:
      - fixing the help message of param HOT_BB_COUNT_FRACTION, and
      - adding a test-case.
      
      Build and tested on x86_64.
      
      2018-11-21  Tom de Vries  <tdevries@suse.de>
      
      	PR driver/79855
      	* params.def (HOT_BB_COUNT_FRACTION): Terminate help message with
      	period.
      
      	* lib/options.exp (check_for_options_with_filter): New proc.
      	* gcc.misc-tests/help.exp: Check that --help=params lines end with
      	period.
      
      From-SVN: r266338
      Tom de Vries committed
    • lang.opt (fdec-include): New option. · 7c74e813
      	* lang.opt (fdec-include): New option.
      	* options.c (set_dec_flags): Set also flag_dec_include.
      	* scanner.c (include_line): Change return type from bool to int.
      	In fixed form allow spaces in between include keyword letters.
      	For -fdec-include, allow in fixed form 0 in column 6.  With
      	-fdec-include return -1 if the parsed line is not full include
      	statement and it could be successfully completed on continuation
      	lines.
      	(include_stmt): New function.
      	(load_file): Adjust include_line caller.  If it returns -1, keep
      	trying include_stmt until it stops returning -1 whenever adding
      	further line of input.
      
      	* gfortran.dg/include_10.f: New test.
      	* gfortran.dg/include_10.inc: New file.
      	* gfortran.dg/include_11.f: New test.
      	* gfortran.dg/include_12.f: New test.
      	* gfortran.dg/include_13.f90: New test.
      	* gfortran.dg/gomp/include_1.f: New test.
      	* gfortran.dg/gomp/include_1.inc: New file.
      	* gfortran.dg/gomp/include_2.f90: New test.
      
      Co-Authored-By: Mark Eggleston <mark.eggleston@codethink.com>
      
      From-SVN: r266337
      Jakub Jelinek committed
    • S/390: Support vector load/store alignment hints · b8923037
      The IBM z14 POP adds an optional alignment operand to the vl, vst,
      vlm, and vstm instruction (vector loads and stores). Vectors residing
      on 8 or 16 byte boundaries might get loaded or stored faster on some
      models given the instruction uses the proper hint operand.  A wrong
      hint will hurt performance though.
      
      The attached testcase align-1 currently fails due to:
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88085
      
      gcc/ChangeLog:
      
      2018-11-21  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* configure.ac: Add check for Binutils to determine whether vector
      	load/store alignments hints are being supported.
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* config/s390/s390.c (print_operand): Support new output
      	modifier A.
      	* config/s390/s390.md ("movti"): Append alignment hint output
      	using the new output modifier 'A'.
      	* config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf")
      	("*vec_ti_to_v1ti"): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2018-11-21  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/vector/align-1.c: New test.
      	* gcc.target/s390/vector/align-2.c: New test.
      
      From-SVN: r266336
      Andreas Krebbel committed
    • c-parser.c (c_parser_has_attribute_expression): New function. · 98f08eb8
      
      gcc/c/ChangeLog:
      
      	* c-parser.c (c_parser_has_attribute_expression): New function.
      	(c_parser_attribute): New function.
      	(c_parser_attributes): Move code into c_parser_attribute.
      	(c_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION.
      
      gcc/c-family/ChangeLog:
      
      	* c-attribs.c (type_for_vector_size): New function.
      	(type_valid_for_vector_size): Same.
      	(handle_vector_size_attribute): Move code to the functions above
      	and call them.
      	(validate_attribute, has_attribute): New functions.
      	* c-common.h (has_attribute): Declare.
      	(rid): Add RID_HAS_ATTRIBUTE_EXPRESSION.
      	* c-common.c (c_common_resword): Same.
      
      gcc/cp/ChangeLog:
      
      	* cp-tree.h (cp_check_const_attributes): Declare.
      	* decl2.c (cp_check_const_attributes): Declare extern.
      	* parser.c (cp_parser_has_attribute_expression): New function.
      	(cp_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION.
      	(cp_parser_gnu_attribute_list): Add argument.
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (Other Builtins): Add __builtin_has_attribute.
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/builtin-has-attribute-2.c: New test.
      	* c-c++-common/builtin-has-attribute-3.c: New test.
      	* c-c++-common/builtin-has-attribute-4.c: New test.
      	* c-c++-common/builtin-has-attribute.c: New test.
      	* gcc.dg/builtin-has-attribute.c: New test.
      	* gcc/testsuite/gcc.target/i386/builtin-has-attribute.c: New test.
      
      From-SVN: r266335
      Martin Sebor committed
    • re PR lto/84044 (Spurious -Wodr warning with -flto) · 48d1f31d
      
      	PR lto/84044
      	* ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to
      	compare ENUM values.
      	* g++.dg/lto/odr-4_0.C: New testcase.
      	* g++.dg/lto/odr-4_1.C: New testcase.
      
      From-SVN: r266334
      Jan Hubicka committed
    • re PR go/88060… · d3d684c6
      re PR go/88060 (../../../gcc-8.2.0/libgo/go/syscall/libcall_linux_utimesnano.go:17:18: error: reference to undefined name ‘_AT_FDCWD’)
      
      	PR go/88060
          syscall: always define _AT_FDCWD and IPv6MTUInfo
          
          They aren't defined by old versions of glibc, but are required by the
          code in syscall_linux.go.
          
          Reviewed-on: https://go-review.googlesource.com/c/150697
      
      From-SVN: r266333
      Ian Lance Taylor committed
    • Daily bump. · dc1a3df4
      From-SVN: r266332
      GCC Administrator committed
  3. 20 Nov, 2018 6 commits