Bug 25625

Summary: [4.0/4.1/4.2 Regression] Fails to compile C++ code when -frepo is specified.
Product: gcc Reporter: Roger Leigh <rleigh>
Component: c++Assignee: Mark Mitchell <mark>
Status: RESOLVED FIXED    
Severity: normal CC: gcc-bugs, mmitchel, pinskia, rleigh
Priority: P3 Keywords: rejects-valid
Version: 4.0.3   
Target Milestone: 4.0.3   
Host: Target:
Build: Known to work: 3.4.0 4.0.0
Known to fail: 4.1.0 4.0.3 4.2.0 Last reconfirmed: 2006-01-01 18:33:56
Attachments: Testcase
Preprocessed source

Description Roger Leigh 2006-01-01 17:59:48 UTC
Compiling with the attached testcase:

$ g++ -frepo -c test.cc
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::integral_c<unsigned int, 0u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from
‘boost::integral_constant<unsigned int, 0u>’
/usr/include/boost/type_traits/alignment_of.hpp:81:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((unsigned
int)mpl_::integral_c<unsigned int, 0u>::value) + 1u)’ is not a valid template
argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::integral_c<unsigned int, 0u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from
‘boost::integral_constant<unsigned int, 0u>’
/usr/include/boost/type_traits/alignment_of.hpp:81:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((unsigned
int)mpl_::integral_c<unsigned int, 0u>::value) - 1u)’ is not a valid template
argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::int_<3>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error:
‘(((int)mpl_::int_<3>::value) + 1)’ is not a valid template argument for
type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::int_<3>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error:
‘(((int)mpl_::int_<3>::value) - 1)’ is not a valid template argument for
type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::int_<-0x00000000000000001>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error:
‘(((int)mpl_::int_<-0x00000000000000001>::value) + 1)’ is not a valid
template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::int_<-0x00000000000000001>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error:
‘(((int)mpl_::int_<-0x00000000000000001>::value) - 1)’ is not a valid
template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::int_<1>’:
/usr/include/boost/mpl/not.hpp:47:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error:
‘(((int)mpl_::int_<1>::value) + 1)’ is not a valid template argument for
type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::int_<1>’:
/usr/include/boost/mpl/not.hpp:47:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error:
‘(((int)mpl_::int_<1>::value) - 1)’ is not a valid template argument for
type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/if.hpp: In instantiation of
‘boost::mpl::if_<boost::integral_constant<bool, false>,
boost::optional_detail::types_when_is_ref<std::locale>,
boost::optional_detail::types_when_isnt_ref<std::locale> >’:
/usr/include/boost/optional/optional.hpp:152:   instantiated from
‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from
‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/if.hpp:67: error: ‘mpl_::bool_<false>::value’ is not
a valid template argument for type ‘bool’ because it is a non-constant
expression
/usr/include/boost/mpl/if.hpp: In instantiation of
‘boost::mpl::if_<boost::integral_constant<bool, false>,
boost::optional_detail::types_when_is_ref<std::locale>,
boost::optional_detail::types_when_isnt_ref<std::locale> >’:
/usr/include/boost/optional/optional.hpp:152:   instantiated from
‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from
‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/if.hpp:70: error: ‘mpl_::bool_<false>::value’ is not
a valid template argument for type ‘bool’ because it is a non-constant
expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::integral_c<unsigned int, 4u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from
‘boost::integral_constant<unsigned int, 4u>’
/usr/include/boost/type_traits/alignment_of.hpp:61:   instantiated from
‘boost::alignment_of<std::locale>’
/usr/include/boost/optional/optional.hpp:97:   instantiated from
‘boost::optional_detail::aligned_storage<std::locale>::dummy_u’
/usr/include/boost/optional/optional.hpp:98:   instantiated from
‘boost::optional_detail::aligned_storage<std::locale>’
/usr/include/boost/optional/optional.hpp:400:   instantiated from
‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from
‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((unsigned
int)mpl_::integral_c<unsigned int, 4u>::value) + 1u)’ is not a valid template
argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of
‘mpl_::integral_c<unsigned int, 4u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from
‘boost::integral_constant<unsigned int, 4u>’
/usr/include/boost/type_traits/alignment_of.hpp:61:   instantiated from
‘boost::alignment_of<std::locale>’
/usr/include/boost/optional/optional.hpp:97:   instantiated from
‘boost::optional_detail::aligned_storage<std::locale>::dummy_u’
/usr/include/boost/optional/optional.hpp:98:   instantiated from
‘boost::optional_detail::aligned_storage<std::locale>’
/usr/include/boost/optional/optional.hpp:400:   instantiated from
‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from
‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((unsigned
int)mpl_::integral_c<unsigned int, 4u>::value) - 1u)’ is not a valid template
argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/optional/optional.hpp: In instantiation of
‘boost::optional_detail::aligned_storage<std::locale>::dummy_u’:
/usr/include/boost/optional/optional.hpp:98:   instantiated from
‘boost::optional_detail::aligned_storage<std::locale>’
/usr/include/boost/optional/optional.hpp:400:   instantiated from
‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from
‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/optional/optional.hpp:97: error:
‘mpl_::integral_c<unsigned int, 4u>::value’ is not a valid template
argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/format/internals.hpp: In member function ‘void
boost::io::detail::stream_format_state<Ch, Tr>::apply_on(std::basic_ios<_CharT,
_Traits>&, boost::io::detail::locale_t*) const’:
/usr/include/boost/format/internals.hpp:119: error: ‘const class
boost::optional<std::locale>’ has no member named ‘get’
/usr/include/boost/format/format_implementation.hpp: In member function
‘boost::io::detail::locale_t boost::basic_format<Ch, Tr, Alloc>::getloc()
const’:
/usr/include/boost/format/format_implementation.hpp:56: error: ‘const class
boost::optional<std::locale>’ has no member named ‘get’
/usr/include/boost/optional/optional.hpp: In member function ‘void
boost::optional_detail::optional_base<T>::destroy_impl(mpl_::false_) [with T =
std::locale]’:
/usr/include/boost/optional/optional.hpp:362:   instantiated from ‘void
boost::optional_detail::optional_base<T>::destroy() [with T = std::locale]’
/usr/include/boost/optional/optional.hpp:208:   instantiated from
‘boost::optional_detail::optional_base<T>::~optional_base() [with T =
std::locale]’
/usr/include/boost/optional/optional.hpp:471:   instantiated from
‘boost::optional<T>::~optional() [with T = std::locale]’
/usr/include/boost/format/format_fwd.hpp:30:   instantiated from here
/usr/include/boost/optional/optional.hpp:388: error: ‘get_ptr_impl’ was not
declared in this scope
Comment 1 Roger Leigh 2006-01-01 18:00:42 UTC
Created attachment 10573 [details]
Testcase

