aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Squirek <squirek@adacore.com>2018-01-11 08:50:25 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-01-11 08:50:25 +0000
commitc8f258171c90b52a45c6884138df740b2ef88c27 (patch)
tree358954e17f67faffe4c42d7d1d30c26fa54bb4df
parent51f3e4e157dae1cded8f340f12859b237151fe74 (diff)
downloadgcc-c8f258171c90b52a45c6884138df740b2ef88c27.zip
gcc-c8f258171c90b52a45c6884138df740b2ef88c27.tar.gz
gcc-c8f258171c90b52a45c6884138df740b2ef88c27.tar.bz2
[Ada] Wrong column in sloc of "expect name" error for loop variant
This patch corrects error messages printed when using the pragma Loop_Variant without a named argument from having an incorrect column number in some cases. 2018-01-11 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error message to be printed on the pragma argument identifier. gcc/testsuite/ * gnat.dg/loopvar.adb: New testcase. From-SVN: r256484
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/sem_prag.adb2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/loopvar.adb15
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 88e2ee2..aff841e 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2018-01-11 Justin Squirek <squirek@adacore.com>
+
+ * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error
+ message to be printed on the pragma argument identifier.
+
2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 6bf66ad..4f55db1 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -18297,7 +18297,7 @@ package body Sem_Prag is
Variant := First (Pragma_Argument_Associations (N));
while Present (Variant) loop
if Chars (Variant) = No_Name then
- Error_Pragma_Arg ("expect name `Increases`", Variant);
+ Error_Pragma_Arg_Ident ("expect name `Increases`", Variant);
elsif not Nam_In (Chars (Variant), Name_Decreases,
Name_Increases)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9173709..1792495 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2018-01-11 Justin Squirek <squirek@adacore.com>
+
+ * gnat.dg/loopvar.adb: New testcase.
+
2018-01-10 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/83189
diff --git a/gcc/testsuite/gnat.dg/loopvar.adb b/gcc/testsuite/gnat.dg/loopvar.adb
new file mode 100644
index 0000000..f85402a
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loopvar.adb
@@ -0,0 +1,15 @@
+-- { dg-do compile }
+
+procedure Loopvar (S : String) is
+ J : Integer := S'First;
+begin
+ while J < S'Last loop
+ pragma Loop_Variant (J); -- { dg-error "expect name \"Increases\"" }
+ pragma Loop_Variant (Increasing => J); -- { dg-error "expect name \"Increases\"" }
+ pragma Loop_Variant (J + 1); -- { dg-error "expect name \"Increases\"" }
+ pragma Loop_Variant (incr => -J + 1); -- { dg-error "expect name \"Increases\"" }
+ pragma Loop_Variant (decr => -J + 1); -- { dg-error "expect name \"Decreases\"" }
+ pragma Loop_Variant (foof => -J + 1); -- { dg-error "expect name \"Increases\" or \"Decreases\"" }
+ J := J + 2;
+ end loop;
+end Loopvar;