Commit Graph

131028 Commits

Author SHA1 Message Date
Zhenqiang Chen e42e3d15a2 loop-invariant.c (struct invariant): Add a new member: eqno;
ChangeLog:
2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (struct invariant): Add a new member: eqno;
	(find_identical_invariants): Update eqno;
	(create_new_invariant): Init eqno;
	(get_inv_cost): Compute comp_cost with eqno;


testsuite/ChangeLog:
2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* gcc.target/arm/identical-invariants.c: New test.

From-SVN: r212256
2014-07-03 05:24:12 +00:00
GCC Administrator 44a638118f Daily bump.
From-SVN: r212253
2014-07-03 00:17:48 +00:00
Segher Boessenkool 4ed3092ff8 Only transform rotate to rotatert and v.v. if target has both
Many targets do not have both rotate and rotatert.  Of the 47 targets
in the tree, 17 have both, 9 have only rotate, 2 have only rotatert, and
19 have neither (this is based on "grep -wil" so it can be slightly off).

rs6000 has only rotate, and mips has only rotatert.  For such targets
simplifying rotate to rotatert and vice versa is not simplifying things
at all.  rs6000 has already way too many rotate patterns (some days it
seems like two thousand, but it is somewhat less in reality still); I
would prefer not to double that again.

So, this patch makes genrecog define HAVE_rotate and HAVE_rotatert if
those RTL codes are mentioned anywhere in the machine description, and
then does the transformation in simplify-rtx.c only if both these flags
are set.

From-SVN: r212239
2014-07-02 22:19:19 +02:00
Uros Bizjak 1680a43208 * config/fpu-sysv.h (void set_fpu): Remove stalled comment.
From-SVN: r212235
2014-07-02 18:11:46 +02:00
Jan Hubicka 22e1cf1ced c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before releasing symbol.
* c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
	releasing symbol.

	* gcc.c-torture/compile/section.c: New testcase.

Co-Authored-By: Chen Gang <gang.chen.5i5j@gmail.com>

From-SVN: r212234
2014-07-02 15:23:56 +00:00
Ian Lance Taylor 9490fda67a re PR go/61620 (FAIL: go.test/test/fixedbugs/bug242.go execution, -O2 -g)
PR go/61620

runtime: Don't free tiny blocks in map deletion.

The memory allocator now has a special case for tiny blocks
(smaller than 16 bytes) and they can not be explicitly freed.

