[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 14 Jun 2010 10:50:03 +0000 (12:50 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 14 Jun 2010 10:50:03 +0000 (12:50 +0200)
2010-06-14  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Subprogram_Body): Do not check conformance when
the spec has been generated for a body without spec that carries an
Inline_Always pragma.

2010-06-14  Arnaud Charlet  <charlet@adacore.com>

* lib-xref.ads: Documentation change: allocate 'Z' letter to C/C++
macro.

From-SVN: r160723

gcc/ada/ChangeLog
gcc/ada/lib-xref.ads
gcc/ada/sem_ch6.adb

index dc7b42985e06d7d0d0f1e387cafb26903362fc3a..f8899ea6ce134b8cdad6690fa0e31d2a17f2fefe 100644 (file)
@@ -1,3 +1,14 @@
+2010-06-14  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body): Do not check conformance when
+       the spec has been generated for a body without spec that carries an
+       Inline_Always pragma.
+
+2010-06-14  Arnaud Charlet  <charlet@adacore.com>
+
+       * lib-xref.ads: Documentation change: allocate 'Z' letter to C/C++
+       macro.
+
 2010-06-14  Jerome Lambourg  <lambourg@adacore.com>
 
        * exp_dbug.adb (Debug_Renaming_Declaration): Do not output any debug
index 2e9c8d26439718e1b66c7d28e5ab6237d218fbcf..c36ccefe670dbc67906eaa7dd0c33b7f731003e0 100644 (file)
@@ -560,7 +560,7 @@ package Lib.Xref is
    --    w     protected object                protected type
    --    x     abstract procedure              exception
    --    y     abstract function               entry or entry family
-   --    z     generic formal parameter        (unused)
+   --    z     generic formal parameter        C/C++ macro
 
    --------------------------------------
    -- Handling of Imported Subprograms --
index 16cd00983bcde86050abbe4cf71e1158876f0287..a263d8278160a7bb2b5b45f7363e33cb2c3a63e0 100644 (file)
@@ -2086,6 +2086,15 @@ package body Sem_Ch6 is
             then
                Conformant := True;
 
+            --  Conversely, the spec may have been generated for specless body
+            --  with an inline pragma.
+
+            elsif Comes_From_Source (N)
+              and then not Comes_From_Source (Spec_Id)
+              and then Has_Pragma_Inline (Spec_Id)
+            then
+               Conformant := True;
+
             else
                Check_Conformance
                  (Body_Id, Spec_Id,