tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] TinyCC -std=c2x support?


From: Elijah Stone
Subject: Re: [Tinycc-devel] TinyCC -std=c2x support?
Date: Fri, 18 Jun 2021 03:23:39 -0700 (PDT)

On Fri, 18 Jun 2021, Christian Jullien wrote:

C evolves and supports new features over the time.

Do we want to support upcoming features like prototypes without parameters (as in C++)?


I think it would be a good idea. As far as I can tell, the current c2x draft (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf) entails the following compiler changes:

+ void f(int) {} (N2480)
+ single-argument _Static_assert (N2265) (already implemented)
+ get rid of k&r definitions (N2432)
  + also: void foo(){} is equivalent to void foo(void){}.  The meaning of
    void foo() (just a prototype) is unchanged + allow labels to precede
    declarations (e.g. lb: int x;) (N2508) + 'true' and 'false' have type
    bool (N2393)
  - use of booleans in arithmetic expressions is 'deprecated'; consider
    emiting warnings?
+ support binary literals (N2549, already supported as a gnu ext.
  Actually as a 'tcc ext', but it's a gnu ext)
- u8'x' -> (unsigned char)'x' (N2418)
  - u8"", U"" et al (from c11) are already not supported, need to add them
- mixed-type literal concatenation is now illegal (u"" U"" is an error;
  "" u"" is fine though.  See above) (N2594)
- Change rules about conversions of pointers to qualified arrays (N2607)
- [[attributes]] (N2335)

I've attached a patch implementing the changes marked '+'. Currently they're all guarded behind -std=c2x, but perhaps that should be limited to the backwards-incompatible ones?

 -E

Attachment: c2x.diff
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]