Related articles |
---|
Adding Blank Line In Source Causes Change In Executable john.m.morris@navy.mil (Morris, John M CIV NSWCDD, Q34) (2012-03-06) |
Re: Adding Blank Line In Source Causes Change In Executable gah@ugcs.caltech.edu (glen herrmannsfeldt) (2012-03-06) |
Re: Adding Blank Line In Source Causes Change In Executable bobduff@shell01.TheWorld.com (Robert A Duff) (2012-03-06) |
Re: Adding Blank Line In Source Causes Change In Executable hokienerd@gmail.com (HOKIENERD) (2012-03-12) |
Re: Adding Blank Line In Source Causes Change In Executable bobduff@shell01.TheWorld.com (Robert A Duff) (2012-03-13) |
Re: Adding Blank Line In Source Causes Change In Executable gah@ugcs.caltech.edu (glen herrmannsfeldt) (2012-03-14) |
Re: Adding Blank Line In Source Causes Change In Executable hokienerd@gmail.com (HOKIENERD) (2012-03-26) |
Re: Adding Blank Line In Source Causes Change In Executable bobduff@shell01.TheWorld.com (Robert A Duff) (2012-03-26) |
From: | Robert A Duff <bobduff@shell01.TheWorld.com> |
Newsgroups: | comp.compilers |
Date: | Tue, 06 Mar 2012 16:25:28 -0500 |
Organization: | The World Public Access UNIX, Brookline, MA |
References: | 12-03-007 |
Keywords: | code, practice |
Posted-Date: | 06 Mar 2012 16:33:03 EST |
"Morris, John M CIV NSWCDD, Q34" <john.m.morris@navy.mil> writes:
> ...in my case I am using AdaCore's GPS
> development environment (which uses gcc I believe) to compile Ada
GPS is the IDE. The compiler is GNAT, and yes, it's part of gcc
(the GNU Compiler Collection).
> programs for a 68040 processor. I am not intentionally including debug
> information in my builds.
> I've noticed that if I add one blank line to a source file (e.g., I
> hit <Enter> right before the last assignment statement in the Ada
> file) and recompile, I get a different output/binary/executable
> file. (In this example, only one byte in the executable is different,
> and it is 1 greater than the original value. If I hit <Enter> 3 times
> and recompile, the byte is 3 greater than the original value.)
My guess is that there's an implicit 'raise' of an exception, perhaps
for some constraint check on the assignment, and this contains the
line number, so it can print a message if the check fails, something
like:
Constraint_Error raised some_file.adb line 1234.
or something like that.
If you change the line number, that message will need to change.
If you look at the generated assembly code, you'll probably
see a call something like:
Rcheck_12(File => ..., Line => 1234);
The -gnatD output might also show you what's going on.
- Bob
Return to the
comp.compilers page.
Search the
comp.compilers archives again.