1. 01 Feb, 2017 17 commits
    • * de.po: Update. · da98cbc4
      From-SVN: r245111
      Joseph Myers committed
    • re PR target/70012 (test case gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c fails) · e26b502d
      2017-02-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/70012
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c: Adjust test
      	conditions.
      
      From-SVN: r245108
      Bill Schmidt committed
    • re PR ada/79309 (incorrectly bounded calls to strncat in adaint.c) · 60ab8595
      	PR ada/79309
      	* adaint.c (__gnat_killprocesstree): Use strlen instead of sizeof.
      
      From-SVN: r245107
      Eric Botcazou committed
    • re PR ada/79309 (incorrectly bounded calls to strncat in adaint.c) · 372db67b
      	PR ada/79309
      	* adaint.c (__gnat_killprocesstree): Fix broken string handling.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r245103
      Eric Botcazou committed
    • tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass stmt_info to record_stmt_cost. · cd8ae5ed
      2017-02-01  Andrew Pinski  <apinski@cavium.com>
      
              * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
              stmt_info to record_stmt_cost.
              (vect_get_known_peeling_cost): Pass stmt_info if known to
              record_stmt_cost.
              * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
              cpu_vector_cost field into
              scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
              field into vec_int_stmt_cost and vec_fp_stmt_cost.
              * config/aarch64/aarch64.c (generic_vector_cost): Update for the
              splitting of scalar_stmt_cost and vec_stmt_cost.
              (thunderx_vector_cost): Likewise.
              (cortexa57_vector_cost): LIkewise.
              (exynosm1_vector_cost): Likewise.
              (xgene1_vector_cost): Likewise.
              (thunderx2t99_vector_cost): Improve after the splitting of the two
              fields.
              (aarch64_builtin_vectorization_cost): Update for the splitting of
              scalar_stmt_cost and vec_stmt_cost.
      
      From-SVN: r245101
      Andrew Pinski committed
    • Fix __atomic to not implement atomic loads with CAS. · 969a32ce
      gcc/
      	* builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
      	conditional on existance of a fast atomic load.
      	* optabs-query.c (can_atomic_load_p): New function.
      	* optabs-query.h (can_atomic_load_p): Declare it.
      	* optabs.c (expand_atomic_exchange): Always delegate to libatomic if
      	no fast atomic load is available for the particular size of access.
      	(expand_atomic_compare_and_swap): Likewise.
      	(expand_atomic_load): Likewise.
      	(expand_atomic_store): Likewise.
      	(expand_atomic_fetch_op): Likewise.
      	* testsuite/lib/target-supports.exp
      	(check_effective_target_sync_int_128): Remove x86 because it provides
      	no fast atomic load.
      	(check_effective_target_sync_int_128_runtime): Likewise.
      
      libatomic/
      	* acinclude.m4: Add #define FAST_ATOMIC_LDST_*.
      	* auto-config.h.in: Regenerate.
      	* config/x86/host-config.h (FAST_ATOMIC_LDST_16): Define to 0.
      	(atomic_compare_exchange_n): New.
      	* glfree.c (EXACT, LARGER): Change condition and add comments.
      
      From-SVN: r245098
      Torvald Riegel committed
    • re PR testsuite/79324 (The tests introduced at revision r245052 fail on darwin) · 55e75c7c
      	PR testsuite/79324
      	* gcc.dg/debug/dwarf2/align-1.c: Add -gno-strict-dwarf to dg-options.
      	* gcc.dg/debug/dwarf2/align-2.c: Likewise.
      	* gcc.dg/debug/dwarf2/align-3.c: Likewise.
      	* gcc.dg/debug/dwarf2/align-4.c: Likewise.
      	* gcc.dg/debug/dwarf2/align-5.c: Likewise.
      	* gcc.dg/debug/dwarf2/align-6.c: Likewise.
      	* gcc.dg/debug/dwarf2/align-as-1.c: Likewise.
      	* g++.dg/debug/dwarf2/align-1.C: Likewise.
      	* g++.dg/debug/dwarf2/align-2.C: Likewise.
      	* g++.dg/debug/dwarf2/align-3.C: Likewise.
      	* g++.dg/debug/dwarf2/align-4.C: Likewise.
      	* g++.dg/debug/dwarf2/align-5.C: Likewise.
      	* g++.dg/debug/dwarf2/align-6.C: Likewise.
      
      From-SVN: r245097
      Jakub Jelinek committed
    • graphite.c: Include tree-vectorizer.h for find_loop_location. · 558b3185
      2017-02-01  Richard Biener  <rguenther@suse.de>
      
      	* graphite.c: Include tree-vectorizer.h for find_loop_location.
      	(graphite_transform_loops): Provide opt-info for optimized nests.
      	* tree-parloop.c (parallelize_loops): Provide opt-info for
      	parallelized loops.
      
      From-SVN: r245096
      Richard Biener committed
    • Add dg-require-alias to a ICF test (PR testsuite/79272). · a4476973
      2017-02-01  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/79272
      	* gcc.dg/ipa/pr77653.c: Add dg-require-alias to the test.
      
      From-SVN: r245095
      Martin Liska committed
    • re PR tree-optimization/76957 (XFAIL: gcc.dg/graphite/scop-dsyr2k.c… · 3f3181b1
      re PR tree-optimization/76957 (XFAIL: gcc.dg/graphite/scop-dsyr2k.c scan-tree-dump-times graphite "number of SCoPs)
      
      2017-02-01  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/76957
      	* gcc.dg/graphite/scop-dsyr2k-2.c: New testcase.
      	* gcc.dg/graphite/scop-dsyrk-2.c: Likewise.
      	* gcc.dg/graphite/scop-dsyr2k.c: XFAIL.
      	* gcc.dg/graphite/scop-dsyrk.c: Likewise.
      
      From-SVN: r245094
      Richard Biener committed
    • PR78346 make <bits/predefined_ops.h> handle stashing iterators · 2cf9276b
      	PR libstdc++/78346
      	* include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
      	not its referent.
      	(_Iter_comp_to_iter): Likewise.
      	* testsuite/25_algorithms/search/78346.cc: New test.
      
      From-SVN: r245090
      Jonathan Wakely committed
    • re PR tree-optimization/79315 (ICE while building SPEC CPU 2006 FP with -Ofast… · 1e7ef862
      re PR tree-optimization/79315 (ICE while building SPEC CPU 2006 FP with -Ofast -ftree-parallelize-loops)
      
      2017-02-01  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/79315
      	* tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
      	was not set before.
      
      	* gfortran.dg/pr79315.f90: New testcase.
      
      From-SVN: r245089
      Richard Biener committed
    • PR libstdc++/79254 simplify exception-safety in copy assignment · 11d10beb
      	PR libstdc++/79254
      	* config/abi/pre/gnu.ver: Remove recently added symbols.
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::_M_copy_assign): Remove.
      	(basic_string::operator=(const basic_string&)): Don't dispatch to
      	_M_copy_assign. If source object is small just deallocate, otherwise
      	perform new allocation before making any changes.
      	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::_M_copy_assign(const basic_string&, true_type)):
      	Remove.
      	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
      	Test cases where the allocators are equal or the string is small.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
      	Likewise.
      
      From-SVN: r245085
      Jonathan Wakely committed
    • re PR other/79250 (brig/brigfrontend/brig-to-generic.cc: two small problems) · a0deb992
      * brigfrontend/brig-code-entry-handler.cc: fix address
      expressions which refer only to offset 0, but nothing else.
      * brigfrontend/brig-lane-inst-handler.cc: fix
      activelanepermute_b64 HSAIL instruction.
      * brigfrontend/brig-to-generic.cc: remove useless c_str()
      call. Add missing va_end (). Fix PR79250
      
      From-SVN: r245084
      Pekka Jääskeläinen committed
    • re PR tree-optimization/71824 (ICE when compiling libiberty with Graphite loop optimizations) · 405a7406
      2017-02-01  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/71824
      	* graphite-scop-detection.c (scop_detection::build_scop_breadth):
      	Verify the loops are valid in the merged SESE region.
      	(scop_detection::can_represent_loop_1): Check analyzing the
      	evolution of the number of iterations in the region succeeds.
      
      	* gcc.dg/graphite/pr71824.c: New testcase.
      
      From-SVN: r245081
      Richard Biener committed
    • configure.tgt: Fix i?86-*-linux* entry. · 315405b6
      	* configure.tgt: Fix i?86-*-linux* entry.
      	* rt/sat_arithmetic.c (__hsail_sat_add_u32, __hsail_sat_add_u64,
      	__hsail_sat_add_s32, __hsail_sat_add_s64): Use __builtin_add_overflow.
      	(__hsail_sat_sub_u8, __hsail_sat_sub_u16): Remove pointless for overflow
      	over maximum.
      	(__hsail_sat_sub_u32, __hsail_sat_sub_u64, __hsail_sat_sub_s32,
      	__hsail_sat_sub_s64): Use __builtin_sub_overflow.
      	(__hsail_sat_mul_u32, __hsail_sat_mul_u64, __hsail_sat_mul_s32,
      	__hsail_sat_mul_s64): Use __builtin_mul_overflow.
      	* rt/arithmetic.c (__hsail_borrow_u32, __hsail_borrow_u64): Use
      	__builtin_sub_overflow_p.
      	(__hsail_carry_u32, __hsail_carry_u64): Use __builtin_add_overflow_p.
      	* rt/misc.c (__hsail_groupbaseptr, __hsail_kernargbaseptr_u64):
      	Cast pointers to uintptr_t first before casting to some other integral
      	type.
      	* rt/segment.c (__hsail_segmentp_private, __hsail_segmentp_group): Likewise.
      	* rt/queue.c (__hsail_ldqueuereadindex, __hsail_ldqueuewriteindex,
      	__hsail_addqueuewriteindex, __hsail_casqueuewriteindex,
      	__hsail_stqueuereadindex, __hsail_stqueuewriteindex): Cast integral value
      	to uintptr_t first before casting to pointer.
      	* rt/workitems.c (__hsail_alloca_pop_frame): Cast memcpy first argument to
      	void * to avoid warning.
      
      From-SVN: r245080
      Jakub Jelinek committed
    • Daily bump. · 6b3430bd
      From-SVN: r245079
      GCC Administrator committed
  2. 31 Jan, 2017 23 commits
    • i386.c (ix86_expand_split_stack_prologue): Add REG_ARGS_SIZE note to 32-bit push… · 014baade
      i386.c (ix86_expand_split_stack_prologue): Add REG_ARGS_SIZE note to 32-bit push insns and call insn.
      
      	* config/i386/i386.c (ix86_expand_split_stack_prologue): Add
      	REG_ARGS_SIZE note to 32-bit push insns and call insn.
      
      From-SVN: r245076
      Ian Lance Taylor committed
    • re PR c++/79304 (diagnostic shows bogus expression ((X<T>*)this)->.c) · 19bdccb4
      	PR c++/79304
      	* error.c (dump_expr) <case COMPONENT_REF>: Don't print .
      	after ARROW_EXPR.
      
      	* g++.dg/diagnostic/pr79304.C: New test.
      
      From-SVN: r245073
      Jakub Jelinek committed
    • Fix ICE with spelling hints within explicit namespace aliases (PR c++/79298) · fcb2cdfc
      gcc/cp/ChangeLog:
      	PR c++/79298
      	* name-lookup.c (suggest_alternative_in_explicit_scope): Resolve
      	any namespace aliases.
      
      gcc/testsuite/ChangeLog:
      	PR c++/79298
      	* g++.dg/spellcheck-pr79298.C: New test case.
      
      From-SVN: r245072
      David Malcolm committed
    • Prevent ICEs due to bogus substring locations (PR preprocessor/79210) · 7cfa044d
      gcc/ChangeLog:
      	PR preprocessor/79210
      	* input.c (get_substring_ranges_for_loc): Replace line_width
      	assertion with error-handling.
      
      gcc/testsuite/ChangeLog:
      	PR preprocessor/79210
      	* gcc.dg/format/pr79210.c: New test case.
      	* gcc.dg/plugin/diagnostic-test-string-literals-2.c (test_pr79210):
      	New function.
      
      From-SVN: r245070
      David Malcolm committed
    • re PR c++/79290 (forming pointer to member function tries to access "__pfn") · 5ae37bdf
      	PR c++/79290
      	* typeck.c (build_ptrmemfunc_access_expr): Set TREE_NO_WARNING.
      
      	PR c++/79290
      	* g++.dg/warn/pr79290.C: New.
      
      From-SVN: r245069
      Nathan Sidwell committed
    • re PR fortran/79305 (real128 - undefined reference to cexpl) · 0751254a
      2017-01-31  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/79305
      	* c99_protos.h: Spell HAVE_EXPL correctly.
      	* intrinsics/c99_functions.c: Ditto.
      
      From-SVN: r245068
      Steven G. Kargl committed
    • re PR c++/67273 (Incorrect -Wshadow warning with generic lambdas) · de3fbef6
      	PR c++/67273
      	PR c++/79253
      	* pt.c: (instantiate_decl): Push to top level when current
      	function scope doesn't match.  Only push lmabda scope stack when
      	pushing to top.
      
      	PR c++/67273
      	PR c++/79253
      	* g++.dg/cpp1y/pr67273.C: New.
      	* g++.dg/cpp1y/pr79253.C: New.
      
      From-SVN: r245067
      Nathan Sidwell committed
    • cp-tree.h (instantiate_decl): Make defer_ok bool. · 1a5bac38
      	* cp-tree.h (instantiate_decl): Make defer_ok bool.
      	* pt.c: Fix instantiate_decl calls to pass true/false not 0/1
      	(instantiate_decl): Simplify and reorder state saving and restoration.
      
      From-SVN: r245066
      Nathan Sidwell committed
    • re PR c++/79264 (ICE verify_type failed) · 7f357c61
      	PR c++/79264
      	* lambda.c (maybe_generic_this_capture): Deal with
      	template-id-exprs.
      	* semantics.c (finish_member_declaration): Assert class is being
      	defined.
      
      	PR c++/79264
      	* g++.dg/cpp1y/pr61636-1.C: Augment.
      
      From-SVN: r245065
      Nathan Sidwell committed
    • re PR tree-optimization/77318 (FAIL: gfortran.dg/graphite/pr68279.f90 -O … · 8eedca0d
      re PR tree-optimization/77318 (FAIL: gfortran.dg/graphite/pr68279.f90   -O  (internal compiler error))
      
      2017-01-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/77318
      	* graphite-sese-to-poly.c (extract_affine): Fix assert.
      	(create_pw_aff_from_tree): Take loop parameter.
      	(add_condition_to_pbb): Pass loop of the condition to
      	create_pw_aff_from_tree.
      
      From-SVN: r245064
      Richard Biener committed
    • libgomp: Provide prototypes for functions implemented by libgomp plugins · dced339c
      	libgomp/
      	* libgomp-plugin.h: #include <stdbool.h>.
      	(GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
      	(GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
      	(GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
      	(GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
      	(GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
      	(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
      	(GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
      	(GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
      	(GOMP_OFFLOAD_openacc_register_async_cleanup)
      	(GOMP_OFFLOAD_openacc_async_test)
      	(GOMP_OFFLOAD_openacc_async_test_all)
      	(GOMP_OFFLOAD_openacc_async_wait)
      	(GOMP_OFFLOAD_openacc_async_wait_async)
      	(GOMP_OFFLOAD_openacc_async_wait_all)
      	(GOMP_OFFLOAD_openacc_async_wait_all_async)
      	(GOMP_OFFLOAD_openacc_async_set_async)
      	(GOMP_OFFLOAD_openacc_create_thread_data)
      	(GOMP_OFFLOAD_openacc_destroy_thread_data)
      	(GOMP_OFFLOAD_openacc_get_current_cuda_device)
      	(GOMP_OFFLOAD_openacc_get_current_cuda_context)
      	(GOMP_OFFLOAD_openacc_get_cuda_stream)
      	(GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
      	* libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
      	these.
      	* plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
      	(GOMP_OFFLOAD_unload_image): Fix argument types.
      	liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_type): Fix
      	return type.
      	(GOMP_OFFLOAD_load_image): Fix argument types.
      
      From-SVN: r245062
      Thomas Schwinge committed
    • [testsuite] gcc.dg/memcmp-1.c: Fix testcase for newlib. · 5b11971a
      2017-01-31  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.dg/memcmp-1.c (static void test_driver_memcmp): Call
      	rand() instead of random().
      
      From-SVN: r245061
      Christophe Lyon committed
    • s390.c (s390_asan_shadow_offset): New function. · 4997a71d
      gcc/
      	* config/s390/s390.c (s390_asan_shadow_offset): New function.
      	(TARGET_ASAN_SHADOW_OFFSET): Redefine.
      libsanitizer/
      	* configure.tgt: Enable asan and ubsan on 64-bit s390*-*-linux*.
      
      From-SVN: r245060
      Jakub Jelinek committed
    • re PR target/78597 (test case gcc.dg/torture/fp-int-convert-float128-ieee.c (and… · c6eb38f3
      re PR target/78597 (test case gcc.dg/torture/fp-int-convert-float128-ieee.c (and others) fail starting with r242780)
      
      2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/78597
      	PR target/79038
      	* config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
      	no longer used.
      	(convert_int_to_float128): Likewise.
      	* config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
      	(convert_int_to_float128): Likewise.
      	* config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
      	(UNSPEC_IEEE128_CONVERT): Likewise.
      	(floatsi<mode>2, FLOAT128 iterator): Bypass calling
      	rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
      	Use local variables for IBM extended format.
      	(fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
      	(fix_trunc<mode>si2_fprs): Likewise.
      	(fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
      	(floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
      	(fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
      	to know that we can now have integers of all sizes in vector
      	registers.
      	(fix<uns>_<mode>di2_hw): Likewise.
      	(float<uns>_<mode>si2_hw): Likewise.
      	(fix_<mode>si2_hw): Likewise.
      	(fixuns_<mode>si2_hw): Likewise.
      	(float<uns>_<mode>di2_hw): Likewise.
      	(float_<mode>di2_hw): Likewise.
      	(float_<mode>si2_hw): Likewise.
      	(floatuns_<mode>di2_hw): Likewise.
      	(floatuns_<mode>si2_hw): Likewise.
      	(xscvqp<su>wz_<mode>): Delete, no longer used.
      	(xscvqp<su>dz_<mode>): Likewise.
      	(xscv<su>dqp_<mode>): Likewise.
      	(ieee128_mfvsrd_64bit): Likewise.
      	(ieee128_mfvsrd_32bit): Likewise.
      	(ieee128_mfvsrwz): Likewise.
      	(ieee128_mtvsrw): Likewise.
      	(ieee128_mtvsrd_64bit): Likewise.
      	(ieee128_mtvsrd_32bit): Likewise.
      
      From-SVN: r245059
      Michael Meissner committed
    • Call symbol_summary<>::release instead of ~symbol_summary (PR ipa/79285). · a0a348b1
      2017-01-31  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/79285
      	* ipa-prop.c (ipa_free_all_node_params): Call release method
      	instead of ~sumbol_summary to not to trigger double times
      	dtor of hash_map.
      
      From-SVN: r245058
      Martin Liska committed
    • re PR tree-optimization/71691 (wrong code at -O3 in both 32-bit and 64-bit modes… · 8b670f93
      re PR tree-optimization/71691 (wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (Floating point exception))
      
      	PR tree-optimization/71691
      	* bitmap.h (class auto_bitmap): New.
      	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
      	is_maybe_undefined instead of ssa_undefined_value_p.
      
      From-SVN: r245057
      Aldy Hernandez committed
    • S/390: Rename __S390_ARCH_LEVEL__ to __ARCH__. · 4727e06b
      We have recently added the predefined macro __S390_ARCH_LEVEL__ to
      expand to a numerical value representing the architecture document
      level currently in use.  However, the IBM XL compiler already has a
      macro named __ARCH__ for that purpose.  So we change our macro to that
      in order to improve portability.
      
      gcc/ChangeLog:
      
      2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
      	__S390_ARCH_LEVEL__ to __ARCH__.
      
      gcc/testsuite/ChangeLog:
      
      2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/s390.exp: Rename __S390_ARCH_LEVEL__ to
      	__ARCH__.
      
      From-SVN: r245055
      Andreas Krebbel committed
    • re PR c++/79267 (internal compiler error with -O3 or -O2 -finline-functions) · b6dae849
      	PR tree-optimization/79267
      	* value-prof.c (gimple_ic): Only drop lhs for noreturn calls
      	if should_remove_lhs_p is true.
      
      	* g++.dg/opt/pr79267.C: New test.
      
      From-SVN: r245053
      Jakub Jelinek committed
    • [PR63238] output alignment debug information · 40fb9c89
      Output DWARFv5+ DW_AT_alignment for non-default alignment of
      variables, fields and types.
      
      for gcc/ChangeLog
      
      	PR debug/63238
      	* dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
      	(add_alignment_attribute): New.
      	(base_type_die): Add alignment attribute.
      	(subrange_type_die): Likewise.
      	(modified_type_die): Likewise.
      	(gen_array_type_die): Likewise.
      	(gen_descr_array_type_die: Likewise.
      	(gen_enumeration_type_die): Likewise.
      	(gen_subprogram_die): Likewise.
      	(gen_variable_die): Likewise.
      	(gen_field_die): Likewise.
      	(gen_ptr_to_mbr_type_die): Likewise.
      	(gen_struct_or_union_type_die): Likewise.
      	(gen_subroutine_type_die): Likewise.
      	(gen_typedef_die): Likewise.
      	(base_type_cmp): Compare alignment attribute.
      
      for gcc/testsuite/ChangeLog
      
      	PR debug/63238
      	* gcc.dg/debug/dwarf2/align-1.c: New.
      	* gcc.dg/debug/dwarf2/align-2.c: New.
      	* gcc.dg/debug/dwarf2/align-3.c: New.
      	* gcc.dg/debug/dwarf2/align-4.c: New.
      	* gcc.dg/debug/dwarf2/align-5.c: New.
      	* gcc.dg/debug/dwarf2/align-6.c: New.
      	* gcc.dg/debug/dwarf2/align-as-1.c: New.
      	* g++.dg/debug/dwarf2/align-1.C: New.
      	* g++.dg/debug/dwarf2/align-2.C: New.
      	* g++.dg/debug/dwarf2/align-3.C: New.
      	* g++.dg/debug/dwarf2/align-4.C: New.
      	* g++.dg/debug/dwarf2/align-5.C: New.
      	* g++.dg/debug/dwarf2/align-6.C: New.
      
      From-SVN: r245052
      Alexandre Oliva committed
    • Introduce C++ support in libcc1 · 8db29d88
      Extend libcc1's with an API for C++ support.
      
      Extend libcc1's C API to distinguish between integral types with the
      same width, as in C++.  Likewise for float types.
      
      Export small bits of functionality from the C++ front-end for use in
      libcc1.  Add support for the C++ front-end to look up names and
      addresses using a libcc1-registered binding oracle.  Add support for
      global friends.
      
      
      for  gcc/cp/ChangeLog
      
      	Introduce C++ support in libcc1.
      	* cp-tree.h (struct lang_identifier): Add oracle_looked_up.
      	(ansi_opname): Rename to...
      	(cp_operator_id): ... this.  Adjust all callers.
      	(ansi_assopname): Rename to...
      	(cp_assignment_operator_id): ... this.  Adjust all callers.
      	(cp_literal_operator_id): Declare.
      	(set_global_friend): Declare.
      	(is_global_friend): Declare.
      	(enum cp_oracle_request): New type.
      	(cp_binding_oracle_function): New type.
      	(cp_binding_oracle): Declare.
      	(cp_finish_injected_record_type): Declare.
      	* friend.c (global_friend): New var.
      	(set_global_friend): New fn.
      	(is_global_friend): New fn.
      	(is_friend): Call is_global_friend.
      	* name-lookup.c (cp_binding_oracle): New var.
      	(query_oracle): New fn.
      	(qualified_lookup_using_namespace): Call query_oracle.
      	(lookup_name_real_1): Likewise.
      	* parser.c (cp_literal_operator_id): Drop static.
      	* search.c (friend_accessible_p): Call is_global_friend.
      	* semantics.c (is_this_parameter): Accept a variable if the
      	binding oracle is enabled.
      
      for  include/ChangeLog
      
      	Introduce C++ support in libcc1.
      	* gcc-c-fe.def (int_type_v0): Rename from...
      	(int_type): ... this.  Introduce new version.
      	(float_type_v0): Rename from...
      	(float_type): ... this.  Introduce new version.
      	(char_type): New.
      	* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
      	(gcc_type_array): Move...
      	* gcc-interface.h: ... here.
      	* gcc-cp-fe.def: New.
      	* gcc-cp-interface.h: New.
      
      for  libcc1/ChangeLog
      
      	Introduce C++ support.
      	* Makefile.am (AM_CPPFLAGS): Move some -I flags to...
      	(CPPFLAGS_FOR_C_FAMILY, CPPFLAGS_FOR_C, CPPFLAGS_FOR_CXX): ...
      	new macros.
      	(plugin_LTLIBRARIES): Add libcp1plugin.la.
      	(BUILT_SOURCES, MOSTLYCLEANFILES): Add...
      	(cp-compiler-name.h): ... this.  New.
      	(c-compiler-name.h): Rename all over from...
      	(compiler-name.h): ... this.  Create it atomically.
      	(marshall_c_source, marshall_cxx_source): New macros.
      	(libcc1plugin_la_SOURCES): Rename plugin.cc to libcc1plugin.cc.
      	Add marshall_c_source expansion.
      	(libcc1plugin.lo_CPPFLAGS): New macro.
      	(libcp1plugin_la_LDFLAGS): Likewise.
      	(libcp1plugin_la_SOURCES): Likewise.
      	(libcp1plugin.lo_CPPFLAGS): Likewise.
      	(libcp1plugin_la_LIBADD): Likewise.
      	(libcp1plugin_la_DEPENDENCIES): Likewise.
      	(libcp1plugin_la_LINK): Likewise.
      	(libcc1_la_SOURCES): Added marshall_c_source and
      	marshall_cxx_source expansions.
      	* Makefile.in: Rebuild.
      	* compiler-name.h: Rename all over to...
      	* c-compiler-name.h: ... this.  Define C_COMPILER_NAME instead
      	of COMPILER_NAME.
      	* plugin.cc: Rename all over to...
      	* libcc1plugin.cc: ... this.  Include marshall-c.hh.
      	(address_rewriter): Drop cleaning up of VLA sizes.
      	(plugin_build_decl): Mark decls as external.
      	(plugin_tagbind): Propagate name to all variants.
      	(build_anonymous_node): New.
      	(plugin_build_record_type): Use it instead of make_node.
      	(plugin_build_union_type): Likewise.
      	(plugin_build_enum_type): Likewise.
      	(plugin_finish_record_or_union): Update all type variants.
      	(safe_lookup_builtin_type): New.
      	(plugin_int_check): Factor out of, and add checks to, ...
      	(plugin_int_type): ... this.  Rename to...
      	(plugin_int_type_v0): ... this.
      	(plugin_int_type): New interface, new implementation.
      	(plugin_char_type): New.
      	(plugin_float_type_v0): Rename from...
      	(plugin_float_type): ... this.  New interface, new implementation.
      	(plugin_init): Bump handshake version.
      	* libcc1.cc: Include marshall-c.hh.  Drop gcc-interface.h.
      	(call_binding_oracle): Rename to...
      	(c_call_binding_oracle): ... this, into anonymous namespace.
      	(call_symbol_address): Rename to...
      	(c_call_symbol_address): ... this, likewise.
      	(GCC_METHOD#): Move methods into cc1plugin::c:: namespace.
      	(libcc1::compiler::find): Refer to C_COMPILER_NAME.
      	(fork_exec): Bump to GCC_C_FE_VERSION_1.
      	(libcc1_compile): Prefix callbacks with c_.
      	(gcc_c_fe_context): Accept GCC_C_FE_VERSION_1.
      	* libcc1.sym: Export gcc_cp_fe_context.
      	* libcp1.cc: New, mostly copied and adjusted from libcc1.cc.
      	* libcp1plugin.cc: New, initially copied from libcc1plugin.cc.
      	* libcp1plugin.sym: New.
      	* marshall-c.hh: New.  Move C-specific types from...
      	* marshall.cc: ... this.
      	(cc1_plugin::marshall_array_start): New.
      	(cc1_plugin::marshall_array_elmts): New.
      	(cc1_plugin::marshall for gcc_type_array): Use the above.
      	(cc1_plugin::unmarshall_array_start): New.
      	(cc1_plugin::unmarshall_array_elmts): New.
      	(cc1_plugin::unmarshall for gcc_type_array): Use the above.
      	* marshall.hh: Declare the new array building blocks.
      	Drop C-specific unmarshall declarations.
      	* marshall-cp.hh: New.
      	* names.cc (GCC_METHOD#): Add LANG:: to method names.
      	(LANG): Define while including gcc-c-fe.def and gcc-cp-fe.def.
      	* names.hh: Include gcc-c-fe.def and gcc-cp-fe.def in the
      	corresponding namespaces.
      	* rpc.hh: Don't include marshall.hh.
      	[GCC_CP_INTERFACE_H] (argument_wrapper): Specialize for
      	gcc_vbase_array, gcc_cp_template_args, gcc_cp_function_args.
      
      From-SVN: r245051
      Alexandre Oliva committed
    • libcc1: return absolute filename from make search_dir · 9f92b93b
      for  libcc1/ChangeLog
      
      	* findcomp.cc: Include system.h.
      	(search_dir): Return absolute filename.
      
      From-SVN: r245050
      Jan Kratochvil committed
    • libcc1 base API: bump set_arguments; add set_driver_filename, set_triplet_regexp · 5d1b2443
      for  include/ChangeLog
      
      	* gcc-interface.h (enum gcc_base_api_version): Update comment
      	for GCC_FE_VERSION_1.
      	(struct gcc_base_vtable): Rename set_arguments to
      	set_arguments_v0.  Add set_arguments, set_triplet_regexp and
      	set_driver_filename.
      
      for  libcc1/ChangeLog
      
      	* libcc1.cc (libcc1): Add class compiler with field compilerp,
      	class compiler_triplet_regexp and class
      	compiler_driver_filename.
      	(libcc1::libcc1): Initialize compilerp.
      	(libcc1::~libcc1): Delete compilerp.
      	(libcc1::compiler::find, libcc1::compiler_triplet_regexp::find)
      	(libcc1::compiler_driver_filename::find): New methods.
      	(libcc1_set_arguments): Remove parameter triplet_regexp.
      	(libcc1_set_triplet_regexp, libcc1_set_driver_filename)
      	(libcc1_set_arguments_v0): New functions.
      	(vtable): Use libcc1_set_arguments_v0, add
      	libcc1_set_arguments, libcc1_set_triplet_regexp and
      	libcc1_set_driver_filename.
      
      From-SVN: r245049
      Jan Kratochvil committed
    • libcc1 base API: add set_verbose and new version of compile · 3b5c1072
      for  include/ChangeLog
      
      	* gcc-interface.h (enum gcc_base_api_version): Add comment to
      	GCC_FE_VERSION_1.
      	(struct gcc_base_vtable): Rename compile to compile_v0.
      	Update comment for compile.  New methods set_verbose and
      	compile.
      
      for  libcc1/ChangeLog
      
      	* libcc1.cc: Include intl.h.
      	(struct libcc1): Add field verbose.
      	(libcc1::libcc1): Initialize it.
      	(libcc1_set_verbose): New function.
      	(libcc1_set_arguments): Print messages for VERBOSE.
      	(libcc1_compile): Remove parameter verbose.  Use VERBOSE from
      	SELF.
      	(libcc1_compile_v0): New function.
      	(vtable): Use libcc1_compile_v0 and add libcc1_compile and
      	libcc1_set_verbose.
      
      From-SVN: r245048
      Jan Kratochvil committed