GCC build failure, HEAD@166182 on native

regress regress@apple.com
Tue Nov 2 16:36:00 GMT 2010


With your recent patch, GCC HEAD revision 166182 had problems on:
native: build (about the same as the previous build)
Attached is build output for those targets.
The previous build was of revision 166174.

Log information for changes since the last build:
------------------------------------------------------------------------
r166176 | mkuvyrkov | 2010-11-02 05:30:26 -0700 (Tue, 02 Nov 2010) | 5 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/config/i386/i386.c

	Basic support for Intel Core i7

	* i386.c (ix86_option_override_internal): Add entry for corei7, use
	generic tuning.  Use generic32 when compiling for 32-bit ABI.

------------------------------------------------------------------------
r166177 | mkuvyrkov | 2010-11-02 05:34:02 -0700 (Tue, 02 Nov 2010) | 12 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/config/i386/i386-c.c
   M /trunk/gcc/config/i386/i386.c
   M /trunk/gcc/config/i386/i386.h
   M /trunk/gcc/doc/invoke.texi

	Tune alignment for Intel Core i7

	* config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
	(enum processor_type): Update comment.  Add entries for Core i7.
	* config/i386-c.c (ix86_target_macros_internal): Update.
	* config/i386.c (m_COREI7{_32,_64}): New macros.
	(m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
	(processor_target_table): Tune alignment for Core i7.
	(ix86_option_override_internal): Use PROCESSOR_COREI7_*.

	* doc/invoke.texi: Document "corei7" option value.

------------------------------------------------------------------------
r166178 | mkuvyrkov | 2010-11-02 05:40:42 -0700 (Tue, 02 Nov 2010) | 3 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/config/i386/i386.c
   M /trunk/gcc/config/i386/i386.h

	* config/i386/i386.c (cpu_names): Add "corei7".
	* config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.

------------------------------------------------------------------------
r166179 | dodji | 2010-11-02 05:44:19 -0700 (Tue, 02 Nov 2010) | 83 lines
Changed paths:
   M /trunk/gcc/cp/ChangeLog
   M /trunk/gcc/cp/class.c
   M /trunk/gcc/cp/cp-tree.h
   M /trunk/gcc/cp/decl2.c
   M /trunk/gcc/cp/name-lookup.c
   M /trunk/gcc/cp/parser.c
   M /trunk/gcc/cp/pt.c
   M /trunk/gcc/cp/tree.c
   M /trunk/gcc/cp/typeck.c
   M /trunk/gcc/testsuite/ChangeLog
   A /trunk/gcc/testsuite/g++.dg/template/canon-type-10.C
   A /trunk/gcc/testsuite/g++.dg/template/canon-type-11.C
   A /trunk/gcc/testsuite/g++.dg/template/canon-type-12.C
   A /trunk/gcc/testsuite/g++.dg/template/canon-type-13.C
   A /trunk/gcc/testsuite/g++.dg/template/canon-type-9.C
   A /trunk/gcc/testsuite/g++.dg/template/typedef36.C

Restore canonical type comparison for dependent type(def)s

This patch restores canonical type comparison for dependent types and
then dependent typedefs. After this patch, two template type
parameters T are equal if they have the same index, level, *and*
number of sibling parameters. The novelty is to take in account the
number of sibling parameters.

To do this we first build the template parameters w/o taking in
account their number of siblings. When we know the number of template
parameters we fix up each template parameter with the number of
slibling parameters and we build the appropriate canonical types
accordingly. The patch fixes the fallouts deemed necessary.

This fixes PR c++/45606 but actually fixes all the previous bugs
related to dependent typedef comparison we had since we started to
properly representing dependent typedefs.

gcc/cp/ChangeLog:
	PR c++/45606
	* cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): Remove.
	(struct template_parm_index_s)<num_siblings>: New field.
	(TEMPLATE_PARM_NUM_SIBLINGS): New accessor.
	(process_template_parm): Extend the API to accept the number of
	template parms in argument.
	(cp_set_underlying_type): Remove this.
	* class.c (build_self_reference): Require canonical type equality
	back on the self reference of class.
	* decl2.c (grokfield): Require canonical type equality back on
	typedef class fields.
	* name-lookup.c (pushdecl_maybe_friend): Require canonical type
	equality back on typedefs.
	* parser.c (cp_parser_template_parameter_list): Do not require
	canonical type equality on dependent types created during
	template parameters parsing.
	* pt.c (fixup_template_type_parm_type, fixup_template_parm_index)
	(fixup_template_parm, fixup_template_parms): New private
	functions.
	(current_template_args): Declare this.
	(process_template_parm): Pass the total number of template parms
	to canonical_type_parameter.
	(build_template_parm_index): Add a new argument to carry the total
	number of template parms.
	(reduce_template_parm_level, process_template_parm, make_auto): Adjust.
	(current_template_args): Fix this for template template
	parameters.
	(tsubst_template_parm): Split out of ...
	(tsubst_template_parms): ... this.
	(reduce_template_parm_level): Don't loose
	TEMPLATE_PARM_NUM_SIBLINGS when cloning a TEMPLATE_PARM_INDEX.
	(template_parm_to_arg): Extracted this function from
	current_template_args. Make it represent invalid template parms
	with an error_mark_node instead of a LIST_TREE containing an
	error_mark_node.
	(current_template_args): Use template_parm_to_arg.
	(dependent_template_arg_p): Consider an invalid template argument
	as dependent.
	(end_template_parm_list): Do not update template sibling parms
	here anymore. Use fixup_template_parms instead.
	(process_template_parm): Pass the number of template parms to
	canonical_type_parameter.
	(make_auto): Require structural equality on auto
	TEMPLATE_TYPE_PARM for now.
	(unify)<BOUND_TEMPLATE_TEMPLATE_PARM>: Coerce template parameters
	using all the arguments deduced so far.
	(tsubst)<TEMPLATE_TYPE_PARM>: Pass the number of sibling parms to
	canonical_type_parameter.
	* tree.c (cp_set_underlying_type): Remove.
	* typeck.c (get_template_parms_of_dependent_type)
	(incompatible_dependent_types_p): Remove.
	(structural_comptypes): Do not call incompatible_dependent_types_p
	anymore.
	(comp_template_parms_position): Re-organized. Take the length of
	template parms list in account.

