public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* RE: Is this a bug?
@ 2003-08-21  9:23 Lev Assinovsky
  0 siblings, 0 replies; 18+ messages in thread
From: Lev Assinovsky @ 2003-08-21  9:23 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: Gcc-Bugs (E-mail), Gcc-Help (E-mail)

The test case passed under gcc 3.3.1.
The problem was in lack of SOM weak support in gcc prior 3.3

----
Lev Assinovsky
Aelita Software Corporation
O&S Core Division, Programmer
ICQ# 165072909


> -----Original Message-----
> From: Alexandre Oliva [mailto:aoliva@redhat.com]
> Sent: Tuesday, August 12, 2003 10:57 PM
> To: Lev Assinovsky
> Cc: Gcc-Bugs (E-mail); Gcc-Help (E-mail)
> Subject: Re: Is this a bug?
> 
> 
> On Aug 12, 2003, "Lev Assinovsky" 
> <LAssinovsky@algorithm.aelita.com> wrote:
> 
> > gcc 3.2.3, HPUX-11.00:
> 
> > t.cpp: In static member function `static const item* A::f()':
> > t.cpp:6: warning: sorry: semantics of inline function 
> static data `const item 
> >    arr[1]' are wrong (you'll wind up with multiple copies)
> > t.cpp:6: warning:   you can work around this by removing 
> the initializer
> 
> It's not as much of a bug, but rather a limitation AFAIK imposed by
> the object file of the platform you've chosen.  GCC requires weak
> symbols in order to implement this feature correctly, and 32-bit HP-UX
> object files don't support them (completely?).
> 
> -- 
> Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
> Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
> CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
> Free Software Evangelist                Professional serial bug killer
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-02-06 21:33 Matthew Toseland
@ 2003-02-06 22:18 ` Falk Hueffner
  0 siblings, 0 replies; 18+ messages in thread
From: Falk Hueffner @ 2003-02-06 22:18 UTC (permalink / raw)
  To: Matthew Toseland; +Cc: gcc-bugs

Matthew Toseland <toad@amphibian.dyndns.org> writes:

> #include <stdio.h>
> 
> void main() {
>         int x = 1;
>         int y = x << 32;
>         int z = (x << 32);
>         int q = 32;
>         printf("1 << 32 = %x = %x\n", (1L << 32), (1LL << 32));
> 	printf("1 << 32 = %x = %x\n", (1UL << 32), (1ULL << 32));
> 	printf("1 << 32 = %x = %x\n", (x << 32), (z << 32));
>         printf("1 << 32 = %x = %%x\n", %(x << %q), (z %<< q));
> }
> 
> Returns 
> 
> 1 << 32 = 0 = 0
> 1 << 32 = 0 = 0
> 1 << 32 = 1 = 1
> 1 << 32 = 1 = 1
> 
> Is this the defined behaviour?

There is no defined behaviour, so everything is correct.

> (1L << 32) is different from (x << 32) where x is an int defined to
> 1?

Yes, if long is wider than 32 bits. Otherwise, both are undefined.

Maybe we should put this onto the list of non-bugs, it comes up quite
frequently.

-- 
	Falk


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Is this a bug?
@ 2003-02-06 21:33 Matthew Toseland
  2003-02-06 22:18 ` Falk Hueffner
  0 siblings, 1 reply; 18+ messages in thread
From: Matthew Toseland @ 2003-02-06 21:33 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 813 bytes --]

#include <stdio.h>

void main() {
        int x = 1;
        int y = x << 32;
        int z = (x << 32);
        int q = 32;
        printf("1 << 32 = %x = %x\n", (1L << 32), (1LL << 32));
	printf("1 << 32 = %x = %x\n", (1UL << 32), (1ULL << 32));
	printf("1 << 32 = %x = %x\n", (x << 32), (z << 32));
        printf("1 << 32 = %x = %%x\n", %(x << %q), (z %<< q));
}

Returns 

1 << 32 = 0 = 0
1 << 32 = 0 = 0
1 << 32 = 1 = 1
1 << 32 = 1 = 1


Is this the defined behaviour? (1L << 32) is different from (x << 32)
where x is an int defined to 1?
								
