This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch, Fortran] Create valid temporary variable to avoid assembler errors
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: Tobias Burnus <burnus at net-b dot de>
- Cc: gcc patches <gcc-patches at gcc dot gnu dot org>, gfortran <fortran at gcc dot gnu dot org>
- Date: Wed, 22 May 2013 21:14:14 +0200
- Subject: Re: [Patch, Fortran] Create valid temporary variable to avoid assembler errors
- References: <519CD449 dot 6060305 at net-b dot de>
On Wed, May 22, 2013 at 4:20 PM, Tobias Burnus wrote:
> With one Fortran file, I get the following assembler errors:
>
> /tmp/cc28epKK.s:2075: Error: junk `@1.2304+16' after expression
>
> That's due to the way a temporary variable is generated. While that variable
> is local to the procedure, the name somehow escapes into the assembler file.
> The dump looks as follows.
>
> static struct foo DA@0;
> static struct universal DA@1;
> static struct universal DA@2;
> ...
> class.30._data = &DA@0.foo_parent.universal.counter;
>
> I have now changed the mangling, see attached patch. (The test file uses
> finalization - hence, I do not include it into the patch. I will include it
> in the FINAL patch.)
>
> Build and regtested on x86-64-gnu-linux.
> OK for the trunk?
Hm, DA_F_0 is a valid variable name. So can't your patch cause clashes
with user names?
Ciao!
Steven