gcc/testsuite/ChangeLog:
	PR c++/45606
	* g++.dg/template/typedef36.C: New test.
	* gcc/testsuite/g++.dg/template/canon-type-9.C: Likewise.
	* g++.dg/template/canon-type-10.C: Likewise.
	* g++.dg/template/canon-type-11.C: Likewise.
	* g++.dg/template/canon-type-12.C: Likewise.
	* g++.dg/template/canon-type-13.C: Likewise.
------------------------------------------------------------------------
r166180 | jb | 2010-11-02 05:56:38 -0700 (Tue, 02 Nov 2010) | 1 line
Changed paths:
   M /trunk/libgfortran/ChangeLog
   M /trunk/libgfortran/io/io.h
   M /trunk/libgfortran/io/list_read.c
   M /trunk/libgfortran/io/transfer.c

PR 45629 Remove usage of setjmp/longjmp
------------------------------------------------------------------------
r166181 | dodji | 2010-11-02 05:58:48 -0700 (Tue, 02 Nov 2010) | 15 lines
Changed paths:
   M /trunk/gcc/cp/ChangeLog
   M /trunk/gcc/cp/pt.c
   M /trunk/gcc/testsuite/ChangeLog
   A /trunk/gcc/testsuite/g++.dg/template/sfinae26.C
   A /trunk/gcc/testsuite/g++.dg/template/sfinae27.C

Fix PR c++/46170, c++/46162

gcc/cp/ChangeLog:
	PR c++/46170
	PR c++/46162
	* pt.c (check_valid_ptrmem_cst_expr): Add a complain parameter to
	control diagnostic.
	(convert_nontype_argument, convert_nontype_argument): Pass the
	complain parameter down to check_valid_ptrmem_cst_expr.

gcc/testsuite/ChangeLog:
	PR c++/46170
	PR c++/46162
	* g++.dg/template/sfinae26.C: New test.
	* g++.dg/template/sfinae27.C: Likewise.
------------------------------------------------------------------------
r166182 | jakub | 2010-11-02 06:00:39 -0700 (Tue, 02 Nov 2010) | 6 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/testsuite/ChangeLog
   A /trunk/gcc/testsuite/gcc.dg/pr46255.c
   M /trunk/gcc/tree-cfg.c

	PR debug/46255
	* tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
	instead of gsi_last_bb.

	* gcc.dg/pr46255.c: New test.

------------------------------------------------------------------------

For more information, see <http://gcc.gnu.org/regtest/HEAD/>.

-------------- next part --------------
ranlib: file: .libs/libgfortran.a(_atanh_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_sin_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_sin_c10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_cos_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_cos_c10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_tan_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_sinh_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_cosh_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_tanh_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_conjg_c10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_aint_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_anint_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_sign_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_dim_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_atan2_r10.o) has no symbols
ranlib: file: .libs/libgfortran.a(_mod_r10.o) has no symbols
libtool: link: ( cd ".libs" && rm -f "libgfortran.la" && ln -s "../libgfortran.la" "libgfortran.la" )
make: *** [bootstrap] Error 2
+ '[' -s .bad_compare ']'
+ exit 1
-------------- next part --------------

-- 
Geoffrey Keating <geoffk@apple.com> 
(via an automated GCC regression-testing script.)


More information about the Gcc-regression mailing list