Re: (extern int vs. int) and (extern function vs. function) (was: gcc-in-cxx update)

2009-04-30 Thread Gabriel Dos Reis
On Thu, Apr 30, 2009 at 6:54 AM, Eus wrote: > Hi Ho! > > Sorry, if I sort of hijack this thread. > > On Wed, 2009-04-29 at 15:43 +, Joseph S. Myers wrote: > >> > > "int i;" is not the same as "extern int i;". >> > >> > Sorry for my ignorance but I have been reading and searching for the >> > a

Re: gcc-in-cxx update

2009-04-30 Thread Gabriel Dos Reis
On Wed, Apr 29, 2009 at 10:54 AM, Manuel López-Ibáñez wrote: > 2009/4/29 Joseph S. Myers : >> On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: >> >>> 2009/4/29 Joseph S. Myers : >>> > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: >>> > >>> >> >> BTW, why is this warned about? >>> >> > >>> >> > I

Re: gcc-in-cxx update

2009-04-30 Thread Gabriel Dos Reis
On Wed, Apr 29, 2009 at 10:19 AM, Manuel López-Ibáñez wrote: > 2009/4/29 Joseph S. Myers : >> On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: >> >>> >> BTW, why is this warned about? >>> > >>> > I imagine because in C it is not conventional to use "extern" when >>> > defining something, only on a

Re: gcc-in-cxx update

2009-04-30 Thread Gabriel Dos Reis
On Wed, Apr 29, 2009 at 8:42 AM, Manuel López-Ibáñez wrote: >>> >>> BTW, why is this warned about? >> >> I imagine because in C it is not conventional to use "extern" when >> defining something, only on a declaration that is not a definition. > > But may it lead to some confusion or subtle error?

Re: gcc-in-cxx update

2009-04-30 Thread Gabriel Dos Reis
On Wed, Apr 29, 2009 at 7:13 AM, Manuel López-Ibáñez wrote: >>> * In C a const variable which is neither "extern" nor "static" is >>>   visible outside of the current translation unit.  In C++ it is not, >>>   without an explicit "extern" declaration.  I'm not sure how best to >>>   handle this w

Re: (extern int vs. int) and (extern function vs. function) (was: gcc-in-cxx update)

2009-04-30 Thread Eus
Hi Ho! On Thu, 2009-04-30 at 12:40 -0700, James Dennett wrote: > [I imagine Ian is aware of this anywyay, but to try to clarify...] > > At file scope, "int i;" with no initializer is a "tentative > definition" in C, see 6.9.2/2; a tentative definition is an odd beast > that works in some ways ra

Re: (extern int vs. int) and (extern function vs. function) (was: gcc-in-cxx update)

2009-04-30 Thread Eus
Hi Ho! On Thu, 2009-04-30 at 11:57 -0700, Ian Lance Taylor wrote: > What you are describing is a common and traditional implementation of C, > but it is not strictly standard conformant. The ISO C standard says > that "int i;" is always a definition, and "extern int i;" is always a > declaration

Re: (extern int vs. int) and (extern function vs. function) (was: gcc-in-cxx update)

2009-04-30 Thread James Dennett
On Thu, Apr 30, 2009 at 11:57 AM, Ian Lance Taylor wrote: > Eus writes: > >> I think the difference between "int i;" and "extern int i;" at >> file-scope in C is that "int i;" will only be treated as a definition if >> it is not defined in another place in the same file/TU. IOW, its linkage >> is

Re: (extern int vs. int) and (extern function vs. function) (was: gcc-in-cxx update)

2009-04-30 Thread Ian Lance Taylor
Eus writes: > I think the difference between "int i;" and "extern int i;" at > file-scope in C is that "int i;" will only be treated as a definition if > it is not defined in another place in the same file/TU. IOW, its linkage > is internal within the TU itself. But, "extern int i" is definitely

Re: (extern int vs. int) and (extern function vs. function) (was: gcc-in-cxx update)

