Commit Graph

114 Commits

Author SHA1 Message Date
Kirill Yukhin 43cf21c686 Cast strtol return to unsigned long
* testsuite/test-strtol.c (run_tests): Cast strtol return to
	unsigned long.

From-SVN: r217429
2014-11-12 08:24:30 -08:00
Yury Gribov ea41822adf Add strtoll and strtoull to libiberty.
2014-10-28  Yury Gribov  <y.gribov@samsung.com>

include/
	* libiberty.h (strtol, strtoul, strtoll, strtoull): New prototypes.

libiberty/
	* strtoll.c: New file.
	* strtoull.c: New file.
	* configure.ac: Add long long checks.  Add harness for strtoll and
	strtoull.  Check decls for strtol, strtoul, strtoll, strtoull.
	* Makefile.in (CFILES, CONFIGURED_OFILES): Add strtoll and strtoull.
	* config.in: Regenerate.
	* configure: Regenerate.
	* functions.texi: Regenerate.
	* testsuite/Makefile.in (check-strtol): New rule.
	(test-strtol): Likewise.
	(mostlyclean): Clean up strtol test.
	* testsuite/test-strtol.c: New test.

From-SVN: r216772
2014-10-28 09:43:20 +00:00
Jason Merrill 00eaaa5056 mangle.c (is_std_substitution): Check for abi_tag.
gcc/cp/
	* mangle.c (is_std_substitution): Check for abi_tag.
libiberty/
	* cp-demangle.c (d_substitution): Handle abi tags on abbreviation.

From-SVN: r215647
2014-09-26 15:57:37 -04:00
Iain Buclaw 43b1b9edfc demangle.h (DMGL_DLANG): New macro.
include/:
	* demangle.h (DMGL_DLANG): New macro.
	(DMGL_STYLE_MASK): Add DMGL_DLANG.
	(demangling_styles): Add dlang_demangling.
	(DLANG_DEMANGLING_STYLE_STRING): New macro.
	(DLANG_DEMANGLING): New macro.
	(dlang_demangle): New prototype.
libiberty/:
	* Makefile.in (CFILES): Add d-demangle.c.
	(REQUIRED_OFILES): Add d-demangle.o.
	* cplus-dem.c (libiberty_demanglers): Add dlang_demangling case.
	(cplus_demangle): Likewise.
	* d-demangle.c: New file.
	* testsuite/Makefile.in (really-check): Add check-d-demangle.
	* testsuite/d-demangle-expected: New file.

From-SVN: r215530
2014-09-23 18:36:14 +00:00
Andrew Burgess 606f9e78c6 cp-demangle.c (d_dump): Only access field from s_fixed part of the union for DEMANGLE_COMPONENT_FIXED_TYPE.
* cp-demangle.c (d_dump): Only access field from s_fixed part of
	the union for DEMANGLE_COMPONENT_FIXED_TYPE.
	(d_count_templates_scopes): Likewise.

From-SVN: r214740
2014-08-29 15:30:10 -04:00
Gary Benson 635f48009c demangler-fuzzer.c: New file.
libiberty/
	* testsuite/demangler-fuzzer.c: New file.
	* testsuite/Makefile.in (fuzz-demangler): New rule.
	(demangler-fuzzer): Likewise.
	(mostlyclean): Clean up demangler fuzzer.

From-SVN: r213912
2014-08-13 15:56:38 +00:00
Thomas Schwinge 6aa9ea7f4c Fix test in libiberty/testsuite/demangle-expected.
libiberty/
	* testsuite/demangle-expected: Fix last commit.

From-SVN: r210803
2014-05-22 13:56:45 +02:00
Andrew Burgess 70c8c2b932 cplus-dmem.c (internal_cplus_demangle): Free any resources allocated by possible previous call to gnu_special.
libiberty/
2014-05-14  Andrew Burgess  <aburgess@broadcom.com>

	* cplus-dmem.c (internal_cplus_demangle): Free any resources
	allocated by possible previous call to gnu_special.
	(squangle_mop_up): Reset pointers to NULL after calling free.
	* testsuite/demangle-expected: New test case.