-- 
Matthew Toseland
toad@amphibian.dyndns.org/amphibian@users.sourceforge.net
Full time freenet hacker.
http://freenetproject.org/
Freenet Distribution Node (temporary) at http://amphibian.dyndns.org:8889/27rV~CifX54/
ICTHUS.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-01-02 23:00       ` Songtao Chen
@ 2003-01-13  5:17         ` Zack Weinberg
  2003-01-13  5:17           ` Songtao Chen
  0 siblings, 1 reply; 18+ messages in thread
From: Zack Weinberg @ 2003-01-13  5:17 UTC (permalink / raw)
  To: Songtao Chen; +Cc: Neil Booth, gcc-bugs

Songtao Chen <songtao@cisco.com> writes:

>     i = ++i % 2;
>     i = i++ % 2;

Both of these are invalid C - you can't modify i twice in the same
statement (a slight simplification, which will do).

Write instead

      i = (i+1) % 2;

to get the behavior you wanted.

zw


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-01-13  5:17         ` Zack Weinberg
@ 2003-01-13  5:17           ` Songtao Chen
  0 siblings, 0 replies; 18+ messages in thread
From: Songtao Chen @ 2003-01-13  5:17 UTC (permalink / raw)
  To: Zack Weinberg, Neil Booth; +Cc: gcc-bugs

Hi Zack and Neil,

Thank you very much for the explanation.

Songtao

At 11:09 PM 1/4/2003 -0800, Zack Weinberg wrote:
>Songtao Chen <songtao@cisco.com> writes:
>
> >     i = ++i % 2;
> >     i = i++ % 2;
>
>Both of these are invalid C - you can't modify i twice in the same
>statement (a slight simplification, which will do).
>
>Write instead
>
>       i = (i+1) % 2;
>
>to get the behavior you wanted.
>
>zw


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-01-02 21:46     ` Neil Booth
@ 2003-01-02 23:00       ` Songtao Chen
  2003-01-13  5:17         ` Zack Weinberg
  0 siblings, 1 reply; 18+ messages in thread
From: Songtao Chen @ 2003-01-02 23:00 UTC (permalink / raw)
  To: Neil Booth; +Cc: gcc-bugs

Hi Neil,

Thanks for the explanation.

My original problem was this,

#include<stdio.h>

int main(void)
{
    int r, i;

    i = 0;
    i = ++i % 2;
    printf("test 1 : i = %d\n", i);

    i = 0;
    i = i++ % 2;
    printf("test 2 : i = %d\n", i);

    return 0;
}

Test 2 gives 0. I was expecting 1. Should it not?

Here is the disassembled version, maybe you can tell
what's going on. I don't know much about assembly code.

    i = 0;
    1083c:       c0 27 bf e8     clr  [ %fp + -24 ]
    i = ++i % 2;
    10840:       d0 07 bf e8     ld  [ %fp + -24 ], %o0
    10844:       92 02 20 01     add  %o0, 1, %o1
    10848:       90 10 00 09     mov  %o1, %o0
    1084c:       d0 27 bf e8     st  %o0, [ %fp + -24 ]
    10850:       93 3a 20 1f     sra  %o0, 0x1f, %o1
    10854:       95 32 60 1f     srl  %o1, 0x1f, %o2
    10858:       92 02 00 0a     add  %o0, %o2, %o1
    1085c:       95 3a 60 01     sra  %o1, 1, %o2
    10860:       92 10 00 0a     mov  %o2, %o1
    10864:       95 2a 60 01     sll  %o1, 1, %o2
    10868:       90 22 00 0a     sub  %o0, %o2, %o0
    1086c:       d0 27 bf e8     st  %o0, [ %fp + -24 ]
    printf("test 1 : i = %d\n", i);
    10870:       13 00 00 42     sethi  %hi(0x10800), %o1
    10874:       90 12 61 78     or  %o1, 0x178, %o0     ! 10978 
<_lib_version+0x8>
    10878:       d2 07 bf e8     ld  [ %fp + -24 ], %o1
    1087c:       40 00 40 6d     call  20a30 <_PROCEDURE_LINKAGE_TABLE_+0x6c>
    10880:       01 00 00 00     nop

    i = 0;
    10884:       c0 27 bf e8     clr  [ %fp + -24 ]
    i = i++ % 2;
    10888:       d0 07 bf e8     ld  [ %fp + -24 ], %o0
    1088c:       92 02 20 01     add  %o0, 1, %o1
    10890:       d2 27 bf e8     st  %o1, [ %fp + -24 ]
    10894:       93 3a 20 1f     sra  %o0, 0x1f, %o1
    10898:       95 32 60 1f     srl  %o1, 0x1f, %o2
    1089c:       92 02 00 0a     add  %o0, %o2, %o1
    108a0:       95 3a 60 01     sra  %o1, 1, %o2
    108a4:       92 10 00 0a     mov  %o2, %o1
    108a8:       95 2a 60 01     sll  %o1, 1, %o2
    108ac:       90 22 00 0a     sub  %o0, %o2, %o0
    108b0:       d0 27 bf e8     st  %o0, [ %fp + -24 ]
    printf("test 2 : i = %d\n", i);
    108b4:       13 00 00 42     sethi  %hi(0x10800), %o1
    108b8:       90 12 61 90     or  %o1, 0x190, %o0     ! 10990 
