gcc.git
7 years agoHandling ARMv8-M Security Extension's cmse_nonsecure_call attribute
Andre Vieira [Fri, 2 Dec 2016 15:30:37 +0000 (15:30 +0000)]
Handling ARMv8-M Security Extension's cmse_nonsecure_call attribute

    gcc/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
        Thomas Preud'homme  <thomas.preudhomme@arm.com>

* config/arm/arm.c (gimplify.h): New include.
(arm_handle_cmse_nonsecure_call): New.
(arm_attribute_table): Added cmse_nonsecure_call.
(arm_comp_type_attributes): Deny compatibility of function types
with without the cmse_nonsecure_call attribute.
* doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.

    gcc/testsuite/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
        Thomas Preud'homme  <thomas.preudhomme@arm.com>

* gcc.target/arm/cmse/cmse-3.c: Add tests.
* gcc.target/arm/cmse/cmse-4.c: Add tests.
* gcc.target/arm/cmse/cmse-15.c: New.

Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243191

7 years agoARMv8-M Security Extension's cmse_nonsecure_entry: clear registers
Andre Vieira [Fri, 2 Dec 2016 15:29:03 +0000 (15:29 +0000)]
ARMv8-M Security Extension's cmse_nonsecure_entry: clear registers

    gcc/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme  <thomas.preudhomme@arm.com>