From-SVN: r210425
2014-05-14 14:18:49 +00:00
Gary Benson 861c349582 cp-demangle.c (struct d_component_stack): New structure.
libiberty/
2014-05-08  Gary Benson  <gbenson@redhat.com>

	* cp-demangle.c (struct d_component_stack): New structure.
	(struct d_print_info): New field component_stack.
	(d_print_init): Initialize the above.
	(d_print_comp_inner): Renamed from d_print_comp.
	Do not restore template stack if it would cause a loop.
	(d_print_comp): New function.
	* testsuite/demangle-expected: New test cases.

From-SVN: r210205
2014-05-08 09:13:44 +00:00
Cary Coutant 85d09f6173 Fix demangler to handle conversion operators correctly.
libiberty/
	PR other/59195
	* cp-demangle.c (struct d_info_checkpoint): New struct.
	(struct d_print_info): Add current_template field.
	(d_operator_name): Set flag when processing a conversion
	operator.
	(cplus_demangle_type): When processing <template-args> for
	a conversion operator, backtrack if necessary.
	(d_expression_1): Renamed from d_expression.
	(d_expression): New wrapper around d_expression_1.
	(d_checkpoint): New function.
	(d_backtrack): New function.
	(d_print_init): Initialize current_template.
	(d_print_comp): Set current_template.
	(d_print_cast): Put current_template in scope for
	printing conversion operator name.
	(cplus_demangle_init_info): Initialize is_expression and
	is_conversion.
	* cp-demangle.h (struct d_info): Add is_expression and
	is_conversion fields.
	* testsuite/demangle-expected: New test cases.

From-SVN: r205292
2013-11-22 14:25:49 -08:00
Gerald Pfeifer 4962e51350 * testsuite/test-demangle.c: Include unistd.h.
From-SVN: r204107
2013-10-27 18:35:20 +00:00
Gary Benson c24d86bcb2 cp-demangle.c (struct d_saved_scope): New structure.
libiberty/
2013-10-25  Gary Benson  <gbenson@redhat.com>

	* cp-demangle.c (struct d_saved_scope): New structure.
	(struct d_print_info): New fields saved_scopes and
	num_saved_scopes.
	(d_print_init): Initialize the above.
	(d_print_free): New function.
	(cplus_demangle_print_callback): Call the above.
	(d_copy_templates): New function.
	(d_print_comp): New variables saved_templates and
	need_template_restore.
	[DEMANGLE_COMPONENT_REFERENCE,
	DEMANGLE_COMPONENT_RVALUE_REFERENCE]: Capture scope the first
	time the component is traversed, and use the captured scope for
	subsequent traversals.
	* testsuite/demangle-expected: Add regression test.

From-SVN: r204068
2013-10-25 13:56:51 +00:00
Gerald Pfeifer 89ac07979f * testsuite/test-expandargv.c: Include unistd.h.
From-SVN: r203993
2013-10-23 21:31:45 +00:00
Paul Pluzhnikov ea0882a0ab cp-demangle.c (d_name): Demangle local-source-names.
2013-10-11  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* cp-demangle.c (d_name): Demangle local-source-names.
	* testsuite/demangle-expected: New test.

From-SVN: r203476
2013-10-11 17:31:18 -07:00
Paolo Carlini 8b415b271e re PR bootstrap/58386 (libstdc++.so.6: undefined symbol: htab_hash_pointer)
2013-09-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR bootstrap/58386
	Revert:

	2013-09-10  Gary Benson  <gbenson@redhat.com>

	* cp-demangle.c: Include hashtab.h.
	(struct d_print_info): New field saved_scopes.
	(d_print_init): Initialize the above.
	(d_print_free): New function.
	(cplus_demangle_print_callback): Call the above.
	(struct d_saved_scope): New structure.
	(d_store_scope): New function.
	(d_free_scope) Likewise.
	(d_restore_scope) Likewise.
	(d_hash_saved_scope) Likewise.
	(d_equal_saved_scope) Likewise.
	(d_print_comp): New variable saved_scope.
	[DEMANGLE_COMPONENT_REFERENCE,
	DEMANGLE_COMPONENT_RVALUE_REFERENCE]: Capture scope the first
	time the component is traversed, and use the captured scope for
	subsequent traversals.