<_lib_version+0x20>
    108bc:       d2 07 bf e8     ld  [ %fp + -24 ], %o1
    108c0:       40 00 40 5c     call  20a30 <_PROCEDURE_LINKAGE_TABLE_+0x6c>
    108c4:       01 00 00 00     nop

    return 0;


Thanks for your help.

Songtao





At 09:45 PM 1/2/2003 +0000, Neil Booth wrote:
>Songtao Chen wrote:-
>
> > Hi Neil,
> >
> > Thanks for replying.
> >
> > Can you tell me why the parentheses are irrelevant,
> > any doc to support that?
>
>For the same reason that (2) is the same as 2, and not 3.  Like I said,
>post-increment returns the value before incrementing.
>
>Neil.
>
> >
> > Songtao
> >
> > At 09:23 PM 1/2/2003 +0000, Neil Booth wrote:
> > >Songtao Chen wrote:-
> > >
> > >> Hi there,
> > >>
> > >> It appears to be a bug to me.
> > >
> > >No, i++ returns the value before increment.  Parentheses are irrelevant.
> > >
> > >Neil.
> >


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-01-02 21:42   ` Songtao Chen
@ 2003-01-02 21:46     ` Neil Booth
  2003-01-02 23:00       ` Songtao Chen
  0 siblings, 1 reply; 18+ messages in thread
From: Neil Booth @ 2003-01-02 21:46 UTC (permalink / raw)
  To: Songtao Chen; +Cc: gcc-bugs

Songtao Chen wrote:-

> Hi Neil,
> 
> Thanks for replying.
> 
> Can you tell me why the parentheses are irrelevant,
> any doc to support that?

For the same reason that (2) is the same as 2, and not 3.  Like I said,
post-increment returns the value before incrementing.

Neil.

> 
> Songtao
> 
> At 09:23 PM 1/2/2003 +0000, Neil Booth wrote:
> >Songtao Chen wrote:-
> >
> >> Hi there,
> >>
> >> It appears to be a bug to me.
> >
> >No, i++ returns the value before increment.  Parentheses are irrelevant.
> >
> >Neil.
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-01-02 21:24 ` Neil Booth
@ 2003-01-02 21:42   ` Songtao Chen
  2003-01-02 21:46     ` Neil Booth
  0 siblings, 1 reply; 18+ messages in thread
From: Songtao Chen @ 2003-01-02 21:42 UTC (permalink / raw)
  To: Neil Booth; +Cc: gcc-bugs

Hi Neil,

Thanks for replying.

Can you tell me why the parentheses are irrelevant,
any doc to support that?

Songtao

At 09:23 PM 1/2/2003 +0000, Neil Booth wrote:
>Songtao Chen wrote:-
>
> > Hi there,
> >
> > It appears to be a bug to me.
>
>No, i++ returns the value before increment.  Parentheses are irrelevant.
>
>Neil.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2003-01-02 21:21 Songtao Chen
@ 2003-01-02 21:24 ` Neil Booth
  2003-01-02 21:42   ` Songtao Chen
  0 siblings, 1 reply; 18+ messages in thread
From: Neil Booth @ 2003-01-02 21:24 UTC (permalink / raw)
  To: Songtao Chen; +Cc: gcc-bugs

Songtao Chen wrote:-

> Hi there,
> 
> It appears to be a bug to me.

No, i++ returns the value before increment.  Parentheses are irrelevant.

