Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => Topic started by: chameleon on June 06, 2011, 02:04:25 AM

Title: Bug on function prototype
Post by: chameleon on June 06, 2011, 02:04:25 AM
I doesn't use the nightly build of CodeBlocks but I found this error:
The same function prototype appears 2 times (a little bit changed)
Title: Re: Bug on function prototype
Post by: ollydbg on June 06, 2011, 01:53:02 PM
can you give a simple test code?
From my guess, I think that this is because these two function prototypes has different signatures.

const class circleArc2 *c, const Vector & v
const circleArc2 *c, const Vector & v

But why the "class" keyword was exists in the function signature??

did you use 10.05 official version?


Title: Re: Bug on function prototype
Post by: nanyu on June 06, 2011, 04:30:17 PM
As far as I know, CC is not smart enough to do it for. For example: If I declare some member methods like:
///////////////////////////
class Coo
{
    int foo1(int a, int b);
    int foo2(char const*);
    int foo3(int age /* some comment*/, int b);
};
///////////////////////////

and defind those methods like:

int Coo::foo1(int a
       , int b)   //b start on a new line
{}

int Coo::foo2(const char* p)
{}

int Coo::foo3(int age, int bbb)
{}


then all of those function will appears 2 times on the tips windows.

Title: Re: Bug on function prototype
Post by: oBFusCATed on June 06, 2011, 04:49:56 PM
nanyu: you should be punished and humiliated in public for writing such code :lol:
Title: Re: Bug on function prototype
Post by: nanyu on June 06, 2011, 05:04:24 PM
Quote from: oBFusCATed on June 06, 2011, 04:49:56 PM
nanyu: you should be punished and humiliated in public for writing such code :lol:

no, no, no.....
look at the first sample:

I am used to add the comments of it's parameters when declare a function :

int foo1(int aaa  //comments of aaa
             , int bbb   //comments of bbb
             , char const* ccc //comments of ccc
             , Coo const* ddd  //comments of ddd
             );


But  a clear version for imp :

int foo1(int aaa, int bbb, char const* ccc, Coo const* ddd)
{
}


I thinks it was not a hard thing that cc do a filtting.
Title: Re: Bug on function prototype
Post by: oBFusCATed on June 06, 2011, 06:35:07 PM
This is a bug, no question about it :)
Apparently CC in its current implementation doesn't strip the names of the parameters.

But your code is ugly, too (don't answer me, I'm joking, trolling :lol: )
Title: Re: Bug on function prototype
Post by: ouch on June 06, 2011, 08:18:34 PM
hey now, be nice... I write code comments on everything like that too. Expecially stuff I'm debuging I'll comment bits out with /* */. Keeping things readable is  what syntax highlighting is for after all. :p