This requires the Boost format library (Boost.Format).
Comment 2 Roger Leigh 2006-01-01 18:03:17 UTC
Created attachment 10574 [details]
Preprocessed source

This is the result of running

g++ -frepo -save-temps -c test.cc
Comment 3 Roger Leigh 2006-01-01 18:16:09 UTC
This is the original report, in Debian Bug #345550:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345550

This contains all the information already filed here, so this is just for the record.
Comment 4 Andrew Pinski 2006-01-01 18:33:56 UTC
Reduced testcase:
template< typename T, T N > struct integral_c {
  static const T value = N;
  typedef integral_c< T, value + 1 > next;
};
template< typename T, T N > T const integral_c< T, N >::value;
integral_c<int,0> a;
Comment 5 Roger Leigh 2006-01-02 00:06:16 UTC
I've tested on hppa-linux-gnu and ia64-linux-gnu in addition to powerpc-linux-gnu.  All show identical behaviour, so this doesn't look arch-specific.
Comment 6 Mark Mitchell 2006-01-04 01:03:30 UTC
Subject: Bug 25625

Author: mmitchel
Date: Wed Jan  4 01:03:26 2006
New Revision: 109305

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109305
Log:
	PR c++/25492
	* name-lookup.c (push_class_level_binding): When a derived class
	provides a type binding, eliminate any type binding from a base
	class. 
	PR c++/25625
	* repo.c (repo_emit_p): Always instantiate static data members
	initialized by constant expressions, so that there values are
	available.
	PR c++/25492
	* g++.dg/lookup/friend9.C: New test.
	PR c++/25625
	* g++.dg/template/repo5.C: New test.