* config/arm/arm.c (output_return_instruction): Clear
registers.
(thumb2_expand_return): Likewise.
(thumb1_expand_epilogue): Likewise.
(thumb_exit): Likewise.
(arm_expand_epilogue): Likewise.
(cmse_nonsecure_entry_clear_before_return): New.
(comp_not_to_clear_mask_str_un): New.
(compute_not_to_clear_mask): New.
* config/arm/thumb1.md (*epilogue_insns): Change length attribute.
* config/arm/thumb2.md (*thumb2_return): Disable for
cmse_nonsecure_entry functions.
(*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for
cmse_nonsecure_entry functions.

    gcc/testsuite/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme  <thomas.preudhomme@arm.com>

* gcc.target/arm/cmse/cmse.exp: Test different multilibs separate.
* gcc.target/arm/cmse/struct-1.c: New.
* gcc.target/arm/cmse/bitfield-1.c: New.
* gcc.target/arm/cmse/bitfield-2.c: New.
* gcc.target/arm/cmse/bitfield-3.c: New.
* gcc.target/arm/cmse/baseline/cmse-2.c: New.
* gcc.target/arm/cmse/baseline/softfp.c: New.
* gcc.target/arm/cmse/mainline/soft/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/hard/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/softfp/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: New.

Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243190

7 years agoARMv8-M Security Extension's cmse_nonsecure_entry: __acle_se label and bxns
Andre Vieira [Fri, 2 Dec 2016 15:27:03 +0000 (15:27 +0000)]
ARMv8-M Security Extension's cmse_nonsecure_entry: __acle_se label and bxns
return

    gcc/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Thomas Preud'homme  <thomas.preudhomme@arm.com>

* config/arm/arm.c (use_return_insn): Change to return with  bxns
when cmse_nonsecure_entry.
(output_return_instruction): Likewise.
(arm_output_function_prologue): Likewise.
(thumb_pop): Likewise.
(thumb_exit): Likewise.
(thumb2_expand_return): Assert that entry functions always have simple
returns.
(arm_expand_epilogue): Handle entry functions.
(arm_function_ok_for_sibcall): Disable sibcall for entry functions.
(arm_asm_declare_function_name): New.
* config/arm/arm-protos.h (arm_asm_declare_function_name): New.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to
use arm_asm_declare_function_name.

    gcc/testsuite/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme  <thomas.preudhomme@arm.com>

* gcc.target/arm/cmse/cmse-4.c: New.
* gcc.target/arm/cmse/cmse-9.c: New.
* gcc.target/arm/cmse/cmse-10.c: New.

Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243189

7 years agoHandling ARMv8-M Security Extension's cmse_nonsecure_entry attribute
Andre Vieira [Fri, 2 Dec 2016 15:24:40 +0000 (15:24 +0000)]
Handling ARMv8-M Security Extension's cmse_nonsecure_entry attribute

    gcc/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Thomas Preud'homme  <thomas.preudhomme@arm.com>

* config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New.
(arm_attribute_table): Added cmse_nonsecure_entry
(arm_compute_func_type): Handle cmse_nonsecure_entry.
(cmse_func_args_or_return_in_stack): New.
(arm_handle_cmse_nonsecure_entry): New.
* config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define.
(IS_CMSE_ENTRY): Likewise.
* doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.

    gcc/testsuite/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Thomas Preud'homme  <thomas.preudhomme@arm.com>

* gcc.target/arm/cmse/cmse-3.c: New.

Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243188

7 years agoAdd support for ARMv8-M's Secure Extensions flag and intrinsics
Andre Vieira [Fri, 2 Dec 2016 15:22:43 +0000 (15:22 +0000)]
Add support for ARMv8-M's Secure Extensions flag and intrinsics

    gcc/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
        Thomas Preud'homme  <thomas.preudhomme@arm.com>

* config.gcc (extra_headers): Added arm_cmse.h.
* config/arm/arm-arches.def (ARM_ARCH):
(armv8-m): Add FL2_CMSE.
(armv8-m.main): Likewise.
(armv8-m.main+dsp): Likewise.
* config/arm/arm-c.c
(arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro.
* config/arm/arm-flags.h: Define FL2_CMSE.
* config/arm.c (arm_arch_cmse): New.
(arm_option_override): New error for unsupported cmse target.
* config/arm/arm.h (arm_arch_cmse): New.
* config/arm/arm.opt (mcmse): New.
* config/arm/arm_cmse.h: New file.
* doc/invoke.texi (ARM Options): Add -mcmse.
* doc/sourcebuild.texi (arm_cmse_ok): Add new effective target.
* doc/extend.texi: Add ARMv8-M Security Extensions entry.

    gcc/testsuite/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
        Thomas Preud'homme  <thomas.preudhomme@arm.com>

* gcc.target/arm/cmse/cmse.exp: New.
* gcc.target/arm/cmse/cmse-1.c: New.
* gcc.target/arm/cmse/cmse-12.c: New.
* lib/target-supports.exp
(check_effective_target_arm_cmse_ok): New.

    libgcc/ChangeLog:
    2016-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Thomas Preud'homme  <thomas.preudhomme@arm.com>

* config/arm/t-arm (HAVE_CMSE): New.
* config/arm/cmse.c: New.

Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243187

7 years agoavr.c: Fix coding rule glitches.
Georg-Johann Lay [Fri, 2 Dec 2016 15:08:27 +0000 (15:08 +0000)]
avr.c: Fix coding rule glitches.

* config/avr/avr.c: Fix coding rule glitches.

From-SVN: r243186

7 years agoc-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA...
Cesar Philippidis [Fri, 2 Dec 2016 14:54:39 +0000 (06:54 -0800)]
c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA...

gcc/c/
* c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
EXIT_DATA,WAIT} are not used in compound statements.
(c_parser_oacc_enter_exit_data): Update diagnostics.

gcc/cp/
* parser.c (cp_parser_oacc_enter_exit_data): Update diagnostics.
(cp_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
EXIT_DATA,WAIT} are not used in compound statements.

gcc/testsuite/
* c-c++-common/goacc/data-2.c: Adjust test.
* c-c++-common/goacc/executeables-1.c: New test.
* g++.dg/goacc/data-1.C: Adjust test.

Co-Authored-By: James Norris <jnorris@codesourcery.com>
From-SVN: r243185

7 years ago[hsa] Exclude parallel outlines from hsa_callable_functions_p
Martin Jambor [Fri, 2 Dec 2016 14:42:15 +0000 (15:42 +0100)]
[hsa] Exclude parallel outlines from hsa_callable_functions_p

2016-12-09  Martin Jambor  <mjambor@suse.cz>

* hsa.c (hsa_callable_function_p): Return false for artificial
functions.

From-SVN: r243184

7 years ago[Patch 2/2 PR78561] Recalculate constant pool size before emitting it
James Greenhalgh [Fri, 2 Dec 2016 14:31:10 +0000 (14:31 +0000)]
[Patch 2/2 PR78561] Recalculate constant pool size before emitting it

gcc/

PR rtl-optimization/78561
* varasm.c (recompute_pool_offsets): New.
(output_constant_pool): Call it.

gcc/testsuite/

PR rtl-optimization/78561
* gcc.target/aarch64/pr78561.c: New.

From-SVN: r243183

7 years ago[Patch 1/2 PR78561] Rename get_pool_size to get_pool_size_upper_bound
James Greenhalgh [Fri, 2 Dec 2016 14:29:35 +0000 (14:29 +0000)]
[Patch 1/2 PR78561] Rename get_pool_size to get_pool_size_upper_bound

gcc/

PR rtl-optimization/78561
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
get_pool_size to get_pool_size_upper_bound.
(rs6000_stack_info): Likewise.
(rs6000_emit_prologue): Likewise.
(rs6000_elf_declare_function_name): Likewise.
(rs6000_set_up_by_prologue): Likewise.
(rs6000_can_eliminate): Likewise, reformat spaces to tabs.
* output.h (get_pool_size): Rename to...
(get_pool_size_upper_bound): ...This.
* varasm.c (get_pool_size): Rename to...
(get_pool_size_upper_bound): ...This.

From-SVN: r243182

7 years ago[RTEMS] Use spin lock for pool management
Sebastian Huber [Fri, 2 Dec 2016 14:13:12 +0000 (14:13 +0000)]
[RTEMS] Use spin lock for pool management

libgomp/

* libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
pthread_spinlock_t instead of gomp_mutex_t lock.
(gomp_get_thread_pool): Likewise.
(gomp_release_thread_pool): Likewise.
* libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
Likewise.

From-SVN: r243181

7 years agomatch.pd: Add new pattern: (cond (cmp (convert?
Bin Cheng [Fri, 2 Dec 2016 14:13:11 +0000 (14:13 +0000)]
match.pd: Add new pattern: (cond (cmp (convert?

* match.pd: Add new pattern:
(cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2).
gcc/testsuite
* gcc.dg/fold-bopcond-1.c: New test.
* gcc.dg/fold-bopcond-2.c: New test.

From-SVN: r243180

7 years ago[RTEMS] Fix libgomp for nthreads == 1
Sebastian Huber [Fri, 2 Dec 2016 14:10:33 +0000 (14:10 +0000)]
[RTEMS] Fix libgomp for nthreads == 1

libgomp/

        * config/rtems/pool.h (gomp_get_thread_pool): Return proper
        thread pool in case nthreads == 1.

From-SVN: r243179

7 years agocall.c (add_function_candidate): Also exclude inherited ctors that take a type refere...
Jason Merrill [Fri, 2 Dec 2016 13:58:32 +0000 (08:58 -0500)]
call.c (add_function_candidate): Also exclude inherited ctors that take a type reference-related to the derived...

* call.c (add_function_candidate): Also exclude inherited ctors
that take a type reference-related to the derived class.

From-SVN: r243178

7 years agodiagnostic.c (diagnostic_report_diagnostic): Remove extraneous braces.
Nathan Sidwell [Fri, 2 Dec 2016 13:14:01 +0000 (13:14 +0000)]
diagnostic.c (diagnostic_report_diagnostic): Remove extraneous braces.

* diagnostic.c (diagnostic_report_diagnostic): Remove extraneous
braces.

From-SVN: r243177

7 years agoS/390: Fix setmem-long test.
Dominik Vogt [Fri, 2 Dec 2016 12:32:16 +0000 (12:32 +0000)]
S/390: Fix setmem-long test.

Adding a " in the scan-assembler pattern is necessary because of a
recent change in print-rtl.c.

gcc/testsuite/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/md/setmem_long-1.c: Fix test.

From-SVN: r243176

7 years agore PR middle-end/78328 (wrong wording for unbounded alloc case in -Walloca-larger...
Aldy Hernandez [Fri, 2 Dec 2016 12:20:42 +0000 (12:20 +0000)]
re PR middle-end/78328 (wrong wording for unbounded alloc case in -Walloca-larger-than note)

PR middle-end/78328
* gimple-ssa-warn-alloca.c (alloca_call_type): Handle
VR_ANTI_RANGE.

From-SVN: r243174

7 years agoS/390: Fix RTL sharing when generating reg note.
Andreas Krebbel [Fri, 2 Dec 2016 11:52:58 +0000 (11:52 +0000)]
S/390: Fix RTL sharing when generating reg note.

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing
problem.

From-SVN: r243173

7 years agoavr-arch.h (avr_mcu_t): Remove field.
Georg-Johann Lay [Fri, 2 Dec 2016 09:12:22 +0000 (09:12 +0000)]
avr-arch.h (avr_mcu_t): Remove field.

* config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field.
* config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument.
* config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash.
* config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use
avr_mcu_types.flash_size to compute default value.
* config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use
mcu->flash_size to compute value for spec.

From-SVN: r243171

7 years agoinvoke.texi (AVR Options): Point to absdata.
Georg-Johann Lay [Fri, 2 Dec 2016 09:05:56 +0000 (09:05 +0000)]
invoke.texi (AVR Options): Point to absdata.

* doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata.
* doc/extend.texi (AVR Variable Attributes) [progmem]: Hint
about linker description to avoid progmem altogether.
[absdata]: Point to -mabsdata option.

From-SVN: r243170

7 years agore PR rtl-optimization/78547 (ICE: in loc_cmp, at var-tracking.c:3417 with -Os -g...
Jakub Jelinek [Fri, 2 Dec 2016 08:44:42 +0000 (09:44 +0100)]
re PR rtl-optimization/78547 (ICE: in loc_cmp, at var-tracking.c:3417 with -Os -g -mstringop-strategy=libcall -freorder-blocks-algorithm=simple)

PR rtl-optimization/78547
* emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and
DECL_INCOMING_RTL is not shared.
* config/i386/i386.c (convert_scalars_to_vectors): If any
insns have been converted, adjust all parameter's DEC_RTL and
DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have
TImode.

* gcc.dg/pr78547.c: New test.

From-SVN: r243165

7 years agore PR rtl-optimization/78575 (ICE: in trunc_int_for_mode, at explow.c:55 with -O2 -g)
Jakub Jelinek [Fri, 2 Dec 2016 08:42:12 +0000 (09:42 +0100)]
re PR rtl-optimization/78575 (ICE: in trunc_int_for_mode, at explow.c:55 with -O2 -g)

PR rtl-optimization/78575
* config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use
DF infrastructure to wrap all V1TImode reg uses into TImode subreg
if not already wrapped in a subreg.  Make sure df_insn_rescan does not
affect further iterations.

* gcc.dg/pr78575.c: New test.

From-SVN: r243164

7 years agoFix runtime error: left shift of negative value (PR
Martin Liska [Fri, 2 Dec 2016 08:36:01 +0000 (09:36 +0100)]
Fix runtime error: left shift of negative value (PR

PR ipa/78555
* sreal.c (sreal::to_int): Make absolute value before shifting.
(sreal::operator/): Likewise.
(sreal_verify_negative_division): New test.
(void sreal_c_tests): Call the new test.
* sreal.h (sreal::normalize_up): Use new SREAL_ABS and
SREAL_SIGN macros.
(sreal::normalize_down): Likewise.

From-SVN: r243163

7 years agoDo not simplify "(and (reg) (const bit)" to if_then_else.
Dominik Vogt [Fri, 2 Dec 2016 08:32:40 +0000 (08:32 +0000)]
Do not simplify "(and (reg) (const bit)" to if_then_else.

combine_simplify_rtx() tries to replace rtx expressions with just two
possible values with an experession that uses if_then_else:

  (if_then_else (condition) (value1) (value2))

If the original expression is e.g.

  (and (reg) (const_int 2))

where the constant is the mask for a single bit, the replacement results
in a more complex expression than before:

  (if_then_else (ne (zero_extract (reg) (1) (31))) (2) (0))

Similar replacements are done for

  (signextend (and ...))
  (zeroextend (and ...))

Suppress the replacement this special case in if_then_else_cond().

gcc/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* combine.c (combine_simplify_rtx):  Suppress replacement of
"(and (reg) (const_int bit))" with "if_then_else".

From-SVN: r243162

7 years agoS/390: Fix litpool-r3-1.c.
Dominik Vogt [Fri, 2 Dec 2016 08:31:09 +0000 (08:31 +0000)]
S/390: Fix litpool-r3-1.c.

gcc/testsuite/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/litpool-r3-1.c: Fix label number test.

From-SVN: r243161

7 years agoPR target/77822: S390: Validate argument range of {zero,sign}_extract.
Dominik Vogt [Fri, 2 Dec 2016 08:30:16 +0000 (08:30 +0000)]
PR target/77822: S390: Validate argument range of {zero,sign}_extract.

With some undefined code, combine generates patterns where the arguments to
*_extract are out of range, e.b. a negative bit position.  If the s390 backend
accepts these, they lead to not just undefined behaviour but invalid assembly
instructions (argument out of the allowed range).  So this patch makes sure
that the rtl expressions with out of range arguments are rejected.

gcc/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR target/77822
* config/s390/s390.md ("extzv")
("*extzv<mode><clobbercc_or_nocc>")
("*extzvdi<clobbercc_or_nocc>_lshiftrt")
("*<risbg_n>_ior_and_sr_ze")
("*extract1bitdi<clobbercc_or_nocc>")
("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift")
("*insv_rnsbg_srl", "*insv<mode>_mem_reg")
("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE
to validate the arguments of zero_extract and sign_extract.

gcc/testsuite/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR target/77822
* gcc.target/s390/s390.exp: Support .C tests.
* gcc.target/s390/pr77822-2.c: New test.
* gcc.target/s390/pr77822-1.C: New test.

From-SVN: r243160

7 years agoPR target/77822: Add helper macro EXTRACT_ARGS_IN_RANGE to system.h.
Dominik Vogt [Fri, 2 Dec 2016 08:26:19 +0000 (08:26 +0000)]
PR target/77822: Add helper macro EXTRACT_ARGS_IN_RANGE to system.h.

The macro can be used to validate the arguments of zero_extract and
sign_extract to fix this problem:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77822

gcc/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR target/77822
* rtl.h (EXTRACT_ARGS_IN_RANGE): New.

From-SVN: r243159

7 years agoS/390: Define vectorization_cost hook
Andreas Krebbel [Fri, 2 Dec 2016 08:25:27 +0000 (08:25 +0000)]
S/390: Define vectorization_cost hook

Define the vectorization_cost hook.  The only change right now
compared to the default implementation is the reduced costs for
unaligned loads/stores.  This is supposed to prevent unnecessary loop
peeling performed to reach better alignments.

Further tuning of this hook is required.

-Andreas-

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New
function.
(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target
macro.

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/vector/vec-nopeel-1.c: New test.

From-SVN: r243158

7 years agoS/390: Add vector pack/unpack patterns.
Andreas Krebbel [Fri, 2 Dec 2016 08:24:27 +0000 (08:24 +0000)]
S/390: Add vector pack/unpack patterns.

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vector.md (vec_halfhalf): New mode iterator.
("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>")
("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi")
("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi")
("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi")
("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi")
("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si")
("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si")
("vec_unpacku_lo_v4si"): New pattern definitions.
* config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to
vector.md.

From-SVN: r243157

7 years agoAdd testcase missing in last commit.
Andreas Krebbel [Fri, 2 Dec 2016 08:23:19 +0000 (08:23 +0000)]
Add testcase missing in last commit.

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/zvector/vec-cmp-2.c: New test.

From-SVN: r243156

7 years agoS/390: Merge compare of compare results
Andreas Krebbel [Fri, 2 Dec 2016 08:22:34 +0000 (08:22 +0000)]
S/390: Merge compare of compare results

With this patch EQ and NE compares on CC mode reader patterns are
folded.  This allows using the result of the vec_all_* and vec_any_*
builtins directly in a conditional jump instruction as in the attached
testcase.

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-protos.h (s390_reverse_condition): New
prototype.
* config/s390/s390.c (s390_canonicalize_comparison): Fold compares
of CC mode values.
(s390_reverse_condition): New function.
* config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define
target macros.

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/zvector/vec-cmp-2.c: New test.

From-SVN: r243155

7 years agoS/390: Fix vector all/any cc modes.
Andreas Krebbel [Fri, 2 Dec 2016 08:21:43 +0000 (08:21 +0000)]
S/390: Fix vector all/any cc modes.

This fixes a problem with the vector compares producing CC mode
results.

The instructions produce condition code modes which can be either
interpreted to check an ALL elements or an ANY element result.  As the
modes where used before they could not be inverted by the middle-end
by inverting the comparison code (e.g. eq to ne).  The result usually
was just wrong.

In fact inverting a comparison code on an CCVALL mode would require to
also change the mode to CCVANY but this cannot be done easily in the
middle-end.  With this patch the meaning of an ALL cc mode only refers
to the not-inverted comparison code (e.g. eq, gt, ge).  With that
change inverting the comparison code matches a not operation on the
condition code mask again.

Bootstrapped and regression tested on s390 and s390x.

Bye,

-Andreas-

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/vector/vec-scalar-cmp-1.c: Fix and harden the
pattern checks.
* gcc.target/s390/zvector/vec-cmp-1.c: New test.

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
(CCVHUANY): Remove modes.
(CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
documentation.
* config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
(s390_expand_vec_compare_scalar): Pick one of the cc consumer
modes.
(s390_branch_condition_mask): Adjust to use the new cc consumer
modes.  The new modes allow for proper reversal in the middle-end.
(s390_expand_vec_compare_cc): Determine the proper cc producer and
consumer modes for a comparison.
* config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
throughout the file.
* config/s390/vx-builtins.md: Likewise.

From-SVN: r243154

7 years agoAdd support for ASan odr_indicator.
Maxim Ostapenko [Fri, 2 Dec 2016 07:39:27 +0000 (07:39 +0000)]
Add support for ASan odr_indicator.

config/

        * bootstrap-asan.mk: Replace LSAN_OPTIONS=detect_leaks=0 with
        ASAN_OPTIONS=detect_leaks=0:use_odr_indicator=1.

gcc/

        * asan.c (asan_global_struct): Refactor.
        (create_odr_indicator): New function.
        (asan_needs_odr_indicator_p): Likewise.
        (is_odr_indicator): Likewise.
        (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
        constructor.
        (asan_protect_global): Do not protect odr indicators.

gcc/c-family/

* c-attribs.c (asan odr indicator): New attribute.
(handle_asan_odr_indicator_attribute): New function.

gcc/testsuite/

        * c-c++-common/asan/no-redundant-odr-indicators-1.c: New test.

From-SVN: r243153

7 years ago* tree-ssa-threadedge.c
Jeff Law [Fri, 2 Dec 2016 06:40:57 +0000 (23:40 -0700)]
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Avoid temporary
propagation of operands if there are no operands.

From-SVN: r243152

7 years agoDaily bump.
GCC Administrator [Fri, 2 Dec 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r243150

7 years agore PR tree-optimization/78586 (Wrong code caused by printf-return-value)
Jakub Jelinek [Thu, 1 Dec 2016 23:15:57 +0000 (00:15 +0100)]
re PR tree-optimization/78586 (Wrong code caused by printf-return-value)

PR tree-optimization/78586
* gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR,
CONVERT_EXPR or COMPONENT_REF here.  Formatting fix.  For
SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's
type is INTEGER_TYPE or POINTER_TYPE.

From-SVN: r243145

7 years agore PR fortran/77505 (Negative character length not treated as LEN=0)
Elizebeth Punnoose [Thu, 1 Dec 2016 23:11:35 +0000 (23:11 +0000)]
re PR fortran/77505 (Negative character length not treated as LEN=0)

2016-12-01  Elizebeth Punnoose  <elizebeth.punnoose@hpe.com>

PR fortran/77505
* trans-array.c (trans_array_constructor): Treat negative character
length as LEN = 0.

2016-12-01  Elizebeth Punnoose  <elizebeth.punnoose@hpe.com>

PR fortran/77505
* gfortran.dg/char_length_20.f90: New test.
* gfortran.dg/char_length_21.f90: Ditto.

From-SVN: r243143

7 years agoacx.m4: Change "tail +16c" to "tail -c +17".
Ma Jiang [Thu, 1 Dec 2016 23:02:51 +0000 (23:02 +0000)]
acx.m4: Change "tail +16c" to "tail -c +17".

* config/acx.m4: Change "tail +16c" to "tail -c +17".
* configure: Regenerated.

From-SVN: r243142

7 years agore PR target/78577 (Fix define_insn operand types for vexturhlx, vexturhrx, vextuwlx...
Kelvin Nilsen [Thu, 1 Dec 2016 22:52:07 +0000 (22:52 +0000)]
re PR target/78577 (Fix define_insn operand types for vexturhlx, vexturhrx, vextuwlx, and vextuwrx patterns)

gcc/ChangeLog:

2016-12-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/78577
* config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2.
(vextuhrx): Likewise.
(vextuwlx): Likewise.
(vextuwrx): Likewise.

From-SVN: r243141

7 years ago* es.po: Update.
Joseph Myers [Thu, 1 Dec 2016 22:36:49 +0000 (22:36 +0000)]
* es.po: Update.

From-SVN: r243139

7 years agocall.c (add_function_candidate): Exclude inherited copy/move ctors.
Jason Merrill [Thu, 1 Dec 2016 22:13:06 +0000 (17:13 -0500)]
call.c (add_function_candidate): Exclude inherited copy/move ctors.

* call.c (add_function_candidate): Exclude inherited copy/move
ctors.

From-SVN: r243138

7 years agofix PR number
Jason Merrill [Thu, 1 Dec 2016 22:10:57 +0000 (17:10 -0500)]
fix PR number

From-SVN: r243137

7 years agodwarf2out.c: fix jit issue with early_dwarf_finished
David Malcolm [Thu, 1 Dec 2016 21:56:09 +0000 (21:56 +0000)]
dwarf2out.c: fix jit issue with early_dwarf_finished

All of the jit testcases that generate debuginfo appear to have been
failing since r240228 on their 2nd in-process iteration on this
assertion in set_early_dwarf's ctor:

      gcc_assert (! early_dwarf_finished);

Root cause is that the global is never reset at the end of compilation,
which this patch fixes in the obvious way.

gcc/ChangeLog:
* dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and
early_dwarf_finished.

From-SVN: r243136

7 years agosparc.opt (mlra): New target option.
Eric Botcazou [Thu, 1 Dec 2016 21:41:10 +0000 (21:41 +0000)]
sparc.opt (mlra): New target option.

* config/sparc/sparc.opt (mlra): New target option.
* config/sparc/sparc.c (TARGET_LRA_P): Define to...
(sparc_lra_p): ...this.  New function.
(D_MODES, DF_MODES): Add missing cast.
* config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
provide these insns when flag_pic.
(sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh,
setlm, sethm, setlo, embmedany_sethi, embmedany_losum,
embmedany_brsum, embmedany_textuhi, embmedany_texthi,
embmedany_textulo, embmedany_textlo): Likewise.
(sethi_di_medlow_embmedany_pic): Provide it only when flag_pic.

Co-Authored-By: David S. Miller <davem@davemloft.net>
From-SVN: r243135

7 years agore PR fortran/78279 (ICE in identical_array_ref, at fortran/dependency.c:104)
Steven G. Kargl [Thu, 1 Dec 2016 20:37:55 +0000 (20:37 +0000)]
re PR fortran/78279 (ICE in identical_array_ref, at fortran/dependency.c:104)

2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/78279
* dependency.c (identical_array_ref): Convert gcc_assert to conditional
and gfc_internal_error.

2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/78279
* gfortran.dg/pr78279.f90: New test.

From-SVN: r243131

7 years agocompiler: add slice initializers to the GC root list
Ian Lance Taylor [Thu, 1 Dec 2016 19:54:36 +0000 (19:54 +0000)]
compiler: add slice initializers to the GC root list

    As of https://golang.org/cl/32917 we can put slice initializers in the
    .data section.  The program can still change the values in those
    slices.  That means that if the slice elements can contain pointers,
    we need to register the entire initializer as a GC root.

    This would be straightforward except that we only have a Bexpression
    for the slice initializer, not an Expression.  So introduce a
    Backend_expression type that wraps a Bexpression as an Expression.

    The test case for this is https://golang.org/cl/33790.

    Reviewed-on: https://go-review.googlesource.com/33792

From-SVN: r243129

7 years ago* testsuite/26_numerics/headers/cmath/hypot.cc: XFAIL on AIX.
David Edelsohn [Thu, 1 Dec 2016 19:02:34 +0000 (19:02 +0000)]
* testsuite/26_numerics/headers/cmath/hypot.cc: XFAIL on AIX.

From-SVN: r243127

7 years agore PR debug/66149 (ICE: tree check: expected field_decl, have template_decl in int_bi...
David Edelsohn [Thu, 1 Dec 2016 18:58:47 +0000 (18:58 +0000)]
re PR debug/66149 (ICE: tree check: expected field_decl, have template_decl in int_bit_position, at tree.h:5012 with -std=c++14 -gstabs)

PR debug/66419
PR c++/78235
* dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs.

From-SVN: r243126

7 years agovec.h (vec<T, [...]): Guard call to memset if len-oldlen != 0.
Richard Biener [Thu, 1 Dec 2016 18:18:30 +0000 (18:18 +0000)]
vec.h (vec<T, [...]): Guard call to memset if len-oldlen != 0.

2016-12-01  Richard Biener  <rguenther@suse.de>
    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to
memset if len-oldlen != 0.
(vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise.

Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
From-SVN: r243125

7 years ago* g++.dg/tls/pr77285-1.C: dg-add-options tls
David Edelsohn [Thu, 1 Dec 2016 18:11:56 +0000 (18:11 +0000)]
* g++.dg/tls/pr77285-1.C: dg-add-options tls

From-SVN: r243124

7 years agoi386.md (*andndi3_doubleword): Depend on TARGET_SSE2.
Uros Bizjak [Thu, 1 Dec 2016 17:10:58 +0000 (18:10 +0100)]
i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.

* config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.

From-SVN: r243121

7 years agoImplement LWG 2766,
Ville Voutilainen [Thu, 1 Dec 2016 16:23:21 +0000 (18:23 +0200)]
Implement LWG 2766,

Swapping non-swappable types and LWG 2749,
swappable traits for variants.
* include/bits/move.h (swap(_Tp&, _Tp&)): Constrain
with __is_tuple_like.
* include/bits/stl_pair.h (swap(pair<_T1, _T2>&, pair<_T1, _T2>&)):
Add a deleted overload.
* include/bits/unique_ptr.h
(swap(unique_ptr<_Tp, _Dp>&, unique_ptr<_Tp, _Dp>&)): Likewise.
* include/std/array
(swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&)): Likewise.
* include/std/optional
(swap(optional<_Tp>&, optional<_Tp>&)): Likewise.
* include/std/tuple (__is_tuple_like_impl, __is_tuple_like):
Move to type_traits.
(swap(tuple<_Elements...>&, tuple<_Elements...>&)): Add a deleted
overload.
* include/std/type_traits (__is_tuple_like_impl, __is_tuple_like):
New.
(swap(_Tp&, _Tp&)): Constrain with __is_tuple_like.
* include/std/utility (__is_tuple_like_impl): Move to type_traits.
* include/std/variant
(swap(variant<_Types...>&, variant<_Types...>&)):
Add a deleted overload.
* testsuite/20_util/optional/swap/2.cc: Add tests for disabled
swaps.
* testsuite/20_util/pair/swap_cxx17.cc: New.
* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
Likewise.
* testsuite/20_util/variant/compile.cc: Add tests for disabled
swaps.
* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r243120

7 years agoavr.c: Fix coding rule glitches.
Georg-Johann Lay [Thu, 1 Dec 2016 15:56:58 +0000 (15:56 +0000)]
avr.c: Fix coding rule glitches.

* config/avr/avr.c: Fix coding rule glitches.

From-SVN: r243118

7 years ago[Patch testsuite obvious] Use setjmp, not sigsetjmp in gcc.dg/pr78582.c
James Greenhalgh [Thu, 1 Dec 2016 15:33:29 +0000 (15:33 +0000)]
[Patch testsuite obvious] Use setjmp, not sigsetjmp in gcc.dg/pr78582.c

gcc/testsuite/

* gcc.dg/pr78582.c (main): Call setjmp, not sigsetjmp.

From-SVN: r243116

7 years agoFix PR tree-optimization/78598 - tree-ssa-loop-prefetch.c:835:16: runtime error:...
Markus Trippelsdorf [Thu, 1 Dec 2016 14:59:03 +0000 (14:59 +0000)]
Fix PR tree-optimization/78598 - tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow

Using bootstrap-ubsan gcc to build mplayer shows:

tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow:
288230376151711743 * 64 cannot be represented in type 'long int'

Here signed und unsigned integers are mixed in a division resulting in
bogus values: (-83 + 64ULL -1) / 64ULL) == 288230376151711743

Fixed by casting the unsigned parameter to signed.

PR tree-optimization/78598
* tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid
overflows.

From-SVN: r243113

7 years agoImport libcilkrts Build 4467 (PR target/68945)
Rainer Orth [Thu, 1 Dec 2016 14:48:49 +0000 (14:48 +0000)]
Import libcilkrts Build 4467 (PR target/68945)

PR target/68945
Merge from upstream, version 2.0.4467.0.
Fix typo in git URL.
* aclocal.m4, configure, Makefile.in: Regenerate.

From-SVN: r243112

7 years agoFix rtl-optimization/78596 - combine.c:12561:14: runtime error: left shift of negativ...
Markus Trippelsdorf [Thu, 1 Dec 2016 14:04:13 +0000 (14:04 +0000)]
Fix rtl-optimization/78596 - combine.c:12561:14: runtime error: left shift of negative value

PR rtl-optimization/78596
* combine.c (simplify_comparison): Cast to unsigned to avoid
left shifting of negative value.

From-SVN: r243111

7 years agoRemove svn conflict marker.
David Edelsohn [Thu, 1 Dec 2016 13:48:22 +0000 (08:48 -0500)]
Remove svn conflict marker.

From-SVN: r243110

7 years agoconfigure.ac: Don't use pkg-config to check for bdw-gc.
Matthias Klose [Thu, 1 Dec 2016 12:31:49 +0000 (12:31 +0000)]
configure.ac: Don't use pkg-config to check for bdw-gc.

<toplevel>

        * configure.ac: Don't use pkg-config to check for bdw-gc.
        * configure: Regenerate.

config/

        * pkg.m4: Remove.

libobjc/

        * configure.ac: Don't use pkg-config to check for bdw-gc.
        * configure: Regenerate.

gcc/

        * doc/install.texi: Don't use pkg-config to check for bdw-gc.

From-SVN: r243108

7 years agotree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type...
Richard Biener [Thu, 1 Dec 2016 12:22:32 +0000 (12:22 +0000)]
tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap.

2016-12-01  Richard Biener  <rguenther@suse.de>

* tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
treat arrays with same type as objects that cannot overlap.

* gcc.dg/torture/alias-2.c: New testcase.

From-SVN: r243107

7 years agotree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type...
Richard Biener [Thu, 1 Dec 2016 12:15:44 +0000 (12:15 +0000)]
tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap.

2016-12-01  Richard Biener  <rguenther@suse.de>

* tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
treat arrays with same type as objects that cannot overlap.

* gcc.dg/torture/alias-2.c: New testcase.

From-SVN: r243106

7 years agotiny-memx.c: Only perform if target avr_tiny.
Georg-Johann Lay [Thu, 1 Dec 2016 10:21:31 +0000 (10:21 +0000)]
tiny-memx.c: Only perform if target avr_tiny.

gcc/testsuite/
* gcc.target/avr/tiny-memx.c: Only perform if target avr_tiny.
* gcc.target/avr/tiny-caller-save.c: Dito.

From-SVN: r243105

7 years agoavr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
Georg-Johann Lay [Thu, 1 Dec 2016 10:09:56 +0000 (10:09 +0000)]
avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.

gcc/
* config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
(avr_handle_addr_attribute, avr_asm_output_aligned_decl_common)
(avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito.

From-SVN: r243104

7 years agocoarray_lib_alloc_4.f90: Fix for 32-bits.
Andre Vehreschild [Thu, 1 Dec 2016 09:53:25 +0000 (10:53 +0100)]
coarray_lib_alloc_4.f90: Fix for 32-bits.

gcc/testsuite/ChangeLog:

2016-12-01  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray_lib_alloc_4.f90: Fix for 32-bits.

From-SVN: r243101

7 years agore PR debug/78587 (dwarf2out.c:1517:45: runtime error: negation of -92233720368547758...
Jakub Jelinek [Thu, 1 Dec 2016 09:24:55 +0000 (10:24 +0100)]
re PR debug/78587 (dwarf2out.c:1517:45: runtime error: negation of -9223372036854775808 cannot be represented in type 'long int [4]'; cast to an unsigned type to negate this value to itself)

PR debug/78587
* dwarf2out.c (loc_descr_plus_const): For negative offset use
uint_loc_descriptor instead of int_loc_descriptor and perform negation
in unsigned HOST_WIDE_INT type.
(scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL.

* gcc.dg/debug/pr78587.c: New test.

From-SVN: r243100

7 years agore PR target/78614 (ICE error: invalid rtl sharing found in the insn (verify_rtx_shar...
Jakub Jelinek [Thu, 1 Dec 2016 07:56:49 +0000 (08:56 +0100)]
re PR target/78614 (ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743)

PR target/78614
* config/rs6000/rs6000.c (rs6000_frame_related): Call
set_used_flags (pat) before any simplifications.  Clear used flag on
PARALLEL copy.  Don't guard add_reg_note call.  Call
copy_rtx_if_shared on pat before storing it into
REG_FRAME_RELATED_EXPR.

From-SVN: r243099

7 years agoThe convertible_to traits need to use a variadic catch-all for the false-cases.
Ville Voutilainen [Thu, 1 Dec 2016 07:14:19 +0000 (09:14 +0200)]
The convertible_to traits need to use a variadic catch-all for the false-cases.

The convertible_to traits need to use a variadic catch-all for the
false-cases.
* include/std/istream (__is_convertible_to_basic_istream):
Change the parameter of the false-case of __check to a variadic.
* include/std/ostream (__is_convertible_to_basic_ostream):
Likewise.

From-SVN: r243098

7 years ago[RS6000] fix rtl-checking internal compiler error
Alan Modra [Thu, 1 Dec 2016 07:14:04 +0000 (17:44 +1030)]
[RS6000] fix rtl-checking internal compiler error

* gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
look inside UNSPEC_VSX_XXSPLTW vec.

From-SVN: r243097

7 years agocrossconfig.m4 (*-linux*): Add link-check for memalign.
Bernd Edlinger [Thu, 1 Dec 2016 06:06:04 +0000 (06:06 +0000)]
crossconfig.m4 (*-linux*): Add link-check for memalign.

2016-12-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * crossconfig.m4 (*-linux*): Add link-check for memalign.
        * configure: Regenerated.

From-SVN: r243095

7 years agoruntime: set isarchive in initsig
Ian Lance Taylor [Thu, 1 Dec 2016 05:47:58 +0000 (05:47 +0000)]
runtime: set isarchive in initsig

    The library initialization code in go-libmain.c sets the C variable
    runtime_isarchive but failed to set the Go variable runtime.isarchive.
    We don't currently have a way to let C code access an unexported Go
    variable, but fortunately the only time the Go function initsig is
    called with an argument of true is exactly where we want to set
    isarchive.  So let initsig do it.

    Reviewed-on: https://go-review.googlesource.com/33753

From-SVN: r243094

7 years agore PR libstdc++/71500 (regex::icase only works on first character in a range)
Tim Shen [Thu, 1 Dec 2016 03:03:55 +0000 (03:03 +0000)]
re PR libstdc++/71500 (regex::icase only works on first character in a range)

PR libstdc++/71500
* include/bits/regex.h (basic_regex::basic_regex): Use ECMAScript
when the syntax is not specified.
* include/bits/regex_compiler.h (_RegexTranslator,
_RegexTranslatorBase): Partially support icase in ranges.
* include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply):
Refactor _M_apply to make the control flow easier to follow, and
call _M_translator._M_match_range as added previously.
* testsuite/28_regex/traits/char/icase.cc: Add new tests.
* testsuite/28_regex/traits/char/user_defined.cc: Add new tests.

From-SVN: r243093

7 years agocombine: Emit a barrier after unconditional trap (PR78607)
Segher Boessenkool [Thu, 1 Dec 2016 02:04:10 +0000 (03:04 +0100)]
combine: Emit a barrier after unconditional trap (PR78607)

After an unconditional trap there should be a barrier.  In most cases
one is automatically inserted, but not if the trap is the final insn in
the instruction stream.  We need to emit one explicitly.

PR rtl-optimization/78607
* combine.c (try_combine): Emit a barrier after a unconditional trap.

gcc/testsuite/
PR rtl-optimization/78607
* gcc.c-torture/compile/pr78607.c: New testcase.

From-SVN: r243092

7 years agoDaily bump.
GCC Administrator [Thu, 1 Dec 2016 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r243091

7 years ago* es.po: Update.
Joseph Myers [Wed, 30 Nov 2016 22:13:49 +0000 (22:13 +0000)]
* es.po: Update.

From-SVN: r243085

7 years agoruntime: print C functions in traceback
Ian Lance Taylor [Wed, 30 Nov 2016 20:28:28 +0000 (20:28 +0000)]
runtime: print C functions in traceback

    Since gccgo can trace back through C code as easily as Go code, we
    should print C functions in the traceback.

    This worked before https://golang.org/cl/31230 for a dumb reason.  The
    default value for runtime.traceback_cache was, and is, 2 << 2, meaning
    to print all functions.  The old C code for runtime_parsedebugvars
    would return immediately and do nothing if the environment variable
    GODEBUG was not set (if GODEBUG was set it would later call
    setTraceback.  The new Go code for runtime.parsedebugvars does not
    return immediately if GODEBUG is not set, and always calls
    setTraceback.  Either way, if GOTRACEBACK is not set, setTraceback
    would set traceback_cache to 1 << 2, meaning to only print non-runtime
    functions and having the effect of not printing plain C functions.

    Keep the current handling of GODEBUG/GOTRACEBACK, which matches the gc
    library, but add an extra check to print C functions by default.

    Reviewed-on: https://go-review.googlesource.com/33717

From-SVN: r243083

7 years ago* testsuite/ChangeLog: Fix some entries.
Uros Bizjak [Wed, 30 Nov 2016 19:38:55 +0000 (20:38 +0100)]
* testsuite/ChangeLog: Fix some entries.

From-SVN: r243082

7 years agoPR tree-optimization/78586 - [7 Regression] Wrong code caused by printf-return-value
Martin Sebor [Wed, 30 Nov 2016 19:16:03 +0000 (19:16 +0000)]
PR tree-optimization/78586 - [7 Regression] Wrong code caused by printf-return-value

gcc/testsuite/ChangeLog:

PR tree-optimization/78586
* gcc.dg/tree-ssa/builtin-sprintf-2.c: New test cases.

From-SVN: r243081

7 years agore PR target/78602 (PowerPC vec-extract-v2df.c can fail if -mcpu=power9 -O0)
Michael Meissner [Wed, 30 Nov 2016 18:43:17 +0000 (18:43 +0000)]
re PR target/78602 (PowerPC vec-extract-v2df.c can fail if -mcpu=power9 -O0)

2016-11-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78602
* config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
element is not a constant or in a register, force it to a
register.

PR target/78560
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
that will be set to a vector element to be in a register.
* config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
the wrong multiplier to convert the element number to a byte
offset.

From-SVN: r243044

7 years agolibgomp: move data definitions from icv.c back to env.c
Alexander Monakov [Wed, 30 Nov 2016 18:23:00 +0000 (21:23 +0300)]
libgomp: move data definitions from icv.c back to env.c

* config/nvptx/env.c: Delete.
* icv.c: Move definitions of ICV variables back ...
* env.c: ...here.  Do not compile environment-related functionality if
LIBGOMP_OFFLOADED_ONLY is set.

From-SVN: r243041

7 years agolibgomp: introduce LIBGOMP_OFFLOADED_ONLY macro
Alexander Monakov [Wed, 30 Nov 2016 18:08:30 +0000 (21:08 +0300)]
libgomp: introduce LIBGOMP_OFFLOADED_ONLY macro

* configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
(LIBGOMP_OFFLOADED_ONLY): ...here; new define.
* configure: Regenerate.
* config.h.in: Likewise.

From-SVN: r243040

7 years agolibgomp: regenerate with automake-1.11.6
Alexander Monakov [Wed, 30 Nov 2016 18:05:33 +0000 (21:05 +0300)]
libgomp: regenerate with automake-1.11.6

* Makefile.in: Regenerate with automake-1.11.6.
* aclocal.m4: Likewise.
* configure: Likewise.
* testsuite/Makefile.in: Likewise.

From-SVN: r243039

8 years agore PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode)
Vladimir Makarov [Wed, 30 Nov 2016 17:35:40 +0000 (17:35 +0000)]
re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode)

2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>

PR tree-optimization/77856
* lra-constraints.c (inherit_in_ebb): Check original regno for
invalid invariant regs too.  Set only clobbered hard regs for the
invalid invariant regs.

2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>

PR tree-optimization/77856
* gcc.target/i386.c (pr77856.c): New.

From-SVN: r243038

8 years agoconfigure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking for the existence...
Matthias Klose [Wed, 30 Nov 2016 16:39:30 +0000 (16:39 +0000)]
configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking for the existence of the...

2016-11-30  Matthias Klose  <doko@ubuntu.com>

        * configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking
        for the existence of the pkg-config modules.
        * Regenerate.

From-SVN: r243037

8 years agoFix testsuite failures caused by the patch implementing LWG 2534.
Ville Voutilainen [Wed, 30 Nov 2016 16:32:24 +0000 (18:32 +0200)]
Fix testsuite failures caused by the patch implementing LWG 2534.

* include/std/istream (__is_convertible_to_basic_istream):
Change the return types of __check, introduce istream_type.
(operator>>(_Istream&&, _Tp&&)):
Use __is_convertible_to_basic_istream::istream_type as the return type.
* include/std/ostream (__is_convertible_to_basic_ostream):
Change the return types of __check, introduce ostream_type.
(operator>>(_Ostream&&, _Tp&&)):
Use __is_convertible_to_basic_ostream::ostream_type as the return type.

From-SVN: r243036

8 years ago* g++.dg/debug/dwarf2/ptrdmem-1.C: Don't XFAIL scan-assembler-not on AI\X.
David Edelsohn [Wed, 30 Nov 2016 16:14:10 +0000 (16:14 +0000)]
* g++.dg/debug/dwarf2/ptrdmem-1.C: Don't XFAIL scan-assembler-not on AI\X.

From-SVN: r243035

8 years agosingle.c (_gfortran_caf_get_by_ref): Prevent compile time warning.
Andre Vehreschild [Wed, 30 Nov 2016 15:59:07 +0000 (16:59 +0100)]
single.c (_gfortran_caf_get_by_ref): Prevent compile time warning.

libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

        * caf/single.c (_gfortran_caf_get_by_ref): Prevent compile time
        warning.
        (_gfortran_caf_send_by_ref): Same.
        (_gfortran_caf_is_present): Prevent fallthrough warnings.

gcc/testsuite/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

* ChangeLog: Removed wrongly placed entry.
* gfortran.dg/coarray_lib_alloc_4.f90: New test.

From-SVN: r243034

8 years agoCommit files forgotten in r242966.
Pitchumani Sivanupandi [Wed, 30 Nov 2016 15:07:37 +0000 (15:07 +0000)]
Commit files forgotten in r242966.

2016-11-30  Pitchumani Sivanupandi  <pitchumani.sivanupandi@microchip.com>

Commit files forgotten in r242966.

* config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
* config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
prefix check to find wrap-around value, instead use MCU flash size.
For 8k flash devices, update link_pmem_wrap spec string to
add --pmem-wrap-around=8k.
* config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
here...
(LINK_SPEC): ...to here.

From-SVN: r243033

8 years agonew1.C: XFAIL on AIX.
David Edelsohn [Wed, 30 Nov 2016 15:07:28 +0000 (15:07 +0000)]
new1.C: XFAIL on AIX.

        * g++.dg/eh/new1.C: XFAIL on AIX.
        * g++.dg/eh/delete1.C: Same.
        * g++.dg/init/new40.C: Same.
        * g++.old-deja/g++.eh/new2.C: Same.

From-SVN: r243032

8 years agoFix typo in testcase name
David Malcolm [Wed, 30 Nov 2016 14:54:43 +0000 (14:54 +0000)]
Fix typo in testcase name

gcc/testsuite/ChangeLog:

PR c/78498
* gcc.dg/format/pr78494.c: Rename to...
* gcc.dg/format/pr78498.c: ...this.

From-SVN: r243031

8 years agolibiberty: avoid reading past end of buffer in strndup/xstrndup (PR c/78498)
David Malcolm [Wed, 30 Nov 2016 14:50:43 +0000 (14:50 +0000)]
libiberty: avoid reading past end of buffer in strndup/xstrndup (PR c/78498)

gcc/ChangeLog:
PR c/78498
* selftest.c (selftest::assert_strndup_eq): New function.
(selftest::test_strndup): New function.
(selftest::test_libiberty): New function.
(selftest::selftest_c_tests): Call test_libiberty.

gcc/testsuite/ChangeLog:
PR c/78498
* gcc.dg/format/pr78494.c: New test case.

libiberty/ChangeLog:
PR c/78498
* strndup.c (strlen): Delete decl.
(strnlen): Add decl.
(strndup): Call strnlen rather than strlen.
* xstrndup.c (xstrndup): Likewise.

From-SVN: r243030

8 years agoref-1.C: Don't XFAIL scan-assembler-not on AIX.
David Edelsohn [Wed, 30 Nov 2016 14:49:25 +0000 (14:49 +0000)]
ref-1.C: Don't XFAIL scan-assembler-not on AIX.

        * g++.dg/debug/dwarf2/ref-1.C: Don't XFAIL scan-assembler-not on AIX.
        * g++.dg/debug/dwarf2/imported-decl-2.C: Same.
        * g++.dg/debug/dwarf2/refqual-1.C: Same.
        * g++.dg/debug/dwarf2/refqual-2.C: Same.

From-SVN: r243029

8 years agoira: Don't substitute into TRAP_IF insns (PR78610)
Segher Boessenkool [Wed, 30 Nov 2016 14:47:01 +0000 (15:47 +0100)]
ira: Don't substitute into TRAP_IF insns (PR78610)

In the testcase, IRA propagates a constant into a TRAP_IF insn, which
then becomes an unconditional trap.  Unconditional traps are control
flow insns so doing this requires surgery on the cfg.  We cannot do
that here, so instead refuse to do the substitution.

PR rtl-optimization/78610
* ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
instructions.

gcc/testsuite/
PR rtl-optimization/78610
* gcc.c-torture/compile/pr78610.c: New testcase.

From-SVN: r243028

8 years agoFix condition in shared_ptr assertion
Tim Shen [Wed, 30 Nov 2016 14:46:15 +0000 (14:46 +0000)]
Fix condition in shared_ptr assertion

2016-11-30  Tim Shen  <timshen@google.com>

* include/bits/shared_ptr_base.h
(__shared_ptr_access<T, L, true, false>::operator*()): Fix assertion.

From-SVN: r243027

8 years agore PR tree-optimization/78574 (ice on valid C code at -O2 and -O3 in both 32- and...
Bin Cheng [Wed, 30 Nov 2016 14:41:09 +0000 (14:41 +0000)]
re PR tree-optimization/78574 (ice on valid C code at -O2 and -O3 in both 32- and 64-bit modes on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1)))

PR tree-optimization/78574
* tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
header PHI that doesn't define biv.
gcc/testsuite
PR tree-optimization/78574
* gcc.c-torture/compile/pr78574.c: New test.

From-SVN: r243026

8 years agoAdd the missing changelog entry to 243023.
Andre Vehreschild [Wed, 30 Nov 2016 14:38:09 +0000 (15:38 +0100)]
Add the missing changelog entry to 243023.

libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

        * caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
        warnings.

From-SVN: r243025

8 years agosingle.c (_gfortran_caf_is_present): Prevent fallthrough warnings.
Andre Vehreschild [Wed, 30 Nov 2016 14:34:13 +0000 (15:34 +0100)]
single.c (_gfortran_caf_is_present): Prevent fallthrough warnings.

libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

* caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
warnings.

From-SVN: r243024

8 years ago50594.cc: XFAIL on AIX.
David Edelsohn [Wed, 30 Nov 2016 14:33:02 +0000 (14:33 +0000)]
50594.cc: XFAIL on AIX.

        * testsuite/18_support/50594.cc: XFAIL on AIX.
        * testsuite/ext/mt_allocator/check_new.cc: Same.
        * testsuite/ext/pool_allocator/check_new.cc: Same.
        * testsuite/27_io/ios_base/storage/11584.cc: Same.

From-SVN: r243023

8 years ago[multiple changes]
Arnaud Charlet [Wed, 30 Nov 2016 13:59:16 +0000 (14:59 +0100)]
[multiple changes]

2016-11-30  Gary Dismukes  <dismukes@adacore.com>

* sem_prag.adb, sem_ch6.adb: Minor reformatting and typo fixes.
* g-sechas.adb: Minor reformatting.
* lib-xref.ads: minor grammar fix in comment.
* lib-xref-spark_specific.adb
(Is_SPARK_Reference): do not ignore references to concurrent
objects.
* sinfo.ads: Fix of unbalanced parens in comment

2016-11-30  Ed Schonberg  <schonberg@adacore.com>

* lib-xref.adb (Get_Type_Reference): If the entity is a function
returning a classwide type, the type reference is obtained right
away and does not need further unwinding.

2016-11-30  Javier Miranda  <miranda@adacore.com>

* sem_ch8.adb (Find_Renamed_Entity): For non-overloaded subprogram
actuals of generic units check that the spec of the renaming
and renamed entities match.

2016-11-30  Tristan Gingold  <gingold@adacore.com>

* raise-gcc.c: For CERT runtimes: do not use gcc includes, simplify
the handling.
* sem_attr.adb (Analyze_Attribute): Check No_Dynamic_Priorities
restriction for Priority Attribute.

From-SVN: r243022

8 years agolibcaf.h: Add new action types for (de-)registration of allocatable components in...
Andre Vehreschild [Wed, 30 Nov 2016 13:27:49 +0000 (14:27 +0100)]
libcaf.h: Add new action types for (de-)registration of allocatable components in derived...

libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

* caf/libcaf.h: Add new action types for (de-)registration of
allocatable components in derived type coarrays.  Add _caf_is_present
prototype.
* caf/single.c (_gfortran_caf_register): Add support for registration
only and allocation of already registered allocatable components in
derived type coarrays.
(_gfortran_caf_deregister): Add mode to deallocate but not deregister
an allocatable component in a derived type coarray.
(_gfortran_caf_is_present): New function.  Query whether an
allocatable component in a derived type coarray on a remote image is
allocated.

gcc/testsuite/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray/alloc_comp_1.f90: Fix tree-dump scans to adhere
to the changed interfaces.
* gfortran.dg/coarray_alloc_comp_1.f08: Likewise.
* gfortran.dg/coarray_allocate_7.f08: Likewise.
* gfortran.dg/coarray_lib_alloc_1.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_2.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_3.f90: Likewise.
* gfortran.dg/coarray_lib_comm_1.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_4.f90: New test.

gcc/fortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

* check.c (gfc_check_allocated): By pass the caf_get call and check on
the array.
* gfortran.h: Add optional flag to gfc_caf_attr.
* gfortran.texi: Document new enum values and _caf_is_present function.
* primary.c (caf_variable_attr): Add optional flag to indicate that the
expression is reffing a component.
(gfc_caf_attr): Likewise.
* trans-array.c (gfc_array_deallocate): Handle deallocation mode for
coarray deregistration.
(gfc_trans_dealloc_allocated): Likewise.
(duplicate_allocatable): Use constants instead of
        creating custom constant tree node of zero or one.  Use gfc_add_modify
        convenience function.
(duplicate_allocatable_coarray): This function is similar to
duplicate_allocatable but tailored to handle coarrays.
(caf_enabled): Check whether in-derived-type coarray processing is
enabled.
(caf_in_coarray): Check that in-derived-type coarray processing is
enabled and currently in a derived-typed coarray.
(gfc_caf_is_dealloc_only): Return true, when deallocate only is
desired for components in derived typed coarrays.
(structure_alloc_comps): A mode for handling coarrays, that is no
longer encode in the purpose.  This makes the use cases of the
routine more flexible without repeating.  Allocatable components in
derived type coarrays are now registered only when nullifying an
object and allocated before copying data into them.
(gfc_nullify_alloc_comp): Use the caf_mode of structure_alloc_comps
now.
(gfc_deallocate_alloc_comp): Likewise.
(gfc_deallocate_alloc_comp_no_caf): Likewise.
(gfc_reassign_alloc_comp_caf): Likewise.
(gfc_copy_alloc_comp): Likewise.
(gfc_copy_only_alloc_comp): Likewise.
(gfc_alloc_allocatable_for_assignment): Make use to the cheaper way of
reallocating a coarray without deregistering and reregistering it.
(gfc_trans_deferred_array): Initialize the coarray token correctly for
deferred variables and tear them down on exit.
* trans-array.h: Change some prototypes to add the coarray (de-)
registration modes.  Add prototype for checking if deallocate only is
selected for components in derived typed coarrays.
* trans-decl.c (gfc_build_builtin_function_decls): Generate the
declarations for the changed/new caf-lib routines.
(gfc_trans_deferred_vars): Ensure deferred variables are (de-)
registered correctly on procedure entry/exit.
(generate_coarray_sym_init): Use constants.
* trans-expr.c (gfc_conv_procedure_call): Propagate coarray allocation
modes accordingly.
(gfc_trans_alloc_subarray_assign): Likewise.
(gfc_trans_subcomponent_assign): Likewise.
(gfc_trans_structure_assign): Generate code to register the components
of a derived type coarray prior to initialization.
(gfc_conv_structure): Set flag that the structure is in a coarray.
(gfc_trans_scalar_assign): Add flag to indicate being in a coarray and
set the structure_alloc_comps modes correctly.
(gfc_trans_assignment_1): Figure being in a coarray expression.
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Adapt to new
structure_alloc_comps interface.
(conv_caf_send): Use the old API as long as possible.
(trans_caf_is_present): Generate code to check whether an allocatable
component in a derived typed coarray is allocated on a remote image.
(caf_this_image_ref): Return true, when only reffing this image.
(gfc_conv_allocated): Convert allocated queries on allocatable
components to the library API.
(conv_intrinsic_move_alloc): Adapt to new interface of
structure_alloc_comps.
* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
(gfc_omp_clause_assign_op): Likewise.
(gfc_omp_clause_dtor): Likewise.
* trans-stmt.c (gfc_trans_deallocate): Figure which mode to use when
deallocating allocatable components in derived type coarras.
* trans.c (gfc_allocate_using_lib): Renamed to
gfc_allcate_using_caf_lib.
(gfc_allocate_allocatable): Set the registration mode/type of caf-
register calls adapting to all the possible allocatable objects.
(gfc_deallocate_with_status): Add deregistration mode for allocatable
components in derived type coarrays.
(gfc_deallocate_scalar_with_status): Likewise.
* trans.h (enum gfc_coarray_type): Renamed to gfc_coarray_regtype to
avoid collision with gfc_coarray_deregtype.

From-SVN: r243021

8 years agore PR fortran/78593 (ICE in gfc_match_varspec, at fortran/primary.c:2053)
Janus Weil [Wed, 30 Nov 2016 13:23:17 +0000 (14:23 +0100)]
re PR fortran/78593 (ICE in gfc_match_varspec, at fortran/primary.c:2053)

2016-11-30  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78593
* primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE.

2016-11-30  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78593
* gfortran.dg/derived_result.f90: New test case.

From-SVN: r243020