From-SVN: r202480
2013-09-10 18:45:29 +00:00
Gary Benson 669ea36c4a cp-demangle.c: Include hashtab.h.
2013-09-10  Gary Benson  <gbenson@redhat.com>

	* cp-demangle.c: Include hashtab.h.
	(struct d_print_info): New field saved_scopes.
	(d_print_init): Initialize the above.
	(d_print_free): New function.
	(cplus_demangle_print_callback): Call the above.
	(struct d_saved_scope): New structure.
	(d_store_scope): New function.
	(d_free_scope) Likewise.
	(d_restore_scope) Likewise.
	(d_hash_saved_scope) Likewise.
	(d_equal_saved_scope) Likewise.
	(d_print_comp): New variable saved_scope.
	[DEMANGLE_COMPONENT_REFERENCE,
	DEMANGLE_COMPONENT_RVALUE_REFERENCE]: Capture scope the first
	time the component is traversed, and use the captured scope for
	subsequent traversals.

From-SVN: r202442
2013-09-10 12:33:50 +00:00
Jason Merrill 0861bec80a cp-demangle.c (cplus_demangle_type): Fix function quals.
libiberty/
	* cp-demangle.c (cplus_demangle_type): Fix function quals.
	(d_pointer_to_member_type): Simplify.
gcc/cp/
	* mangle.c (write_type): When writing a function type with
	function-cv-quals, don't add the unqualified type as a
	substitution candidate.

From-SVN: r197460
2013-04-03 20:14:00 -04:00
Jason Merrill 9eb85f2724 Demangle C++11 ref-qualifier.
include/
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_REFERENCE_THIS,
	DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS.
libiberty/
	* cp-demangle.c (d_ref_qualifier): New.
	(d_nested_name, d_function_type): Use it.
	(d_parmlist): Don't get confused by a ref-qualifier.
	(cplus_demangle_type): Reorder ref-qualifier.
	(d_pointer_to_member_type): Likewise.
	(d_dump): Handle DEMANGLE_COMPONENT_REFERENCE_THIS and
	DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS.
	(d_make_comp, has_return_type, d_encoding): Likewise.
	(d_print_comp, d_print_mod_list, d_print_mod): Likewise.
	(d_print_function_type, is_ctor_or_dtor): Likewise.

From-SVN: r197436
2013-04-03 13:24:12 -04:00
Jason Merrill 622aac0b88 re PR c++/55223 ([C++11] Default lambda expression of a templated class member)
PR c++/55223
gcc/cp/
	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of
	default argument scope.
	* mangle.c (write_name): Likewise.
libiberty/
	* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_DEFAULT_ARG.
	(d_print_comp): Likewise.

From-SVN: r196065
2013-02-14 20:26:44 -05:00
Jason Merrill c61e8502c1 cp-demangle.c (d_unqualified_name): Handle abi tags here.
* cp-demangle.c (d_unqualified_name): Handle abi tags here.
	(d_name): Not here.

From-SVN: r193401
2012-11-10 21:11:15 -05:00
Jason Merrill aefa74bd2b cp-demangle.c (cplus_demangle_operators): Add *_cast.
* cp-demangle.c (cplus_demangle_operators): Add *_cast.
	(op_is_new_cast): New.
	(d_expression, d_print_comp): Check it.

From-SVN: r189630
2012-07-18 15:51:36 -04:00
Tom Tromey d931f693ce demangle-expected: Add regression test.
http://sourceware.org/bugzilla/show_bug.cgi?id=14065
	* testsuite/demangle-expected: Add regression test.
	* cp-demangle.c (d_find_pack): Return NULL for
	DEMANGLE_COMPONENT_UNNAMED_TYPE.

From-SVN: r187773
2012-05-22 13:55:02 +00:00
Jason Merrill c19267cbaf mangle.c (write_type): Handle 'auto'.
gcc/cp/
	* mangle.c (write_type): Handle 'auto'.
	* init.c (build_new): Don't do auto deduction where it might
	affect template mangling.