From-SVN: r212233
2014-07-02 14:23:45 +00:00
Christian Bruel 513c5c74ce add bugzilla links
From-SVN: r212232
2014-07-02 15:20:01 +02:00
Christian Bruel cbee452f8d add test
From-SVN: r212231
2014-07-02 15:15:08 +02:00
Christian Bruel cbb1e3d98c Support mode toggle.
* mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
(make_preds_opaque): Delete.
(clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
(commit_mode_sets): New function.
(optimize_mode_switching): Handle current_mode to mode_switching_emit.
Process all modes at once.
* basic-block.h (pre_edge_lcm_avs): Declare.
* lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
Call clear_aux_for_edges. Fix comments.
(pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
(pre_edge_rev_lcm): Idem.
* config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode parameter.
* config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): Idem.
* config/i386/i386.c (x96_emit_mode_set): Idem.
* config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
* config/sh/sh.md (toggle_pr): 	Defined if TARGET_FPU_SINGLE.
(fpscr_toggle) Disallow from delay slot.
* target.def (emit_mode_set): Add prev_mode parameter.
* doc/tm.texi: Regenerate.

From-SVN: r212230
2014-07-02 15:03:14 +02:00
Jakub Jelinek b18f1efce0 decl.c (variable_decl): Reject old style initialization for derived type components.
* decl.c (variable_decl): Reject old style initialization
	for derived type components.

	* gfortran.dg/oldstyle_5.f: New test.

Co-Authored-By: Fritz Reese <Reese-Fritz@zai.com>

From-SVN: r212227
2014-07-02 11:43:08 +02:00
Francois-Xavier Coudert 4a72ba02f4 * config/fpu-glibc.h: Fix comment about FE_DENORMAL.
From-SVN: r212226
2014-07-02 09:17:04 +00:00
Kyrylo Tkachov c9d1a16a33 [AArch64] Removed unused variable i in aarch64_expand_vec_perm
* config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
	variable i.

From-SVN: r212225
2014-07-02 09:07:10 +00:00
Uros Bizjak 5b0936da94 configure.host (ieee_flags): Add -mieee for alpha*.
libgfortran/ChangeLog:

	* configure.host (ieee_flags): Add -mieee for alpha*.

	* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
	GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
	* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.

testsuite/ChangeLog:

	* gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0.
	* gfortran.dg/ieee/ieee_rounding_1.f90 (dg-additional-options): Add.

From-SVN: r212224
2014-07-02 10:45:08 +02:00
Paolo Carlini bca23ca20c pt.c (convert_template_argument): Use inform instead of error in three places.
/cp
2014-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (convert_template_argument): Use inform instead of error in
	three places.

/testsuite
2014-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/variadic-ex10.C: Adjust for inform instead of error.
	* g++.dg/cpp0x/variadic-ex14.C: Likewise.
	* g++.dg/parse/error11.C: Likewise.
	* g++.old-deja/g++.brendan/template17.C: Likewise.

From-SVN: r212223
2014-07-02 07:51:40 +00:00
Jan Hubicka d570d364e6 ipa-utils.h (method_class_type, [...]): Constify.
* ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
	vtable_pointer_value_to_vtable): Constify.
	(contains_polymorphic_type_p): Declare.
	* ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
	vtable_pointer_value_to_vtable): Constify.
	(contains_polymorphic_type_p): New predicate.
	* ipa-prop.c (ipa_set_jf_known_type): Allow types containing
	polymorphic types.
	(ipa_set_ancestor_jf): Likewise.
	(detect_type_change): Return false in easy cases.
	(compute_complex_assign_jump_func): Require type to contain
	polymorphic type.
	(compute_known_type_jump_func): Likewise.

From-SVN: r212222
2014-07-02 07:48:00 +00:00
Tobias Burnus a90532fda1 get_array.f90: Add missing SYNC ALL.
2014-07-02  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray/get_array.f90: Add missing SYNC ALL.
        * gfortran.dg/coarray/send_array.f90: Ditto.
        * gfortran.dg/coarray/sendget_array.f90: Ditto.