Neil.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Is this a bug?
@ 2003-01-02 21:21 Songtao Chen
  2003-01-02 21:24 ` Neil Booth
  0 siblings, 1 reply; 18+ messages in thread
From: Songtao Chen @ 2003-01-02 21:21 UTC (permalink / raw)
  To: gcc-bugs

Hi there,

It appears to be a bug to me.

* gcc version:
   gcc.c2.95.3

* source code: bug.c

#include<stdio.h>

int main(void)
{
    int r, i;

    i = 0;
    r = ++i % 2;
    printf("test 1 : r = %d, i = %d\n", r, i);

    i = 0;
    r = i++ % 2;
    printf("test 2 : r = %d, i = %d\n", r, i);

    i = 0;
    r = (++i) % 2;
    printf("test 3 : r = %d, i = %d\n", r, i);

    i = 0;
    r = (i++) % 2;
    printf("test 4 : r = %d, i = %d\n", r, i);

    i = 0;
    r = (i+1) % 2;
    printf("test 5 : r = %d, i = %d\n", r, i);

    return 0;
}

* compile command:
    gcc.c2.95.3 bug.c

* type of machine:

   SunOS ott-view1 5.6 Generic_105181-28 sun4u sparc SUNW,Ultra-Enterprise

...


* output :

test 1 : r = 1, i = 1
test 2 : r = 0, i = 1
test 3 : r = 1, i = 1
test 4 : r = 0, i = 1
test 5 : r = 1, i = 0

     Expecting r = 1 in test 4, because use of brackets.



Thanks,

Songtao


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2002-09-03 14:07 ` Matt Austern
@ 2002-09-10  1:06   ` Michael Ritzert
  0 siblings, 0 replies; 18+ messages in thread
From: Michael Ritzert @ 2002-09-10  1:06 UTC (permalink / raw)
  To: Matt Austern; +Cc: gcc-bugs

Just back from a week-long holiday...

Am Dienstag, 3. September 2002 23:07 schrieb Matt Austern:
> On Friday, August 30, 2002, at 02:39 AM, Ritzert@t-online.de wrote:
> > Hi all,
> >
> > Since 2002-08-26 I'm unable to compile STLPort with gcc HEAD. I have
> > stripped down the STLPort code to this small testcase:
> >
> > # cat x.cpp
> > template <class _Tp>
> > inline const _Tp& max(const _Tp& __a, const _Tp& __b)
> >         { return __a < __b ? __b : __a; }
> >
> > void append()
> > {
> >         const unsigned __old_size = 3;
> >         int __n = 7;
> >         max(__old_size, static_cast<unsigned>(__n));
> > }
>
> I think the compiler is wrong to complain.  It's true that
> static_cast<unsigned>(__n) is an rvalue.  However, binding
> a const reference to an rvalue is legal.

Thanks, that's exactly the point I was uncertain about.

Ok, so I will file a bug report with this further reduced testcase shortly:

int main()
{
        int bar = 7;
        const unsigned& foo = static_cast<unsigned>(bar);
}

Michael


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  2002-08-30  2:41 Ritzert
@ 2002-09-03 14:07 ` Matt Austern
  2002-09-10  1:06   ` Michael Ritzert
  0 siblings, 1 reply; 18+ messages in thread
From: Matt Austern @ 2002-09-03 14:07 UTC (permalink / raw)
  To: Ritzert; +Cc: gcc-bugs

On Friday, August 30, 2002, at 02:39 AM, Ritzert@t-online.de wrote:

> Hi all,
>
> Since 2002-08-26 I'm unable to compile STLPort with gcc HEAD. I have
> stripped down the STLPort code to this small testcase:
>
> # cat x.cpp
> template <class _Tp>
> inline const _Tp& max(const _Tp& __a, const _Tp& __b)
>         { return __a < __b ? __b : __a; }
>
> void append()
> {
>         const unsigned __old_size = 3;
>         int __n = 7;
>         max(__old_size, static_cast<unsigned>(__n));
> }

I think the compiler is wrong to complain.  It's true that
static_cast<unsigned>(__n) is an rvalue.  However, binding
a const reference to an rvalue is legal.

			--Matt


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Is this a bug?
@ 2002-08-30  2:41 Ritzert
  2002-09-03 14:07 ` Matt Austern
  0 siblings, 1 reply; 18+ messages in thread
From: Ritzert @ 2002-08-30  2:41 UTC (permalink / raw)
  To: gcc-bugs; +Cc: austern

Hi all,

Since 2002-08-26 I'm unable to compile STLPort with gcc HEAD. I have
stripped down the STLPort code to this small testcase:

# cat x.cpp
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b)
        { return __a < __b ? __b : __a; }

void append()
{
        const unsigned __old_size = 3;
        int __n = 7;
        max(__old_size, static_cast<unsigned>(__n));
}

# gcc -c x.cpp
x.cpp: In function `void append()':
x.cpp:9: error: non-lvalue in unary `&'

The patch causing this seems to be
2002-08-24  Matt Austern  <austern@apple.com>

	* tree.c (lvalue_p_1): Add argument for whether casts of lvalues
	are allowable.
	(real_lvalue_p): Update caller.
	(lvalue_p): Ditto.
	(non_cast_lvalue_or_else): New.
	* tree.h: Declare it.
	* typeck.c (build_unary_op): Use non_cast_lvalue_or_else.

The ChangeLog to the previous successful build is rather small with
this being the only patch that looks suspicious to me.

If this is considered a bug, just tell me and I'll file a bug report
for it. (Or fix it before I get the chance to do so ;-) ).

Regards,
Michael


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Is this a bug?
@ 2000-12-06  3:42 Martin Kahlert
  0 siblings, 0 replies; 18+ messages in thread
From: Martin Kahlert @ 2000-12-06  3:42 UTC (permalink / raw)
  To: gcc-bugs

Hi!
I have code similar to this:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void f(const char **x)
{
 while(*x)
    {
     puts(*x);
     x++;
    }
}

int main(int argc,char *argv[])
{
 char **buffer;

 buffer = calloc(3, sizeof(char*));

 buffer[0] = strdup("Hello");
 buffer[1] = strdup("World");

 f(buffer);

 return 0;
}

gcc -Wall -o prog prog.c gives:

