Re: Adding Blank Line In Source Causes Change In Executable

Robert A Duff <bobduff@shell01.TheWorld.com>
Tue, 06 Mar 2012 16:25:28 -0500

          From comp.compilers

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)
| List of all articles for this month |

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



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.