public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/35069]  New: Casting from a volatile type to a non-volatile type should cause a warning
@ 2008-02-04  1:33 gcc-david at tulloh dot id dot au
  2008-02-04  5:19 ` [Bug c/35069] " gcc-david at tulloh dot id dot au
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: gcc-david at tulloh dot id dot au @ 2008-02-04  1:33 UTC (permalink / raw)
  To: gcc-bugs

Given the following code:

volatile int16_t foo;
x = (int32_t)foo;

The above cast should almost certainly have been (volatile int32_t), I see no
obvious case where someone would want to cast away the volatile attribute.

I suggest that a cast that drops a volatile attribute from a variable should
cause a warning.


(Epiphany occurred at the end of a frustrating day, was using gcc 4.2.2
targeting an AVR)


-- 
           Summary: Casting from a volatile type to a non-volatile type
                    should cause a warning
           Product: gcc
           Version: 4.2.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gcc-david at tulloh dot id dot au


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


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

* [Bug c/35069] Casting from a volatile type to a non-volatile type should cause a warning
  2008-02-04  1:33 [Bug c/35069] New: Casting from a volatile type to a non-volatile type should cause a warning gcc-david at tulloh dot id dot au
@ 2008-02-04  5:19 ` gcc-david at tulloh dot id dot au
  2008-02-04  9:11 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: gcc-david at tulloh dot id dot au @ 2008-02-04  5:19 UTC (permalink / raw)
  To: gcc-bugs



-- 

gcc-david at tulloh dot id dot au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement


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


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

* [Bug c/35069] Casting from a volatile type to a non-volatile type should cause a warning
  2008-02-04  1:33 [Bug c/35069] New: Casting from a volatile type to a non-volatile type should cause a warning gcc-david at tulloh dot id dot au
  2008-02-04  5:19 ` [Bug c/35069] " gcc-david at tulloh dot id dot au
@ 2008-02-04  9:11 ` pinskia at gcc dot gnu dot org
  2008-02-04 22:14 ` gcc-david at tulloh dot id dot au
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-02-04  9:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2008-02-04 09:11 -------
> The above cast should almost certainly have been (volatile int32_t)

The volatile here does not mean anything really so there is no lost info as it
is on a scalar type.  So I am going to close this as invalid.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


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


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

* [Bug c/35069] Casting from a volatile type to a non-volatile type should cause a warning
  2008-02-04  1:33 [Bug c/35069] New: Casting from a volatile type to a non-volatile type should cause a warning gcc-david at tulloh dot id dot au
  2008-02-04  5:19 ` [Bug c/35069] " gcc-david at tulloh dot id dot au
  2008-02-04  9:11 ` pinskia at gcc dot gnu dot org
@ 2008-02-04 22:14 ` gcc-david at tulloh dot id dot au
  2008-02-04 22:17 ` pinskia at gcc dot gnu dot org
  2008-11-14 23:56 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: gcc-david at tulloh dot id dot au @ 2008-02-04 22:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from gcc-david at tulloh dot id dot au  2008-02-04 22:14 -------
Yes, I didn't provide any context.  I believe that this warning should apply
any time you are working with volatile variables.


A truncated real world example (kind of, real world debugging).

volatile static uint8_t OutputBuffer[4];

int16_t main(void) {
  while(1) {
    *(uint16_t *)(OutputBuffer)++;
  }
}

ISR(PCINT0_vect) {
  implement software SPI interface, transmit OutputBuffer in reverse byte
order.
}


-- 

gcc-david at tulloh dot id dot au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |


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


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

* [Bug c/35069] Casting from a volatile type to a non-volatile type should cause a warning
  2008-02-04  1:33 [Bug c/35069] New: Casting from a volatile type to a non-volatile type should cause a warning gcc-david at tulloh dot id dot au
                   ` (2 preceding siblings ...)
  2008-02-04 22:14 ` gcc-david at tulloh dot id dot au
@ 2008-02-04 22:17 ` pinskia at gcc dot gnu dot org
  2008-11-14 23:56 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-02-04 22:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2008-02-04 22:16 -------
Anyways you are violating C aliasing rules here.


-- 


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


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

* [Bug c/35069] Casting from a volatile type to a non-volatile type should cause a warning
  2008-02-04  1:33 [Bug c/35069] New: Casting from a volatile type to a non-volatile type should cause a warning gcc-david at tulloh dot id dot au
                   ` (3 preceding siblings ...)
  2008-02-04 22:17 ` pinskia at gcc dot gnu dot org
@ 2008-11-14 23:56 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-11-14 23:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from pinskia at gcc dot gnu dot org  2008-11-14 23:55 -------
-Wcast-qual exist already and works like what you want it to work.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


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


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

end of thread, other threads:[~2008-11-14 23:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-04  1:33 [Bug c/35069] New: Casting from a volatile type to a non-volatile type should cause a warning gcc-david at tulloh dot id dot au
2008-02-04  5:19 ` [Bug c/35069] " gcc-david at tulloh dot id dot au
2008-02-04  9:11 ` pinskia at gcc dot gnu dot org
2008-02-04 22:14 ` gcc-david at tulloh dot id dot au
2008-02-04 22:17 ` pinskia at gcc dot gnu dot org
2008-11-14 23:56 ` pinskia 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).