Re: Merging calls to `abort'

2005-03-15 Thread Clifford Wolf
Hi, On Sun, Mar 13, 2005 at 03:01:00PM +0200, Kai Henningsen wrote: > Most of the rest of the error handling in this project is concerned with > the absence of the feature I loved in the IBM PL/I compilers under the > name "SNAP;" - putting out a stack backtrace (the usual idiom for abort()

Re: Merging calls to `abort'

2005-03-15 Thread Richard Earnshaw
On Tue, 2005-03-15 at 09:59, Clifford Wolf wrote: > Hi, > > On Sun, Mar 13, 2005 at 03:01:00PM +0200, Kai Henningsen wrote: > > Most of the rest of the error handling in this project is concerned with > > the absence of the feature I loved in the IBM PL/I compilers under the > > name "SNAP;" -

Re: Merging calls to `abort'

2005-03-15 Thread Clifford Wolf
Hi, On Fri, Mar 11, 2005 at 03:28:19PM -0500, Richard Stallman wrote: > Currently, I believe, GCC combines various calls to abort in a single > function, because it knows that none of them returns. afaics it is more generic. It merges them because it knows that it doesn't make any difference. Thi

RFC: always-inline vs unit-at-a-time

2005-03-15 Thread Dale Johannesen
Consider the following: static inline int a() __attribute((always_inline)); static inline int b() __attribute((always_inline)); static inline int b() { a(); } static inline int a() { } int c() { b(); } This compiles fine at -O2. At -O0 we get the baffling error sorry, unimplemented: inlining fai

Re: RFC: always-inline vs unit-at-a-time

2005-03-15 Thread Zack Weinberg
Dale Johannesen <[EMAIL PROTECTED]> writes: > Consider the following: > > static inline int a() __attribute((always_inline)); > static inline int b() __attribute((always_inline)); > > static inline int b() { a(); } > static inline int a() { } > int c() { b(); } > > This compiles fine at -O2. At -

Re: Merging calls to `abort'

2005-03-15 Thread Richard Stallman
With or without cross-jumping, when the developer gets a report from a user that "the program died with an abort", he or she has to debug from scratch, only to find out in many cases that it's a known bug, already fixed in CVS for the next release, information that would have

Re: RFC: always-inline vs unit-at-a-time

2005-03-15 Thread Dale Johannesen
On Mar 15, 2005, at 10:32 AM, Zack Weinberg wrote: Dale Johannesen <[EMAIL PROTECTED]> writes: Consider the following: static inline int a() __attribute((always_inline)); static inline int b() __attribute((always_inline)); static inline int b() { a(); } static inline int a() { } int c() { b(); } Th

Re: Merging calls to `abort'

2005-03-15 Thread Richard Kenner
However, the idea that users could search for previous bug reports is new to me. That might be an additional reason for using fancy_abort. It's not just users, but first level tech-support. There, it can help in suggesting a workaround to the user and knowing which file the abort is in m

Re: RFC: always-inline vs unit-at-a-time

2005-03-15 Thread Zack Weinberg
Dale Johannesen <[EMAIL PROTECTED]> writes: >>> It seems undesirable for -O options to affect which programs will >>> compile. >> >> Agreed. Perhaps we should run the inliner at -O0 if we see >> always_inline attributes, just for those functions? > > We do; the problem is that it makes only 1 pas

RE: Merging calls to `abort'

2005-03-15 Thread Dave Korn
Original Message >From: Richard Stallman >Sent: 15 March 2005 18:39 > Nonetheless, GCC may as well still stop cross-jumping abort calls. > There's nothing to lose There *is* something to lose: memory space. Lots of people use gcc to develop for deeply embedded systems, where memory res

Re: Merging calls to `abort'

2005-03-15 Thread Eric Christopher
> What we might want to do is provide an option to disable all such > optimizations. > We have had enough requests for -Odebug or something like that. Probably could be just dce, ccp, and a couple of other optimizations... -eric

Re: Merging calls to `abort'

2005-03-15 Thread Alexandre Oliva
On Mar 14, 2005, Eric Christopher <[EMAIL PROTECTED]> wrote: >> > Now, I wouldn't object to hacking GCC to avoid cross-jumping calls to >> > abort. It's just that I don't think that the common GNU use of abort >> > serves the users. >> Agreed. And as someone suggested, rather than treating abort

Re: Question about "#pragma pack(n)" and "-fpack-struct"