t.c: In function `main':
t.c:23: warning: passing arg 1 of `f' from incompatible pointer type
(the warning comes from the missing const)
Is this a bug?

At least it is an inconsistency:

f(const char *buffer)
{
 puts(buffer);
}

int main()
{
 char b[] = "Hello World";
 f(b);
 return 0;
}

works without any warning!

Thanks for any clarification,
Martin.


-- 
The early bird gets the worm. If you want something else for       
breakfast, get up later.
>From jsm28@cam.ac.uk Wed Dec 06 03:55:00 2000
From: "Joseph S. Myers" <jsm28@cam.ac.uk>
To: Martin Kahlert <martin.kahlert@infineon.com>
Cc: <gcc-bugs@gcc.gnu.org>
Subject: Re: Is this a bug?
Date: Wed, 06 Dec 2000 03:55:00 -0000
Message-id: <Pine.LNX.4.30.0012061150200.31115-100000@kern.srcf.societies.cam.ac.uk>
References: <20001206124239.A20108@keksy.muc.infineon.com>
X-SW-Source: 2000-12/msg00131.html
Content-length: 531

On Wed, 6 Dec 2000, Martin Kahlert wrote:

> t.c: In function `main':
> t.c:23: warning: passing arg 1 of `f' from incompatible pointer type
> (the warning comes from the missing const)
> Is this a bug?

No; you can pass a "char **" to a function expecting a "char **" or a
"char *const *", but not to one expecting a "const char **" or a "const
char *const *".  It's only at the first level of indirection that you can
have different type qualifiers in the expected type and the type passed.

-- 
Joseph S. Myers
jsm28@cam.ac.uk


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Is this a bug?
@ 2000-01-30 16:44 Kuo Yu Chuang
  0 siblings, 0 replies; 18+ messages in thread
From: Kuo Yu Chuang @ 2000-01-30 16:44 UTC (permalink / raw)
  To: gcc-bugs

Good days, and sorry for the inconvenience I made ^_^
 
I don't know if this is a bug, or just a misunderstanding :-P
I am currently using the GCC as a corss-compiler which
target is VAX machine. The host is i386 arch with linux.
Here is the test program I wrote:
 
main( )
{
    unsigned int a, b;
    a = 10;
    b = 5;
 
    a = a % b;
}
 
In the VAX-assembly, it calls "umodsi3" to achieve mod of
the two unsigned integer. However, in libgcc1.c, the umodsi3
is also implemented in following statements:
 
#define perform_umodsi3(a, b) return a % b
nongcc_SI_type
__umodsi3 (a, b)
     unsigned nongcc_SI_type a, b;
{
  perform_umodsi3 (a, b);
}

As a result, we can't use this compiler to compile 
libgcc1.c in order to provide the unsigned integer mod.
This situation becames to a self-calling recurrsive. 
Some other machine is containing this umodsi3 in 
".md" file but Vax is not. Should we patch this one
to vax.md or in libgcc1?
(to emulate umodsi3 with signed integer?)
 
Thank you in advance :-)
 
==================
Kuo-Yu Slayer Chuang
Computer & Communications Research Laboratories
Software Engineer
Industrial Technology Research Institute, Taiwan.
E-mail: slayer@itri.org.tw
==================


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
       [not found] <007d01bf6988$d2fb0c40$795d608c@ccl.itri.org.tw>