Added:
    branches/gcc-4_0-branch/gcc/testsuite/g++.dg/lookup/friend9.C
    branches/gcc-4_0-branch/gcc/testsuite/g++.dg/template/repo5.C
Modified:
    branches/gcc-4_0-branch/gcc/cp/ChangeLog
    branches/gcc-4_0-branch/gcc/cp/name-lookup.c
    branches/gcc-4_0-branch/gcc/cp/repo.c
    branches/gcc-4_0-branch/gcc/testsuite/ChangeLog

Comment 7 Mark Mitchell 2006-01-04 01:04:07 UTC
Subject: Bug 25625

Author: mmitchel
Date: Wed Jan  4 01:04:03 2006
New Revision: 109306

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109306
Log:
	PR c++/25492
	* name-lookup.c (push_class_level_binding): When a derived class
	provides a type binding, eliminate any type binding from a base
	class. 
	PR c++/25625
	* repo.c (repo_emit_p): Always instantiate static data members
	initialized by constant expressions, so that there values are
	available.
	PR c++/25492
	* g++.dg/lookup/friend9.C: New test.
	PR c++/25625
	* g++.dg/template/repo5.C: New test.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/g++.dg/lookup/friend9.C
    branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/repo5.C
Modified:
    branches/gcc-4_1-branch/gcc/cp/ChangeLog
    branches/gcc-4_1-branch/gcc/cp/name-lookup.c
    branches/gcc-4_1-branch/gcc/cp/repo.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog

Comment 8 Mark Mitchell 2006-01-04 01:04:55 UTC
Subject: Bug 25625

Author: mmitchel
Date: Wed Jan  4 01:04:51 2006
New Revision: 109307

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109307
Log:
	PR c++/25492
	* name-lookup.c (push_class_level_binding): When a derived class
	provides a type binding, eliminate any type binding from a base
	class. 
	PR c++/25625
	* repo.c (repo_emit_p): Always instantiate static data members
	initialized by constant expressions, so that there values are
	available.
	PR c++/25492
	* g++.dg/lookup/friend9.C: New test.
	PR c++/25625
	* g++.dg/template/repo5.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/lookup/friend9.C
    trunk/gcc/testsuite/g++.dg/template/repo5.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/name-lookup.c
    trunk/gcc/cp/repo.c
    trunk/gcc/testsuite/ChangeLog

Comment 9 Mark Mitchell 2006-01-04 01:07:38 UTC
Fixed in 4.0.3.
Comment 10 Paul Thomas 2006-01-21 09:09:02 UTC
Subject: Bug 25625