From-SVN: r212220
2014-07-02 08:18:35 +02:00
Jan Hubicka 549bcbd17f tree.c (decls_same_for_odr, [...]): Remove.
* tree.c (decls_same_for_odr, decls_same_for_odr,
	types_same_for_odr): Remove.
	(type_in_anonymous_namespace_p): Constify argument.
	* tree.h (types_same_for_odr, type_in_anonymous_namespace_p):
	Constify.
	* ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
	(main_odr_variant): New function.
	(hash_type_name): Make static; update assert; do not ICE on
	non-records.
	(types_same_for_odr): Bring here from tree.c; simplify
	and remove old structural comparing code that doesn't work
	for templates.
	(odr_hasher::equal): Update assert.
	(add_type_duplicate): Return true when bases should be computed;
	replace incomplete loader by complete; do not output duplicated
	warnings; do not ICE on non-records; set odr_violated flag.
	(get_odr_type): Be ready to replace incomplete type by complete
	one; work on ODR variants instead of main variants; reorder item
	in array so bases have still smaller indexes.
	(dump_type_inheritance_graph): Be ready for holdes in odr_types
	array.
	(possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.

From-SVN: r212218
2014-07-02 03:19:45 +00:00
GCC Administrator 5656ccd782 Daily bump.
From-SVN: r212217
2014-07-02 00:17:07 +00:00
Ian Lance Taylor ffa98da470 runtime: introduce build targets for running benchmarks
This introduces the "bench" build target, which can be used to run
all benchmarks.

It is also possible to run subsets of benchmarks with the
"package/check" build targets by setting GOBENCH to a matching regex.

From-SVN: r212212
2014-07-01 23:19:24 +00:00
Cary Coutant 25eff60deb This patch fixes a couple of ICEs when using -gsplit-dwarf.
When compiling a small-enough compilation unit that has no address table
entries, but complex enough that -freorder-blocks-and-partition produces
location lists, dwarf2out_finish does not call index_location_lists, but
optimize_location_lists will later assume that the addr_index_table has
been indexed.
Google ref: b/15417905

When resolve_addr_in_expr replaces a CONST_STRING rtx, it directly
updates the pointer to the old expression with the new one. In the
case of a DW_OP_GNU_addr_index or DW_OP_GNU_const_index, that pointer
may be in an address table entry, which is keyed by the rtx. Instead
of directly replacing the pointer, we need to remove the old address
table entry (i.e., decrement its reference count), and add a new one.
Google ref: b/15957101

gcc/
	* dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
        lookup.
	(resolve_addr_in_expr): When replacing the rtx in a location list
        entry, get a new address table entry.
	(dwarf2out_finish): Call index_location_lists even if there are no
        addr_index_table entries yet.

From-SVN: r212211
2014-07-01 14:35:41 -07:00
James Greenhalgh 454a17a31e gcc/testsuite/
* gcc.target/aarch64/aapcs64/aapcs64.exp:
	(additional_flags_for_func_ret): New variable based on $additional_flags
	with -fno-use-caller-save.
	(func-ret-*.c): Use the new variable.

Co-Authored-By: Yufeng Zhang <yufeng.zhang@arm.com>

From-SVN: r212206
2014-07-01 17:58:11 +00:00
Paolo Carlini 2a4141aa0d re PR c++/59637 ([c++11] ICE with decltype and destructor call in template)
2014-07-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59637
	* g++.dg/cpp0x/decltype60.C: New.

From-SVN: r212205
2014-07-01 17:25:07 +00:00
Trevor Saunders 6ab56804d0 revert r212197 for apparently not actually being obvious
From-SVN: r212200
2014-07-01 15:56:32 +00:00
Dodji Seketeli 14b1760ca7 Revert "PR preprocessor/60723 - missing system-ness marks for macro tokens"
This reverts commit 747e04f26ac3fb775bfc9af61e9170b9461b6cfc.

From-SVN: r212199
2014-07-01 16:04:37 +02:00
Teresa Johnson 08eedf75a2 Correct ChangeLog entries from r212041.
From-SVN: r212198
2014-07-01 13:37:44 +00:00
Trevor Saunders 5c9130b3ab fix -Wunused-parameter warning in winnt.c
gcc/
	* config/i386/winnt.c (i386_pe_section_type_flags): Removed name
	of unused argument.

From-SVN: r212197
2014-07-01 13:28:03 +00:00
Kyrylo Tkachov 39f9091275 [AArch64] Implement some vca*_f[32,64] intrinsics.
* config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
	(vcagt_f64): Likewise.
	(vcale_f64): Likewise.
	(vcaled_f64): Likewise.
	(vcales_f32): Likewise.
	(vcalt_f64): Likewise.
	(vcaltd_f64): Likewise.
	(vcalts_f32): Likewise.

	* gcc.target/aarch64/simd/vcage_f64.c: New test.
	* gcc.target/aarch64/simd/vcagt_f64.c: Likewise.
	* gcc.target/aarch64/simd/vcale_f64.c: Likewise.
	* gcc.target/aarch64/simd/vcaled_f64.c: Likewise.
	* gcc.target/aarch64/simd/vcales_f32.c: Likewise.
	* gcc.target/aarch64/simd/vcalt_f64.c: Likewise.
	* gcc.target/aarch64/simd/vcaltd_f64.c: Likewise.
	* gcc.target/aarch64/simd/vcalts_f32.c: Likewise.

From-SVN: r212196
2014-07-01 12:32:35 +00:00
Paolo Carlini f280564356 pr59867.C: Fix target selector.
2014-07-01  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp1y/pr59867.C: Fix target selector.

From-SVN: r212195
2014-07-01 10:58:11 +00:00
Dodji Seketeli a0bc22680c PR preprocessor/60723 - missing system-ness marks for macro tokens
When a system macro is expanded in a non-system file during
out-of-line preprocessing, it can happen that the preprocessor forgets
to emit line markers to express the system-ness status of tokens that
come after the expansion of the macro.

That can lead to situations where the entire non-system file can be
considered as being a system file and thus have its warnings be
discarded during the compilation of the resulting preprocessed file.

My understanding is that this is due to the preprocessor not
systematically detecting (and reporting) the change in system-ness of
tokens.

And this is what this patch does.  Each time the system-ness of a
given token is different from the previous token that was emitted by
the preprocessor, it emits a line marker for the sole purpose of
marking the new system-ness of the subsequent tokens to come.

Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.

gcc/c-family/ChangeLog:
	* c-ppoutput.c (struct print::prev_was_system_token): New data
	member.
	(init_pp_output): Initialize it.
	(maybe_print_line_1, maybe_print_line, print_line_1, print_line)
	(do_line_change): Return a flag saying if a line marker was
	emitted or not.
	(scan_translation_unit): Detect if the system-ness of the token we
	are about to emit is different from the one of the previously
	emitted token.  If so, emit a line marker.  Avoid emitting
	useless adjacent line markers.
	(scan_translation_unit_directives_only): Adjust.

gcc/testsuite/ChangeLog:
	* gcc.dg/cpp/syshdr{4,5}.{c,h}: New test files.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>

From-SVN: r212194
2014-07-01 11:17:14 +02:00
Marek Polacek 52ec0ea334 invoke.texi: Document -Wint-conversion.
* doc/invoke.texi: Document -Wint-conversion.
c-family/
	* c.opt (Wint-conversion): New option.
c/
	* c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion
	instead of 0 to WARN_FOR_ASSIGNMENT.
testsuite/
	* gcc.dg/Wint-conversion.c: New test.

From-SVN: r212193
2014-07-01 08:53:12 +00:00
Marek Polacek d5c3d343bd re PR c/58286 (Need option to make incompatible pointer type warnings into compiler errors)
PR c/58286
	* doc/invoke.texi: Document -Wincompatible-pointer-types.
c-family/
	* c.opt (Wincompatible-pointer-types): New option.
c/
	* c-typeck.c (convert_for_assignment): Pass
	OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
testsuite/
	* gcc.dg/Wincompatible-pointer-types.c: New test.

From-SVN: r212192
2014-07-01 08:31:58 +00:00
Martin Liska e55637b715 IPA REF alias refactoring
* cgraph.h (iterate_direct_aliases): New function.
	(FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
	* cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
	FOR_EACH_ALIAS added.
	(cgraph_for_node_and_aliases): Likewise.
	* cgraphunit.c (assemble_thunks_and_aliases): Likewise.
	* ipa-inline.c (reset_edge_caches): Likewise.
	(update_caller_keys): Likewise.
	* trans-mem.c (ipa_tm_execute): Likewise.
	*varpool.c (varpool_analyze_node): Likewise.
	(varpool_for_node_and_aliases): Likewise.
	* ipa-ref.h (first_alias): New function.
	(last_alias): Likewise.
	(has_aliases_p): Likewise.
	* ipa-ref.c (ipa_ref::remove_reference): Removal function
	is sensitive to IPA_REF_ALIASes.
	* symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
	are put at the beginning of the list.
	(symtab_node::iterate_direct_aliases): New function.

	* lto-partition.c (add_symbol_to_partition_1): Usage of
	FOR_EACH_ALIAS added.

From-SVN: r212191
2014-07-01 06:45:26 +00:00
David Holsgrove 705c7d5709 scanasm.exp (dg-function-on-line): Add MicroBlaze specific pattern.
2014-06-30  David Holsgrove <david.holsgrove@xilinx.com>

	* gcc/testsuite/lib/scanasm.exp (dg-function-on-line): Add
	MicroBlaze specific pattern.

--This line, and those below, 

M    ChangeLog
M    lib/scanasm.exp

From-SVN: r212189
2014-07-01 05:45:13 +00:00
Tim Shen 05ae5af25a * ChangeLog: Correct the PR id from 61061 to 61601.
From-SVN: r212187
2014-07-01 03:18:17 +00:00
Edward Smith-Rowland 9378b06e5c re PR c++/58781 (Unicode strings broken in a strange way)
cp/

2014-06-28  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/58781
	PR c++/60249
	PR c++/59867
	* parser.c (cp_parser_userdef_string_literal()): Take a tree
	not a cp_token*. (cp_parser_string_literal(): Don't hack
	the token stream!


testsuite/

2014-06-28  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/58781
	PR c++/60249
	PR c++/59867
	* testsuite/g++.dg/cpp0x/pr58781.C: New.
	* testsuite/g++.dg/cpp0x/pr60249.C: New.
	* testsuite/g++.dg/cpp1y/pr59867.C: New.

From-SVN: r212186
2014-07-01 03:13:17 +00:00
Tim Shen 5bcb66dffa re PR testsuite/61061 (FAIL: g++.dg/inherit/covariant7.C)
PR libstdc++/61061
	PR libstdc++/61582
	* include/bits/regex_automaton.h (_NFA<>::_M_insert_state): Add
	a NFA state limit. If it's exceeded, regex_constants::error_space
	will be throwed.
	* include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone): Use
	map (which is sparse) instead of vector. This reduce n times clones'
	cost from O(n^2) to O(n).
	* include/std/regex: Add map dependency.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc: New
	testcase.

From-SVN: r212185
2014-07-01 03:05:45 +00:00
Tim Shen ad9ec7b3c5 re PR libstdc++/61424 (std::regex matches right to left, not leftmost longest)
PR libstdc++/61424
	* include/bits/regex.tcc (__regex_algo_impl<>): Use DFS for ECMAScript,
	not just regex containing back-references.
	* include/bits/regex_compiler.tcc (_Compiler<>::_M_disjunction):
	exchange _M_next and _M_alt for alternative operator,
	making matching from left to right.
	* include/bits/regex_executor.h (_State_info<>::_M_get_sol_pos):
	Add position tracking fom DFS.
	* include/bits/regex_executor.tcc (_Executor<>::_M_main_dispatch,
	_Executor<>::_M_dfs): Likewise.
	* include/bits/regex_scanner.h: Remove unused enum entry.
	* testsuite/28_regex/algorithms/regex_search/61424.cc: New
	testcase from PR.

From-SVN: r212184
2014-07-01 02:10:31 +00:00
Tim Shen 25f28ff0ea * MAINTAINERS: Update my email address.
From-SVN: r212183
2014-07-01 01:46:57 +00:00
GCC Administrator 1eef638a7a Daily bump.
From-SVN: r212182
2014-07-01 00:16:57 +00:00
Jan Hubicka 010f4e272f revert: tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if type is complete.
Revert:
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if type
	is complete.
	(write_ts_type_common_tree_pointers): Do not stream fields not set for incomplete
	types; do not stream duplicated fields for variants; sanity check that variant
	and type match.
	(write_ts_type_non_common_tree_pointers): Likewise.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in TYPE_SIZE whether
	type is complete.
	(lto_input_ts_type_common_tree_pointers): Do same changes as in
	write_ts_type_common_tree_pointers
	(lto_input_ts_type_non_common_tree_pointers): Likewise.

	* lto.c (lto_copy_fields_not_streamed): New function.
	(compare_tree_sccs_1): Do not compare fields shared in between type
	and variant.
	(lto_read_decls): Fixup types first before inserting into hash.

From-SVN: r212179
2014-06-30 22:18:25 +00:00
Joseph Myers 0ca5983055 var-tracking.c (add_stores): Return instead of asserting if old and new values for conditional store are the...
* var-tracking.c (add_stores): Return instead of asserting if old
	and new values for conditional store are the same.

From-SVN: r212178
2014-06-30 21:53:33 +01:00
Jason Merrill 5796bf3422 re PR ipa/61659 (Extra undefined symbol because of devirtualization)
PR c++/61659
	PR lto/53808
gcc/cp
	* decl2.c (maybe_emit_vtables): Mark all vtable entries if
	devirtualizing.
	* init.c (build_vtbl_address): Don't mark destructor.
	* class.c (finish_struct_1): Add all classes to keyed_classes
	if devirtualizing.
libstdc++-v3/
	* libsupc++/cxxabi.h (class __pbase_type_info): __pointer_catch
	is pure, not inline.

From-SVN: r212174
2014-06-30 16:20:55 -04:00
Richard Henderson fc56f9d284 re PR rtl-optimization/61608 (FAIL: gcc.target/arm/epilog-1.c scan-assembler tests)
PR rtl-opt/61608

        PR target/39284
        * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
        the cfg if there were any changes.
        * passes.def: Revert move of peephole2 after reorder_blocks;
        move duplicate_computed_gotos before peephole2.

From-SVN: r212172
2014-06-30 13:14:42 -07:00
Uros Bizjak a4a51a5262 except.c (emit_note_eh_region_end): New helper function.
* except.c (emit_note_eh_region_end): New helper function.
	(convert_to_eh_region_ranges): Use emit_note_eh_region_end to
	emit EH_REGION_END note.
	* jump.c (cleanup_barriers): Do not split a call and its
	corresponding CALL_ARG_LOCATION note.

From-SVN: r212171
2014-06-30 21:30:52 +02:00
Uros Bizjak 5acd5cf072 ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r212170
2014-06-30 21:29:02 +02:00
Bill Schmidt 96a4066f86 round_4.f90: Skip for powerpc*-*-linux* since the test requires greater precision than the...
2014-06-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gfortran.dg/round_4.f90: Skip for powerpc*-*-linux* since the
	test requires greater precision than the current PowerPC long
	double implementation supports.

From-SVN: r212169
2014-06-30 19:21:12 +00:00
Jason Merrill f36ae62867 re PR c++/61647 (internal compiler error: in push_access_scope, at cp/pt.c:219 for a c++ header, clang++ 3.4 generate .pch without error)
PR c++/61647
	* pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.

From-SVN: r212168
2014-06-30 15:09:57 -04:00
Jason Merrill cae7c96095 re PR c++/61566 (ICE in write_unscoped_name)
PR c++/61566
	* mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.

From-SVN: r212165
2014-06-30 14:51:29 -04:00
Jason Merrill 1d7e2ec760 decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE TYPE_BINFO or TYPE_LANG_SPECIFIC.
* decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
	TYPE_BINFO or TYPE_LANG_SPECIFIC.
	* cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
	(TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
	* typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
	* pt.c (unify): Also check whether the argument is a PMF.

From-SVN: r212164
2014-06-30 14:51:22 -04:00
Paolo Carlini 17adeaa773 re PR c++/54891 ([C++11] lambda-expression and explicit type conversion (cast notation))
/cp
2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54891
	* parser.c (cp_parser_tokens_start_cast_expression): In C++11
	a '[' can also start a primary-expression.
	(cp_parser_cast_expression): Parse a cast-expression only tentatively
	when cp_parser_tokens_start_cast_expression returns -1.

/testsuite
2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54891
	* g++.dg/cpp0x/lambda/lambda-cast1.C: New.

From-SVN: r212162
2014-06-30 18:30:50 +00:00