gcc/include
Jason Merrill b8fd7909c0 Implement N4514, C++ Extensions for Transactional Memory.
gcc/
	* builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
gcc/c-family/
	* c-common.c (c_common_reswords): Add C++ TM TS keywords.
	(c_common_attribute_table): Add transaction_safe_dynamic.
	transaction_safe now affects type identity.
	(handle_tm_attribute): Handle transaction_safe_dynamic.
	* c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT,
	RID_ATOMIC_CANCEL, RID_SYNCHRONIZED.
	(OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED.
	(D_TRANSMEM): New.
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory.
	* c-pretty-print.c (pp_c_attributes_display): Don't print
	transaction_safe in C++.
gcc/c/
	* c-parser.c (c_lex_one_token): Handle @synchronized.
	* c-decl.c (match_builtin_function_types): A declaration of a built-in
	can change whether the function is transaction_safe.
gcc/cp/
	* cp-tree.h (struct cp_declarator): Add tx_qualifier field.
	(BCS_NORMAL, BCS_TRANSACTION): New enumerators.
	* lex.c (init_reswords): Limit TM kewords to -fgnu-tm.
	* parser.c (cp_lexer_get_preprocessor_token): Fix @synchronized.
	(make_call_declarator): Take tx_qualifier.
	(cp_parser_tx_qualifier_opt): New.
	(cp_parser_lambda_declarator_opt): Use it.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_statement): Handle atomic_noexcept, atomic_cancel.
	(cp_parser_compound_statement): Change in_try parameter to bcs_flags.
	(cp_parser_std_attribute): Map optimize_for_synchronized to
	transaction_callable.
	(cp_parser_transaction): Take the token.  Handle atomic_noexcept.
	* lambda.c (maybe_add_lambda_conv_op): Handle transaction-safety.
	* call.c (enum conversion_kind): Add ck_tsafe.
	(standard_conversion): Handle transaction-safety conversion.
	(convert_like_real, resolve_address_of_overloaded_function): Likewise.
	(check_methods): Diagnose transaction_safe_dynamic on non-virtual
	function.
	(look_for_tm_attr_overrides): Don't inherit transaction_safe_dynamic.
	* cvt.c (tx_safe_fn_type_p, tx_unsafe_fn_variant)
	(can_convert_tx_safety): New.
	* typeck.c (composite_pointer_type): Handle transaction-safety.
	* name-lookup.h (enum scope_kind): Add sk_transaction.
	* name-lookup.c (begin_scope): Handle it.
	* semantics.c (begin_compound_stmt): Pass it.
	* decl.c (check_previous_goto_1): Check it.
	(struct named_label_entry): Add in_transaction_scope.
	(poplevel_named_label_1): Set it.
	(check_goto): Check it.
	(duplicate_decls): A specialization can be transaction_safe
	independently of its template.
	(grokdeclarator): Handle tx-qualifier.
	* rtti.c (ptr_initializer): Handle transaction-safe.
	* search.c (check_final_overrider): Check transaction_safe_dynamic.
	Don't check transaction_safe.
	* mangle.c (write_function_type): Mangle transaction_safe here.
	(write_CV_qualifiers_for_type): Not here.
	(write_type): Preserve transaction_safe when stripping attributes.
	* error.c (dump_type_suffix): Print transaction_safe.
libiberty/
	* cp-demangle.c (d_cv_qualifiers): Dx means transaction_safe.
	(cplus_demangle_type): Let d_cv_qualifiers handle it.
	(d_dump, d_make_comp, has_return_type, d_encoding)
	(d_count_templates_scopes, d_print_comp_inner)
	(d_print_mod_list, d_print_mod, d_print_function_type)
	(is_ctor_or_dtor): Handle DEMANGLE_COMPONENT_TRANSACTION_SAFE.

From-SVN: r228462
2015-10-04 15:17:19 -04:00
..
gdb Update copyright year in include 2015-07-14 09:08:59 -07:00
ansidecl.h add GCC_FINAL to ansidecl.h 2015-08-11 22:39:31 +00:00
ChangeLog gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment. 2015-09-28 19:37:33 +00:00
ChangeLog-9103
ChangeLog.jit
COPYING
COPYING3
demangle.h Implement N4514, C++ Extensions for Transactional Memory. 2015-10-04 15:17:19 -04:00
dwarf2.def DWARF2: add extensions to handle biased types 2015-08-14 09:48:13 +00:00
dwarf2.h Update copyright year in include 2015-07-14 09:08:59 -07:00
dyn-string.h Update copyright year in include 2015-07-14 09:08:59 -07:00
fibheap.h Update copyright year in include 2015-07-14 09:08:59 -07:00
filenames.h Update copyright year in include 2015-07-14 09:08:59 -07:00
floatformat.h Update copyright year in include 2015-07-14 09:08:59 -07:00
fnmatch.h Update copyright year in include 2015-07-14 09:08:59 -07:00
gcc-c-fe.def Update copyright year in include 2015-07-14 09:08:59 -07:00
gcc-c-interface.h Update copyright year in include 2015-07-14 09:08:59 -07:00
gcc-interface.h Update copyright year in include 2015-07-14 09:08:59 -07:00
getopt.h Update copyright year in include 2015-07-14 09:08:59 -07:00
gomp-constants.h gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment. 2015-09-28 19:37:33 +00:00
hashtab.h Update copyright year in include 2015-07-14 09:08:59 -07:00
leb128.h Update copyright year in include 2015-07-14 09:08:59 -07:00
libiberty.h
longlong.h Update copyright year in include 2015-07-14 09:08:59 -07:00
lto-symtab.h Update copyright year in include 2015-07-14 09:08:59 -07:00
md5.h Update copyright year in include 2015-07-14 09:08:59 -07:00
objalloc.h Update copyright year in include 2015-07-14 09:08:59 -07:00
obstack.h Update copyright year in include 2015-07-14 09:08:59 -07:00
partition.h
plugin-api.h Update copyright year in include 2015-07-14 09:08:59 -07:00
safe-ctype.h Update copyright year in include 2015-07-14 09:08:59 -07:00
sha1.h Update copyright year in include 2015-07-14 09:08:59 -07:00
simple-object.h Update copyright year in include 2015-07-14 09:08:59 -07:00
sort.h Update copyright year in include 2015-07-14 09:08:59 -07:00
splay-tree.h Update copyright year in include 2015-07-14 09:08:59 -07:00
symcat.h Update copyright year in include 2015-07-14 09:08:59 -07:00
timeval-utils.h Update copyright year in include 2015-07-14 09:08:59 -07:00
vtv-change-permission.h Update copyright year in include 2015-07-14 09:08:59 -07:00
xregex2.h Update copyright year in include 2015-07-14 09:08:59 -07:00
xregex.h
xtensa-config.h Update copyright year in include 2015-07-14 09:08:59 -07:00