public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: preprocessor/2948
@ 2001-05-29 9:46 Sean McNeil
0 siblings, 0 replies; 11+ messages in thread
From: Sean McNeil @ 2001-05-29 9:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Sean McNeil <sean@mcneil.com>
To: Neil Booth <neil@daikokuya.demon.co.uk>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Tue, 29 May 2001 09:40:39 -0700
The pragmas are indeed getting passed through by the cpp0. So why would
they compile differently in the two cases? This is very strange. It is
related to that #pragma, though. Perhaps the cpp is told to parse things
differently?
Sean
Neil Booth wrote:
> Sean McNeil wrote:-
>
> > This has puzzled me for a while and I've tried several additional
> > things as we've been discussing this. I noticed that the cc1plus
> > program installs handlers for various pragmas and discovered a
> > #pragma implementation in PlotFile.cpp. When I remove this pragma,
> > compilation is as I expected.
>
> Great, thanks for persisting.
>
> > HOWEVER.... there is no template code that exists within the ttt.ii
> > file (after preprocessor) and adding a #pragma implementation to
> > ttt.cc (copy of ttt.ii) doesn't reproduce the problem either. So I
> > am still at a loss as to why
>
> Hmmm. This doesn't sound good. Are you saying that the #pragma does
> not exist in the -E preprocessed output? If so, that's a bug. Most
> pragmas are not handled or understood by CPP, so it must pass them
> through in the preprocessed output unchanged.
>
> > 1) there is a #pragma implementation in this file (Something I do
> > not expect anyone on > the gcc team to answer :).
>
> I have no idea. I'm not really sure what the pragma does, either,
> though I know it's to do with template instantiation.
>
> > 2) why code is generated for the pragma even though
> > -fexternal-templates was not defined.
>
> Again, this would require me to understand exactly what it does.
>
> > I suppose what it boils down to is it's not a cpp problem, but a
> > cc1plus problem. Should this be reassigned?
>
> Probably, provided that CPP is passing through the pragma. I'll
> do that when we get just a little closer.
>
> Does this code work, both ways, with 2.95.2 or 2.95.3? If so, it's a
> regression, and I'll mark it high priority and it should get done for
> 3.0.
>
> Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-29 18:26 Sean McNeil
0 siblings, 0 replies; 11+ messages in thread
From: Sean McNeil @ 2001-05-29 18:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/2948; it has been noted by GNATS.
From: Sean McNeil <sean@mcneil.com>
To: Neil Booth <neil@daikokuya.demon.co.uk>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Tue, 29 May 2001 18:22:00 -0700
I found the following error when I compile via. the 2 stage mechanism with gcc
2.95.3:
arm-wrs-vxworks-g++ -v -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi -nostdinc
-fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2 -mno-sched-prolog
-I/usr/arm-wrs-vxworks/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions -o
/tmp/ttt.o -c /tmp/ttt.cc
PlotFile.cpp:67: `#pragma implementation' can only appear at top-level
Sean
Neil Booth wrote:
> Sean McNeil wrote:-
>
> > The pragmas are indeed getting passed through by the cpp0. So why would
> > they compile differently in the two cases? This is very strange. It is
> > related to that #pragma, though. Perhaps the cpp is told to parse things
> > differently?
>
> Are the pragmas merely
>
> #pragma implementation
>
> or are they
>
> #pragma implementation "filename"
>
> ? I think it's an issue with file names not comparing as strings
> properly because of path information, or something like that. Does
> that give you a clue?
>
> Is there a
>
> #pragma interface
>
> somewhere to match the #pragma implementation?
>
> Is this a 2.95 regression? I'm going to re-file this as a C++ bug.
>
> Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-29 18:06 Sean McNeil
0 siblings, 0 replies; 11+ messages in thread
From: Sean McNeil @ 2001-05-29 18:06 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/2948; it has been noted by GNATS.
From: Sean McNeil <sean@mcneil.com>
To: Neil Booth <neil@daikokuya.demon.co.uk>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Tue, 29 May 2001 18:01:07 -0700
I am unaware of the use of
#pragma implementation "filename"
all files have
#pragma interface
and
#pragma implementation
I just ran this through gcc 2.95.3 and now I'm confused even more. It appears
that the output of the normal gcc invokation is mostly correct and the 2 stage
invokation with the -E flag is missing some compilation information.
The largest difference and what triggered this whole investigation on my part
has been the undefined reference to "operator delete (void*)" whereas in gcc
2.95.3 it appears to be a reference to __builtin_delete. There is also some
reference to __builtin_vec_delete. Yet the -E output clearly showed me no
references to the delete operator.
The more I look at this, the more I wonder what this additional code is and why
there appears to be no template code in the cpp0 output yet there is output
generated through cc1plus for the pragma implementation. I'm affraid I know
too little about any of this.
Sean
Neil Booth wrote:
> Sean McNeil wrote:-
>
> > The pragmas are indeed getting passed through by the cpp0. So why would
> > they compile differently in the two cases? This is very strange. It is
> > related to that #pragma, though. Perhaps the cpp is told to parse things
> > differently?
>
> Are the pragmas merely
>
> #pragma implementation
>
> or are they
>
> #pragma implementation "filename"
>
> ? I think it's an issue with file names not comparing as strings
> properly because of path information, or something like that. Does
> that give you a clue?
>
> Is there a
>
> #pragma interface
>
> somewhere to match the #pragma implementation?
>
> Is this a 2.95 regression? I'm going to re-file this as a C++ bug.
>
> Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-29 10:26 Neil Booth
0 siblings, 0 replies; 11+ messages in thread
From: Neil Booth @ 2001-05-29 10:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Neil Booth <neil@daikokuya.demon.co.uk>
To: Sean McNeil <sean@mcneil.com>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Tue, 29 May 2001 18:24:21 +0100
Sean McNeil wrote:-
> The pragmas are indeed getting passed through by the cpp0. So why would
> they compile differently in the two cases? This is very strange. It is
> related to that #pragma, though. Perhaps the cpp is told to parse things
> differently?
Are the pragmas merely
#pragma implementation
or are they
#pragma implementation "filename"
? I think it's an issue with file names not comparing as strings
properly because of path information, or something like that. Does
that give you a clue?
Is there a
#pragma interface
somewhere to match the #pragma implementation?
Is this a 2.95 regression? I'm going to re-file this as a C++ bug.
Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-28 23:46 Neil Booth
0 siblings, 0 replies; 11+ messages in thread
From: Neil Booth @ 2001-05-28 23:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Neil Booth <neil@daikokuya.demon.co.uk>
To: Sean McNeil <sean@mcneil.com>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Tue, 29 May 2001 07:39:03 +0100
Sean McNeil wrote:-
> This has puzzled me for a while and I've tried several additional
> things as we've been discussing this. I noticed that the cc1plus
> program installs handlers for various pragmas and discovered a
> #pragma implementation in PlotFile.cpp. When I remove this pragma,
> compilation is as I expected.
Great, thanks for persisting.
> HOWEVER.... there is no template code that exists within the ttt.ii
> file (after preprocessor) and adding a #pragma implementation to
> ttt.cc (copy of ttt.ii) doesn't reproduce the problem either. So I
> am still at a loss as to why
Hmmm. This doesn't sound good. Are you saying that the #pragma does
not exist in the -E preprocessed output? If so, that's a bug. Most
pragmas are not handled or understood by CPP, so it must pass them
through in the preprocessed output unchanged.
> 1) there is a #pragma implementation in this file (Something I do
> not expect anyone on > the gcc team to answer :).
I have no idea. I'm not really sure what the pragma does, either,
though I know it's to do with template instantiation.
> 2) why code is generated for the pragma even though
> -fexternal-templates was not defined.
Again, this would require me to understand exactly what it does.
> I suppose what it boils down to is it's not a cpp problem, but a
> cc1plus problem. Should this be reassigned?
Probably, provided that CPP is passing through the pragma. I'll
do that when we get just a little closer.
Does this code work, both ways, with 2.95.2 or 2.95.3? If so, it's a
regression, and I'll mark it high priority and it should get done for
3.0.
Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-28 18:56 Sean McNeil
0 siblings, 0 replies; 11+ messages in thread
From: Sean McNeil @ 2001-05-28 18:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Sean McNeil <sean@mcneil.com>
To: Neil Booth <neil@daikokuya.demon.co.uk>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Mon, 28 May 2001 18:54:22 -0700
Neil,
This has puzzled me for a while and I've tried several additional things as we've been
discussing this. I noticed that the cc1plus program installs handlers for various
pragmas and discovered a #pragma implementation in PlotFile.cpp. When I remove this
pragma, compilation is as I expected.
HOWEVER.... there is no template code that exists within the ttt.ii file (after
preprocessor) and adding a #pragma implementation to ttt.cc (copy of ttt.ii) doesn't
reproduce the problem either. So I am still at a loss as to why
1) there is a #pragma implementation in this file (Something I do not expect anyone on
the gcc team to answer :).
2) why code is generated for the pragma even though -fexternal-templates was not
defined.
I suppose what it boils down to is it's not a cpp problem, but a cc1plus problem.
Should this be reassigned?
Sean
Neil Booth wrote:
> Hi Sean,
>
> The command lines look identical in their effects to me. I honestly
> have no idea what is going wrong. I'll leave your bug report open, of
> course.
>
> If you could narrow it down by removing code and / or command line
> options until the difference in behaviour vanishes, it would help a
> lot. Otherwise this kind of thing, by its very nature, is hard to
> get a grip on.
>
> Neil.
>
> Sean McNeil wrote:-
>
> > Here is the information you requested.
>
> > I've also tried running the code through with the -E option twice
> > to see if the cpp is changing the code in any way in the second
> > pass-through. The only difference was in some white space and diff
> > -cb shows no differences. I was under the impression that the cpp
> > is now a library invoked directly from the different modules
> > (C,C++,etc.). Could it be that the format/switches used between how
> > the cpp is invoked with the -E option and without it are different?
> > The -v option indicates that cpp0 is not called so it must now get
> > used by cc1plus directly.
> >
> > [root@blue libstdcxx]# arm-wrs-vxworks-g++ -S -v -mcpu=arm8 -mapcs-32
> > -mlittle-endian -ansi -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES
> > -O2 -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions
> > -o /tmp/ttt-bad.s PlotFile.cpp
> > Reading specs from
> > /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/specs
> > Configured with: ../configure --prefix=/usr/wind/host/x86-freebsd
> > --target=arm-wrs-vxworks
> > Thread model: vxworks
> > gcc version 3.1 20010525 (experimental)
> > /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/cc1plus -nostdinc -v
> > -I/usr/wind/target/h -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0
> > -D__vxworks -D__arm__ -D__svr4__ -Acpu=arm -Amachine=arm -D__CHAR_UNSIGNED__
> > -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -D__ARM_ARCH_4__ -D__APCS_32__ -D__ARMEL__
> > -D__CPU__=ARMARCH4 -D__arm__ -DVXW_EXPLICIT_TEMPLATES -DCPU=ARMARCH4 -DARMEL
> > PlotFile.cpp -D__GNUG__=3 -D_GNU_SOURCE -D__DEPRECATED -D__GXX_ABI_VERSION=100
> > -D__STRICT_ANSI__ -trigraphs -$ -quiet -dumpbase PlotFile.cpp -mcpu=arm8 -mapcs-32
> > -mlittle-endian -mno-sched-prolog -ansi -O2 -ansi -version -fno-implicit-templates
> > -fno-exceptions -o /tmp/ttt-bad.s
> > GNU CPP version 3.1 20010525 (experimental) (cpplib) (ARM/COFF)
> > GNU C++ version 3.1 20010525 (experimental) (arm-wrs-vxworks)
> > compiled by GNU C version 2.95.3 [FreeBSD] 20010315 (release).
> > #include "..." search starts here:
> > #include <...> search starts here:
> > /usr/wind/target/h
> > End of search list.
> >
> >
> > [root@blue libstdcxx]# arm-wrs-vxworks-g++ -E -v -mcpu=arm8 -mapcs-32
> > -mlittle-endian -ansi -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES
> > -O2 -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions
> > -o /tmp/ttt.ii PlotFile.cpp
> > Reading specs from
> > /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/specs
> > Configured with: ../configure --prefix=/usr/wind/host/x86-freebsd
> > --target=arm-wrs-vxworks
> > Thread model: vxworks
> > gcc version 3.1 20010525 (experimental)
> > /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/cpp0 -lang-c++
> > -D_GNU_SOURCE -D__GNUG__=3 -D__DEPRECATED -D__GXX_ABI_VERSION=100
> > -D__STRICT_ANSI__ -trigraphs -$ -nostdinc -v -I/usr/wind/target/h -D__GNUC__=3
> > -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__vxworks -D__arm__ -D__svr4__
> > -Acpu=arm -Amachine=arm -D__CHAR_UNSIGNED__ -D__OPTIMIZE__ -D__STDC_HOSTED__=1
> > -D__ARM_ARCH_4__ -D__APCS_32__ -D__ARMEL__ -D__CPU__=ARMARCH4 -D__arm__
> > -DVXW_EXPLICIT_TEMPLATES -DCPU=ARMARCH4 -DARMEL PlotFile.cpp -o /tmp/ttt.ii
> > GNU CPP version 3.1 20010525 (experimental) (cpplib) (ARM/COFF)
> > #include "..." search starts here:
> > #include <...> search starts here:
> > /usr/wind/target/h
> > End of search list.
> >
> > [root@blue libstdcxx]# arm-wrs-vxworks-g++ -S -v -mcpu=arm8 -mapcs-32
> > -mlittle-endian -ansi -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES
> > -O2 -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions
> > -o /tmp/ttt.s /tmp/ttt.ii
> > Reading specs from
> > /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/specs
> > Configured with: ../configure --prefix=/usr/wind/host/x86-freebsd
> > --target=arm-wrs-vxworks
> > Thread model: vxworks
> > gcc version 3.1 20010525 (experimental)
> > /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/cc1plus -fpreprocessed
> > /tmp/ttt.ii -quiet -dumpbase ttt.ii -mcpu=arm8 -mapcs-32 -mlittle-endian
> > -mno-sched-prolog -ansi -O2 -ansi -version -fno-implicit-templates -fno-exceptions
> > -o /tmp/ttt.s
> > GNU CPP version 3.1 20010525 (experimental) (cpplib) (ARM/COFF)
> > GNU C++ version 3.1 20010525 (experimental) (arm-wrs-vxworks)
> > compiled by GNU C version 2.95.3 [FreeBSD] 20010315 (release).
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-28 15:26 Neil Booth
0 siblings, 0 replies; 11+ messages in thread
From: Neil Booth @ 2001-05-28 15:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Neil Booth <neil@daikokuya.demon.co.uk>
To: Sean McNeil <sean@mcneil.com>
Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Mon, 28 May 2001 23:24:46 +0100
Hi Sean,
The command lines look identical in their effects to me. I honestly
have no idea what is going wrong. I'll leave your bug report open, of
course.
If you could narrow it down by removing code and / or command line
options until the difference in behaviour vanishes, it would help a
lot. Otherwise this kind of thing, by its very nature, is hard to
get a grip on.
Neil.
Sean McNeil wrote:-
> Here is the information you requested.
> I've also tried running the code through with the -E option twice
> to see if the cpp is changing the code in any way in the second
> pass-through. The only difference was in some white space and diff
> -cb shows no differences. I was under the impression that the cpp
> is now a library invoked directly from the different modules
> (C,C++,etc.). Could it be that the format/switches used between how
> the cpp is invoked with the -E option and without it are different?
> The -v option indicates that cpp0 is not called so it must now get
> used by cc1plus directly.
>
> [root@blue libstdcxx]# arm-wrs-vxworks-g++ -S -v -mcpu=arm8 -mapcs-32
> -mlittle-endian -ansi -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES
> -O2 -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions
> -o /tmp/ttt-bad.s PlotFile.cpp
> Reading specs from
> /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/specs
> Configured with: ../configure --prefix=/usr/wind/host/x86-freebsd
> --target=arm-wrs-vxworks
> Thread model: vxworks
> gcc version 3.1 20010525 (experimental)
> /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/cc1plus -nostdinc -v
> -I/usr/wind/target/h -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0
> -D__vxworks -D__arm__ -D__svr4__ -Acpu=arm -Amachine=arm -D__CHAR_UNSIGNED__
> -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -D__ARM_ARCH_4__ -D__APCS_32__ -D__ARMEL__
> -D__CPU__=ARMARCH4 -D__arm__ -DVXW_EXPLICIT_TEMPLATES -DCPU=ARMARCH4 -DARMEL
> PlotFile.cpp -D__GNUG__=3 -D_GNU_SOURCE -D__DEPRECATED -D__GXX_ABI_VERSION=100
> -D__STRICT_ANSI__ -trigraphs -$ -quiet -dumpbase PlotFile.cpp -mcpu=arm8 -mapcs-32
> -mlittle-endian -mno-sched-prolog -ansi -O2 -ansi -version -fno-implicit-templates
> -fno-exceptions -o /tmp/ttt-bad.s
> GNU CPP version 3.1 20010525 (experimental) (cpplib) (ARM/COFF)
> GNU C++ version 3.1 20010525 (experimental) (arm-wrs-vxworks)
> compiled by GNU C version 2.95.3 [FreeBSD] 20010315 (release).
> #include "..." search starts here:
> #include <...> search starts here:
> /usr/wind/target/h
> End of search list.
>
>
> [root@blue libstdcxx]# arm-wrs-vxworks-g++ -E -v -mcpu=arm8 -mapcs-32
> -mlittle-endian -ansi -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES
> -O2 -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions
> -o /tmp/ttt.ii PlotFile.cpp
> Reading specs from
> /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/specs
> Configured with: ../configure --prefix=/usr/wind/host/x86-freebsd
> --target=arm-wrs-vxworks
> Thread model: vxworks
> gcc version 3.1 20010525 (experimental)
> /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/cpp0 -lang-c++
> -D_GNU_SOURCE -D__GNUG__=3 -D__DEPRECATED -D__GXX_ABI_VERSION=100
> -D__STRICT_ANSI__ -trigraphs -$ -nostdinc -v -I/usr/wind/target/h -D__GNUC__=3
> -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__vxworks -D__arm__ -D__svr4__
> -Acpu=arm -Amachine=arm -D__CHAR_UNSIGNED__ -D__OPTIMIZE__ -D__STDC_HOSTED__=1
> -D__ARM_ARCH_4__ -D__APCS_32__ -D__ARMEL__ -D__CPU__=ARMARCH4 -D__arm__
> -DVXW_EXPLICIT_TEMPLATES -DCPU=ARMARCH4 -DARMEL PlotFile.cpp -o /tmp/ttt.ii
> GNU CPP version 3.1 20010525 (experimental) (cpplib) (ARM/COFF)
> #include "..." search starts here:
> #include <...> search starts here:
> /usr/wind/target/h
> End of search list.
>
> [root@blue libstdcxx]# arm-wrs-vxworks-g++ -S -v -mcpu=arm8 -mapcs-32
> -mlittle-endian -ansi -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES
> -O2 -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions
> -o /tmp/ttt.s /tmp/ttt.ii
> Reading specs from
> /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/specs
> Configured with: ../configure --prefix=/usr/wind/host/x86-freebsd
> --target=arm-wrs-vxworks
> Thread model: vxworks
> gcc version 3.1 20010525 (experimental)
> /usr/wind/host/x86-freebsd/lib/gcc-lib/arm-wrs-vxworks/3.1/cc1plus -fpreprocessed
> /tmp/ttt.ii -quiet -dumpbase ttt.ii -mcpu=arm8 -mapcs-32 -mlittle-endian
> -mno-sched-prolog -ansi -O2 -ansi -version -fno-implicit-templates -fno-exceptions
> -o /tmp/ttt.s
> GNU CPP version 3.1 20010525 (experimental) (cpplib) (ARM/COFF)
> GNU C++ version 3.1 20010525 (experimental) (arm-wrs-vxworks)
> compiled by GNU C version 2.95.3 [FreeBSD] 20010315 (release).
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-27 10:36 Sean McNeil
0 siblings, 0 replies; 11+ messages in thread
From: Sean McNeil @ 2001-05-27 10:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Sean McNeil <sean@mcneil.com>
To: Neil Booth <neil@daikokuya.demon.co.uk>
Cc: neil@gcc.gnu.org, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Sun, 27 May 2001 10:27:17 -0700
Same result. Please recall that the problem is with the normal compilation
and not the 2 stage command below. Normal compilation adds a lot of
additional unnecessary code to the ttt.s file. It appears that it is
proceesing more than what shows from the output of the -E stage. For
instance, I get an external reference to operator delete (void*) which is no
where to be found in the -E output.
The commands below and substituting ttt.cc with ttt.ii both produce expected
results.
Sean
Neil Booth wrote:
> Sean McNeil wrote:-
>
> > 2 stage command:
> >
> > arm-wrs-vxworks-g++ -E -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi
> > -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2
> > -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL
> > -fno-exceptions -o /tmp/ttt.cc -c PlotFile.cpp
> >
> > arm-wrs-vxworks-g++ -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi -nostdinc
> > -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2 -mno-sched-prolog
> > -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions -o
> > /tmp/ttt.o /tmp/ttt.cc
>
> Could you try naming your intermediate file ttt.ii? This is the
> convention for C++ preprocessed source. Naming it ttt.cc informs the
> compiler that it is unpreprocessed source for the 2nd invocation too,
> which could be what is causing the problems.
>
> Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-27 0:46 Neil Booth
0 siblings, 0 replies; 11+ messages in thread
From: Neil Booth @ 2001-05-27 0:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Neil Booth <neil@daikokuya.demon.co.uk>
To: Sean McNeil <sean@mcneil.com>
Cc: neil@gcc.gnu.org, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: Sun, 27 May 2001 08:39:49 +0100
Sean McNeil wrote:-
> 2 stage command:
>
> arm-wrs-vxworks-g++ -E -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi
> -nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2
> -mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL
> -fno-exceptions -o /tmp/ttt.cc -c PlotFile.cpp
>
> arm-wrs-vxworks-g++ -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi -nostdinc
> -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2 -mno-sched-prolog
> -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions -o
> /tmp/ttt.o /tmp/ttt.cc
Could you try naming your intermediate file ttt.ii? This is the
convention for C++ preprocessed source. Naming it ttt.cc informs the
compiler that it is unpreprocessed source for the 2nd invocation too,
which could be what is causing the problems.
Neil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-26 8:46 Sean McNeil
0 siblings, 0 replies; 11+ messages in thread
From: Sean McNeil @ 2001-05-26 8:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: Sean McNeil <sean@mcneil.com>
To: neil@gcc.gnu.org
Cc: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Subject: Re: preprocessor/2948
Date: 26 May 2001 08:39:43 -0700
--=-JJEN40V26LWYRI3taGKo
Content-Type: text/plain
Normal command:
arm-wrs-vxworks-g++ -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi -nostdinc
-fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2 -mno-sched-prolog
-I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions -o
/tmp/ttt-bad.o -c PlotFile.cpp
2 stage command:
arm-wrs-vxworks-g++ -E -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi
-nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2
-mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL
-fno-exceptions -o /tmp/ttt.cc -c PlotFile.cpp
arm-wrs-vxworks-g++ -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi -nostdinc
-fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2 -mno-sched-prolog
-I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL -fno-exceptions -o
/tmp/ttt.o /tmp/ttt.cc
I have also generated the assembly to examine it and find a great deal
of extra code attached at the end of the file:
normal command:
arm-wrs-vxworks-g++ -S -v -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi
-nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2
-mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL
-fno-exceptions -o /tmp/ttt-bad.s -c PlotFile.cpp
2 stage command:
arm-wrs-vxworks-g++ -E -v -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi
-nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2
-mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL
-fno-exceptions -o /tmp/ttt.cc -c PlotFile.cpp
arm-wrs-vxworks-g++ -S -v -mcpu=arm8 -mapcs-32 -mlittle-endian -ansi
-nostdinc -fno-implicit-templates -DVXW_EXPLICIT_TEMPLATES -O2
-mno-sched-prolog -I/usr/wind/target/h -DCPU=ARMARCH4 -DARMEL
-fno-exceptions -o /tmp/ttt.s /tmp/ttt.cc
I am attaching the original source, and the 2 generated assembly files
since the web interface had problems generating the report.
By the way, I found why I was having trouble with the web interface.
Turns out the attachment file was not readable by me and the mozilla web
browser hung trying to access the file.
Sean
On 26 May 2001 08:11:04 +0000, neil@gcc.gnu.org wrote:
> Synopsis: different behaviour directly to C++ vs. saving -E output
>
> State-Changed-From-To: open->feedback
> State-Changed-By: neil
> State-Changed-When: Sat May 26 01:11:04 2001
> State-Changed-Why:
> Please confirm the *3 exact* command lines you use. I suspect
> they are subtly different in their effects.
>
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2948&database=gcc
--=-JJEN40V26LWYRI3taGKo
Content-Type: text/plain
Content-Disposition: attachment; filename=ttt-bad.s
Content-ID: 990891437.13360.0.camel@desk.mcneil.com
Content-Transfer-Encoding: 7bit
@ Generated by gcc 3.1 20010525 (experimental) for ARM/VxWorks
.global ___PlotFile_o
.data
___PlotFile_o:
.byte 0
.text
.align 0
.global __ZN8PlotFile3cmdEc
__ZN8PlotFile3cmdEc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
ldr r2, [r4, #84]
mov r0, r1
ldr r3, [r2, #-12]
and r0, r0, #255
add r3, r4, r3
ldr r1, [r3, #88]
add r1, r1, #4
bl __IO_putc
mov r0, r4
ldmea fp, {r4, fp, sp, pc}
.align 0
.global __ZN8PlotFilelsEi
__ZN8PlotFilelsEi:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r6, r0
ldr r2, [r6, #84]
add r5, r6, #84
ldr r3, [r2, #-12]
mov r4, r1
add r3, r5, r3
ldr r1, [r3, #4]
and r0, r4, #255
add r1, r1, #4
bl __IO_putc
ldr r3, [r6, #84]
mov r4, r4, asr #8
ldr r2, [r3, #-12]
and r4, r4, #255
add r5, r5, r2
ldr r1, [r5, #4]
mov r0, r4
add r1, r1, #4
bl __IO_putc
mov r0, r6
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFilelsEPKc
__ZN8PlotFilelsEPKc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
add r0, r4, #84
bl __ZN7ostreamlsEPKc
mov r0, r4
ldmea fp, {r4, fp, sp, pc}
.align 0
.global __ZN8PlotFile3arcEiiiiii
__ZN8PlotFile3arcEiiiiii:
@ args = 12, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #97
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldr r1, [fp, #4]
bl __ZN8PlotFilelsEi
ldr r1, [fp, #8]
bl __ZN8PlotFilelsEi
ldr r1, [fp, #12]
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFile3boxEiiii
__ZN8PlotFile3boxEiiii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
ldr r4, [fp, #4]
mov r8, r1
mov r6, r3
mov r3, r8
mov r7, r2
mov r5, r0
str r4, [sp, #0]
bl __ZN8PlotFile4lineEiiii
mov r1, r8
mov r2, r4
mov r3, r6
mov r0, r5
str r4, [sp, #0]
bl __ZN8PlotFile4lineEiiii
mov r2, r4
mov r1, r6
mov r3, r6
mov r0, r5
str r7, [sp, #0]
bl __ZN8PlotFile4lineEiiii
mov r0, r5
mov r1, r6
mov r2, r7
mov r3, r8
str r7, [sp, #0]
bl __ZN8PlotFile4lineEiiii
ldmea fp, {r4, r5, r6, r7, r8, fp, sp, pc}
.align 0
.global __ZN8PlotFile6circleEiii
__ZN8PlotFile6circleEiii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #99
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFile4contEii
__ZN8PlotFile4contEii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #110
mov r5, r2
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, fp, sp, pc}
.align 0
.global __ZN8PlotFile3dotEiiiiPKi
__ZN8PlotFile3dotEiiiiPKi:
@ args = 8, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #100
ldr r7, [fp, #4]
mov r6, r3
mov r5, r2
ldr r8, [fp, #8]
mov sl, r0
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
mov r1, r7
bl __ZN8PlotFilelsEi
b L28
L24:
ldr r1, [r8], #4
mov r0, sl
bl __ZN8PlotFilelsEi
L28:
mov r3, r7
cmp r3, #0
sub r7, r7, #1
bgt L24
mov r0, sl
ldmea fp, {r4, r5, r6, r7, r8, sl, fp, sp, pc}
.align 0
.global __ZN8PlotFile5eraseEv
__ZN8PlotFile5eraseEv:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
mov r1, #101
bl __ZN8PlotFile3cmdEc
ldmea fp, {fp, sp, pc}
.section .rdata
.align 0
LC0:
.ascii "\n\000"
.text
.align 0
.global __ZN8PlotFile5labelEPKc
__ZN8PlotFile5labelEPKc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #116
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEPKc
ldr r1, L33
bl __ZN8PlotFilelsEPKc
ldmea fp, {r4, fp, sp, pc}
L34:
.align 0
L33:
.word LC0
.align 0
.global __ZN8PlotFile4lineEiiii
__ZN8PlotFile4lineEiiii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #108
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldr r1, [fp, #4]
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFile7linemodEPKc
__ZN8PlotFile7linemodEPKc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #102
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEPKc
ldr r1, L39
bl __ZN8PlotFilelsEPKc
ldmea fp, {r4, fp, sp, pc}
L40:
.align 0
L39:
.word LC0
.align 0
.global __ZN8PlotFile4moveEii
__ZN8PlotFile4moveEii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #109
mov r5, r2
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, fp, sp, pc}
.align 0
.global __ZN8PlotFile5pointEii
__ZN8PlotFile5pointEii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #112
mov r5, r2
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, fp, sp, pc}
.align 0
.global __ZN8PlotFile5spaceEiiii
__ZN8PlotFile5spaceEiiii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #115
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldr r1, [fp, #4]
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.global __ZTT8PlotFile
.section .rdata
.align 0
__ZTT8PlotFile:
.word __ZTV8PlotFile+12
.word __ZTC8PlotFile0_8ofstream+12
.word __ZTC8PlotFile0_11fstreambase+12
.word __ZTC8PlotFile0_11fstreambase+32
.word __ZTC8PlotFile84_7ostream+12
.word __ZTC8PlotFile84_7ostream+32
.word __ZTC8PlotFile0_8ofstream+52
.word __ZTC8PlotFile0_8ofstream+32
.word __ZTV8PlotFile+52
.word __ZTV8PlotFile+32
.space 4
.text
.align 0
__ZTv0_n12_N7ostreamD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov lr, r0
ldr r3, [lr, #0]
ldr r1, L63
ldr r4, [r3, #-12]
ldr r5, [r1, #-12]
add ip, lr, r4
add r0, ip, #4
ldr r3, [r0, #28]
add r2, r1, #20
cmp r3, #0
ldr r3, L63+4
str r1, [lr, r4]
str r2, [ip, r5]
str r3, [ip, #4]
ldmeqea fp, {r4, r5, fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {r4, r5, fp, sp, pc}
L64:
.align 0
L63:
.word __ZTV7ostream+12
.word __ZTV3ios+8
.align 0
__ZTv0_n12_N7ostreamD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov ip, r0
ldr r3, [ip, #0]
ldr r1, L81
ldr lr, [r3, #-12]
ldr r4, [r1, #-12]
add r5, ip, lr
add r0, r5, #4
ldr r3, [r0, #28]
add r2, r1, #20
cmp r3, #0
ldr r3, L81+4
str r1, [ip, lr]
str r2, [r5, r4]
str r3, [r5, #4]
beq L75
bl __ZN3ios13delete_arraysEv
L75:
mov r0, r5
bl __ZdlPv
ldmea fp, {r4, r5, fp, sp, pc}
L82:
.align 0
L81:
.word __ZTV7ostream+12
.word __ZTV3ios+8
.global __ZTC8PlotFile84_7ostream
.section .rdata
.align 0
__ZTC8PlotFile84_7ostream:
.word 4
.word 0
.word __ZTI7ostream
.word __ZN7ostreamD1Ev
.word __ZN7ostreamD0Ev
.word -4
.word -4
.word __ZTI7ostream
.word __ZTv0_n12_N7ostreamD1Ev
.word __ZTv0_n12_N7ostreamD0Ev
.text
.align 0
__ZTv0_n12_N11fstreambaseD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
ldr r2, [r0, #0]
ldr r3, L99
ldr ip, [r2, #-12]
ldr lr, [r3, #-12]
add r4, r0, ip
add r2, r3, #20
add r1, r4, #4
str r3, [r0, ip]
str r2, [r4, lr]
mov r0, r1
bl __ZN7filebufD1Ev
add r0, r4, #84
ldr r2, [r0, #28]
ldr r3, L99+4
cmp r2, #0
str r3, [r4, #84]
ldmeqea fp, {r4, fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {r4, fp, sp, pc}
L100:
.align 0
L99:
.word __ZTV11fstreambase+12
.word __ZTV3ios+8
.align 0
__ZTv0_n12_N11fstreambaseD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
ldr r2, [r0, #0]
ldr r3, L117
ldr ip, [r2, #-12]
ldr lr, [r3, #-12]
add r4, r0, ip
add r2, r3, #20
add r1, r4, #4
str r3, [r0, ip]
str r2, [r4, lr]
mov r0, r1
bl __ZN7filebufD1Ev
add r0, r4, #84
ldr r2, [r0, #28]
ldr r3, L117+4
cmp r2, #0
str r3, [r4, #84]
beq L111
bl __ZN3ios13delete_arraysEv
L111:
mov r0, r4
bl __ZdlPv
ldmea fp, {r4, fp, sp, pc}
L118:
.align 0
L117:
.word __ZTV11fstreambase+12
.word __ZTV3ios+8
.global __ZTC8PlotFile0_11fstreambase
.section .rdata
.align 0
__ZTC8PlotFile0_11fstreambase:
.word 88
.word 0
.word __ZTI11fstreambase
.word __ZN11fstreambaseD1Ev
.word __ZN11fstreambaseD0Ev
.word -88
.word -88
.word __ZTI11fstreambase
.word __ZTv0_n12_N11fstreambaseD1Ev
.word __ZTv0_n12_N11fstreambaseD0Ev
.text
.align 0
__ZTv0_n12_N8ofstreamD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
mov r5, r0
ldr r2, [r5, #0]
ldr r3, L169
ldr r6, [r2, #-12]
ldr r1, [r3, #-12]
add r4, r5, r6
ldr lr, L169+4
add r0, r3, #20
add r2, r3, #40
str r3, [r5, r6]
str r2, [r4, r1]
str r0, [r4, #84]
ldr r3, [lr, #0]
add r7, r4, #84
str r3, [r4, #84]
ldr r2, [lr, #4]
ldr ip, [r3, #-12]
add r0, r4, #4
str r2, [r7, ip]
ldr r1, [lr, #-8]
str r1, [r5, r6]
ldr r2, [r1, #-12]
ldr r3, [lr, #-4]
str r3, [r4, r2]
bl __ZN7filebufD1Ev
add r0, r4, #88
ldr r2, [r0, #28]
ldr r3, L169+8
cmp r2, #0
str r3, [r4, #88]
ldmeqea fp, {r4, r5, r6, r7, fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {r4, r5, r6, r7, fp, sp, pc}
L170:
.align 0
L169:
.word __ZTV8ofstream+12
.word __ZTT8ofstream+12
.word __ZTV3ios+8
.align 0
__ZTv0_n12_N8ofstreamD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
ldr r2, [r4, #0]
ldr r3, L221
ldr r5, [r2, #-12]
ldr r1, [r3, #-12]
add r7, r4, r5
ldr lr, L221+4
add r0, r3, #20
add r2, r3, #40
str r3, [r4, r5]
str r2, [r7, r1]
str r0, [r7, #84]
ldr r3, [lr, #0]
add r6, r7, #84
str r3, [r7, #84]
ldr r2, [lr, #4]
ldr ip, [r3, #-12]
add r0, r7, #4
str r2, [r6, ip]
ldr r1, [lr, #-8]
str r1, [r4, r5]
ldr r2, [r1, #-12]
ldr r3, [lr, #-4]
str r3, [r7, r2]
bl __ZN7filebufD1Ev
add r0, r7, #88
ldr r2, [r0, #28]
ldr r3, L221+8
cmp r2, #0
str r3, [r7, #88]
beq L215
bl __ZN3ios13delete_arraysEv
L215:
mov r0, r7
bl __ZdlPv
ldmea fp, {r4, r5, r6, r7, fp, sp, pc}
L222:
.align 0
L221:
.word __ZTV8ofstream+12
.word __ZTT8ofstream+12
.word __ZTV3ios+8
.global __ZTC8PlotFile0_8ofstream
.section .rdata
.align 0
__ZTC8PlotFile0_8ofstream:
.word 88
.word 0
.word __ZTI8ofstream
.word __ZN8ofstreamD1Ev
.word __ZN8ofstreamD0Ev
.word 4
.word -84
.word __ZTI8ofstream
.word __ZThn84_N8ofstreamD1Ev
.word __ZThn84_N8ofstreamD0Ev
.word -88
.word -88
.word __ZTI8ofstream
.word __ZTv0_n12_N8ofstreamD1Ev
.word __ZTv0_n12_N8ofstreamD0Ev
.text
.align 0
__ZTv0_n12_N8PlotFileD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, current_function_anonymous_args = 0
str lr, [sp, #-4]!
ldr r3, [r0, #0]
ldr r2, [r3, #-12]
add r0, r0, r2
@ Sibcall epilogue
ldr lr, [sp], #4
b __ZN8PlotFileD1Ev
.align 0
__ZTv0_n12_N8PlotFileD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, current_function_anonymous_args = 0
str lr, [sp, #-4]!
ldr r3, [r0, #0]
ldr r2, [r3, #-12]
add r0, r0, r2
@ Sibcall epilogue
ldr lr, [sp], #4
b __ZN8PlotFileD0Ev
.global __ZTV8PlotFile
.section .rdata
.align 0
__ZTV8PlotFile:
.word 88
.word 0
.word __ZTI8PlotFile
.word __ZN8PlotFileD1Ev
.word __ZN8PlotFileD0Ev
.word 4
.word -84
.word __ZTI8PlotFile
.word __ZThn84_N8PlotFileD1Ev
.word __ZThn84_N8PlotFileD0Ev
.word -88
.word -88
.word __ZTI8PlotFile
.word __ZTv0_n12_N8PlotFileD1Ev
.word __ZTv0_n12_N8PlotFileD0Ev
.space 4
.text
.align 0
__ZThn84_N8PlotFileD1Ev:
sub r0, r0, #84
b __ZN8PlotFileD1Ev
.align 0
__ZN8PlotFileD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L293
mov r4, r0
ldr r0, [r3, #-12]
ldr r1, L293+4
add ip, r3, #20
add r2, r3, #40
str r3, [r4, #0]
str r2, [r4, r0]
str ip, [r4, #84]
ldr r3, [r1, #0]
add lr, r4, #84
str r3, [r4, #0]
ldr r2, [r1, #20]
ldr ip, [r3, #-12]
add r0, r4, #4
str r2, [r4, ip]
ldr r3, [r1, #24]
str r3, [r4, #84]
ldr r2, [r1, #12]
str r2, [r4, #84]
ldr r3, [r1, #16]
ldr ip, [r2, #-12]
str r3, [lr, ip]
ldr r2, [r1, #4]
str r2, [r4, #0]
ldr ip, [r2, #-12]
ldr r3, [r1, #8]
str r3, [r4, ip]
bl __ZN7filebufD1Ev
add r0, r4, #88
ldr r2, [r0, #28]
ldr r3, L293+8
cmp r2, #0
str r3, [r4, #88]
ldmeqea fp, {r4, fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {r4, fp, sp, pc}
L294:
.align 0
L293:
.word __ZTV8PlotFile+12
.word __ZTT8PlotFile+4
.word __ZTV3ios+8
.align 0
__ZThn84_N8PlotFileD0Ev:
sub r0, r0, #84
b __ZN8PlotFileD0Ev
.align 0
__ZN8PlotFileD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L361
mov r4, r0
ldr r0, [r3, #-12]
ldr r1, L361+4
add ip, r3, #20
add r2, r3, #40
str r3, [r4, #0]
str r2, [r4, r0]
str ip, [r4, #84]
ldr r3, [r1, #0]
add lr, r4, #84
str r3, [r4, #0]
ldr r2, [r1, #20]
ldr ip, [r3, #-12]
add r0, r4, #4
str r2, [r4, ip]
ldr r3, [r1, #24]
str r3, [r4, #84]
ldr r2, [r1, #12]
str r2, [r4, #84]
ldr r3, [r1, #16]
ldr ip, [r2, #-12]
str r3, [lr, ip]
ldr r2, [r1, #4]
str r2, [r4, #0]
ldr ip, [r2, #-12]
ldr r3, [r1, #8]
str r3, [r4, ip]
bl __ZN7filebufD1Ev
add r0, r4, #88
ldr r2, [r0, #28]
ldr r3, L361+8
cmp r2, #0
str r3, [r4, #88]
beq L357
bl __ZN3ios13delete_arraysEv
L357:
mov r0, r4
@ Sibcall epilogue
ldmea fp, {r4, fp, sp, lr}
b __ZdlPv
L362:
.align 0
L361:
.word __ZTV8PlotFile+12
.word __ZTT8PlotFile+4
.word __ZTV3ios+8
.align 0
__ZN7ostreamD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
ldr r3, L377
add r0, r4, #4
ldr r1, [r0, #28]
ldr ip, [r3, #-12]
add r2, r3, #20
str r3, [r4, #0]
ldr r3, L377+4
cmp r1, #0
str r2, [r4, ip]
str r3, [r4, #4]
beq L373
bl __ZN3ios13delete_arraysEv
L373:
mov r0, r4
@ Sibcall epilogue
ldmea fp, {r4, fp, sp, lr}
b __ZdlPv
L378:
.align 0
L377:
.word __ZTV7ostream+12
.word __ZTV3ios+8
.align 0
__ZN7ostreamD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
mov r1, r0
ldr r3, L393
add r0, r1, #4
ldr ip, [r0, #28]
ldr lr, [r3, #-12]
add r2, r3, #20
str r3, [r1, #0]
ldr r3, L393+4
cmp ip, #0
str r2, [r1, lr]
str r3, [r1, #4]
ldmeqea fp, {fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {fp, sp, pc}
L394:
.align 0
L393:
.word __ZTV7ostream+12
.word __ZTV3ios+8
.align 0
__ZN11fstreambaseD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L409
mov r4, r0
ldr r1, [r3, #-12]
add r2, r3, #20
str r3, [r4, #0]
add r0, r4, #4
str r2, [r4, r1]
bl __ZN7filebufD1Ev
add r0, r4, #84
ldr r2, [r0, #28]
ldr r3, L409+4
cmp r2, #0
str r3, [r4, #84]
beq L405
bl __ZN3ios13delete_arraysEv
L405:
mov r0, r4
@ Sibcall epilogue
ldmea fp, {r4, fp, sp, lr}
b __ZdlPv
L410:
.align 0
L409:
.word __ZTV11fstreambase+12
.word __ZTV3ios+8
.align 0
__ZN11fstreambaseD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L425
mov r4, r0
ldr r1, [r3, #-12]
add r2, r3, #20
str r3, [r4, #0]
add r0, r4, #4
str r2, [r4, r1]
bl __ZN7filebufD1Ev
add r0, r4, #84
ldr r2, [r0, #28]
ldr r3, L425+4
cmp r2, #0
str r3, [r4, #84]
ldmeqea fp, {r4, fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {r4, fp, sp, pc}
L426:
.align 0
L425:
.word __ZTV11fstreambase+12
.word __ZTV3ios+8
.align 0
__ZThn84_N8ofstreamD0Ev:
sub r0, r0, #84
b __ZN8ofstreamD0Ev
.align 0
__ZN8ofstreamD0Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L475
mov r5, r0
ldr r1, [r3, #-12]
ldr lr, L475+4
add r0, r3, #20
add r2, r3, #40
str r3, [r5, #0]
str r2, [r5, r1]
str r0, [r5, #84]
ldr r3, [lr, #0]
add r4, r5, #84
str r3, [r5, #84]
ldr r2, [lr, #4]
ldr ip, [r3, #-12]
add r0, r5, #4
str r2, [r4, ip]
ldr r1, [lr, #-8]
str r1, [r5, #0]
ldr r2, [r1, #-12]
ldr r3, [lr, #-4]
str r3, [r5, r2]
bl __ZN7filebufD1Ev
add r0, r5, #88
ldr r2, [r0, #28]
ldr r3, L475+8
cmp r2, #0
str r3, [r5, #88]
beq L471
bl __ZN3ios13delete_arraysEv
L471:
mov r0, r5
@ Sibcall epilogue
ldmea fp, {r4, r5, fp, sp, lr}
b __ZdlPv
L476:
.align 0
L475:
.word __ZTV8ofstream+12
.word __ZTT8ofstream+12
.word __ZTV3ios+8
.align 0
__ZThn84_N8ofstreamD1Ev:
sub r0, r0, #84
b __ZN8ofstreamD1Ev
.align 0
__ZN8ofstreamD1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L525
mov r4, r0
ldr r1, [r3, #-12]
ldr lr, L525+4
add r0, r3, #20
add r2, r3, #40
str r3, [r4, #0]
str r2, [r4, r1]
str r0, [r4, #84]
ldr r3, [lr, #0]
add r5, r4, #84
str r3, [r4, #84]
ldr r2, [lr, #4]
ldr ip, [r3, #-12]
add r0, r4, #4
str r2, [r5, ip]
ldr r1, [lr, #-8]
str r1, [r4, #0]
ldr r2, [r1, #-12]
ldr r3, [lr, #-4]
str r3, [r4, r2]
bl __ZN7filebufD1Ev
add r0, r4, #88
ldr r2, [r0, #28]
ldr r3, L525+8
cmp r2, #0
str r3, [r4, #88]
ldmeqea fp, {r4, r5, fp, sp, pc}
bl __ZN3ios13delete_arraysEv
ldmea fp, {r4, r5, fp, sp, pc}
L526:
.align 0
L525:
.word __ZTV8ofstream+12
.word __ZTT8ofstream+12
.word __ZTV3ios+8
.align 0
.global __ZN8PlotFileC2Ev
__ZN8PlotFileC2Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r5, r1
add r6, r5, #4
add r1, r6, #4
mov r4, r0
bl __ZN11fstreambaseC2Ev
ldr r2, [r5, #16]
add r0, r4, #84
str r2, [r4, #84]
ldr r3, [r5, #20]
ldr r1, [r2, #-12]
str r3, [r0, r1]
ldr r2, [r5, #4]
str r2, [r4, #0]
ldr r3, [r6, #20]
ldr r1, [r2, #-12]
str r3, [r4, r1]
ldr r2, [r6, #24]
str r2, [r4, #84]
ldr r1, [r5, #0]
str r1, [r4, #0]
ldr r3, [r5, #32]
ldr r0, [r1, #-12]
str r3, [r4, r0]
ldr r2, [r5, #36]
str r2, [r4, #84]
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFileC1Ev
__ZN8PlotFileC1Ev:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L611
mov r4, r0
add ip, r4, #92
ldr r5, L611+4
str r3, [r4, #88]
mov r2, #17
mov r3, #4
mov lr, #0
strb r3, [ip, #18]
str r2, [ip, #12]
mov r3, #32 @ movhi
sub r2, r2, #11
strb lr, [ip, #19]
str lr, [ip, #24]
str r2, [ip, #20]
str lr, [ip, #4]
str lr, [ip, #8]
strh r3, [ip, #16] @ movhi
add r1, r5, #4
str lr, [r4, #92]
bl __ZN11fstreambaseC2Ev
ldr r3, [r5, #12]
add ip, r4, #84
str r3, [r4, #84]
ldr r2, [r5, #16]
ldr r0, [r3, #-12]
ldr r1, L611+8
str r2, [ip, r0]
ldr r3, [r5, #0]
ldr lr, [r1, #-12]
str r3, [r4, #0]
ldr r2, [r5, #20]
ldr r0, [r3, #-12]
add ip, r1, #20
str r2, [r4, r0]
ldr r3, [r5, #24]
add r2, r1, #40
str r3, [r4, #84]
str r1, [r4, #0]
str r2, [r4, lr]
str ip, [r4, #84]
ldmea fp, {r4, r5, fp, sp, pc}
L612:
.align 0
L611:
.word __ZTV3ios+8
.word __ZTT8PlotFile+4
.word __ZTV8PlotFile+12
.align 0
.global __ZN8PlotFileC2Ei
__ZN8PlotFileC2Ei:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r5, r1
add r6, r5, #4
add r1, r6, #4
mov r4, r0
bl __ZN11fstreambaseC2Ei
ldr r2, [r5, #16]
add r0, r4, #84
str r2, [r4, #84]
ldr r3, [r5, #20]
ldr r1, [r2, #-12]
str r3, [r0, r1]
ldr r2, [r5, #4]
str r2, [r4, #0]
ldr r3, [r6, #20]
ldr r1, [r2, #-12]
str r3, [r4, r1]
ldr r2, [r6, #24]
str r2, [r4, #84]
ldr r1, [r5, #0]
str r1, [r4, #0]
ldr r3, [r5, #32]
ldr r0, [r1, #-12]
str r3, [r4, r0]
ldr r2, [r5, #36]
str r2, [r4, #84]
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFileC1Ei
__ZN8PlotFileC1Ei:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
ldr r3, L697
mov r4, r0
add lr, r4, #92
ldr r6, L697+4
str r3, [r4, #88]
mov ip, #17
mov r3, #4
mov r5, #0
strb r3, [lr, #18]
str ip, [lr, #12]
mov r3, #32 @ movhi
sub ip, ip, #11
mov r2, r1
str ip, [lr, #20]
strb r5, [lr, #19]
strh r3, [lr, #16] @ movhi
add r1, r6, #4
str r5, [lr, #24]
str r5, [lr, #4]
str r5, [lr, #8]
str r5, [r4, #92]
bl __ZN11fstreambaseC2Ei
ldr r3, [r6, #12]
add ip, r4, #84
str r3, [r4, #84]
ldr r2, [r6, #16]
ldr r0, [r3, #-12]
ldr r1, L697+8
str r2, [ip, r0]
ldr r3, [r6, #0]
ldr lr, [r1, #-12]
str r3, [r4, #0]
ldr r2, [r6, #20]
ldr r0, [r3, #-12]
add ip, r1, #20
str r2, [r4, r0]
ldr r3, [r6, #24]
add r2, r1, #40
str r3, [r4, #84]
str r1, [r4, #0]
str r2, [r4, lr]
str ip, [r4, #84]
ldmea fp, {r4, r5, r6, fp, sp, pc}
L698:
.align 0
L697:
.word __ZTV3ios+8
.word __ZTT8PlotFile+4
.word __ZTV8PlotFile+12
.align 0
.global __ZN8PlotFileC2EPKcii
__ZN8PlotFileC2EPKcii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
mov r5, r1
add r6, r5, #4
ldr ip, [fp, #4]
add r1, r6, #4
mov r4, r0
str ip, [sp, #0]
bl __ZN11fstreambaseC2EPKcii
ldr r2, [r5, #16]
add r0, r4, #84
str r2, [r4, #84]
ldr r3, [r5, #20]
ldr r1, [r2, #-12]
str r3, [r0, r1]
ldr r2, [r5, #4]
str r2, [r4, #0]
ldr r3, [r6, #20]
ldr r1, [r2, #-12]
str r3, [r4, r1]
ldr r2, [r6, #24]
str r2, [r4, #84]
ldr r1, [r5, #0]
str r1, [r4, #0]
ldr r3, [r5, #32]
ldr r0, [r1, #-12]
str r3, [r4, r0]
ldr r2, [r5, #36]
str r2, [r4, #84]
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFileC1EPKcii
__ZN8PlotFileC1EPKcii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
mov r4, r0
mov sl, r2
ldr r2, L781
add lr, r4, #92
ldr r6, L781+4
mov ip, #17
mov r5, #0
str r2, [r4, #88]
str ip, [lr, #12]
mov r8, r1
sub ip, ip, #11
mov r2, #4
mov r7, r3
mov r3, #32 @ movhi
strb r2, [lr, #18]
str ip, [lr, #20]
strb r5, [lr, #19]
strh r3, [lr, #16] @ movhi
str r5, [lr, #24]
str r5, [lr, #4]
str r5, [lr, #8]
add r1, r6, #4
str r5, [r4, #92]
mov r2, r8
mov r3, sl
str r7, [sp, #0]
bl __ZN11fstreambaseC2EPKcii
ldr r3, [r6, #12]
add ip, r4, #84
str r3, [r4, #84]
ldr r2, [r6, #16]
ldr r0, [r3, #-12]
ldr r1, L781+8
str r2, [ip, r0]
ldr r3, [r6, #0]
ldr lr, [r1, #-12]
str r3, [r4, #0]
ldr r2, [r6, #20]
ldr r0, [r3, #-12]
add ip, r1, #20
str r2, [r4, r0]
ldr r3, [r6, #24]
add r2, r1, #40
str r3, [r4, #84]
str r1, [r4, #0]
str r2, [r4, lr]
str ip, [r4, #84]
ldmea fp, {r4, r5, r6, r7, r8, sl, fp, sp, pc}
L782:
.align 0
L781:
.word __ZTV3ios+8
.word __ZTT8PlotFile+4
.word __ZTV8PlotFile+12
.section .rdata
.align 0
__ZTI8PlotFile:
.word __ZTVN10__cxxabiv120__si_class_type_infoE+8
.word __ZTS8PlotFile
.word __ZTI8ofstream
.align 0
__ZTI8ofstream:
.word __ZTVN10__cxxabiv121__vmi_class_type_infoE+8
.word __ZTS8ofstream
.word 11
.word 2
.word __ZTI11fstreambase
.word 2
.word __ZTI7ostream
.word 21506
.space 8
.align 0
__ZTI11fstreambase:
.word __ZTVN10__cxxabiv121__vmi_class_type_infoE+8
.word __ZTS11fstreambase
.word 8
.word 1
.word __ZTI3ios
.word -3069
.space 8
.align 0
__ZTI7ostream:
.word __ZTVN10__cxxabiv121__vmi_class_type_infoE+8
.word __ZTS7ostream
.word 8
.word 1
.word __ZTI3ios
.word -3069
.space 8
.align 0
__ZTS8PlotFile:
.ascii "8PlotFile\000"
.align 0
__ZTS8ofstream:
.ascii "8ofstream\000"
.align 0
__ZTS11fstreambase:
.ascii "11fstreambase\000"
.align 0
__ZTS7ostream:
.ascii "7ostream\000"
.align 0
__ZTI3ios:
.word __ZTVN10__cxxabiv121__vmi_class_type_infoE+8
.word __ZTS3ios
.word 8
.word 1
.word __ZTI11_ios_fields
.word 1026
.space 8
.align 0
__ZTS3ios:
.ascii "3ios\000"
.align 0
__ZTI11_ios_fields:
.word __ZTVN10__cxxabiv117__class_type_infoE+8
.word __ZTS11_ios_fields
.align 0
__ZTS11_ios_fields:
.ascii "11_ios_fields\000"
--=-JJEN40V26LWYRI3taGKo
Content-Type: text/plain
Content-Disposition: attachment; filename=ttt.s
Content-ID: 990891444.13360.1.camel@desk.mcneil.com
Content-Transfer-Encoding: 7bit
@ Generated by gcc 3.1 20010525 (experimental) for ARM/VxWorks
.global ___PlotFile_o
.data
___PlotFile_o:
.byte 0
.text
.align 0
.global __ZN8PlotFile3cmdEc
__ZN8PlotFile3cmdEc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
ldr r2, [r4, #84]
mov r0, r1
ldr r3, [r2, #-12]
and r0, r0, #255
add r3, r4, r3
ldr r1, [r3, #88]
add r1, r1, #4
bl __IO_putc
mov r0, r4
ldmea fp, {r4, fp, sp, pc}
.align 0
.global __ZN8PlotFilelsEi
__ZN8PlotFilelsEi:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r6, r0
ldr r2, [r6, #84]
add r5, r6, #84
ldr r3, [r2, #-12]
mov r4, r1
add r3, r5, r3
ldr r1, [r3, #4]
and r0, r4, #255
add r1, r1, #4
bl __IO_putc
ldr r3, [r6, #84]
mov r4, r4, asr #8
ldr r2, [r3, #-12]
and r4, r4, #255
add r5, r5, r2
ldr r1, [r5, #4]
mov r0, r4
add r1, r1, #4
bl __IO_putc
mov r0, r6
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFilelsEPKc
__ZN8PlotFilelsEPKc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
add r0, r4, #84
bl __ZN7ostreamlsEPKc
mov r0, r4
ldmea fp, {r4, fp, sp, pc}
.align 0
.global __ZN8PlotFile3arcEiiiiii
__ZN8PlotFile3arcEiiiiii:
@ args = 12, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #97
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldr r1, [fp, #4]
bl __ZN8PlotFilelsEi
ldr r1, [fp, #8]
bl __ZN8PlotFilelsEi
ldr r1, [fp, #12]
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFile3boxEiiii
__ZN8PlotFile3boxEiiii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
ldr r4, [fp, #4]
mov r8, r1
mov r6, r3
mov r3, r8
mov r7, r2
mov r5, r0
str r4, [sp, #0]
bl __ZN8PlotFile4lineEiiii
mov r1, r8
mov r2, r4
mov r3, r6
mov r0, r5
str r4, [sp, #0]
bl __ZN8PlotFile4lineEiiii
mov r2, r4
mov r1, r6
mov r3, r6
mov r0, r5
str r7, [sp, #0]
bl __ZN8PlotFile4lineEiiii
mov r0, r5
mov r1, r6
mov r2, r7
mov r3, r8
str r7, [sp, #0]
bl __ZN8PlotFile4lineEiiii
ldmea fp, {r4, r5, r6, r7, r8, fp, sp, pc}
.align 0
.global __ZN8PlotFile6circleEiii
__ZN8PlotFile6circleEiii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #99
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFile4contEii
__ZN8PlotFile4contEii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #110
mov r5, r2
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, fp, sp, pc}
.align 0
.global __ZN8PlotFile3dotEiiiiPKi
__ZN8PlotFile3dotEiiiiPKi:
@ args = 8, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #100
ldr r7, [fp, #4]
mov r6, r3
mov r5, r2
ldr r8, [fp, #8]
mov sl, r0
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
mov r1, r7
bl __ZN8PlotFilelsEi
b L28
L24:
ldr r1, [r8], #4
mov r0, sl
bl __ZN8PlotFilelsEi
L28:
mov r3, r7
cmp r3, #0
sub r7, r7, #1
bgt L24
mov r0, sl
ldmea fp, {r4, r5, r6, r7, r8, sl, fp, sp, pc}
.align 0
.global __ZN8PlotFile5eraseEv
__ZN8PlotFile5eraseEv:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
mov r1, #101
bl __ZN8PlotFile3cmdEc
ldmea fp, {fp, sp, pc}
.section .rdata
.align 0
LC0:
.ascii "\n\000"
.text
.align 0
.global __ZN8PlotFile5labelEPKc
__ZN8PlotFile5labelEPKc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #116
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEPKc
ldr r1, L33
bl __ZN8PlotFilelsEPKc
ldmea fp, {r4, fp, sp, pc}
L34:
.align 0
L33:
.word LC0
.align 0
.global __ZN8PlotFile4lineEiiii
__ZN8PlotFile4lineEiiii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #108
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldr r1, [fp, #4]
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
.align 0
.global __ZN8PlotFile7linemodEPKc
__ZN8PlotFile7linemodEPKc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #102
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEPKc
ldr r1, L39
bl __ZN8PlotFilelsEPKc
ldmea fp, {r4, fp, sp, pc}
L40:
.align 0
L39:
.word LC0
.align 0
.global __ZN8PlotFile4moveEii
__ZN8PlotFile4moveEii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #109
mov r5, r2
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, fp, sp, pc}
.align 0
.global __ZN8PlotFile5pointEii
__ZN8PlotFile5pointEii:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #112
mov r5, r2
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, fp, sp, pc}
.align 0
.global __ZN8PlotFile5spaceEiiii
__ZN8PlotFile5spaceEiiii:
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 1, current_function_anonymous_args = 0
mov ip, sp
stmfd sp!, {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r1
mov r1, #115
mov r5, r2
mov r6, r3
bl __ZN8PlotFile3cmdEc
mov r1, r4
bl __ZN8PlotFilelsEi
mov r1, r5
bl __ZN8PlotFilelsEi
mov r1, r6
bl __ZN8PlotFilelsEi
ldr r1, [fp, #4]
bl __ZN8PlotFilelsEi
ldmea fp, {r4, r5, r6, fp, sp, pc}
--=-JJEN40V26LWYRI3taGKo
Content-Type: text/x-c
Content-Disposition: attachment; filename=PlotFile.cpp
Content-ID: 990891498.13360.2.camel@desk.mcneil.com
Content-Transfer-Encoding: 7bit
/* This has been copied from the gnu source tree */
/* Make all changes there, not here! */
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _N_
char __PlotFile_o = 0;
#else
char _N_ = 0;
#endif
#ifdef __cplusplus
}
#endif
#include "vxWorks.h"
/*
Copyright (C) 1993 Free Software Foundation
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, if you link this library with files
compiled with a GNU compiler to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
// This may look like C code, but it is really -*- C++ -*-
/*
Copyright (C) 1988, 1992, 1993 Free Software Foundation
written by Doug Lea (dl@rocky.oswego.edu)
converted to use iostream library by Per Bothner (bothner@cygnus.com)
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
#ifdef __GNUG__
#pragma implementation
#endif
#include <PlotFile.h>
/*
PlotFile implementation module
*/
PlotFile& PlotFile:: cmd(char c)
{
ofstream::put(c);
return *this;
}
PlotFile& PlotFile:: operator<<(const int x)
{
#if defined(convex)
ofstream::put((char)(x>>8));
ofstream::put((char)(x&0377));
#else
ofstream::put((char)(x&0377));
ofstream::put((char)(x>>8));
#endif
return *this;
}
PlotFile& PlotFile:: operator<<(const char *s)
{
*(ofstream*)this << s;
return *this;
}
PlotFile& PlotFile:: arc(const int xi, const int yi,
const int x0, const int y0,
const int x1, const int y1)
{
return cmd('a') << xi << yi << x0 << y0 << x1 << y1;
}
PlotFile& PlotFile:: box(const int x0, const int y0,
const int x1, const int y1)
{
line(x0, y0, x0, y1);
line(x0, y1, x1, y1);
line(x1, y1, x1, y0);
return line(x1, y0, x0, y0);
}
PlotFile& PlotFile:: circle(const int x, const int y, const int r)
{
return cmd('c') << x << y << r;
}
PlotFile& PlotFile:: cont(const int xi, const int yi)
{
return cmd('n') << xi << yi;
}
PlotFile& PlotFile:: dot(const int xi, const int yi, const int dx,
int n, const int* pat)
{
cmd('d') << xi << yi << dx << n;
while (n-- > 0) *this << *pat++;
return *this;
}
PlotFile& PlotFile:: erase()
{
return cmd('e');
}
PlotFile& PlotFile:: label(const char* s)
{
return cmd('t') << s << "\n";
}
PlotFile& PlotFile:: line(const int x0, const int y0,
const int x1, const int y1)
{
return cmd('l') << x0 << y0 << x1 << y1;
}
PlotFile& PlotFile:: linemod(const char* s)
{
return cmd('f') << s << "\n";
}
PlotFile& PlotFile:: move(const int xi, const int yi)
{
return cmd('m') << xi << yi;
}
PlotFile& PlotFile:: point(const int xi, const int yi)
{
return cmd('p') << xi << yi;
}
PlotFile& PlotFile:: space(const int x0, const int y0,
const int x1, const int y1)
{
return cmd('s') << x0 << y0 << x1 << y1;
}
--=-JJEN40V26LWYRI3taGKo--
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: preprocessor/2948
@ 2001-05-26 1:16 neil
0 siblings, 0 replies; 11+ messages in thread
From: neil @ 2001-05-26 1:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR preprocessor/2948; it has been noted by GNATS.
From: neil@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org, sean@mcneil.com
Cc:
Subject: Re: preprocessor/2948
Date: 26 May 2001 08:11:04 -0000
Synopsis: different behaviour directly to C++ vs. saving -E output
State-Changed-From-To: open->feedback
State-Changed-By: neil
State-Changed-When: Sat May 26 01:11:04 2001
State-Changed-Why:
Please confirm the *3 exact* command lines you use. I suspect
they are subtly different in their effects.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2948&database=gcc
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2001-05-29 18:26 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-29 9:46 preprocessor/2948 Sean McNeil
-- strict thread matches above, loose matches on Subject: below --
2001-05-29 18:26 preprocessor/2948 Sean McNeil
2001-05-29 18:06 preprocessor/2948 Sean McNeil
2001-05-29 10:26 preprocessor/2948 Neil Booth
2001-05-28 23:46 preprocessor/2948 Neil Booth
2001-05-28 18:56 preprocessor/2948 Sean McNeil
2001-05-28 15:26 preprocessor/2948 Neil Booth
2001-05-27 10:36 preprocessor/2948 Sean McNeil
2001-05-27 0:46 preprocessor/2948 Neil Booth
2001-05-26 8:46 preprocessor/2948 Sean McNeil
2001-05-26 1:16 preprocessor/2948 neil
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).