1. 19 Dec, 2014 28 commits
    • re PR fortran/64209 ([OOP] runtime segfault with CLASS(*), INTENT(OUT) dummy argument) · 375550c6
      2014-12-19  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/64209
      	* trans-expr.c (gfc_trans_class_array_init_assign): Check if _def_init
      	component is non-NULL.
      	(gfc_trans_class_init_assign): Ditto.
      
      2014-12-19  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/64209
      	* gfortran.dg/unlimited_polymorphic_19.f90: New.
      
      From-SVN: r218968
      Janus Weil committed
    • New std::string implementation. · 34a2b755
      	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove.
      	(GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add.
      	* configure.ac: Use new macros.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      	* doc/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI.
      	* include/Makefile.in: Regenerate.
      	* config/abi/pre/gnu.ver: Export symbols related to new std::string.
      	Tighten old patterns to not match new symbols.
      	* config/locale/generic/monetary_members.cc: Guard some definitions
      	to not compile with new ABI.
      	* config/locale/gnu/monetary_members.cc: Likewise.
      	* config/locale/gnu/numeric_members.cc: Prevent double-free.
      	* config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128
      	exports. Tighten old patterns.
      	* doc/xml/manual/configure.xml: Document new configure options.
      	* doc/html/*: Regenerate.
      	* include/bits/basic_string.h (__cxx11::basic_string): Define new
      	non-reference-counted implementation in inline namespace __cxx11.
      	(stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use
      	inline namespace.
      	(literals::string_literals::operator"): Conditionally use abi-tag.
      	* include/bits/basic_string.tcc (__cxx11::basic_string): Define.
      	* include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and
      	LDBL_CXX11_ABI namespace macros.
      	* include/bits/locale_classes.h (locale::name()): Use abi_tag when
      	new ABI is in use.
      	(locale::_S_twinned_facets): New static member.
      	(locale::facet::__shim): Declare new type.
      	(locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New
      	functions for creating shims.
      	(locale::_Impl::_M_facet_unchecked): New member function for use
      	during construction.
      	(locale::_Impl::_M_init_extra): New member functions to create second
      	version of some facets.
      	(collate, collate_byname): Use abi_tag when new ABI is in use.
      	* include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro.
      	(numpunct, numpunct_byname): Use __cxx11 namespace.
      	(num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag
      	when new ABI is in use.
      	(num_get::__do_get, num_put::__do_put): Do not declare long double
      	compat functions for new ABI.
      	* include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on
      	definitions.
      	(numpunct, numpunct_byname): Qualify explicit instantiations.
      	* include/bits/locale_facets_nonio.h (time_get, time_get_byname,
      	moneypunct, moneypunct_byname, money_get, money_put, messages,
      	messages_byname): Use new inline namespace macros.
      	(money_get::__do_get, money_put::__do_put): Do not declare long
      	double compat functions for new ABI.
      	* include/bits/locale_facets_nonio.tcc (money_get, money_put): Use
      	new namespace macros.
      	(money_get::__do_get, money_put::__do_put): Do not define for new ABI.
      	* include/bits/localefwd.h (numpunct, numpunct_byname, collate,
      	collate_byname, time_get, time_get_byname, moneypunct,
      	moneypunct_byname, money_get, money_put, messages, messages_byname):
      	Use new namespace macros.
      	* include/bits/regex.h: Use inline namespace macros.
      	* include/bits/stl_list.h (_List_base, list): Use inline namespace
      	instead of abi-tag.
      	* include/bits/stringfwd.h (basic_string): Use namespace macros.
      	* include/std/iosfwd (basic_stringbuf, basic_istringstream,
      	basic_ostringstream, basic_stringstream): Likewise.
      	* include/std/sstream: Likewise.
      	(basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move.
      	* include/std/stdexcept (__cow_string, __sso_string): New types for
      	indirectly using std::string with either ABI.
      	(logic_error, runtime_error): Replace std::string member with
      	__cow_string when new ABI is in use. Declare non-inline copy
      	constructor and assignment operator. Declare const char* constructors.
      	(domain_error, invalid_argument, length_error, out_of_range,
      	range_error, overflow_error, underflow_error): Declare const char*
      	constructors.
      	* include/std/system_error (error_category): Replace with new
      	definition in inline namespace _V2.
      	(error_code::message, error_condition::message): Use abi_tag on
      	functions returning std::string.
      	* python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI.
      	* src/c++11/Makefile.am: Add new files.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI.
      	Define old error_category symbols.
      	* src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members
      	using old std::string ABI.
      	* src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define.
      	* src/c++11/cow-shim_facets.cc: Define shim facets using old ABI.
      	* src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old
      	std::string ABI.
      	* src/c++11/cow-stdexcept.cc: Define new constructors and assignment
      	operators.
      	(__cow_string, error_category::_M_message): Define.
      	* src/c++11/cow-string-inst.cc: Explicit instantiations using old
      	std::string. Include src/c++98/istream-string.cc.
      	* src/c++11/cow-wstring-inst.cc: Explicit instantiations using old
      	std::wstring.
      	* src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new
      	string.
      	* src/c++11/cxx11-ios_failure.cc: Add sanity check.
      	* src/c++11/cxx11-locale-inst.cc: Instantiate facets using new
      	std::string.
      	* src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI.
      	* src/c++11/cxx11-stdexcept.cc: Define constructors taking new
      	std::string.
      	* src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using
      	new std::wstring.
      	* src/c++11/fstream-inst.cc: Compile with new ABI.
      	* src/c++11/functexcept.cc: Compile with old ABI.
      	* src/c++11/random.cc: Compile with new ABI.
      	* src/c++11/sstream-inst.cc: Compile with new ABI.
      	* src/c++11/string-inst.cc: Explicit instantiations for new string.
      	* src/c++11/system_error.cc (__sso_string, error_category::_M_message):
      	Define.
      	* src/c++11/wstring-inst.cc: Compile with new ABI.
      	* src/c++98/Makefile.am: Compile some host files twice for old and
      	new std::string. Add new files.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/c++98/compatibility-ldbl.cc: Compile with old ABI.
      	* src/c++98/compatibility.cc: Likewise.
      	* src/c++98/concept-inst.cc: Likewise.
      	* src/c++98/hash_tr1.cc: Likewise.
      	* src/c++98/istream-string.cc: New file defining functions that
      	work with istream and std::string moved from ...
      	* src/c++98/istream.cc: ... here.
      	* src/c++98/cow-istream-string.cc: Recompile istream-string.cc with
      	old ABI.
      	* src/c++98/locale-inst.cc: Adjust facet instantiations to work for
      	either ABI.
      	* src/c++98/locale.cc (locale::_M_install_facet,
      	locale::_M_install_cache): Handle twinned facets.
      	* src/c++98/locale-facets.cc: Compile with old std::string ABI.
      	(__verify_grouping): Define new overload and old std::string version.
      	* src/c++98/locale_init.cc: Initialize twinned facets.
      	* src/c++98/localename.cc: Likewise.
      	* src/c++98/misc-inst.cc: Instantiate C++98-only std::string members.
      	(__verify_grouping): Define new std::string version.
      	* src/c++98/stdexcept.cc: Compile with old std::string ABI.
      	* src/c++98/wlocale-inst.cc: Likewise.
      	* testsuite/18_support/50594.cc: Adjust to work with SSO strings.
      	* testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
      	Likewise.
      	* testsuite/21_strings/headers/string/synopsis.cc: Use inline
      	namespace macros.
      	* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
      	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so
      	correct exception type can be caught.
      	* 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.
      	* testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI.
      	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
      	* testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI.
      	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
      	* testsuite/util/exception/safety.h: Adjust member function types
      	for new std::string.
      	* testsuite/util/testsuite_abi.cc: Add new version and ignore
      	__float128 symbols in __cxx11 namespace.
      
      From-SVN: r218964
      Jonathan Wakely committed
    • 2014-12-19 Paolo Carlini <paolo.carlini@oracle.com> · 5dcfa0b6
      	* Tweak ChangeLog.
      
      From-SVN: r218963
      Paolo Carlini committed
    • using30.C: Move ... · 3aae939d
              * g++.dg/template/using30.C: Move ...
              * g++.dg/cpp0x/alias-decl-45.C: ... here.
      
      From-SVN: r218962
      Kai Tietz committed
    • [AArch64 3/3] Fix XOR_one_cmpl pattern; add SIMD-reg variants for BIC,ORN,EON · 84be6032
      gcc/:
      
      	* config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3):
      	Reparameterize to...
      	(<NLOGICAL:optab>_one_cmpl<mode>3): with extra SIMD-register variant.
      	(xor_one_cmpl<mode>3): New define_insn_and_split.
      
      	* config/aarch64/iterators.md (NLOGICAL): New define_code_iterator.
      
      gcc/testsuite/:
      
      	* gcc.target/aarch64/eon_1.c: New test.
      
      From-SVN: r218961
      Alan Lawrence committed
    • [AArch64 2/3] Add SIMD-reg variants of logical operators and/ior/xor/not · fe82d1f2
      	* config/aarch64/aarch64.md (<optab><mode>3, one_cmpl<mode>2):
      	Add SIMD-register variant.
      	* config/aarch64/iterators.md (Vbtype): Add value for SI.
      
      From-SVN: r218960
      Alan Lawrence committed
    • using30.C: Move... · f1f1391c
      2014-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/template/using30.C: Move...
      	* g++.dg/cpp0x/alias-decl-45.C: ... here.
      
      From-SVN: r218959
      Paolo Carlini committed
    • [AArch64 1/3] Don't disparage add/sub in SIMD registers · 4f2962fd
              * config/aarch64/aarch64.md (subdi3, adddi3_aarch64): Don't penalize 
              SIMD reg variant.
      
      From-SVN: r218958
      Alan Lawrence committed
    • re PR c++/60493 (g++ throws segmentation fault on simple code) · fc2770b9
      2014-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/60493
      	* g++.dg/template/crash120.C: New.
      
      From-SVN: r218957
      Paolo Carlini committed
    • re PR c++/61198 (Crash when selecting specializations through aliases.) · d427aa2e
      	PR c++/61198
      	* g++.dg/template/using30.C: New file.
      
      From-SVN: r218956
      Kai Tietz committed
    • re PR c++/61198 (Crash when selecting specializations through aliases.) · b00f4f15
      	PR c++/61198
      	* pt.c (most_general_template): Don't break for template-alias.
      
      From-SVN: r218955
      Kai Tietz committed
    • re PR ipa/63569 (Wrong code with volatile and ICF) · 6b0e0695
      Fix for PR ipa/63569.
      
      	PR ipa/63569
      	* gcc.dg/ipa/pr63569.c: New test.
      	PR ipa/63569
      	* ipa-icf-gimple.c (func_checker::compare_operand): Add missing
      	comparison for volatile flag.
      
      From-SVN: r218949
      Martin Liska committed
    • re PR preprocessor/63831 (r217292 causes segfaults with -MM) · 1f8d3e84
      	PR preprocessor/63831
      	* c-cppbuiltin.c (c_cpp_builtins): Don't define __has_attribute
      	and __has_cpp_attribute here.
      	* c-ppoutput.c (init_pp_output): Set cb->has_attribute to
      	c_common_has_attribute.
      	* c-common.h (c_common_has_attribute): New prototype.
      	* c-lex.c (init_c_lex): Set cb->has_attribute to
      	c_common_has_attribute instead of cb_has_attribute.
      	(get_token_no_padding): New function.
      	(cb_has_attribute): Renamed to ...
      	(c_common_has_attribute): ... this.  No longer static.  Use
      	get_token_no_padding, require ()s, don't build TREE_LIST
      	unnecessarily, fix up formatting, adjust diagnostics, call
      	init_attributes.
      
      	* directives.c (lex_macro_node): Remove __has_attribute__ handling.
      	* internal.h (struct spec_node): Remove n__has_attribute__ field.
      	(struct lexer_state): Remove in__has_attribute__ field.
      	* macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE.
      	* identifiers.c (_cpp_init_hashtable): Remove __has_attribute__
      	handling.
      	* init.c (builtin_array): Add __has_attribute and __has_cpp_attribute.
      	(cpp_init_special_builtins): Don't initialize __has_attribute
      	or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL.
      	* traditional.c (enum ls): Remove ls_has_attribute,
      	ls_has_attribute_close.
      	(_cpp_scan_out_logical_line): Remove __has_attribute__ handling.
      	* include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE.
      	* pch.c (cpp_read_state): Remove __has_attribute__ handling.
      	* expr.c (eval_token): Likewise.
      	(parse_has_attribute): Removed.
      
      	* c-c++-common/cpp/pr63831-1.c: New test.
      	* c-c++-common/cpp/pr63831-2.c: New test.
      
      From-SVN: r218948
      Jakub Jelinek committed
    • [ARM][doc] Remove mention of Advanced RISC Machines · 8a386c91
      	* doc/invoke.texi (ARM options): Remove mention of Advanced RISC
      	Machines.
      
      From-SVN: r218897
      Kyrylo Tkachov committed
    • Fix ChangeLog typo in 218895 · 827785dd
      From-SVN: r218896
      James Greenhalgh committed
    • [PATCH][ARM] Fix reservation pattern in cortex-a9-neon.md · 85e18759
      gcc/
      
      	* config/arm/cortex-a9-neon.md (cortex_a9_neon_vmov): Change
      	reservation to cortex_a9_neon_dp.
      
      From-SVN: r218895
      Xingxing Pan committed
    • * [SH] Split QI/HImode load/store via r0 when LRA is enabled. · 1e3e92b5
      From-SVN: r218892
      Kaz Kojima committed
    • * [SH] Add splitter to addsi3_compact. · 74bd0da1
      From-SVN: r218891
      Kaz Kojima committed
    • * [SH] Modify movsi_ie and movsf_ie patterns for LRA. · 6efc6b7f
      From-SVN: r218890
      Kaz Kojima committed
    • * [SH] Miscellaneous changes for LRA. · fc1fcfa0
      From-SVN: r218889
      Kaz Kojima committed
    • * [SH] Add -mlra option. · 106a52b7
      From-SVN: r218888
      Kaz Kojima committed
    • * Add TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT target macro. · 14133a4d
      From-SVN: r218887
      Kaz Kojima committed
    • * Add TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV target macro. · d6220b11
      From-SVN: r218886
      Kaz Kojima committed
    • lra-constraints.c (process_address_1): Swap base_term and index_term if… · 70712859
      lra-constraints.c (process_address_1): Swap base_term and index_term if INDEX_REG_CLASS is assigned to base_term...
      
      * lra-constraints.c (process_address_1): Swap base_term and index_term
        if INDEX_REG_CLASS is assigned to base_term already when INDEX_REG_CLASS
        is a single register class.
      
      From-SVN: r218885
      Kaz Kojima committed
    • compiler: Avoid multiple evaluations in interface conversions. · 47b6f982
      Added assertions for cases that might lead to multiple
      evaluations, and fixed all the problems I saw.
      
      Test case already in master Go testsuite
      (https://go-review.googlesource.com/#/c/1710/).
      
      From-SVN: r218884
      Ian Lance Taylor committed
    • Daily bump. · 0f3e3f28
      From-SVN: r218883
      GCC Administrator committed
    • re PR c++/63723 (Narrowing conversion allowed in braced init list in SFINAE context) · ac1a984a
      2014-12-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/63723
      	* g++.dg/cpp0x/sfinae54.C: New.
      
      From-SVN: r218880
      Paolo Carlini committed
  2. 18 Dec, 2014 12 commits