Rui Ueyama
07f901057f
Add pointer arithmetic for VLA
2020-12-07 12:00:06 +09:00
Rui Ueyama
e8667afd08
Add sizeof() for VLA
2020-12-07 12:00:06 +09:00
Rui Ueyama
77275c546a
Add alloca()
2020-12-07 12:00:06 +09:00
Rui Ueyama
b3772845bd
Add thread-local variable
2020-12-07 12:00:06 +09:00
Rui Ueyama
85e46b1071
Add tentative definition
2020-12-07 12:00:06 +09:00
Rui Ueyama
e5f4ca90fd
Do not emit static inline functions if referenced by no one
2020-12-07 12:00:06 +09:00
Rui Ueyama
31087f8d4b
Handle inline functions as static functions
2020-12-07 12:00:06 +09:00
Rui Ueyama
a2535163e2
Add basic "asm" statement
2020-12-07 12:00:06 +09:00
Rui Ueyama
e28a612e9c
[GNU] Add ?: operator with omitted operand
2020-12-07 12:00:06 +09:00
Rui Ueyama
1faab48ecf
Add _Generic
2020-12-07 12:00:06 +09:00
Rui Ueyama
1433b404d6
[GNU] Add __builtin_types_compatible_p
2020-12-07 12:00:06 +09:00
Rui Ueyama
7d80a5136d
Add typeof
2020-12-07 12:00:06 +09:00
Rui Ueyama
95eb5b01b3
Handle struct designator for anonymous struct member
2020-12-07 12:00:06 +09:00
Rui Ueyama
31dc1dfa21
Add union designated initializer
2020-12-07 12:00:06 +09:00
Rui Ueyama
67f5834378
Add struct designated initializer
2020-12-07 12:00:06 +09:00
Rui Ueyama
691c4fac15
[GNU] Allow to omit "=" in designated initializers
2020-12-07 12:00:06 +09:00
Rui Ueyama
835cd24b2c
Allow array designators to initialize incomplete arrays
2020-12-07 12:00:06 +09:00
Rui Ueyama
c618c3b582
Add array designated initializer
2020-12-07 12:00:06 +09:00
Rui Ueyama
6adba75af8
Add UTF-32 string literal initializer
2020-12-07 12:00:06 +09:00
Rui Ueyama
36230e0827
Add UTF-16 string literal initializer
2020-12-07 12:00:06 +09:00
Rui Ueyama
c3075b3030
Add anonymous struct and union
2020-12-07 12:00:06 +09:00
Rui Ueyama
c302a969d8
Do not allow to obtain an address of a bitfield
2020-12-07 12:00:06 +09:00
Rui Ueyama
17ea802cea
Handle zero-width bitfield member
2020-12-07 12:00:06 +09:00
Rui Ueyama
54c2b3b18f
Handle op=-style assignments to bitfields
2020-12-07 12:00:06 +09:00
Rui Ueyama
441a89b80b
Support global struct bitfield initializer
2020-12-07 12:00:06 +09:00
Rui Ueyama
cc852fe99d
Add bitfield
2020-12-07 12:00:06 +09:00
Rui Ueyama
e0b5da3b39
Dereferencing a function shouldn't do anything
...
This is an oddity in the C spec, but you can apply the unary `*`
operator to a function as many times as you want. `*x` and `x`
means exactly the same, given that `x` is a function.
2020-12-07 12:00:06 +09:00
Rui Ueyama
d7bad96114
Allow to define a function returning a struct
2020-12-07 12:00:06 +09:00
Rui Ueyama
c72df1c9be
Allow to call a fucntion returning a struct
2020-12-07 12:00:06 +09:00
Rui Ueyama
5e0f8c47e3
Allow struct parameter
2020-12-07 12:00:06 +09:00
Rui Ueyama
5322ea8495
Add va_arg()
2020-12-07 12:00:06 +09:00
Rui Ueyama
82ba010c76
[GNU] Add __FUNCTION__
2020-12-07 12:00:06 +09:00
Rui Ueyama
ba6b4b6375
Add __func__
2020-12-07 12:00:06 +09:00
Rui Ueyama
bf6ff928ad
Add #if and #endif
2020-12-07 12:00:06 +09:00
Rui Ueyama
c5953ba132
Decay a function to a pointer in the func param context
2020-12-07 12:00:06 +09:00
Rui Ueyama
d06a8ac6e6
Add function pointer
2020-12-07 12:00:06 +09:00
Rui Ueyama
9bf96124ba
Add "long double" as an alias for "double"
2020-12-07 12:00:06 +09:00
Rui Ueyama
ffea4219b1
Add flonum constant expression
2020-12-07 12:00:06 +09:00
Rui Ueyama
8b14859f63
Implement default argument promotion for float
2020-12-07 12:00:06 +09:00
Rui Ueyama
83f76ebb66
Add flonum +, -, * and /
2020-12-07 12:00:06 +09:00
Rui Ueyama
29de46aed4
Add "float" and "double" local variables and casts
2020-12-07 12:00:06 +09:00
Rui Ueyama
1e57f72d8a
Add floating-point constant
2020-12-07 12:00:06 +09:00
Rui Ueyama
1fad2595d6
Allow to omit parameter name in function declaration
2020-12-07 12:00:06 +09:00
Rui Ueyama
93d12771d0
Ignore "static" and "const" in array-dimensions
2020-12-07 12:00:06 +09:00
Rui Ueyama
b773554275
Ignore const, volatile, auto, register, restrict or _Noreturn.
2020-12-07 12:00:06 +09:00
Rui Ueyama
7ba6fe8d94
Handle unsigned types in the constant expression
2020-12-07 12:00:06 +09:00
Rui Ueyama
8b8f3de48b
Use long or ulong instead of int for some expressions
2020-12-07 12:00:06 +09:00
Rui Ueyama
aaf10459d9
Add U, L and LL suffixes
2020-12-07 12:00:06 +09:00
Rui Ueyama
34ab83bdf4
Add unsigned integral types
2020-12-07 12:00:06 +09:00
Rui Ueyama
3f59ce7955
Add `signed` keyword
2020-12-07 12:00:06 +09:00