aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-06-15PR c++/80560 - warn on undefined memory operations involving non-trivial typesMartin Sebor21-35/+2196
gcc/c-family/ChangeLog: PR c++/80560 * c.opt (-Wclass-memaccess): New option. gcc/cp/ChangeLog: PR c++/80560 * call.c (first_non_public_field, maybe_warn_class_memaccess): New functions. (has_trivial_copy_assign_p, has_trivial_copy_p): Ditto. (build_cxx_call): Call maybe_warn_class_memaccess. gcc/ChangeLog: PR c++/80560 * dumpfile.c (dump_register): Avoid calling memset to initialize a class with a default ctor. * gcc.c (struct compiler): Remove const qualification. * genattrtab.c (gen_insn_reserv): Replace memset with initialization. * hash-table.h: Ditto. * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with assignment. * ipa-prop.c (ipa_free_edge_args_substructures): Ditto. * omp-low.c (lower_omp_ordered_clauses): Replace memset with default ctor. * params.h (struct param_info): Make struct members non-const. * tree-switch-conversion.c (emit_case_bit_tests): Replace memset with default initialization. * vec.h (vec_copy_construct, vec_default_construct): New helper functions. (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy with vec_copy_construct. (vect<T>::quick_grow_cleared): Replace memset with default ctor. (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same. * doc/invoke.texi (-Wclass-memaccess): Document. libcpp/ChangeLog: PR c++/80560 * line-map.c (line_maps::~line_maps): Avoid calling htab_delete with a null pointer. (linemap_init): Avoid calling memset on an object of a non-trivial type. libitm/ChangeLog: PR c++/80560 * beginend.cc (GTM::gtm_thread::rollback): Avoid calling memset on an object of a non-trivial type. (GTM::gtm_transaction_cp::commit): Use assignment instead of memcpy to copy an object. * method-ml.cc (orec_iterator::reinit): Avoid -Wclass-memaccess. gcc/testsuite/ChangeLog: PR c++/80560 * g++.dg/Wclass-memaccess.C: New test. From-SVN: r249234
2017-06-16Daily bump.GCC Administrator1-1/+1
From-SVN: r249233
2017-06-15re PR ada/81105 (system-freebsd-x86.ads renamed but referenced by ↵Nicolas Boulenguez2-3/+10
gcc/ada/gcc-interface/Makefile.in) PR ada/81105 * gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting. (i[3456]86-pc-gnu): Likewise. (x86_64 kfreebsd): Likewise. From-SVN: r249228
2017-06-15re PR fortran/80983 ([F03] memory leak when calling procedure-pointer ↵Janus Weil4-1/+48
component with allocatable result) 2017-06-15 Janus Weil <janus@gcc.gnu.org> PR fortran/80983 * trans-expr.c (gfc_conv_procedure_call): Deallocate the result of scalar allocatable procedure-pointer components. 2017-06-15 Janus Weil <janus@gcc.gnu.org> PR fortran/80983 * gfortran.dg/proc_ptr_comp_51.f90: New test. From-SVN: r249227
2017-06-152017-06-15 François Dumont <fdumont@gcc.gnu.org>François Dumont2-6/+11
* src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION] (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete. From-SVN: r249226
2017-06-15Revert accidental checkin.Jan Hubicka1-1/+1
From-SVN: r249225
2017-06-15re PR lto/69866 (lto1: internal compiler error: in ↵Jan Hubicka6-1/+69
add_symbol_to_partition_1, at lto/lto-partition.c:158) PR lto/69866 * lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions that resolved externally. * gcc.dg/lto/pr69866_0.c: New test. * gcc.dg/lto/pr69866_1.c: Likewise. From-SVN: r249224
2017-06-15Update comment about is_leafRamana Radhakrishnan2-1/+6
crtl->is_leaf has a comment above it referring to "Local Register Allocation". However this is set by IRA and not LRA since the meaning of Local Register Allocator in GCC has changed quite drastically since 1999 when this comment was introduced above the variable current_function_is_leaf. From memory gcc in those days had "local" and "global" register allocation - however all of this has changed quite a bit drastically since. This patch merely updates the comment as I did some head scratching this morning about how this could be set before Local Register Allocator especially given the comment in ira.c as below. /* Determine if the current function is a leaf before running IRA since this can impact optimizations done by the prologue and epilogue thus changing register elimination offsets. */ crtl->is_leaf = leaf_function_p (); From-SVN: r249223
2017-06-15Fix problems with the MSP430 port's handling of persistent data.Jozef Lawrynowicz8-4/+80
PR target/78818 gcc * config/msp430/msp430.c (msp430_data_attr): Check that it's possible for a variable to have a section before checking if the section has a name. Set section to.persistent if persistent attribute is set. Warn if .persistent attribute is used on an automatic variable. tests * gcc.target/msp430/pr78818-real.c: New template for tests. * gcc.target/msp430/pr78818-auto.c: New test. * gcc.target/msp430/pr78818-data-region.c: New test. * gcc.target/msp430/pr78818-data-sec.c: New test. * gcc.target/msp430/pr78818-auto-warn.c: New test. From-SVN: r249222
2017-06-15re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice)Eric Botcazou2-9/+7
PR rtl-optimization/80474 * reorg.c (update_block): Do not ignore instructions in a delay slot. From-SVN: r249219
2017-06-15Use pthread effective-target in testsuiteRainer Orth214-427/+655
* testsuite: Add dg-require-effective-target pthread to -pthread tests. Remove explicit target lists from dg-do and dg-options. * testsuite/30_threads/async/forced_unwind.cc: Remove explit target list from dg-options. * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise. * 30_threads/shared_mutex/cons/1.cc: Likewise. Pass -pthread for all targets. * 30_threads/shared_mutex/try_lock/1.cc: Likewise. * 30_threads/shared_mutex/try_lock/2.cc: Likewise. * 30_threads/shared_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/this_thread/57060.cc: Require c++11 via dg-require-effective-target. From-SVN: r249217
2017-06-15[ARM] Make gcc.target/arm/its.c more robustThomas Preud'homme2-1/+12
2017-06-15 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * gcc.target/arm/its.c: Check that no IT blocks has more than 2 instructions in it rather than the number of IT blocks being 2. Transfer scan directive arm_thumb2 restriction to the whole testcase and restrict further to Thumb-only targets. From-SVN: r249215
2017-06-15sdiv_costs_1.c: Use dg-add-options.Tamar Christina2-1/+7
2017-06-15 Tamar Christina <tamar.christina@arm.com> * gcc.target/arm/sdiv_costs_1.c: Use dg-add-options. From-SVN: r249214
2017-06-15rs6000: Don't use REGNO in the add<mode>3 expanderSegher Boessenkool2-1/+6
The argument could be a subreg of reg instead, which means we have to use reg_or_subregno instead of REGNO. * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead of REGNO. From-SVN: r249213
2017-06-15Daily bump.GCC Administrator1-1/+1
From-SVN: r249212
2017-06-14compiler: avoid crash on erroneous typeIan Lance Taylor2-6/+12
If there is an error constructing the backend type, the GCC backend will report that the size is 1. That will then cause construction of the ptrmask to crash. Avoid that case by just generating an empty ptrmask. Noticed while compiling a broken package. The policy I've been following is to not commit a test case for a compiler crash on invalid code, so no test case. Reviewed-on: https://go-review.googlesource.com/45775 From-SVN: r249208
2017-06-14MIPS16/GCC: Emit bounds checking as RTL in `casesi'Maciej W. Rozycki6-37/+141
gcc/ * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant. (casesi): Emit bounds checking as RTL. (casesi_internal_mips16_<mode>): Remove bounds checking. gcc/testsuite/ * gcc.target/mips/data-sym-jump.c: Adjust for whitespace changes. * gcc.target/mips/pr51513-1.c: New test. * gcc.target/mips/pr51513-2.c: New test. From-SVN: r249207
2017-06-14Fix libstdc++ testsuite failures with -D_GLIBCXX_USE_CXX11_ABI=0Jonathan Wakely15-79/+151
* doc/xml/manual/test.xml: Correct instructions on running tests. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise. * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/char/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ exceptions_failbit.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/extractors_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/ exceptions_null.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ exceptions_null.cc: Likewise. * testsuite/27_io/ios_base/storage/2.cc: Likewise. From-SVN: r249206
2017-06-14Makefile.def: Add check-gotools to go check targets.Ian Lance Taylor3-2/+8
* Makefile.def: Add check-gotools to go check targets. * Makefile.in: Rebuild. From-SVN: r249204
2017-06-14Makefile.am (libgosrcdir): Define.Ian Lance Taylor3-6/+192
* Makefile.am (libgosrcdir): Define. (check-head, check-gccgo, check-go-tool): New targets. (CHECK_ENV): Define. (check): New target. (mostlyclean-local): New target. * Makefile.in: Rebuild. From-SVN: r249203
2017-06-14gcc: xtensa: allow XCHAL_* macros to be non-constantMax Filippov3-12/+31
XCHAL_* macros from the xtensa-config.h are used in a number of places that require them to be preprocessor constants. Rewrite these places so that non-constant XCHAL_* definitions could be used there. 2017-06-14 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.c (xtensa_option_override): Append MASK_CONST16 to target_flags in the absence of TARGET_L32R. (hwloop_optimize, hwloop_fail, hwloop_pattern_reg, xtensa_doloop_hooks): Define unconditionally. (xtensa_reorg_loops): Only call reorg_loops in the presence of TARGET_LOOPS. * config/xtensa/xtensa.h (TARGET_L32R): New definition. (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account for it in xtensa_option_override. (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions. From-SVN: r249202
2017-06-14Recognize '-' as special -MF argument (write to stdout)Boris Kolpackov4-1/+13
Sometimes it is useful to generate pre-processed output to a file and the dependency information to stdout for further analysis/processing. For example: g++ -E -MD -fdirectives-only -o test.ii test.cxx This will generate the dependency information to test.d (as per the documentation). While changing this behavior is probably unwise, one traditional (e.g., supported by -o) way to handle this is to recognize the special '-' file name as an instruction to write to stdout: g++ -E -MD -fdirectives-only -o test.ii -MF - test.cxx Currently this will create a file named '-'. The included patch changes this behavior to write to stdout. Note also that Clang has supported this from at least version 3.5. gcc: 2017-06-14 Boris Kolpackov <boris@codesynthesis.com> * doc/cppopts.texi: Document '-' special value to -MF. gcc/c-family: 2017-06-14 Boris Kolpackov <boris@codesynthesis.com> * c-opts.c (c_common_finish): Handle '-' special value to -MF. From-SVN: r249201
2017-06-14Improve Cortex-A53 FP schedulerWilco Dijkstra2-18/+30
The Cortex-A53 scheduler model of FMAC bypass is not quite right for FMAC to FMAC forwarding. Experiments also show the latencies of FP operations are too high as well. Rather than adding more bypasses, adjust the latencies of FP instructions to get a better schedule on average. As a result SPECFP2006 is 1.1% faster. gcc/ * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency. (cortex_a53_fconst): Likewise. (cortex_a53_fpmul): Likewise. (cortex_a53_f_load_64): Likewise. (cortex_a53_f_load_many): Likewise. (cortex_a53_advsimd_alu): Likewise. (cortex_a53_advsimd_alu_q): Likewise. (cortex_a53_advsimd_mul): Likewise. (cortex_a53_advsimd_mul_q): Likewise. (fpmac bypass): Add new bypass for fpmac-fpmac case. Add missing fmul, r2f_cvt and fconst cases. From-SVN: r249200
2017-06-14cmd/cgo: make _cgo_flags consistent across runsIan Lance Taylor3-4/+27
The go tool will pass -I objdir as one of the flags, where objdir is the temporary build directory. Remove that from _cgo_flags: we don't need it, and it will be different each time. Sort the flags to avoid the unpredictable map iteration order. This matters for gccgo because for a package that uses cgo, the go tool when building for gccgo will store the _cgo_flags file in the archive. That means that we want to generate identical _cgo_flags for every run. The test for this is the cmd/go testsuite, to follow in a future CL. Reviewed-on: https://go-review.googlesource.com/45692 From-SVN: r249199
2017-06-14cmd/go: gccgo: consistent results, fix vendoringIan Lance Taylor2-5/+18
Pass the -fdebug-prefix-map and -gno-record-gcc-switches compiler options to gccgo to generate consistent results. Fix the vendoring code to look for /vendor/, not just /vendor, to avoid being confused by something like vendor/vendor.org. Tested by the cmd/go tests in a followup CL. Reviewed-on: https://go-review.googlesource.com/45695 From-SVN: r249198
2017-06-14cmd/go: skip tests that do not work with gccgoIan Lance Taylor3-2/+35
These tests fail for various reasons, most commonly because gccgo doesn't really have GOROOT, so things like `go build errors` fail. Reviewed-on: https://go-review.googlesource.com/45696 From-SVN: r249197
2017-06-14go/build: use GCCGOTOOLDIR to find gccgo toolsIan Lance Taylor4-2/+8
Add the environment variable GCCGOTOOLDIR to permit overriding the default directory where tools like cgo are found when building with gccgo. This will be used by the cmd/go tests in a future CL. Reviewed-on: https://go-review.googlesource.com/45694 From-SVN: r249196
2017-06-14internal/testenv: support testing gccgoIan Lance Taylor2-4/+15
If GO_TESTING_GOTOOLS is set in the environment, permit tests using gccgo to run the go tool. Like GO_BUILDER_NAME, this should not be set normally. But it is needed when testing the go tool itself, and will be set by the gotools Makefile in a future CL. Reviewed-on: https://go-review.googlesource.com/45693 From-SVN: r249195
2017-06-14compiler: remove "DIR/../" when joining relative import pathIan Lance Taylor2-1/+20
Otherwise if DIR does not exist, the path does not work. This matches what the gc cmd/compile tool does, because it calls path.Join. The test for this is the cmd/go tests, to be added in a follow-up CL. Reviewed-on: https://go-review.googlesource.com/45691 From-SVN: r249194
2017-06-14re PR tree-optimization/81083 (ICE: Unable to coalesce ssa_names 4 and 13 ↵Richard Biener2-0/+7
which are marked as MUST COALESCE) 2017-06-14 Richard Biener <rguenther@suse.de> PR tree-optimization/81083 * gcc.dg/torture/pr81083.c: Add prototypes. From-SVN: r249193
2017-06-14re PR middle-end/81088 (UBSAN: false positive as a result of reassosiation)Richard Biener4-8/+34
2017-06-14 Richard Biener <rguenther@suse.de> PR middle-end/81088 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from literal constants. (fold_binary_loc): When associating do not treat pre-existing TREE_OVERFLOW on literal constants as a reason to allow TREE_OVERFLOW on associated literal constants. * c-c++-common/ubsan/pr81088.c: New testcase. From-SVN: r249192
2017-06-14cp-gimplify.c (cp_genericize_r): Turn most of the function into a switch ↵Jakub Jelinek2-275/+316
(TREE_CODE (stmt)) statement from long... * cp-gimplify.c (cp_genericize_r): Turn most of the function into a switch (TREE_CODE (stmt)) statement from long else if sequence. From-SVN: r249191
2017-06-14sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.Eric Botcazou5-17/+25
* config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3. (MASK_FEATURES): New macro. * config/sparc/sparc.c (sparc_option_override): Remove the special handling of -mfpu and generalize it to all MASK_FEATURES switches. From-SVN: r249189
2017-06-14simplify-rtx.c (simplify_binary_operation_1): Do not simplify a division of ↵Eric Botcazou2-1/+7
0 if non-call exceptions are enabled. * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify a division of 0 if non-call exceptions are enabled. From-SVN: r249188
2017-06-14re PR target/71663 (aarch64 Vector initialization can be improved slightly)Andrew Pinski8-4/+128
PR target/71663 gcc * config/aarch64/aarch64.c (aarch64_expand_vector_init): Improve vector initialization code gen for only variable case. gcc/testsuite * gcc.target/aarch64/vect-init-1.c: Newtestcase. * gcc.target/aarch64/vect-init-2.c: Likewise. * gcc.target/aarch64/vect-init-3.c: Likewise. * gcc.target/aarch64/vect-init-4.c: Likewise. * gcc.target/aarch64/vect-init-5.c: Likewise. Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com> From-SVN: r249187
2017-06-14re PR c++/58541 ([c++11] Bogus "error: redeclaration ... differs in ↵Paolo Carlini2-0/+11
‘constexpr’") 2017-06-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58541 * g++.dg/cpp0x/constexpr-58541.C: New. From-SVN: r249186
2017-06-14* config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.Eric Botcazou2-0/+6
From-SVN: r249183
2017-06-14re PR tree-optimization/81083 (ICE: Unable to coalesce ssa_names 4 and 13 ↵Richard Biener4-1/+27
which are marked as MUST COALESCE) 2017-06-14 Richard Biener <rguenther@suse.de> PR tree-optimization/81083 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals as values. * gcc.dg/torture/pr81083.c: New testcase. From-SVN: r249182
2017-06-14vrp101.c: Fix scan-tree-dump regex.Jakub Jelinek1-2/+2
* gcc.dg/tree-ssa/vrp101.c: Fix scan-tree-dump regex. * gcc.dg/tree-ssa/builtin-sprintf-2.c: Likewise. Adjust comment. From-SVN: r249181
2017-06-14vrp101.c: Fix scan-tree-dump regex.Jakub Jelinek3-6/+11
* gcc.dg/tree-ssa/vrp101.c: Fix scan-tree-dump regex. * gcc.dg/tree-ssa/builtin-sprintf-2.c: Likewise. Adjust comment. From-SVN: r249180
2017-06-14Daily bump.GCC Administrator1-1/+1
From-SVN: r249179
2017-06-13re PR sanitizer/80973 (ICE with lambda and -fsanitize=undefined)Jakub Jelinek4-0/+33
PR c++/80973 * cp-gimplify.c (cp_genericize_r): Don't instrument MEM_REF second argument even if it has REFERENCE_TYPE. * g++.dg/ubsan/pr80973.C: New test. From-SVN: r249174
2017-06-13re PR c++/80984 (ICE with label/variable ambiguity)Jakub Jelinek4-2/+28
PR c++/80984 * cp-gimplify.c (cp_genericize): Only look for VAR_DECLs in BLOCK_VARS (outer) chain. (cxx_omp_const_qual_no_mutable): Likewise. * g++.dg/opt/nrv18.C: New test. From-SVN: r249173
2017-06-13re PR go/80964 (cross-gotools are not executable on host system)Ian Lance Taylor3-2/+8
PR go/80964 * configure.ac: Set NATIVE if host_alias = target_alias. * configure: Rebuild. From-SVN: r249172
2017-06-13re PR objc/80949 (ICE in do_warn_duplicated_branches_r)Marek Polacek2-2/+8
PR objc/80949 * c-warn.c (do_warn_duplicated_branches): Return if any of the branches is null. From-SVN: r249171
2017-06-13rs6000: Comment fixes + some leftoversSegher Boessenkool6-67/+42
* config/rs6000/rs6000.c: Update all comments that mentioned SPE. (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL. * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete. * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use. * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete. * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete. From-SVN: r249170
2017-06-13rs6000: Remove VECTOR_SPESegher Boessenkool3-2/+5
* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE. * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE. From-SVN: r249169
2017-06-13rs6000: Remove FIXED_SCRATCHSegher Boessenkool2-7/+4
* config/rs6000/rs6000.h (FIXED_SCRATCH): Delete. From-SVN: r249168
2017-06-13rs6000: Updates to t-rtemsSegher Boessenkool2-3/+7
* config/rs6000/t-rtems: Don't handle SPE. From-SVN: r249167
2017-06-13rs6000: Updates to t-linuxSegher Boessenkool2-4/+4
* config/rs6000/t-linux: Don't handle SPE. From-SVN: r249166