Author: pault
Date: Sat Jan 21 09:08:54 2006
New Revision: 110063

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110063
Log:
2005-01-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25124
	PR fortran/25625
	* decl.c (get_proc_name): If there is an existing
	symbol in the encompassing namespace, call errors
	if it is a procedure of the same name or the kind
	field is set, indicating a type declaration.

	PR fortran/20881
	PR fortran/23308
	PR fortran/25538
	PR fortran/25710
	* decl.c (add_global_entry): New function to check
	for existing global symbol with this name and to
	create new one if none exists.
	(gfc_match_entry): Call add_global_entry before
	matching argument lists for subroutine and function
	entries.
	* gfortran.h: Prototype for existing function,
	global_used.
	* resolve.c (resolve_global_procedure): New function
	to check global symbols for procedures.
	(resolve_call, resolve_function): Calls to this
	new function for non-contained and non-module
	procedures.
	* match.c (match_common): Add check for existing
	global symbol, creat one if none exists and emit
	error if there is a clash.
	* parse.c (global_used): Remove static and use the
	gsymbol name rather than the new_block name, so that
	the function can be called from resolve.c.
	(parse_block_data, parse_module, add_global_procedure):
	Improve checks for existing gsymbols.  Emit error if
	already defined or if references were to another type.
	Set defined flag.

	PR fortran/PR24276
	* trans-expr.c (gfc_conv_aliased_arg): New function called by 
	gfc_conv_function_call that coverts an expression for an aliased
	component reference to a derived type array into a temporary array
	of the same type as the component.  The temporary is passed as an
	actual argument for the procedure call and is copied back to the
	derived type after the call.
	(is_aliased_array): New function that detects an array reference
	that is followed by a component reference.
	(gfc_conv_function_call): Detect an aliased actual argument with
	is_aliased_array and convert it to a temporary and back again
	using gfc_conv_aliased_arg.

2005-01-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25124
	PR fortran/25625
	* gfortran.dg/internal_references_1.f90: New test.
	  PR fortran/20881
	PR fortran/23308
	PR fortran/25538
	PR fortran/25710
	* gfortran.dg/global_references_1.f90: New test.
	* gfortran.dg/g77/19990905-1.f: Restore the error that
	there is a clash between the common block name and
	the name of a subroutine reference.

	PR fortran/PR24276
	* gfortran.dg/aliasing_dummy_1.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90
    trunk/gcc/testsuite/gfortran.dg/global_references_1.f90
    trunk/gcc/testsuite/gfortran.dg/internal_references_1.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/decl.c
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/match.c
    trunk/gcc/fortran/parse.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/g77/19990905-1.f

Comment 11 Paul Thomas 2006-01-27 22:16:20 UTC
Subject: Bug 25625