@ 2000-01-30  2:45 ` Martin v. Loewis
  0 siblings, 0 replies; 18+ messages in thread
From: Martin v. Loewis @ 2000-01-30  2:45 UTC (permalink / raw)
  To: slayer; +Cc: gcc-bugs

> As a result, we can't use this compiler to compile
> libgcc1.c in order to provide the unsigned integer mod.
> This situation becames to a self-calling recurrsive.
> Some other machine is containing this umodsi3 in
> ".md" file but Vax is not. Should we patch this one
> to vax.md or in libgcc1?

I believe the way this is supposed to work is the following: If the
architecture does not define perform_umodsi3, it is defined as

#define perform_umodsi3(a, b) return a % b

This is compiled with the native compiler of the host system (i.e. a
VMS compiler), which knows how to perform integer division. Then
you'll use the implementation of perform_umodsi3 provided by that
compiler.

That approach breaks for cross-compilation. Please see "(gcc)Cross
Runtime" in the manual for a detailed discussion; you essentially have
to provide a precompiled libgcc1 for the target system.

Alternatively, you could provide definitions of the relevant perform_
macros for the VAX. You should put them into vax.h (or into a separate
perform.h, as done for i386). When you follow this approach, please
send your patches to gcc-patches@gcc.gnu.org when you are done.

Yet another alternative is to modify the .md file, and avoid
generation of function calls for these insns altogether. If you are
familiar with GCC backend technology, that approach might be even more
useful.

Regards,
Martin
>From th@geomec5.civil.soton.ac.uk Sun Jan 30 04:11:00 2000
From: Tom Harkness <th@geomec5.civil.soton.ac.uk>
To: gcc-bugs@gcc.gnu.org
Subject: C++ base class constructor not called
Date: Sun, 30 Jan 2000 04:11:00 -0000
Message-id: <Pine.LNX.3.96.1000130120341.6559A-200000@geomec5.civil.soton.ac.uk>
X-SW-Source: 2000-01/msg00877.html
Content-length: 468

Transcript:

$ g++ -v
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
$ g++ -o bug1 bug1.C
$ bug1
construct 0xbffffcdc
destroy   0x8058728
destroy   0xbffffcdc

Surely the base class constructor should always be called, even if the copy
constructor of the derived class is implicitly defined.  Isn't this a bug?
(By explicitly defining an empty copy constructor, B(const B &b) { }, the
problem vanishes.)
>From ghazi@caip.rutgers.edu Sun Jan 30 10:41:00 2000
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: egcs-bugs@egcs.cygnus.com
Cc: autogen@linuxbox.com, zack@wolery.cumb.org
Subject: fixincl now run at every stage?
Date: Sun, 30 Jan 2000 10:41:00 -0000
Message-id: <200001301840.NAA19953@caip.rutgers.edu>
X-SW-Source: 2000-01/msg00878.html
Content-length: 240

	With current CVS, fixincl is run at every stage.  I thought it
was only supposed to run at stage1.  Is this intentional?

		--Kaveh
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From zack@wolery.cumb.org Sun Jan 30 11:28:00 2000
From: Zack Weinberg <zack@wolery.cumb.org>
To: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
Cc: egcs-bugs@egcs.cygnus.com, autogen@linuxbox.com
Subject: Re: fixincl now run at every stage?
Date: Sun, 30 Jan 2000 11:28:00 -0000
Message-id: <20000130112816.A7640@wolery.cumb.org>
References: <200001301840.NAA19953@caip.rutgers.edu>
X-SW-Source: 2000-01/msg00879.html
Content-length: 283

On Sun, Jan 30, 2000 at 01:40:49PM -0500, Kaveh R. Ghazi wrote:
> 
> 	With current CVS, fixincl is run at every stage.  I thought it
> was only supposed to run at stage1.  Is this intentional?

It certainly wasn't my intent; I thought it was only supposed to run
in stage1, too.

zw
>From llewelly@198.dsl.xmission.com Sun Jan 30 13:05:00 2000
From: llewelly@198.dsl.xmission.com
To: Tom Harkness <th@geomec5.civil.soton.ac.uk>, gcc-bugs@gcc.gnu.org
Subject: Re: C++ base class constructor not called
Date: Sun, 30 Jan 2000 13:05:00 -0000
Message-id: <lzpuujgtic.fsf@198.dsl.xmission.com>
References: <Pine.LNX.3.96.1000130120341.6559A-200000@geomec5.civil.soton.ac.uk>
X-SW-Source: 2000-01/msg00880.html
Content-length: 1927

Tom Harkness <th@geomec5.civil.soton.ac.uk> writes:

>   This message is in MIME format.  The first part should be readable text,
>   while the remaining parts are likely unreadable without MIME-aware tools.
>   Send mail to mime@docserver.cac.washington.edu for more info.
> 
> --1318606433-1525996441-949234199=:6559
> Content-Type: TEXT/PLAIN; charset=US-ASCII
> 
> Transcript:
> 
> $ g++ -v
> Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/specs
> gcc version 2.95.2 19991024 (release)
> $ g++ -o bug1 bug1.C
> $ bug1
> construct 0xbffffcdc
> destroy   0x8058728
> destroy   0xbffffcdc
> 
> Surely the base class constructor should always be called, even if the copy
> constructor of the derived class is implicitly defined.  Isn't this a bug?
> (By explicitly defining an empty copy constructor, B(const B &b) { }, the
> problem vanishes.)

> 
> #include <iostream>
> 
> class A
> {
> public:
>         A() { std::cout << "construct " << this << "\n"; }
>         virtual ~A() { std::cout << "destruct  " << this << "\n"; }

Since you did not create a copy constructor for A, the compiler will
  create one for you.

> };
> 
> class B : public A
> {
> public:
>         B() { }
>         B *clone() const { return new B(*this); }
> };
> 
> int main()
> {
>         B b;
>         A *bb = b.clone();
>         delete bb;
>         return 0;
> }

A compiler-generated copy constructor will call the copy constructors
  of the class's base classes. So B's copy constructor will look
  something like this:

B::(B const& rhs)
  :A(rhs)
{}

The closest match for A(B const&) is A::A(A const&) ... which is A's
  compiler generated copy constructor.

However, if you define:

B::B(B const&){}

A's default constructor will be called, as no other constructor was
  specified.

So I don't think this is a bug.

By the way, it is still good to send bug reports, even if there are
  bugs in the bug reports. :-)
>From pthomas@suse.de Sun Jan 30 14:09:00 2000
From: Philipp Thomas <pthomas@suse.de>
To: "Ryan C. Gordon" <icculus@lokigames.com>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: GCC 2.95.2 bug report...private template function crash.
Date: Sun, 30 Jan 2000 14:09:00 -0000
Message-id: <20000130230904.J7124@Jeffreys.suse.de>
References: <Pine.LNX.4.10.10001261149190.23232-401000@icculus.lokigames-lan.com>
X-SW-Source: 2000-01/msg00881.html
Content-length: 1100

* Ryan C. Gordon (icculus@lokigames.com) [20000126 20:58]:

> The command line used was:
> 
>  gcc -v --save-temps crackpipe.cpp 2> stderr.txt

First of all, use g++ or c++ for compiling C++ code. While gcc will call
cc1plus for compiling C++ code, it won't link in needed libs like libstdc++.

With the current CVS version I get the following:

crackpipe.cpp: In function `int main ()':
crackpipe.cpp:41: initializing non-const `Crackrock &' with `int' will use a temporary
crackpipe.cpp:43: request for member `SmokeTheRock' in `MyPipe', which is of non-aggregate type `Crackpipe () ()'
crackpipe.cpp: In method `Void crackpipe::putInPipe (_T) [with _T = crackrock]':
crackpipe.cpp:29:   instantiated from here
crackpipe.cpp:35: no match for `Crackrock & != int'

