[Ada] Wrong column in sloc of "expect name" error for loop variant
authorJustin Squirek <squirek@adacore.com>
Thu, 11 Jan 2018 08:50:25 +0000 (08:50 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 11 Jan 2018 08:50:25 +0000 (08:50 +0000)
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

gcc/ada/ChangeLog
gcc/ada/sem_prag.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/loopvar.adb [new file with mode: 0644]

index 88e2ee247370f00cf5008bdb4b19588efd24f2e7..aff841e18c2fabf4fb435119ae7e7bd6f7a16f45 100644 (file)
@@ -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
index 6bf66ad84a8ca21ac6a8992835353b9cf7299eb6..4f55db145e722f04d861f5700bf1f44f4423ca27 100644 (file)
@@ -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)
index 917370960c43983b83a9672e5456229234fb7e07..1792495e035d73abb7f0217e65419ecf92a2d77b 100644 (file)
@@ -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 (file)
index 0000000..f85402a
--- /dev/null
@@ -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;