1. 14 Oct, 2019 15 commits
    • internal/cpu: define kdsaQuery for s390 · d2317d50
          
          Patch from Andreas Krebbel.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201037
      
      From-SVN: r276962
      Ian Lance Taylor committed
    • [ARM] Enable arm_legitimize_address for Thumb-2 · ea978210
      Currently arm_legitimize_address doesn't handle Thumb-2 at all, resulting in
      inefficient code.  Since Thumb-2 supports similar address offsets use the Arm
      legitimization code for Thumb-2 to get significant codesize and performance
      gains.  SPECINT2006 shows 0.4% gain on Cortex-A57, while SPECFP improves 0.2%.
      
          gcc/
      	* config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
      
      From-SVN: r276961
      Wilco Dijkstra committed
    • [ARM] Switch to default sched pressure algorithm · c7207339
      Currently the Arm backend selects the alternative sched pressure algorithm.
      The issue is that this doesn't take register pressure into account, and so
      it causes significant additional spilling on Arm where there are only 14
      allocatable registers.  Building SPEC2006 showed significant codesize gains
      with the default pressure algorithm, so switch back to that.  PR77308 shows
      ~800 fewer instructions.
      
      SPECINT2006 is ~0.6% faster on Cortex-A57 together with the other DImode
      patches. Overall SPEC codesize is 1.1% smaller.
      
          gcc/
      	* config/arm/arm.c (arm_option_override): Don't override sched
      	pressure algorithm.
      
      From-SVN: r276960
      Wilco Dijkstra committed
    • re PR tree-optimization/92069 (ice in vect_analyze_scalar_cycles_1, at tree-vect-loop.c:560) · 7bd8bec5
      2019-10-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92069
      	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
      	cycles do not set vect_nested_cycle on the latch definition.
      
      	* gcc.dg/torture/pr92069.c: New testcase.
      
      From-SVN: r276959
      Richard Biener committed
    • decl.c (check_tag_decl): Use DECL_SOURCE_LOCATION. · 312f3fa4
      /cp
      2019-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (check_tag_decl): Use DECL_SOURCE_LOCATION.
      
      /testsuite
      2019-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/cpp0x/constexpr-union5.C: Test location(s) too.
      	* g++.dg/diagnostic/bitfld2.C: Likewise.
      	* g++.dg/ext/anon-struct1.C: Likewise.
      	* g++.dg/ext/anon-struct6.C: Likewise.
      	* g++.dg/ext/flexary19.C: Likewise.
      	* g++.dg/ext/flexary9.C: Likewise.
      	* g++.dg/template/error17.C: Likewise.
      
      From-SVN: r276958
      Paolo Carlini committed
    • re PR libgomp/92081 (FAIL: libgomp.fortran/target-simd.f90 execution test) · 77ef3394
      	PR libgomp/92081
      	* testsuite/libgomp.fortran/target-simd.f90: Iterate from 1 rather
      	than 0.
      
      From-SVN: r276956
      Jakub Jelinek committed
    • Fix previous commit · e67b6ba6
              * error.c: Remove debug pragma added in previous commit.
      
      From-SVN: r276955
      Tobias Burnus committed
    • re PR c++/92084 (ICE: tree check: expected tree that contains 'decl minimal'… · f1cb5c0a
      re PR c++/92084 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'compound_expr' in gimplify_scan_omp_clauses, at gimplify.c:9039)
      
      	PR c++/92084
      	* semantics.c (handle_omp_array_sections_1): Temporarily disable
      	-fstrong-eval-order also for in_reduction and task_reduction clauses.
      
      	* g++.dg/gomp/pr92084.C: New test.
      
      From-SVN: r276954
      Jakub Jelinek committed
    • [Fortran] PR 92072 – fix %C corner case · 3c917358
              PR fortran/92072
              * error.c (error_print, gfc_format_decoder): Fix %C column-
              offset handling.
      
      From-SVN: r276953
      Tobias Burnus committed
    • Add expr_callee_abi · 63d25773
      This turned out to be useful for the SVE PCS support, and is a natural
      tree-level analogue of insn_callee_abi.
      
      2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* function-abi.h (expr_callee_abi): Declare.
      	* function-abi.cc (expr_callee_abi): New function.
      
      From-SVN: r276952
      Richard Sandiford committed
    • [C] Avoid exposing internal details in aka types · 56898e43
      The current aka diagnostics can sometimes leak internal details that
      seem more likely to be distracting than useful.  E.g. on aarch64:
      
        void f (va_list *va) { *va = 1; }
      
      gives:
      
        incompatible types when assigning to type ‘va_list’ {aka ‘__va_list’} from type ‘int’
      
      where __va_list isn't something the user is expected to know about.
      A similar thing happens for C++ on the arm_neon.h-based:
      
        float x;
        int8x8_t y = x;
      
      which gives:
      
        cannot convert ‘float’ to ‘int8x8_t’ {aka ‘__Int8x8_t’} in initialization
      
      This is accurate -- and __Int8x8_t is defined by the AArch64 PCS --
      but it's not going to be meaningful to most users.
      
      This patch stops the aka code looking through typedefs if all of
      the following are true:
      
      (1) the typedef is built into the compiler or comes from a system header
      
      (2) the target of the typedef is anonymous or has a name in the
          implementation namespace
      
      (3) the target type is a tag type or vector type, which have in common that:
          (a) we print their type names if they have one
          (b) what we print for anonymous types isn't all that useful
              ("struct <anonymous>" etc. for tag types, pseudo-C "__vector(N) T"
              for vector types)
      
      The patch does this by recursively looking for the aka type, like the
      C++ frontend already does.  This in turn makes "aka" work for distinct type
      copies like __Int8x8_t on aarch64, fixing the ??? in aarch64/diag_aka_1.c.
      
      2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/c-family/
      	* c-common.h (user_facing_original_type_p): Declare.
      	* c-common.c: Include c-spellcheck.h.
      	(user_facing_original_type_p): New function.
      
      gcc/c/
      	* c-objc-common.c (useful_aka_type_p): Replace with...
      	(get_aka_type): ...this new function.  Given the original type,
      	decide which aka type to print (if any).  Only look through typedefs
      	if user_facing_original_type_p.
      	(print_type): Update accordingly.
      
      gcc/testsuite/
      	* gcc.dg/diag-aka-5.h: New test.
      	* gcc.dg/diag-aka-5a.c: Likewise.
      	* gcc.dg/diag-aka-5b.c: Likewise.
      	* gcc.target/aarch64/diag_aka_1.c (f): Expect an aka to be printed
      	for myvec.
      
      From-SVN: r276951
      Richard Sandiford committed
    • c-parser.c (c_parser_omp_all_clauses): Change bool NESTED_P argument into int NESTED... · b9424661
      c/
      	* c-parser.c (c_parser_omp_all_clauses): Change bool NESTED_P argument
      	into int NESTED, if it is 2, diagnose missing commas in between
      	clauses.
      	(c_parser_omp_context_selector): Pass 2 as last argument to
      	c_parser_omp_all_clauses.
      cp/
      	* parser.c (cp_parser_omp_all_clauses): Change bool NESTED_P argument
      	into int NESTED, if it is 2, diagnose missing commas in between
      	clauses.
      	(cp_parser_omp_context_selector): Pass 2 as last argument to
      	cp_parser_omp_all_clauses.
      testsuite/
      	* c-c++-common/gomp/declare-variant-7.c: Add tests for clauses not
      	separated by commas in simd selector trait properties.
      
      From-SVN: r276950
      Jakub Jelinek committed
    • Normalize unsigned ~[0,0] into [1,MAX]. · dede82f2
      From-SVN: r276949
      Aldy Hernandez committed
    • Fix dump message issue · 103197a1
      '}' is missed at the end.
      
      gcc/ChangeLog:
      
      2019-10-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
      
      	* tree-sra.c (dump_access): Add missing braces.
      
      From-SVN: r276948
      Xiong Hu Luo committed
    • Daily bump. · 13378504
      From-SVN: r276947
      GCC Administrator committed
  2. 13 Oct, 2019 11 commits
    • [Darwin, machopic 8/n] Back out part of PR71767 fix. · f922d945
      We applied a conservative, but fairly large, hammer to fix PR71767.
      However, ideally, we want minimise the number of symbols visible to
      ld64 and to match the cases emitted by clang (since that's what ld64
      is expecting).  Now we've improved the handling of indirections, we
      can make the indirection symbols local when they are in the regular
      non-lazy symbol pointers section.  We will continue to make any
      indirections in the data section visible (since right now we have no
      way to track if a given symbol follows a weak global).
      This change makes no difference to handling of labels for constants
      (to be revised in a future patch).
      
      There's a mechanical change to a number of tests (allowing 'l' or 'L'
      as the indirection symbol prefix).
      
      gcc/ChangeLog:
      
      2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirection_name): Rework the
      	function to emit linker-visible symbols only for indirections
      	in the data section.  Clean up the code and update comments.
      
      gcc/testsuite/ChangeLog:
      
      2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/i386/indirect-thunk-1.c: Allow 'l' or 'L' in
      	indirection label prefix, for Darwin.
      	* gcc.target/i386/indirect-thunk-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
      	* gcc.target/i386/pr32219-2.c: Likewise.
      	* gcc.target/i386/pr32219-3.c: Likewise.
      	* gcc.target/i386/pr32219-4.c: Likewise.
      	* gcc.target/i386/pr32219-7.c: Likewise.
      	* gcc.target/i386/pr32219-8.c: Likewise.
      	* gcc.target/i386/ret-thunk-14.c: Likewise.
      	* gcc.target/i386/ret-thunk-15.c: Likewise.
      	* gcc.target/i386/ret-thunk-9.c: Likewise.
      
      From-SVN: r276943
      Iain Sandoe committed
    • [Darwin, machopic 7/n] Remove code that should be dead. · 67f192f7
      This code fragment was imported from the Apple branch (it was never
      applied to mainline).  It is stated to fix up a problem sometimes
      created by reload (before that had been extended to have greater
      flexibility in assigning the pic registers).  In any event, reload
      is no longer in use for the port.
      
      gcc/ChangeLog:
      
      2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirect_data_reference): Remove
      	redundant code.
      
      From-SVN: r276942
      Iain Sandoe committed
    • re PR fortran/91513 (Non-standard terminology in error message for pointer… · 51a6a404
      re PR fortran/91513 (Non-standard terminology in error message for pointer component assignment in pure procedure)
      
      2019-10-13  Damian Rouson  <damain@sourceryinstitue.org>
      
      	PR fortran/91513
      	* resolve.c (resolve_ordinary_assign): Improved error message.
      
      2019-10-13  Damian Rouson  <damain@sourceryinstitue.org>
      
      	PR fortran/91513
      	* gfortran.dg/impure_assignment_2.f90: Update dg-error regex.
      
      From-SVN: r276941
      Damian Rouson committed
    • re PR fortran/90297 (gcc/fortran/resolve.c: 2 * possibly redundant code ?) · 5284fba5
      2019-10-13  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90297
      	* resolve.c (resolve_typebound_function): Remove code with no
      	functional effect.
      
      From-SVN: r276940
      Steven G. Kargl committed
    • [PATCH] teach gengtype about 'mutable' · ad671098
      
      https://gcc.gnu.org/ml/gcc-patches/2019-10/msg00942.html
      
      In constifying some more of line-map I discovered gengtype didn't know mutable. Added thusly.
      	* gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
      
      From-SVN: r276939
      Nathan Sidwell committed
    • re PR fortran/92017 (ICE in gfc_expr_attr, at fortran/primary.c:2674) · 19400cb9
      2019-10-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92017
      	* expr.c (simplify_parameter_variable): Set the character length
      	of the result expression from the original expression if
      	necessary.
      
      2019-10-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92017
      	* gfortran.dg/minmaxloc_14.f90: New test.
      
      From-SVN: r276938
      Thomas Koenig committed
    • Remove dg-add-options c99_runtime · 855c21cb
      	gcc:
      	* doc/sourcebuild.texi (Test Directives, Add Options): Remove
      	c99_runtime.
      
      	gcc/testsuite:
      	* lib/target-supports.exp (add_options_for_c99_runtime): Remove.
      	(check_effective_target_c99_runtime): Remove call to
      	add_options_for_c99_runtime.
      
      	* gcc.dg/builtins-18.c: Remove dg-add-options c99_runtime.
      	* gcc.dg/builtins-20.c: Likewise.
      	* gcc.dg/builtins-53.c: Likewise.
      	* gcc.dg/builtins-55.c: Likewise.
      	* gcc.dg/builtins-67.c: Likewise.
      	* gcc.dg/c99-tgmath-1.c: Likewise.
      	* gcc.dg/c99-tgmath-2.c: Likewise.
      	* gcc.dg/c99-tgmath-3.c: Likewise.
      	* gcc.dg/c99-tgmath-4.c: Likewise.
      	* gcc.dg/ipa/inline-8.c: Likewise.
      	* gcc.dg/ipa/ipa-icf-5.c: Likewise.
      	* gcc.dg/ipa/ipa-icf-7.c: Likewise.
      	* gcc.dg/nextafter-2.c: Likewise.
      	* gcc.dg/pr42427.c: Likewise.
      	* gcc.dg/pr78965.c: Likewise.
      	* gcc.dg/single-precision-constant.c: Likewise.
      	* gcc.dg/torture/builtin-convert-1.c: Likewise.
      	* gcc.dg/torture/builtin-convert-2.c: Likewise.
      	* gcc.dg/torture/builtin-convert-3.c: Likewise.
      	* gcc.dg/torture/builtin-convert-4.c: Likewise.
      	* gcc.dg/torture/builtin-fp-int-inexact.c: Likewise.
      	* gcc.dg/torture/builtin-fp-int-inexact-c2x.c: Likewise.
      	* gcc.dg/torture/builtin-integral-1.c: Likewise.
      	* gcc.dg/torture/builtin-power-1.c: Likewise.
      	* gcc.dg/tree-ssa/copy-sign-1.c: Likewise.
      	* gcc.dg/tree-ssa/minmax-2.c: Likewise.
      	* gcc.dg/tree-ssa/mult-abs-2.c: Likewise.
      	* gcc.target/i386/387-builtin-fp-int-inexact.c: Likewise.
      	* gcc.target/i386/387-rint-inline-1.c: Likewise.
      	* gcc.target/i386/387-rint-inline-2.c: Likewise.
      	* gcc.target/i386/conversion.c: Likewise.
      	* gcc.target/i386/pr47312.c: Likewise.
      	* gcc.target/i386/sse2-builtin-fp-int-inexact.c: Likewise.
      	* gcc.target/i386/sse2-rint-inline-1.c: Likewise.
      	* gcc.target/i386/sse2-rint-inline-2.c: Likewise.
      	* gcc.target/i386/sse4_1-builtin-fp-int-inexact.c: Likewise.
      	* gcc.target/i386/sse4_1-rint-inline.c: Likewise.
      
      From-SVN: r276937
      Rainer Orth committed
    • lto-common.c (read_cgraph_and_symbols): Grow ggc memory use after summary streaming. · 7cc47709
      	* lto-common.c (read_cgraph_and_symbols): Grow ggc memory use after
      	summary streaming.
      
      From-SVN: r276936
      Jan Hubicka committed
    • * lto.c (lto_wpa_write_files): Do not update bodies of clones. · f8cf94cd
      From-SVN: r276935
      Jan Hubicka committed
    • lto-streamer-out.c (collect_block_tree_leafs): Renumber statements so… · af0d0f50
      lto-streamer-out.c (collect_block_tree_leafs): Renumber statements so non-virutal are before virutals.
      
      	* lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
      	so non-virutal are before virutals.
      	(output_function): Avoid body modifications.
      
      From-SVN: r276934
      Jan Hubicka committed
    • Daily bump. · cb6055a8
      From-SVN: r276933
      GCC Administrator committed
  3. 12 Oct, 2019 13 commits
    • pa.c (pa_output_call): Load descriptor address to register %r22. · 70238876
      	* config/pa/pa.c (pa_output_call): Load descriptor address to register
      	%r22.  Load function address before global pointer.
      	(pa_attr_length_indirect_call): Adjust length of inline versions of
      	$$dyncall.
      	(pa_output_indirect_call): Remove fast inline version of $$dyncall
      	before normal cases.  Update inline $$dyncall sequences to preserve
      	function descriptor address in register %r22.
      	(TRAMPOLINE_CODE_SIZE): Adjust.
      	(pa_asm_trampoline_template): Revise 32-bit trampoline.  Don't assume
      	register %r22 contains trampoline address.
      	(pa_trampoline_init): Adjust offsets.
      	(pa_trampoline_adjust_address): Likewise.
      	* config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
      
      From-SVN: r276928
      John David Anglin committed
    • [Darwin, machopic 6/n] Fix for 67183 · c89d7d19
      When we're using the LLVM-based assembler (the default on modern Darwin)
      the ordering of stubs and non-lazy symbol pointers is important.
      
      Interleaving the output (current GCC behaviour) leads to crashes which
      prevents us from building code with symbol stubs.
      
      To resolve this, we order the output of stubs and symbol indirections:
      
       1. Any indirections in the data section
       2. Symbol stubs.
       3. Non-lazy symbol pointers.
      
      At present, we still emit LTO sections after these.
      
      gcc/ChangeLog:
      
      2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR target/67183
      	* config/darwin.c (machopic_indirection): New field to flag
      	non-lazy-symbol-pointers in the data section.
      	(machopic_indirection_name): Compute if an indirection should
      	appear in the data section.
      	(machopic_output_data_section_indirection): New callback split
      	from machopic_output_indirection.
      	(machopic_output_stub_indirection): Likewise.
      	(machopic_output_indirection): Retain the code for non-lazy
      	symbol pointers in their regular section.
      	(machopic_finish): Use the new callbacks to order the indirection
      	output.
      
      From-SVN: r276926
      Iain Sandoe committed
    • lib2funcs.S (__gcc_plt_call): Load branch target to %r21. · 1aea083d
      	* config/pa/lib2funcs.S (__gcc_plt_call): Load branch target to %r21.
      	Load PIC register after branch target.  Fix white space.
      	* config/pa/milli64.S ($$dyncall): Separate LINUX and non LINUX
      	implementations.  Load PIC register after branch target.  Don't
      	clobber function pointer when it points to function descriptor.
      	Use nullification instead of branch in LINUX implementation.
      
      From-SVN: r276925
      John David Anglin committed
    • [Darwin, machopic 5/n] Make machopic_finish() static. · a0f08ece
      It's only called from darwin.c.
      
      gcc/ChangeLog:
      
      2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin-protos.h (machopic_finish): Delete.
      	* config/darwin.c (machopic_finish): Make static.
      
      From-SVN: r276924
      Iain Sandoe committed
    • [Darwin] Suppress emitting empty ctor/dtor sections. · 8103659e
      Older versions of GCC emit empty .constructor/.destructor sections
      whenever building for C++. In fact, these sections are only used for
      kernel mode code - so don't emit them unless that's what we're
      building.
      
      gcc/ChangeLog:
      
      2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
      	sections when building kernel extension code.
      
      From-SVN: r276923
      Iain Sandoe committed
    • Fix the ChangeLog for my previous commit · f8d234a3
      Fixes: 66ce32bb2a8 ("Fix the ChangeLog for my previous commit")
      
      From-SVN: r276922
      Palmer Dabbelt committed
    • The inline keyword is supported in all new C standards · 9189d732
      The documentation used to indicate that the inline keyword was only
      supported by c99 and c11, whereas in fact it is supported by c99 and all
      newer standards.
      
      gcc/ChangeLog
      
      2019-10-12  Palmer Dabbelt  <palmer@sifive.com>
      
              * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
              later standard."
      
      From-SVN: r276921
      Palmer Dabbelt committed
    • pa.c (pa_option_override): Remove trailing comma from warning. · b6941da8
      	* gcc/config/pa/pa.c (pa_option_override): Remove trailing comma
      	from warning.
      
      From-SVN: r276920
      John David Anglin committed
    • re PR ada/91995 (gnat miscompilation and bootstrap failure on m68k-linux) · 9aa357c7
      	PR ada/91995
      	* sem_ch8.adb (Chain_Use_Clause): Remove second argument in calls
      	to Defining_Entity.
      	* sem_elab.adb (Find_Unit_Entity): Likewise.  Deal with N_Subunit
      	here in lieu of in Defining_Entity.
      	* sem_util.ads (Defining_Entity): Remove 2nd and 3th parameters.
      	* sem_util.adb (Defining_Entity): Remove 2nd and 3th parameters,
      	and adjust accordingly.  Deal with N_Compilation_Unit.
      
      From-SVN: r276916
      Eric Botcazou committed
    • re PR middle-end/92063 (ICE in operation_could_trap_p, at tree-eh.c:2528 when… · 853ce7c0
      re PR middle-end/92063 (ICE in operation_could_trap_p, at tree-eh.c:2528 when compiling Python's Python/_warnings.c)
      
      	PR middle-end/92063
      	* tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
      	<case VEC_COND_EXPR>: Return false with *handled = false.
      	(tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
      	recursing on the first operand.
      	* fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
      	instead of tree_could_trap_p.
      	* tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
      
      	* gcc.c-torture/compile/pr92063.c: New test.
      
      From-SVN: r276915
      Jakub Jelinek committed
    • c-common.h (c_omp_mark_declare_variant, [...]): Declare. · 20de9568
      c-family/
      	* c-common.h (c_omp_mark_declare_variant,
      	c_omp_context_selector_matches): Declare.
      	* c-omp.c: Include attribs.h, gimplify.h, cgraph.h, symbol-summary.h
      	and hsa-common.h.
      	(c_omp_get_context_selector): Support second argument NULL.
      	(c_omp_mark_declare_variant, c_omp_context_selector_matches): New
      	functions.
      	* c-attribs.c (c_common_attribute_table): Remove "omp declare variant"
      	attribute, add "omp declare variant base" and
      	"omp declare variant variant" attributes.
      c/
      	* c-parser.c (c_parser_omp_context_selector): Improve error recovery.
      	For simd properties, put them directly into TREE_VALUE.
      	(c_finish_omp_declare_variant): Call c_omp_mark_declare_variant.
      	If c_omp_context_selector_matches is 0, don't add attribute, otherwise
      	add "omp declare variant base" attribute rather than
      	"omp declare variant".
      cp/
      	* parser.c (cp_parser_omp_context_selector): Improve error recovery.
      	For simd properties, put them directly into TREE_VALUE.
      	(cp_finish_omp_declare_variant): Add "omp declare variant base"
      	attribute rather than "omp declare variant".
      testsuite/
      	* c-c++-common/gomp/declare-variant-2.c: Adjust for error recovery
      	improvements.  Add new tests.
      	* c-c++-common/gomp/declare-variant-4.c: New test.
      	* c-c++-common/gomp/declare-variant-5.c: New test.
      	* c-c++-common/gomp/declare-variant-6.c: New test.
      	* c-c++-common/gomp/declare-variant-7.c: New test.
      
      From-SVN: r276914
      Jakub Jelinek committed
    • compiler: mangle dots in pkgpath · 47370f05
          
          We need to mangle dots to avoid problems with -fgo-pkgpath=a.0.
          That will confuse the name mangling, which assumes that names
          entering the mangling cannot contain arbitrary dot characters.
          We don't need to mangle other characters; go_encode_id will handle them.
          
          Fixes golang/go#33871
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/200838
      
      From-SVN: r276913
      Ian Lance Taylor committed
    • Daily bump. · 36cefd37
      From-SVN: r276912
      GCC Administrator committed
  4. 11 Oct, 2019 1 commit
    • Support decimal floating-point constants in C2x. · 175a85b2
      ISO C2x adds decimal floating point as an optional standard feature.
      This patch accordingly makes GCC accept DFP constants (DF, DD, DL, df,
      dd, dl suffixes) in strict C2X mode, with a pedwarn-if-pedantic for
      older standards and a warning with -Wc11-c2x-compat even in C2x mode
      (which in turn requires -Wc11-c2x-compat to be newly passed through to
      libcpp).
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc/c-family:
      	* c.opt (Wc11-c2x-compat): Add CPP(cpp_warn_c11_c2x_compat)
      	CppReason(CPP_W_C11_C2X_COMPAT).
      
      gcc/testsuite:
      	* gcc.dg/dfp/c11-constants-1.c, gcc.dg/dfp/c11-constants-2.c,
      	gcc.dg/dfp/c2x-constants-1.c, gcc.dg/dfp/c2x-constants-2.c: New
      	tests.
      	* gcc.dg/dfp/constants-pedantic.c: Use -std=gnu17 explicitly.
      	Update expected diagnostics.
      
      libcpp:
      	* include/cpplib.h (struct cpp_options): Add dfp_constants and
      	cpp_warn_c11_c2x_compat.
      	(enum cpp_warning_reason): Add CPP_W_C11_C2X_COMPAT.
      	* init.c (struct lang_flags): Add dfp_constants.
      	(lang_defaults): Set dfp_constants to 1 for GNUC2X and STDC2X and
      	0 for other languages.
      	(cpp_set_lang): Set dfp_constants from language.
      	(cpp_create_reader): Set cpp_warn_c11_c2x_compat to -1.
      	* expr.c (interpret_float_suffix): Mention DFP constants as C2X in
      	comment.
      	(cpp_classify_number): Do not diagnose DFP constants for languages
      	setting dfp_constants, unless cpp_warn_c11_c2x_compat.
      
      From-SVN: r276908
      Joseph Myers committed