So it seems the bug has been fixed. On the rest I can't comment as I'm
rather a newbie in regards to C++.

Philipp

-- 
Philipp Thomas <pthomas@suse.de>
SuSE GmbH, Deutschherrenstrasse 15-29, 90429 Nuremberg

Life is an ocean and love is a boat,
in troubled waters, it keeps us afloat
                                   Christy Moore
>From mckelvey@fafnir.com Sun Jan 30 14:20:00 2000
From: James McKelvey <mckelvey@fafnir.com>
To: gcc-bugs@gcc.gnu.org
Subject: GCC 2.95.2, Next 3.3;  ICE with optimization
Date: Sun, 30 Jan 2000 14:20:00 -0000
Message-id: <200001302211.OAA20881@fafnir.com>
X-SW-Source: 2000-01/msg00882.html
Content-type: multipart/mixed; boundary="----------=_1583533094-4114-68"

This is a multi-part message in MIME format...

------------=_1583533094-4114-68
Content-length: 484

 GCC 2.95.2

Next Cube running NextSTEP 4.2, 3.3 Developer

Enclosed program gets an ICE if -O specified. Otherwise OK.

fafnir:PM>g++ -c -I/usr/local/include -O3 -DNeXT -g -save-temps -o test.o test.cc
g++: Internal compiler error: program cc1plus got fatal signal 4

test.ii.gz

---
Where diesel guitars from faraway bars, blast out the
best songs from our holy wars. Coyote carnival catches
on fire, all the cops in the world pick us up on radar.
Jim McKelvey  mckelvey@fafnir.com

------------=_1583533094-4114-68
Content-Type: application/x-gzip; charset=binary; name="test.ii.gz"
Content-Disposition: inline; filename="test.ii.gz"
Content-Transfer-Encoding: base64
Content-Length: 50447

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

------------=_1583533094-4114-68--
>From pthomas@suse.de Sun Jan 30 14:30:00 2000
From: Philipp Thomas <pthomas@suse.de>
To: Martin Buchholz <martin@xemacs.org>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: egcs-20000114 - internal compiler error compiling XEmacs
Date: Sun, 30 Jan 2000 14:30:00 -0000
Message-id: <20000130233035.K7124@Jeffreys.suse.de>
References: <14481.13199.558280.617097@gargle.gargle.HOWL> <20000127232157.B16864@wolery.cumb.org> <or4sbyu02e.fsf@garnize.lsd.ic.unicamp.br> <14481.24993.99328.929039@gargle.gargle.HOWL>
X-SW-Source: 2000-01/msg00883.html
Content-length: 583

* Martin Buchholz (martin@xemacs.org) [20000128 10:33]:

> - Fix cpp to make --enable-cpplib unnecessary.

Nope! --enable-cpplib has just been enabled by default in the CVS, in order
to get it tested more widely and in the end being able to get rid of cccp,
i.e. the old preprocessor. So this is going to stay, but you won't have to
enable it explicitly.

Philipp

-- 
Philipp Thomas <pthomas@suse.de>
SuSE GmbH, Deutschherrenstrasse 15-29, 90429 Nuremberg

Life is an ocean and love is a boat,
in troubled waters, it keeps us afloat
                                   Christy Moore