2009-04-30 Thread Eus
Hi Ho! Sorry, if I sort of hijack this thread. On Wed, 2009-04-29 at 15:43 +, Joseph S. Myers wrote: > > > "int i;" is not the same as "extern int i;". > > > > Sorry for my ignorance but I have been reading and searching for the > > answer and I cannot tell what is the difference between "i

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joern Rennecke
On Wednesday 29 April 2009 12:47:04 Joern Rennecke wrote: Something which I miss in C++ is a way to declare that a function uses an integral type to pass an enum value (in arguments or return value), and then at function definition time only check that the integral type is sufficently large to ho

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Esben Mose Hansen
On Wednesday 29 April 2009 12:47:04 Joern Rennecke wrote: > Something which I miss in C++ is a way to declare that a function uses > an integral type to pass an enum value (in arguments or return value), > and then at function definition time only check that the integral type > is sufficently large

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joern Rennecke
Quoting "Joseph S. Myers" : I think the cleanups involved in using the target vector / class more, and other cleanups involved in the natural approach to multi-target GCC of which the target vector is a part, are more useful than the end result (for which compiling large parts of the compiler mul

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joern Rennecke
Quoting Ian Lance Taylor : I'm not sure why you are singling me out. You seemed to be actively working on the branch, and the c++ enum type checks provide a motivation to make changes. Also, this issue should be considered in general when people change their coding habits in order for the cod

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Kaveh R. GHAZI
On Wed, 29 Apr 2009, Joseph S. Myers wrote: > On Wed, 29 Apr 2009, Richard Earnshaw wrote: > > If you are building a non-C front end without bootstrapping you need at > least 2.95: > > To build all languages in a cross-compiler or other configuration where > 3-stage bootstrap is not perfor

Re: gcc-in-cxx update

2009-04-29 Thread Manuel López-Ibáñez
2009/4/29 Joseph S. Myers : > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > >> 2009/4/29 Joseph S. Myers : >> > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: >> > >> >> >> BTW, why is this warned about? >> >> > >> >> > I imagine because in C it is not conventional to use "extern" when >> >> >

Re: gcc-in-cxx update

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > 2009/4/29 Joseph S. Myers : > > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > > > >> >> BTW, why is this warned about? > >> > > >> > I imagine because in C it is not conventional to use "extern" when > >> > defining something, only on a declara

Re: gcc-in-cxx update

2009-04-29 Thread Manuel López-Ibáñez
2009/4/29 Joseph S. Myers : > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > >> >> BTW, why is this warned about? >> > >> > I imagine because in C it is not conventional to use "extern" when >> > defining something, only on a declaration that is not a definition. >> >> But may it lead to some co

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Ian Lance Taylor wrote: > (I'm not personally convinced that a multi-targeted gcc is particularly > useful, though I don't object if there is a general desire to support > it.) I think the cleanups involved in using the target vector / class more, and other cleanups involved

Re: gcc-in-cxx update

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > >> BTW, why is this warned about? > > > > I imagine because in C it is not conventional to use "extern" when > > defining something, only on a declaration that is not a definition. > > But may it lead to some confusion or subtle error? It seems ov

Re: gcc-in-cxx update

2009-04-29 Thread Ian Lance Taylor
Manuel López-Ibáñez writes: > 2009/4/29 Sebastian Redl : >> So MSC will warn about this construct, but GCC will not, due to its >> whitespace rule: > > I think we should just remove the whitespace rule and implement the > warning in C. Actually it appears that the whitespace rule was already rem

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Ian Lance Taylor
Joern Rennecke writes: > I've found some issues with gcc-in-cxx both specific to these > targets, and specific to (parts of) compiler passes that are > only compiled for a subset of all tagets, which include one or > more of the above mentioned three. I'd be happy to see and approve your patches

Re: gcc-in-cxx update

2009-04-29 Thread Ian Lance Taylor
Richard Guenther writes: >> * The C++ frontend emits some warnings on code which is known to be >>  never executed, which the C frontend does not.  This leads to some >>  warnings compiling code in gcc.  I think it is reasonable to fix this >>  in the C++ frontend. > > Or just amend the C fronten

Re: gcc-in-cxx update

2009-04-29 Thread Manuel López-Ibáñez
2009/4/29 Sebastian Redl : > So MSC will warn about this construct, but GCC will not, due to its > whitespace rule: I think we should just remove the whitespace rule and implement the warning in C. Cheers, Manuel.

Re: gcc-in-cxx update

2009-04-29 Thread Sebastian Redl
Joseph S. Myers wrote: > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > > >> 2009/4/29 Joseph S. Myers : >> >>> On Wed, 29 Apr 2009, Ian Lance Taylor wrote: >>> >>> * The C++ frontend warns about "while (true);" when there is no whitespace between the ')' and the ';'.

Re: gcc-in-cxx update

2009-04-29 Thread Manuel López-Ibáñez
2009/4/29 Joseph S. Myers : > On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > > I don't know the rationale for this warning.  Is it to do with the C++0x > specification that certain loops may be assumed to terminate? I guess the rationale is that there is little use for while(true) ; so it is pr

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Richard Earnshaw wrote: > > The question is not just one for bootstrapping a native compiler but also > > one of what compiler can be used to build a cross compiler (such as that > > with multiple targets), which is not bootstrapped in the usual GCC sense. > > There we pre

Re: gcc-in-cxx update

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Manuel López-Ibáñez wrote: > 2009/4/29 Joseph S. Myers : > > On Wed, 29 Apr 2009, Ian Lance Taylor wrote: > > > >> * The C++ frontend warns about "while (true);" when there is no > >>   whitespace between the ')' and the ';'.  The C frontend does not.  I'm > >>   not sure how

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Richard Earnshaw
On Wed, 2009-04-29 at 13:21 +, Joseph S. Myers wrote: > On Wed, 29 Apr 2009, Joern Rennecke wrote: > > > Quoting "Joseph S. Myers" : > > > > > On Wed, 29 Apr 2009, Joern Rennecke wrote: > > > > > > > What are your thoughts on using gcc extensions for gcc-in-cxx ? > > > > > > I believe we ag

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Joern Rennecke wrote: > Quoting "Joseph S. Myers" : > > > On Wed, 29 Apr 2009, Joern Rennecke wrote: > > > > > What are your thoughts on using gcc extensions for gcc-in-cxx ? > > > > I believe we agreed in a previous discussion to aim for building with the > > intersection

Re: gcc-in-cxx update

2009-04-29 Thread Manuel López-Ibáñez
2009/4/29 Joseph S. Myers : > On Wed, 29 Apr 2009, Ian Lance Taylor wrote: > >> * The C++ frontend warns about "while (true);" when there is no >>   whitespace between the ')' and the ';'.  The C frontend does not.  I'm >>   not sure how to best handle this.  It doesn't make much sense to warn >>  

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joern Rennecke
Quoting "Joseph S. Myers" : On Wed, 29 Apr 2009, Joern Rennecke wrote: What are your thoughts on using gcc extensions for gcc-in-cxx ? I believe we agreed in a previous discussion to aim for building with the intersection of C++98/C++03 and C++ as supported by GCC 3.4 (including making sure

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Joern Rennecke wrote: > What are your thoughts on using gcc extensions for gcc-in-cxx ? I believe we agreed in a previous discussion to aim for building with the intersection of C++98/C++03 and C++ as supported by GCC 3.4 (including making sure at an appropriate point that

Re: gcc-in-cxx update

2009-04-29 Thread Joseph S. Myers
On Wed, 29 Apr 2009, Ian Lance Taylor wrote: > * The C++ frontend warns about "while (true);" when there is no > whitespace between the ')' and the ';'. The C frontend does not. I'm > not sure how to best handle this. It doesn't make much sense to warn > about this with -Wc++-compat. Sho

Re: gcc-in-cxx update / multi-targeted gcc

2009-04-29 Thread Joern Rennecke
In order to be able to use namespaces in my endeavour to support gcc with multiple targets, I've first done a merge from the gcc-in-cxx branch. For my initial implementation, I choose as configuration --target=m32r-elf --with-extra-target-list='sh64-elf arc-elf32' . I've found some issues with g

Re: gcc-in-cxx update

2009-04-29 Thread Richard Guenther
On Wed, Apr 29, 2009 at 9:39 AM, Ian Lance Taylor wrote: > I've finished my set of patches which fix -Wc++-compat to check for enum > conversions which are valid in C++.  Adding those checks forced a lot of > changes in mainline to compile cleanly with -Wc++-compat.  I have merged > those changes

gcc-in-cxx update

2009-04-29 Thread Ian Lance Taylor
I've finished my set of patches which fix -Wc++-compat to check for enum conversions which are valid in C++. Adding those checks forced a lot of changes in mainline to compile cleanly with -Wc++-compat. I have merged those changes over to the gcc-in-cxx branch. In the gcc directory itself, exclu