2005-03-15 Thread James E Wilson
On Sat, 2005-03-12 at 21:00, feng qiu wrote: > Is it difficult to modify the gcc sources if I want to use the both? The tricky part might be defining what it means. There are at least 4 interacting features here, #pragma pack, attribute ((packed)), attribute ((aligned(X)), and -fpack-struct. Cur

Re: `make uninstall' and GCC

2005-03-15 Thread James E Wilson
Sam Lauber wrote: The gccinstall info says that `make uninstall' would open a can of worms. I don't get it. Why? The same paragraph gives one explanation. Gcc includes shared libraries. If you uninstall a copy of gcc, then everything compiled with that gcc will suddenly stop working (ignoring

Re: Root Node of AST

2005-03-15 Thread James E Wilson
Rajesh Babu wrote: I am working with gcc-3.3.3, and I want to insert my module after construction of AST and before RTL generation. gcc-3.3 is not interesting for work like this. This stuff has already been obsoleted in current gcc sources. But if you insist on using out dated sources, look at

Re: PRE in GCC-3.3.3

2005-03-15 Thread James E Wilson
Rajesh Babu wrote: I found that PRE is not done in gcc-3.3.3, though the code for doing PRE exists in source code. gcc-3.3 is not interesting for work like this. The PRE support in gcc-3.3 has already been effectively obsoleted by other work in current gcc sources, though it is still there.

[Ada] Can't build gcc cvs trunk 20050315 on sparc-linux: a-except.adb: unhandled expression in get_expr_operands():

2005-03-15 Thread Christian Joensson
BUG DETECTED==+ | 4.1.0 20050315 (experimental) (sparc-unknown-linux-gnu) internal error | | No source file position information available| | Please submit a bug report; see http://gcc.gnu.org/bugs.html.| | Use a subject line

Re: PR 20225

2005-03-15 Thread Benjamin Redelings I
This patch fixes a g++ ICE for me that depends on inlining limits. (I have Richard's short patch to modify estimate_num_insns installed) The file contains lots of virtual public inheritance and covariant returns. I don't know if this patch fixes though, or just hides it, since changing the in

Re: a problem about cross-compile for powerpc

2005-03-15 Thread James E Wilson
邹琼 wrote: > ../../../source/gcc-4.0-20050109/gcc/config/rs6000/darwin.md:243: > unknown mode `V4SI' That is a snapshot that is over two months old. Snapshots are unsupported, and have a lifetime of less than a week, so this has been obsolete for almost 2 months now. If there is a problem here, i

Re: PR 19893 & array_ref bug

2005-03-15 Thread Steve Ellcey
> This program should generate an error; it's illogical. If the alignment > of the element is greater than the element size, then arrays of such a > type should be disallowed. Otherwise, stuff in either the compiler or > the program itself could make the justified assumption that things of >

Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Paolo Carlini
Hi, in March 2004 we added to many libstdc++-v3 testcases lines similar to #if !__GXX_WEAK__ && _MT_ALLOCATOR_H // Explicitly instantiate for systems with no COMDAT or weak support. template class __gnu_cxx::__mt_alloc >; #endif AFAIK, only in order to avoid spurious failures on darwin. I'd like to

Re: PR 19893 & array_ref bug

2005-03-15 Thread Mark Mitchell
Steve Ellcey wrote: Most of the gcc.dg/vect/* tests contain something like: typedef float afloat __attribute__ ((__aligned__(16))); afloat a[N]; It looks like what is really intended here is to apply the alignment to the array type. The point is that the entire array has to be ap

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Geoffrey Keating
Paolo Carlini <[EMAIL PROTECTED]> writes: > Hi, > > in March 2004 we added to many libstdc++-v3 testcases lines similar to > > #if !__GXX_WEAK__ && _MT_ALLOCATOR_H > // Explicitly instantiate for systems with no COMDAT or weak support. > template class __gnu_cxx::__mt_alloc >; > #endif > > AFAI

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Paolo Carlini
Geoffrey Keating wrote: Darwin now has weak/comdat support, so it doesn't need or use this any more. Ah, great, I suspected that... However, AIX does need them, I think. Humpf, forgot AIX! David Edelsohn?!? Thanks, Paolo.

Re: PR 19893 & array_ref bug

2005-03-15 Thread Steve Ellcey
> > The gcc.dg/compat/struct-layout problems seem to stem from > > struct-layout-1_generate.c. In generate_fields() it generates random > > types, some of these are arrays of some base type. Then based on > > another random number we might add an attribute like alignment. There > > is no check t

Re: PR 19893 & array_ref bug

2005-03-15 Thread Joe Buck
On Tue, Mar 15, 2005 at 04:42:03PM -0800, Steve Ellcey wrote: > The simplest solution would probably be to ignore __aligned__ attributes > completely when we have an array. Or to do the change you suggested for > the vector tests and have the attribute attached to the array and not > the element t

Re: PR 19893 & array_ref bug

2005-03-15 Thread Mark Mitchell
Joe Buck wrote: On Tue, Mar 15, 2005 at 04:42:03PM -0800, Steve Ellcey wrote: The simplest solution would probably be to ignore __aligned__ attributes completely when we have an array. Or to do the change you suggested for the vector tests and have the attribute attached to the array and not the e

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Andrew Pinski
On Mar 15, 2005, at 7:35 PM, Paolo Carlini wrote: Geoffrey Keating wrote: Darwin now has weak/comdat support, so it doesn't need or use this any more. Ah, great, I suspected that... However, AIX does need them, I think. Humpf, forgot AIX! David Edelsohn?!? There are other targets other than aix t

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Paolo Carlini
Andrew Pinski wrote: There are other targets other than aix that still need them too. Almost all non elf targets (and there might be some elf targets too). AIX 5.1 supports weak symbols (IIRC) and should work without the "hack" but older AIX still should be supported. Thanks Andrew for the info. Wh

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Andrew Pinski
On Mar 15, 2005, at 8:01 PM, Paolo Carlini wrote: Andrew Pinski wrote: There are other targets other than aix that still need them too. Almost all non elf targets (and there might be some elf targets too). AIX 5.1 supports weak symbols (IIRC) and should work without the "hack" but older AIX still

Re: Merging calls to `abort'

2005-03-15 Thread Miles Bader
"Dave Korn" <[EMAIL PROTECTED]> writes: > I very strongly feel that this optimisation should be placed under user > control rather than just disabled, and that it should remain enabled by > default at -Os; but I wouldn't go to the ropes over whether or not it's > included in -Os as long as there'

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread David Edelsohn
> Paolo Carlini writes: >> However, AIX does need them, I think. >> Paolo> Humpf, forgot AIX! David Edelsohn?!? AIX probably needs this support indefinitely. If I remember correctly, the new allocator does not work on AIX due to ELF-like assumptions about the order of global constru

Hand-written rec-descent parser of GCC-4.1 is WRONG!!!.

2005-03-15 Thread jc-nospam
> http://gcc.gnu.org/gcc-4.1/changes.html > > New Languages and Language specific improvements > C and Objective-C > > * The old Bison-based C and Objective-C parser has been replaced > by a new, faster hand-written recursive-descent parser. Hahahahaha, WRONG!! It's one historical error

Re: Merging calls to `abort'

2005-03-15 Thread Giovanni Bajo
Richard Kenner <[EMAIL PROTECTED]> wrote: > However, the idea that users could search for previous bug > reports is new to me. That might be an additional reason for > using fancy_abort. > > It's not just users, but first level tech-support. There, it can help > in suggesting a workaroun

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!.

2005-03-15 Thread Joe Buck
On Wed, Mar 16, 2005 at 02:41:12AM +0100, [EMAIL PROTECTED] wrote: > > http://gcc.gnu.org/gcc-4.1/changes.html > > > > New Languages and Language specific improvements > > C and Objective-C > > > > * The old Bison-based C and Objective-C parser has been replaced > > by a new, faster hand-wri

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!.

2005-03-15 Thread Richard Kenner
> The best option is a clean grammar in Yacc/Bison!. GCC had such parsers for over a decade, and yet they are being replaced. Bison remains a good solution in many cases, especially for languages specifically designed to be easy to parse with an LALR parser (that is, languages

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread jc-nospam
| > > http://gcc.gnu.org/gcc-4.1/changes.html | > > | > > New Languages and Language specific improvements | > > C and Objective-C | > > | > > * The old Bison-based C and Objective-C parser has been replaced | > > by a new, faster hand-written recursive-descent parser. | > | > Hahahahaha, W

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread Joe Buck
On Wed, Mar 16, 2005 at 03:22:26AM +0100, [EMAIL PROTECTED] wrote: > Do you demonstrate that "C++ is not LALR(1)"? I'll leave that to you as a homework assignment. Actually, C++ is not LALR(N) for any N. Get out the C++ grammar and figure it out, it's an easy proof. Come back when you have prov

Re: Libstdc++-v3 vs darwin vs weak support

2005-03-15 Thread Benjamin Kosnik
kill these bits, for a couple of reasons. One, I don't know if they are necessary when using mt_alloc circa 20050315. I'm thinking that they are not, just due to design changes. Two, mt_alloc is not the default allocator for darwin, or for other platforms that are hostile to weak symbols.

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread jc-nospam
| > Do you demonstrate that "C++ is not LALR(1)"? | | I'll leave that to you as a homework assignment. Actually, C++ is not | LALR(N) for any N. Get out the C++ grammar and figure it out, it's an | easy proof. Come back when you have proved it to your own satisfaction, | and please refrain from

RTL?

2005-03-15 Thread "하태준"
i am studing RTL that is gcc front-end insn RTX has seven elements ex) (insn id prev next pattern code log_links reg_notes) (insn 12 10 14 (set (reg:QI 12 A0) (reg:QI 1 R1) -1 (nil) (nil)) where i get the impormation about code, log_links, reg_notes---

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread Daniel Berlin
On Wed, 2005-03-16 at 04:56 +0100, [EMAIL PROTECTED] > | > | Bison remains a good solution in many cases, especially for languages > | > | specifically designed to be easy to parse with an LALR parser (that is, > | > | languages that don't look like C). > | > > | > Why don't we develop a "LR(k) /

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread Daniel Berlin
On Tue, 2005-03-15 at 23:41 -0500, Daniel Berlin wrote: > On Wed, 2005-03-16 at 04:56 +0100, [EMAIL PROTECTED] > > | > | Bison remains a good solution in many cases, especially for languages > > | > | specifically designed to be easy to parse with an LALR parser (that > > is, > > | > | languages

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread Zack Weinberg
[EMAIL PROTECTED] writes: > | > Do you demonstrate that "C++ is not LALR(1)"? > | > | I'll leave that to you as a homework assignment. Actually, C++ is not > | LALR(N) for any N. Nor is it LR(N) nor LL(N). > | Get out the C++ grammar and figure it out, it's an easy proof. > | Come back when y

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread jc-nospam
| > It's possible that C++ doesn't require unbounded lookahead | | No, it's not. | In fact, if you'd read the language grammar definition, you'd discover | you could pretty produce the anti-program with some work. | That given any k, it produces a C++ program that cannot be parsed with | an LR(k) p

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread jc-nospam
| > | > Do you demonstrate that "C++ is not LALR(1)"? | > | | > | I'll leave that to you as a homework assignment. Actually, C++ is not | > | LALR(N) for any N. | | Nor is it LR(N) nor LL(N). | | > | Get out the C++ grammar and figure it out, it's an easy proof. | > | Come back when you have pro

Re: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread jc-nospam
| > | > Do you demonstrate that "C++ is not LALR(1)"? | > | | > | I'll leave that to you as a homework assignment. Actually, C++ is not | > | LALR(N) for any N. | | Nor is it LR(N) nor LL(N). | | > | Get out the C++ grammar and figure it out, it's an easy proof. | > | Come back when you have pro

RE: Hand-written rec-descent parser of GCC-4.1 is WRONG!!!

2005-03-15 Thread Gary Funck
The following paper provides some background on the difficulties encountered with parsing C++: http://citeseer.ist.psu.edu/irwin01generated.html Abstract: C++ is an extraordinarily difficult programming language to parse. The language cannot readily be approximated with an LL or LR grammar (re

reload question

2005-03-15 Thread Miles Bader
Hi, I'm writing a new gcc port, and having problems making reload work. Say I've got a mov instruction that only works via an accumulator A, and a two-operand add instruction. "r" regclass includes regs A,X,Y, and "a" regclass only includes reg A. So mov has constraints like: 0 = "g,a" 1 = "

Re: [Ada] Can't build gcc cvs trunk 20050315 on sparc-linux: a-except.adb: unhandled expression in get_expr_operands():

2005-03-15 Thread Eric Botcazou
> stage1/xgcc -Bstage1/ -B/usr/local/sparc-linux/bin/ -c -g -O2 > -gnatpg -gnata -g -O1 -fno-inline \ > -I- -I. -Iada -I/usr/local/src/trunk/gcc/gcc/ada > /usr/local/src/trunk/gcc/gcc/ada/a-except.adb -o ada/a-except.o > unhandled expression in get_expr_operands(): > This is fixed. -- Eric Bo