>From manfreds@colorfullife.com Sun Jan 30 14:43:00 2000
From: Manfred Spraul <manfreds@colorfullife.com>
To: egcs-bugs@egcs.cygnus.com
Subject: BUG: egcs-1.1.2 generates wrong code
Date: Sun, 30 Jan 2000 14:43:00 -0000
Message-id: <3894BF54.14215E1B@colorfullife.com>
X-SW-Source: 2000-01/msg00884.html
Content-length: 840

egcs -O2 -S test.c generated the attached file.

[egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)]
The problem is the 

	movl $0, (%ebp)
	movl $0, 4(%ebp)

which means that egcs just overwrote the return address. 
The generated code is weird, especially the empty loop to L4 and the
fact that most initializations are missing:

2 long values are set to zero
1 long value is set to 198.

but it should

set 4 long values (2 long long) to zero
2 value to 198.

Am I dreaming, or is that a compiler bug?

Note that the code is originally from the creative joystick driver from
linux-2.3.41.

--
	Manfred

typedef unsigned long long __u64;

#define JS_CR_MAX_STROBE	99

void fill(void)
{
	__u64 buf[2];
	int p[2];
	int i;

	for (i = 0; i < 2; i++); {
		buf[i] = 0;
		p[i] = JS_CR_MAX_STROBE;
		p[i] += JS_CR_MAX_STROBE;
	}
	printf(buf,p);
}



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Is this a bug?
  1999-05-11 21:09 Christian II
@ 1999-05-11 23:44 ` Martin v. Loewis
  0 siblings, 0 replies; 18+ messages in thread
From: Martin v. Loewis @ 1999-05-11 23:44 UTC (permalink / raw)
  To: CHRISTIANII; +Cc: egcs-bugs

> Shouldn't it call Object::render(float, float, float)?  Instead,
> Triangle::render() overrides it!

No. Triangle::render does not override Object::render, it *hides*
Object::render. Stroustrup decided that if introduce a method in a
derived class, it might be confusing if a base method with the same
name would be called just because overload resolution finds it a
better method.

One way to get around this is

  Triangle t;
  Object *o = &t;
  o->render(0, 0, -5);

  Triangle t;
  t.render(0, 0, -5);

Another way would be a using declaration:

class Triangle
{
  float v[3][3];
public:
  virtual void move(float x, float y, float z);
  using Object::render;
  virtual void render();
};

Unfortunately, g++ currently rejects such code.

Please read your C++ book on inheritance and overloading.

Regards,
Martin


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Is this a bug?
@ 1999-05-11 21:09 Christian II
  1999-05-11 23:44 ` Martin v. Loewis
  0 siblings, 1 reply; 18+ messages in thread
From: Christian II @ 1999-05-11 21:09 UTC (permalink / raw)
  To: egcs-bugs

Is this a bug in the compiler?
I am using version 1.1.2 of the egcs compiler; and when I compile the
following program in DOS or linux, I get this output:

test.cpp: In function `int main()':
test.cpp:33: no matching function for call to `Triangle::render (int, int,
int)'

test.cpp:27: candidates are: Triangle::render()


Shouldn't it call Object::render(float, float, float)?  Instead,
Triangle::render() overrides it!

Could you please E-mail me about this at: christianii@prodigy.net


// test program
class Object
{
public:
  virtual void move(float x, float y, float z);
  virtual void render();                        // render at origin
  void render(float x, float y, float z)        // render at x,y,z
    {move(x,y,z); render(); move(-x,-y,-z);}
};

class Triangle
{
  float v[3][3];
public:
  virtual void move(float x, float y, float z);
  virtual void render();
};

main()
{
  Triangle t;
  t.render(0, 0, -5);
}


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2003-08-21  9:23 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-21  9:23 Is this a bug? Lev Assinovsky
  -- strict thread matches above, loose matches on Subject: below --
2003-02-06 21:33 Matthew Toseland
2003-02-06 22:18 ` Falk Hueffner
2003-01-02 21:21 Songtao Chen
2003-01-02 21:24 ` Neil Booth
2003-01-02 21:42   ` Songtao Chen
2003-01-02 21:46     ` Neil Booth
2003-01-02 23:00       ` Songtao Chen
2003-01-13  5:17         ` Zack Weinberg
2003-01-13  5:17           ` Songtao Chen
2002-08-30  2:41 Ritzert
2002-09-03 14:07 ` Matt Austern
2002-09-10  1:06   ` Michael Ritzert
2000-12-06  3:42 Martin Kahlert
2000-01-30 16:44 Kuo Yu Chuang
     [not found] <007d01bf6988$d2fb0c40$795d608c@ccl.itri.org.tw>
2000-01-30  2:45 ` Martin v. Loewis
1999-05-11 21:09 Christian II
1999-05-11 23:44 ` Martin v. Loewis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).