Author: pault
Date: Fri Jan 27 22:16:04 2006
New Revision: 110310

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110310
Log:
2005-01-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25964
	* resolve.c (resolve_function): Exclude statement functions from
	global reference checking.

	PR fortran/25084
	PR fortran/20852
	PR fortran/25085
	PR fortran/25086
	* resolve.c (resolve_function): Declare a gfc_symbol to replace the
	references through the symtree to the symbol associated with the
	function expresion. Give error on reference to an assumed character
	length function is defined in an interface or an external function
	that is not a dummy argument.
	(resolve_symbol): Give error if an assumed character length function
	is array-valued, pointer-valued, pure or recursive. Emit warning
	that character(*) value functions are obsolescent in F95.

	PR fortran/25416
	* trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
	prevents any assumed character length function call from getting here
	except intrinsics such as SPREAD. In this case, ensure that no
	segfault occurs from referencing non-existent charlen->length->
	expr_type and provide a backend_decl for the charlen from the charlen
	of the first actual argument.

	Cure temp name confusion.
	* trans-expr.c (gfc_get_interface_mapping_array): Change name of
	temporary from "parm" to "ifm" to avoid clash with temp coming from
	trans-array.c.

	PR fortran/25124
	PR fortran/25625
	* decl.c (get_proc_name): If there is an existing
	symbol in the encompassing namespace, call errors
	if it is a procedure of the same name or the kind
	field is set, indicating a type declaration.

	PR fortran/20881
	PR fortran/23308
	PR fortran/25538
	PR fortran/25710
	* decl.c (add_global_entry): New function to check
	for existing global symbol with this name and to
	create new one if none exists.
	(gfc_match_entry): Call add_global_entry before
	matching argument lists for subroutine and function
	entries.
	* gfortran.h: Prototype for existing function, global_used.
	* resolve.c (resolve_global_procedure): New function
	to check global symbols for procedures.
	(resolve_call, resolve_function): Calls to this
	new function for non-contained and non-module
	procedures.
	* match.c (match_common): Add check for existing
	global symbol, creat one if none exists and emit
	error if there is a clash.
	* parse.c (global_used): Remove static and use the
	gsymbol name rather than the new_block name, so that
	the function can be called from resolve.c.
	(parse_block_data, parse_module, add_global_procedure):
	Improve checks for existing gsymbols.  Emit error if
	already defined or if references were to another type.
	Set defined flag.

	PR fortran/24276
	* trans-expr.c (gfc_conv_aliased_arg): New function called by 
	gfc_conv_function_call that coverts an expression for an aliased
	component reference to a derived type array into a temporary array
	of the same type as the component.  The temporary is passed as an
	actual argument for the procedure call and is copied back to the
	derived type after the call.
	(is_aliased_array): New function that detects an array reference
	that is followed by a component reference.
	(gfc_conv_function_call): Detect an aliased actual argument with
	is_aliased_array and convert it to a temporary and back again
	using gfc_conv_aliased_arg.

	PR fortran/25124
	PR fortran/25625
	* gfortran.dg/internal_references_1.f90: New test.

	PR fortran/25901
	* gfortran.dg/internal references_2.f90: New test.

	PR fortran/20881
	PR fortran/23308
	PR fortran/25538
	PR fortran/25710
	* gfortran.dg/global_references_1.f90: New test.
	* gfortran.dg/g77/19990905-1.f: Restore the error that
	there is a clash between the common block name and
	the name of a subroutine reference.

	PR fortran/25964
	* gfortran.dg/global_references_2.f90: New test.

	PR fortran/24276
	* gfortran.dg/aliasing_dummy_1.f90: New test.

	PR fortran/25084
	PR fortran/20852
	PR fortran/25085
	PR fortran/25086
	* gfortran.dg/assumed_charlen_function_1.f90: New test.
	* gfortran.dg/assumed_charlen_function_3.f90: New test.

	PR fortran/25416
	* gfortran.dg/assumed_charlen_function_2.f90: New test.

	PR fortran/25964
	* gfortran.dg/assumed_size_refs_3.f90: New test.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/global_references_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/global_references_2.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/internal_references_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/internal_references_2.f90
Modified:
    branches/gcc-4_1-branch/gcc/fortran/ChangeLog
    branches/gcc-4_1-branch/gcc/fortran/decl.c
    branches/gcc-4_1-branch/gcc/fortran/gfortran.h
    branches/gcc-4_1-branch/gcc/fortran/match.c
    branches/gcc-4_1-branch/gcc/fortran/parse.c
    branches/gcc-4_1-branch/gcc/fortran/resolve.c
    branches/gcc-4_1-branch/gcc/fortran/symbol.c
    branches/gcc-4_1-branch/gcc/fortran/trans-expr.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/g77/19990905-1.f

Comment 12 gdr@cs.tamu.edu 2006-01-27 22:27:28 UTC
Subject: Re:  [4.0/4.1/4.2 Regression] Fails to compile C++ code when -frepo is specified.

"pault at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> writes:


[...]

| URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110310
| Log:
| 2005-01-28  Paul Thomas  <pault@gcc.gnu.org>
| 
|         PR fortran/25964
|         * resolve.c (resolve_function): Exclude statement functions from
|         global reference checking.

Can someone explain me why a fortran commit shows up as a C++ releated
commit?

-- Gaby
Comment 13 Paul Thomas 2006-01-27 22:29:00 UTC
> Can someone explain me why a fortran commit shows up as a C++ releated
> commit?
> 
> -- Gaby
> 
'cos I seem to have goofed on a couple of PR numbers.  Sorry.

Paul T