libiberty/
	* cp-demangle.c (cplus_demangle_type): Handle 'auto'.

From-SVN: r185595
2012-03-21 00:04:39 -04:00
Jason Merrill c93ea196be cp-demangle.c (cplus_demangle_operators): Add li.
* cp-demangle.c (cplus_demangle_operators): Add li.
	(d_unqualified_name): Handle it specially.

From-SVN: r185082
2012-03-07 18:19:06 -05:00
Jason Merrill 3abbe4587d cp-demangle.c (d_print_comp): Omit a trailing space in the operator name.
* cp-demangle.c (d_print_comp) [DEMANGLE_COMPONENT_OPERATOR]:
	Omit a trailing space in the operator name.

From-SVN: r183072
2012-01-10 12:02:52 -05:00
Jason Merrill 4b6aaa996e re PR c++/6057 (expression mangling doesn't work for operator new)
PR c++/6057
	PR c++/48051
	PR c++/50855
	PR c++/51322
gcc/cp/
	* mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
	THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
	PREDECREMENT_EXPR.
	(write_template_arg): Fix mangling of class-scope functions and
	argument packs.
	(mangle_decl): Update suggested -fabi-version argument.
	* operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
	DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
	* tree.c (dependent_name): No longer static.
	* cp-tree.h: Declare it.
	* pt.c (unify): Defer handling of unconverted functions.
include/
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_INITIALIZER_LIST, DEMANGLE_COMPONENT_NULLARY.
libiberty/
	* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_NULLARY and
	DEMANGLE_COMPONENT_INITIALIZER_LIST.
	(d_make_comp): Likewise.  Allow null right arg for
	DEMANGLE_COMPONENT_TRINARY_ARG2.
	(cplus_demangle_operators): Adjust new/delete; add .*, :: and throw.
	(d_template_args, d_template_arg): Handle 'J' for argument packs.
	(d_exprlist): Add terminator parm.
	(d_expression, d_print_comp): Handle initializer lists, nullary
	expressions, prefix/suffix operators, and new.
	(d_print_subexpr): Avoid parens around DEMANGLE_COMPONENT_QUAL_NAME
	and DEMANGLE_COMPONENT_INITIALIZER_LIST.
	* testsuite/demangle-expected: Add tests.

From-SVN: r182970
2012-01-06 16:39:43 -05:00
Jason Merrill 49f2da1a16 cp-demangle.c (cplus_demangle_type): decltype, pack expansion and vector are substitutable.
* cp-demangle.c (cplus_demangle_type): decltype, pack expansion
	and vector are substitutable.
	(cplus_demangle_operators): Sort.

From-SVN: r182969
2012-01-06 16:39:34 -05:00
Ian Lance Taylor d58818f7ba re PR c++/48665 (type of const member function)
PR c++/48665
	* cp-demangle.c (d_cv_qualifiers): If qualifiers are applied to a
	function type, change them to apply to the "this" parameter.
	* testsuite/demangle-expected: Add test case.

From-SVN: r179772
2011-10-10 20:34:20 +00:00
Cary Coutant 2d2b02c4da re PR c++/40831 (g++ generated symbols for cloned function that be demangled.)
include/ChangeLog:

	PR 40831
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_CLONE.

libiberty/ChangeLog:

	PR 40831
	* cp-demangle.c (d_make_comp): Add new component type.
	(cplus_demangle_mangled_name): Check for clone suffixes.
	(d_parmlist): Don't error out if we see '.'.
	(d_clone_suffix): New function.
	(d_print_comp): Print info for clone suffixes.
	* testsuite/demangle-expected: Add new testcases.

From-SVN: r179132
2011-09-23 14:39:10 -07:00
Uros Bizjak bd82021880 test-expandargv.c (writeout_test): Check result of fwrite.
* testsuite/test-expandargv.c (writeout_test): Check result of fwrite.

From-SVN: r177529
2011-08-06 19:38:04 +02:00
Jason Merrill 4bbff96e36 re PR c++/49932 ([C++0x] ICE on instantiating decltype(expr)::type with template)
PR c++/49932
gcc/cp/
	* mangle.c (write_prefix): Handle decltype.
libiberty/
	* cp-demangle.c (d_prefix): Handle decltype.

From-SVN: r177074
2011-08-01 17:02:07 -04:00
H.J. Lu 52bed4d7ee Remove an extra line.
2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/demangle-expected: Remove an extra line.

From-SVN: r176796
2011-07-26 10:07:51 -07:00
Ian Lance Taylor f2e6f32e60 cp-demangle.c (d_print_init): Initialize pack_index field.
* cp-demangle.c (d_print_init): Initialize pack_index field.
	(d_print_comp): Check for NULL template argument.
	* testsuite/demangle-expected: Add test case.

From-SVN: r176791
2011-07-26 14:28:23 +00:00
Jason Merrill a517066db8 cp-demangle.c (d_expression): Handle 'this'.
* cp-demangle.c (d_expression): Handle 'this'.
	(d_print_comp) [DEMANGLE_COMPONENT_FUNCTION_PARAM]: Likewise.

From-SVN: r175836
2011-07-04 17:44:11 -04:00
Jan Kratochvil cb0ad10428 re PR debug/49408 (member function template id not matching linkage name)
libiberty/
	PR debug/49408
	* cp-demangle.c (d_print_comp): Suppress argument list for function
	references by the '&' unary operator.  Keep also already processed
	variant without the argument list.  Suppress argument list types for
	function call used in an expression.
	* testsuite/demangle-expected: Fix excessive argument list types in
	`test for typed function in decltype'.  New testcase for no argument
	list types printed.  3 new testcases for function references by the
	'&' unary operator..

From-SVN: r175761
2011-07-01 17:16:44 +00:00
Jason Merrill dd70e080ff re PR c++/37089 ([C++0x] rvalue/lvalue reference collapsing not performed in error ouput thus printing "&&&")
PR c++/37089
	* cp-demangle.c (d_print_comp): Handle reference smashing.

From-SVN: r175213
2011-06-20 10:40:01 -04:00
Jan Kratochvil 5fe8e1e9ab cp-demangle.c (d_print_comp): Suppress d_print_mod for DMGL_RET_POSTFIX.
libiberty/
	* cp-demangle.c (d_print_comp) <DEMANGLE_COMPONENT_FUNCTION_TYPE>:
	Suppress d_print_mod for DMGL_RET_POSTFIX.
	* testsuite/demangle-expected: New testcases for --ret-postfix.

From-SVN: r175001
2011-06-13 22:34:19 +00:00
Jan Kratochvil f019462c62 demangle.h (DMGL_RET_POSTFIX): Extend the comment.
include/
	* demangle.h (DMGL_RET_POSTFIX): Extend the comment.
	(DMGL_RET_DROP): New.

libiberty/
	* cp-demangle.c (d_print_comp) <DEMANGLE_COMPONENT_FUNCTION_TYPE>: Do
	not pass DMGL_RET_POSTFIX or DMGL_RET_DROP.  Support DMGL_RET_DROP.
	* testsuite/demangle-expected: New testcases for --ret-drop.
	* testsuite/test-demangle.c: Document --ret-drop in a comment.
	(main): New variable ret_drop, fill it, call cplus_demangle with it.

From-SVN: r175000
2011-06-13 22:32:40 +00:00
Jim Meyering 4b9726d48c Avoid memory overrun in a test leading to potential double-free.
2011-04-10  Jim Meyering  <meyering@redhat.com>

	    Avoid memory overrun in a test leading to potential double-free.
	    * testsuite/test-expandargv.c (writeout_test): Fix off-by-one error:
	    i.e., do copy the trailing NUL byte.

From-SVN: r172246
2011-04-10 18:13:23 +00:00
H.J. Lu 431f321fbd Properly demangle a global constructor symbol.
2010-11-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/42670
	PR binutils/11137
	* cp-demangle.c (d_make_demangle_mangled_name): New.
	(d_demangle_callback): Use it on DCT_GLOBAL_XTORS.

	* testsuite/demangle-expected: Updated.

From-SVN: r166810
2010-11-16 09:56:50 -08:00
Ian Lance Taylor 759fe2404d re PR other/46332 (__cxa_demangle yields excess parentheses for function types)
libiberty/:
	PR other/46332
	* cp-demangle.c (d_print_function_type): Don't print parentheses
	if there are no modifiers to print.
	* testsuite/demangle-expected: Tweak one test case, add another.
libstdc++/:
	* testsuite/abi/demangle/abi_examples/14.cc (main): Change
	expected demangling.

From-SVN: r166695
2010-11-13 01:21:12 +00:00
Tristan Gingold a69d9775fc cplus-dem.c (ada_demangle): Add comments.
2010-09-22 Tristan Gingold  <gingold@adacore.com>

	* cplus-dem.c (ada_demangle): Add comments.
	Handle stream and controlled type operations.
	Decoding of some uppercase letters moved before separators.
	* testsuite/demangle-expected: Add tests.

From-SVN: r164518
2010-09-22 09:26:03 +00:00
James Lyon 4825561606 cp-demangle.c (d_find_pack): Add case for DEMANGLE_COMPONENT_LAMBDA.
2010-09-10  James Lyon  <jameslyon0@googlemail.com>

	http://sourceware.org/bugzilla/show_bug.cgi?id=11572
	* cp-demangle.c (d_find_pack): Add case for
	DEMANGLE_COMPONENT_LAMBDA.
	* testsuite/demangle-expected: Add regression test.

From-SVN: r164203
2010-09-10 22:41:28 +00:00
Jakub Jelinek 9c4d7e5294 re PR other/43838 (Incorrect output from abi::__cxa_demangle)
PR other/43838
	* cp-demangle.c (struct d_print_info): Add flush_count field.
	(d_print_init): Initialize it to 0.
	(d_print_flush): Increment it.
	(d_print_comp): If needed flush before appending ", ".  Only
	decrement dpi->len if no flushes happened during the recursive
	call.
	* testsuite/demangle-expected: Add a test for this.

From-SVN: r160554
2010-06-10 17:15:18 +02:00
Kai Tietz a6766312d3 demangle-expected: Add tests for __int128 and unsigned __int128 types.
libiberty/

2010-05-26  Kai Tietz  <kai.tietz@onevision.com>

        * testsuite/demangle-expected: Add tests for __int128
        and unsigned __int128 types.

gcc/testsuite
2010-05-26  Kai Tietz  <kai.tietz@onevision.com>

	* lib/target-supports.exp (check_effective_target_int128): New
	function to check if __int128 types are available for target.
	* testsuite/c-c++-common/int128-types-1.c: New.
	* testsuite/c-c++-common/int128-1.c: New.
	* testsuite/c-c++-common/int128-2.c: New.
	* g++.dg/abi/mangle43.C: New.
	* g++.dg/init/enum1.C: Handle __int128 case and add -Wno-overflow.
	* g++.dg/cpp0x/nullptr04.C: Use __SIZE_TYPE__ for getting
	pointer-wide scalar.
	* g++.dg/other/pr25632.C: Likewise.
	* g++.dg/other/large-size-array.C (DIM): Use ULLONG_MAX for win64 case.
	* g++.dg/warn/pr13358-2.C: Add llp64 for check of special
	overflow warnings.
	* g++.dg/warn/pr13358-4.C: Likewise.
	* g++.dg/warn/Wconversion-null-2.C:  Add 'long long' case.
	* g++.dg/warn/Wconversion-null.C: Likewise.

gcc/
2010-05-26  Kai Tietz  <kai.tietz@onevision.com>

	* builtin-types.def (BT_INT128): New primitive type.
	(BT_UINT128): Likewise.
	* c-common.c (c_common_r): Add __int128 keyword.
	(c_common_type_for_size): Handle __int128.
	(c_common_type_for_mode): Likewise.
	(c_common_signed_or_unsigned_type): Likewise.
	(c_common_nodes_and_builtins): Add builtin type
	if target supports 128-bit integer scalar.
	* c-common.h (enum rid): Add RID_INT128.
	* c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
	if target supports 128-bit integer scalar.
	* c-decl.c (declspecs_add_type): Handle new keyword
	__int128.
	(finish_declspecs): Likewise.
	* c-parser.c (c_token_starts_typename): Handle RID_INT128.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_attributes): Likewise.
	(c_parser_objc_selector): Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Handle __int128.
	* c-tree.h (enum c_typespec_keyword): Add cts_int128.
	* gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
	* tree.c (make_or_reuse_type): Likewise.
	(make_unsigned_type): Likewise.
	(build_common_tree_nodes_2): Likewise.
	* tree.h (enum integer_type_kind): Add itk_int128 and
	itk_unsigned_int128.
	(int128_integer_type_node): New define..
	(int128_unsigned_type_node): New define.
	* cp/cp-tree.h (cp_decl_specifier_seq): Add new bifield
	explicit_int128_p.
	* cp/decl.c (grokdeclarator): Handle __int128.
	* cp/parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
	(cp_parser_simple_type_specifier): Likewise.
	* cp/rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
	* cp/typeck.c (cp_common_type): Handle __int128.
	* cp/mangle.c (integer_type_codes): Add itk_int128 and
	itk_unsigned_int128.
	* doc/extend.texi: Add documentation about __int128 type.

From-SVN: r159879
2010-05-26 18:13:55 +02:00
Jason Merrill 14c2101daa Add support for C++0x nullptr.
gcc:
	* c-common.c (c_common_reswords): Add nullptr.
	* c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
	* dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
	(gen_type_die_with_usage): Likewise.
	* dbxout.c (dbxout_type): Likewise.
	* sdbout.c (plain_type_1): Likewise.
gcc/cp:
	* cp-tree.def: Add NULLPTR_TYPE.
	* cp-tree.h: Add nullptr_node.
	(cp_tree_index): Add CPTI_NULLPTR.
	(SCALAR_TYPE_P): Add NULLPTR_TYPE.
	* call.c (null_ptr_cst_p): Handle nullptr.
	(standard_conversion): Likewise.
	(convert_arg_to_ellipsis): Likewise.
	* mangle.c (write_type): Likewise.
	* name-lookup.c (arg_assoc_type): Likewise.
	* parser.c (cp_parser_primary_expression): Likewise.
	* typeck.c (cp_build_binary_op): Likewise.
	(build_reinterpret_cast_1): Likewise.
	* error.c (dump_type): Likewise.
	(dump_type_prefix, dump_type_suffix): Likewise.
	* decl.c (cxx_init_decl_processing): Likewise.
	* cxx-pretty-print.c (pp_cxx_constant): Likewise.
	* cvt.c (ocp_convert): Likewise.
	* rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
	nullptr_t tinfo in libsupc++.
libstdc++-v3:
	* config/abi/pre/gnu.ver: Add typeinfo for decltype(nullptr).
libiberty:
	* cp-demangle.c (cplus_demangle_builtin_types): Add nullptr.
	(cplus_demangle_type): Handle nullptr.

From-SVN: r159131
2010-05-06 16:51:52 -04:00
Jason Merrill ce30e6fd06 c-pretty-print.c (pp_c_specifier_qualifier_list): Use () rather than [], and move before the element type.
* c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
	Use () rather than [], and move before the element type.
	* cp-demangle.c (d_print_mod): Use () rather than [] for vectors.

From-SVN: r157650
2010-03-22 16:38:35 -04:00
Tom Tromey 2480e18fe0 * testsuite/demangle-expected: Add missing --format=gnu-v3.
From-SVN: r156498
2010-02-04 16:54:31 +00:00
Jason Merrill f000c6a763 re PR c++/4926 (C++ ABI needs clarification on mangling of complex expressions)
PR c++/4926
	PR c++/38600
	* mangle.c (write_unqualified_id): Split out from write_expression.
	(write_unqualified_name): Call it.
	(write_member_name): Likewise.
	(write_expression): Support TEMPLATE_ID_EXPR.
	Disambiguate operator names.

From-SVN: r156482
2010-02-03 15:42:48 -05:00
Jason Merrill abfe01cec9 re PR c++/12909 (ambiguity in mangling vector types)
PR c++/12909
	* mangle.c (write_type) [VECTOR_TYPE]: Change mangling.

From-SVN: r156481
2010-02-03 15:42:35 -05:00