aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/prepcomp.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-10-04 11:18:55 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-10-04 11:18:55 +0200
commit9479ded4471394acb96ecc73c58b90e8825d2380 (patch)
tree478cd1822976f56c843ab7a4356e4072945b9902 /gcc/ada/prepcomp.adb
parent65f7ed64ca282f4c084499723a96c47085faaab8 (diff)
downloadgcc-9479ded4471394acb96ecc73c58b90e8825d2380.zip
gcc-9479ded4471394acb96ecc73c58b90e8825d2380.tar.gz
gcc-9479ded4471394acb96ecc73c58b90e8825d2380.tar.bz2
[multiple changes]
2012-10-04 Robert Dewar <dewar@adacore.com> * sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static expression state after Resolve call. 2012-10-04 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry in the table for Warnings Off pragmas if within an instance. 2012-10-04 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb (Analyze_Entry_Body): Transfer Has_Pragma_Unreferenced flag from entry formal to corresponding entity in body, to prevent spurious warnings when pragma is present. 2012-10-04 Robert Dewar <dewar@adacore.com> * s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously large results. 2012-10-04 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly aspects that appear in the partial and the full view of a type. 2012-10-04 Robert Dewar <dewar@adacore.com> * sinfo.ads (N_Return_Statement): Removed. 2012-10-04 Tristan Gingold <gingold@adacore.com> * init.c (__gl_zero_cost_exceptions): Comment it as not used anymore. * bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions anymore. 2012-10-04 Thomas Quinot <quinot@adacore.com> * prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch -a (all source text preserved). From-SVN: r192072
Diffstat (limited to 'gcc/ada/prepcomp.adb')
-rw-r--r--gcc/ada/prepcomp.adb18
1 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ada/prepcomp.adb b/gcc/ada/prepcomp.adb
index 2da21df..dd64bcb 100644
--- a/gcc/ada/prepcomp.adb
+++ b/gcc/ada/prepcomp.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2010, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2012, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -60,6 +60,7 @@ package body Prepcomp is
Undef_False : Boolean := False;
Always_Blank : Boolean := False;
Comments : Boolean := False;
+ No_Deletion : Boolean := False;
List_Symbols : Boolean := False;
Processed : Boolean := False;
end record;
@@ -73,6 +74,7 @@ package body Prepcomp is
Undef_False => False,
Always_Blank => False,
Comments => False,
+ No_Deletion => False,
List_Symbols => False,
Processed => False);
@@ -330,6 +332,16 @@ package body Prepcomp is
-- significant.
case Sinput.Source (Token_Ptr) is
+ when 'a' =>
+
+ -- All source text preserved (also implies -u)
+
+ if Name_Len = 1 then
+ Current_Data.No_Deletion := True;
+ Current_Data.Undef_False := True;
+ OK := True;
+ end if;
+
when 'u' =>
-- Undefined symbol are False
@@ -581,15 +593,15 @@ package body Prepcomp is
-- Set the preprocessing flags according to the preprocessing data
- if Current_Data.Comments and then not Current_Data.Always_Blank then
+ if Current_Data.Comments and not Current_Data.Always_Blank then
Comment_Deleted_Lines := True;
Blank_Deleted_Lines := False;
-
else
Comment_Deleted_Lines := False;
Blank_Deleted_Lines := True;
end if;
+ No_Deletion := Current_Data.No_Deletion;
Undefined_Symbols_Are_False := Current_Data.Undef_False;
List_Preprocessing_Symbols := Current_Data.List_Symbols;