public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/106406] New: _Static_assert declaration can not be first of for-triplet
@ 2022-07-22  9:51 chumarshal at foxmail dot com
  2022-07-22 11:55 ` [Bug c/106406] " rguenth at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: chumarshal at foxmail dot com @ 2022-07-22  9:51 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106406

            Bug ID: 106406
           Summary: _Static_assert declaration can not be first of
                    for-triplet
           Product: gcc
           Version: rust/master
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chumarshal at foxmail dot com
  Target Milestone: ---

int main()
{
    int i = 4;
    for (_Static_assert (3, "This is a three"); i < 7; i++) {
        i += 2;
    }
 }


Gcc can build successfully, but it does not follow C spec:

6.8.5 Iteration statements
(Constraints)
The declaration part of a for statement shall only declare identifiers for
objects having storage class auto or register.

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

* [Bug c/106406] _Static_assert declaration can not be first of for-triplet
  2022-07-22  9:51 [Bug c/106406] New: _Static_assert declaration can not be first of for-triplet chumarshal at foxmail dot com
@ 2022-07-22 11:55 ` rguenth at gcc dot gnu.org
  2022-07-25 19:27 ` pinskia at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-07-22 11:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106406

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
it doesn't declare anything so why should it be invalid?

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

* [Bug c/106406] _Static_assert declaration can not be first of for-triplet
  2022-07-22  9:51 [Bug c/106406] New: _Static_assert declaration can not be first of for-triplet chumarshal at foxmail dot com
  2022-07-22 11:55 ` [Bug c/106406] " rguenth at gcc dot gnu.org
@ 2022-07-25 19:27 ` pinskia at gcc dot gnu.org
  2022-07-25 19:37 ` pinskia at gcc dot gnu.org
  2022-09-05  3:28 ` chumarshal at foxmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-07-25 19:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106406

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
clang rejects it while both ICC and MSVC accepts it as being valid.


6.7.10 Static assertions
...
Semantics
...
If the value of the constant expression compares unequal to 0, the declaration
has no effect.

---
There is no identifiers defined so the constraint of Iteration statements is
not violated as far as I can tell.

So I do think this is a clang bug so closing as invalid.

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

* [Bug c/106406] _Static_assert declaration can not be first of for-triplet
  2022-07-22  9:51 [Bug c/106406] New: _Static_assert declaration can not be first of for-triplet chumarshal at foxmail dot com
  2022-07-22 11:55 ` [Bug c/106406] " rguenth at gcc dot gnu.org
  2022-07-25 19:27 ` pinskia at gcc dot gnu.org
@ 2022-07-25 19:37 ` pinskia at gcc dot gnu.org
  2022-09-05  3:28 ` chumarshal at foxmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-07-25 19:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106406

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
One thing I noticed with clang is that it is the rejected inside the parser
rather than later on with the semantic analysis meaning I think it was
overlooked for clang's parser.

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

* [Bug c/106406] _Static_assert declaration can not be first of for-triplet
  2022-07-22  9:51 [Bug c/106406] New: _Static_assert declaration can not be first of for-triplet chumarshal at foxmail dot com
                   ` (2 preceding siblings ...)
  2022-07-25 19:37 ` pinskia at gcc dot gnu.org
@ 2022-09-05  3:28 ` chumarshal at foxmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: chumarshal at foxmail dot com @ 2022-09-05  3:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106406

--- Comment #4 from marshal <chumarshal at foxmail dot com> ---
(In reply to marshal from comment #0)
> int main()
> {
>     int i = 4;
>     for (_Static_assert (3, "This is a three"); i < 7; i++) {
>         i += 2;
>     }
>  }
> 
> 
> Gcc can build successfully, but it does not follow C spec:
> 
> 6.8.5 Iteration statements
> (Constraints)
> The declaration part of a for statement shall only declare identifiers for
> objects having storage class auto or register.

/*
 * (c) Copyright 2016-2021 by Solid Sands B.V.,
 *     Amsterdam, the Netherlands. All rights reserved.
 *     Subject to conditions in the RESTRICTIONS file.
 */

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

end of thread, other threads:[~2022-09-05  3:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-22  9:51 [Bug c/106406] New: _Static_assert declaration can not be first of for-triplet chumarshal at foxmail dot com
2022-07-22 11:55 ` [Bug c/106406] " rguenth at gcc dot gnu.org
2022-07-25 19:27 ` pinskia at gcc dot gnu.org
2022-07-25 19:37 ` pinskia at gcc dot gnu.org
2022-09-05  3:28 ` chumarshal at foxmail dot com

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).