public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ada/30614]  New: compiler puts the blame on in parameter mode, not pointer to constant, for assignment to component
@ 2007-01-27 17:11 bauhaus at futureapps dot de
  2008-04-12 20:06 ` [Bug ada/30614] " sam at gcc dot gnu dot org
  2008-11-17 21:17 ` sam at gcc dot gnu dot org
  0 siblings, 2 replies; 3+ messages in thread
From: bauhaus at futureapps dot de @ 2007-01-27 17:11 UTC (permalink / raw)
  To: gcc-bugs

gcc reports two different error messages, the second of them doesn't
seem to be correct. If it is somehow correct (I don't think so),
it is still misleading:

$ gnatmake -gnatv p.adb
gcc -c -gnatv p.adb

GNAT 4.3.0 20070127 (experimental)
Copyright 1992-2006, Free Software Foundation, Inc.

Compiling: p.adb (source file time stamp: 2007-01-27 13:38:37)

     5.         this.x := value;
                |
        >>> left hand side of assignment must be a variable

    10.         this.x := 42;
                |
        >>> assignment to "in" mode parameter not allowed

 13 lines: 2 errors
gnatmake: "p.adb" compilation error

The first message is correct because "this" is a pointer to constant.
The second message should be the same because the parameter mode should
only affects the mode of the pointer parameter ("this") not the pointee.
(When T_Ptr is made access-to-variable, both lines compile fine.)

package P is

    type T is tagged limited private;
    type T_Ptr is access constant T; -- Note: constant

    procedure reset(this: T_Ptr);
    procedure set(this: T_Ptr; value: Integer);

private

    type T is tagged limited record
        x: Integer;
    end record;

end P;

package body P is

    procedure set(this: T_Ptr; value: Integer) is
    begin
        this.x := value;
    end set;

    procedure reset(this: T_Ptr) is
    begin
        this.x := 42;
    end reset;

end P;


-- 
           Summary: compiler puts the blame on in parameter mode, not
                    pointer to constant, for assignment to component
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: ada
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bauhaus at futureapps dot de
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30614


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug ada/30614] compiler puts the blame on in parameter mode, not pointer to constant, for assignment to component
  2007-01-27 17:11 [Bug ada/30614] New: compiler puts the blame on in parameter mode, not pointer to constant, for assignment to component bauhaus at futureapps dot de
@ 2008-04-12 20:06 ` sam at gcc dot gnu dot org
  2008-11-17 21:17 ` sam at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: sam at gcc dot gnu dot org @ 2008-04-12 20:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from sam at gcc dot gnu dot org  2008-04-12 20:05 -------
Confirmed on 4.4.0 trunk. Fix in progress.


-- 

sam at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |sam at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-04-12 20:05:45
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30614


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug ada/30614] compiler puts the blame on in parameter mode, not pointer to constant, for assignment to component
  2007-01-27 17:11 [Bug ada/30614] New: compiler puts the blame on in parameter mode, not pointer to constant, for assignment to component bauhaus at futureapps dot de
  2008-04-12 20:06 ` [Bug ada/30614] " sam at gcc dot gnu dot org
@ 2008-11-17 21:17 ` sam at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: sam at gcc dot gnu dot org @ 2008-11-17 21:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from sam at gcc dot gnu dot org  2008-11-17 21:16 -------
The proposed fix has been withheld by Robert Dewar who was not entirely
satisfied by the proposed solution and proposed to send an alternate fix.
Unassigning and lowering priority (the only issue is the error message
quality).


-- 

sam at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|sam at gcc dot gnu dot org  |unassigned at gcc dot gnu
                   |                            |dot org
             Status|ASSIGNED                    |NEW
           Priority|P3                          |P4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30614


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-11-17 21:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-27 17:11 [Bug ada/30614] New: compiler puts the blame on in parameter mode, not pointer to constant, for assignment to component bauhaus at futureapps dot de
2008-04-12 20:06 ` [Bug ada/30614] " sam at gcc dot gnu dot org
2008-11-17 21:17 ` sam at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).