Thread View: comp.std.c++
1 messages
1 total messages
Started by Eric Valette
Mon, 14 Jan 1991 13:02
AT&T C++ 2.0 efficacious?
Author: Eric Valette
Date: Mon, 14 Jan 1991 13:02
Date: Mon, 14 Jan 1991 13:02
122 lines
2698 bytes
2698 bytes
/*
* The following small c++ program has been translated to c using
* one Cfront 2.0 port. If you look at generated c code, you will
* see that the code generated for inlines member functions is different
* for local variables and global variables (it is also true for global
* pointer)
*
* Could someone explain me why ?
*
* PS: I think that the code is ineffective. Tell me if I am wrong.
*
*/
/*
*
* Sorry to post it in these news group, I have already post it in
* comp.lang.c++ and got no answer.
*/
/* Small C++ program
* --------------------------------------------------------------------------
*
*/
class example {
private :
int a;
public :
int getVal() {return a;}
void setVal(int val) {a = val;}
};
example glob;
void f()
{
example loc;
int a = 1;
int b = 2;
int resu;
loc.setVal(1);
resu = loc.getVal();
glob.setVal(1);
resu = glob.getVal();
}
/*
* Generated C code
* -------------------------------------------------------------------------
*
*/
/* <<AT&T C++ Translator 2.00.02 08/25/89>> */
/* < kt34.cxx > */
char *__vec_new ();
char __vec_delete ();
typedef int (*__vptp)();
struct __mptr {
short d;
short i;
__vptp f;
};
struct example { /* sizeof example == 4 */
int a__7example ;
};
struct example glob = {
0 };
char f__Fv ()
{
struct example __1loc ;
int __1a ;
int __1b ;
int __1resu ;
struct example *__0__Xthis00a3jpkk ;
struct example *__0__Xthis0020bpkk ;
__1a = 1 ;
__1b = 2 ;
( ((&__1loc )->a__7example = 1 ), (((char )0 ))) ;
__1resu = ( (&__1loc )->a__7example ) ;
/*
* for local variables the c code is what I expected.
*/
( (__0__Xthis00a3jpkk = (&glob )), ( (__0__Xthis00a3jpkk ->a__7example = 1 ), (((char )0 ))) ) ;
__1resu = ( (__0__Xthis0020bpkk = (&glob )), ( __0__Xthis0020bpkk ->a__7example ) ) ;
/*
* Why two copies? Why into two differents local variables?
*/
}
--
__
/ ` Eric Valette
/-- __ o _. Chorus Systemes
(___, / (_(_(__ 6 avenue Gustave Eiffel
F-78182, St-Quentin-en-Yvelines-Cedex
Tel: +33 (1) 30 64 82 00 Fax: +33 (1) 30 57 00 66
E-mail: ev@chorus.fr or ev%chorus.fr@mcsun.EU.net
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads