diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-09-10 17:21:28 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-09-10 17:21:28 +0200 |
commit | fb620b37dec4b0c1e9855a59a0c4dfa28fb58d01 (patch) | |
tree | 2aa1248d70e80464bb18ab1104c8321f79d18735 /gcc/ada/sinput.adb | |
parent | ac4018917999464e601b2e675ac326cbbf0044da (diff) | |
download | gcc-fb620b37dec4b0c1e9855a59a0c4dfa28fb58d01.zip gcc-fb620b37dec4b0c1e9855a59a0c4dfa28fb58d01.tar.gz gcc-fb620b37dec4b0c1e9855a59a0c4dfa28fb58d01.tar.bz2 |
[multiple changes]
2013-09-10 Robert Dewar <dewar@adacore.com>
* sinput.adb (Check_For_BOM): Avoid reading past end of file.
2013-09-10 Robert Dewar <dewar@adacore.com>
* errout.adb (Error_Msg_Ada_2012_Feature): New procedure.
* errout.ads (Error_Msg_Ada_2012_Feature): New procedure.
* inline.ads: Save/Restore Ada_Version_Pragma.
* opt.adb: Save/Restore Ada_Version_Pragma.
* opt.ads (Ada_Version_Pragma): New variable.
* par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb, par-ch5.adb,
par-ch6.adb, par-ch8.adb, par-prag.adb: Use Error_Msg_Ada_2012_Feature.
* prj.adb: Initialize Ada_Version_Pragma.
* sem_attr.adb: Use Error_Msg_Ada_2012_Feature.
* sem_ch12.adb, sem_ch8.adb: Save/restore Ada_Version_Pragma.
* sem_prag.adb (Analyze_Pragma, cases Ada_xx): Set Ada_Version_Pragma.
* switch-c.adb: Initialize Ada_Version_Pragma.
* sem_ch12.adb: Minor reformatting.
2013-09-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Process_Subtype): Discard constraint on access
to class-wide type. Such constraints are not supported and are
considered a language pathology.
From-SVN: r202466
Diffstat (limited to 'gcc/ada/sinput.adb')
-rw-r--r-- | gcc/ada/sinput.adb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ada/sinput.adb b/gcc/ada/sinput.adb index 29be59a..a01c045 100644 --- a/gcc/ada/sinput.adb +++ b/gcc/ada/sinput.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2013, 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- -- @@ -258,10 +258,20 @@ package body Sinput is BOM : BOM_Kind; Len : Natural; Tst : String (1 .. 5); + C : Character; begin for J in 1 .. 5 loop - Tst (J) := Source (Scan_Ptr + Source_Ptr (J) - 1); + C := Source (Scan_Ptr + Source_Ptr (J) - 1); + + -- Definitely no BOM if EOF character marks either end of file, or + -- an illegal non-BOM character if not at the end of file. + + if C = EOF then + return; + end if; + + Tst (J) := C; end loop; Read_BOM (Tst, Len, BOM, False); |