Commit Graph

291 Commits

Author SHA1 Message Date
Rui Ueyama 57c1d4ec02 Add -MP option 2020-12-07 12:00:06 +09:00
Rui Ueyama 95d5a46234 Add -MF option 2020-12-07 12:00:06 +09:00
Rui Ueyama d0c4667b6b Add -M option 2020-12-07 12:00:06 +09:00
Rui Ueyama f6944133d2 Use hashmap for keyword lookup 2020-12-07 12:00:06 +09:00
Rui Ueyama 655954e301 Use hashmap for block-scope lookup 2020-12-07 12:00:06 +09:00
Rui Ueyama 30520e5a7c Use hashmap for macro name lookup 2020-12-07 12:00:06 +09:00
Rui Ueyama 0aad326f35 Add string hashmap 2020-12-07 12:00:06 +09:00
Rui Ueyama f0c98e0d59 [GNU] Treat labels-as-values as compile-time constant 2020-12-07 12:00:06 +09:00
Rui Ueyama 4f165ec60b [GNU] Support labels-as-values 2020-12-07 12:00:06 +09:00
Rui Ueyama 3d5550e29a [GNU] Support array range designator 2020-12-07 12:00:06 +09:00
Rui Ueyama d90c73b605 [GNU] Support case ranges 2020-12-07 12:00:06 +09:00
Rui Ueyama e0bf168041 Add long double 2020-12-07 12:00:06 +09:00
Rui Ueyama d56dd2f46e Recognize .a and .so files 2020-12-07 12:00:06 +09:00
Rui Ueyama 8d130ab93f Emit size and type for symbols 2020-12-07 12:00:06 +09:00
Rui Ueyama c32f0e21e7 Add -s option 2020-12-07 12:00:06 +09:00
Rui Ueyama bc2527944a Add -l option 2020-12-07 12:00:06 +09:00
Rui Ueyama b0109a30c9 Do not define __STDC_NO_VLA__ 2020-12-07 12:00:06 +09:00
Rui Ueyama 2fa8f489f3 Support sizeof(typename) where typename is a VLA 2020-12-07 12:00:06 +09:00
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 4064871212 Make -E to imply -xc 2020-12-07 12:00:06 +09:00
Rui Ueyama ee0a951b30 Add -x option 2020-12-07 12:00:06 +09:00
Rui Ueyama 8f5ff07dc0 Add -include option 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 6d344ed945 Add -fcommon and -fno-common flags 2020-12-07 12:00:06 +09:00
Rui Ueyama 85e46b1071 Add tentative definition 2020-12-07 12:00:06 +09:00
Rui Ueyama 1b99badce4 Add offsetof 2020-12-07 12:00:06 +09:00
Rui Ueyama 11fc259b01 Add -idirafter option 2020-12-07 12:00:06 +09:00
Rui Ueyama 6a2dc5a48a Use __attribute__((format(print, ...))) to find programming errors 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 aee7891acb [GNU] Allow sizeof(<function type>) 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 007e526ec5 [GNU] Support GCC-style variadic macro 2020-12-07 12:00:06 +09:00
Rui Ueyama 74ec9f6f39 Ignore #pragma 2020-12-07 12:00:06 +09:00
Rui Ueyama 083c27559e [GNU] Handle ,##__VA_ARG__ 2020-12-07 12:00:06 +09:00
Rui Ueyama 338144869f Add __VA_OPT__ 2020-12-07 12:00:06 +09:00
Rui Ueyama 3a10c8aa44 [GNU] Add __BASE_FILE__ macro 2020-12-07 12:00:06 +09:00
Rui Ueyama 922604ae1e [GNU] Add __TIMESTAMP__ macro 2020-12-07 12:00:06 +09:00
Rui Ueyama aaf20fb96e [GNU] Add line marker directive 2020-12-07 12:00:06 +09:00
Rui Ueyama c61c0d0025 Add #line 2020-12-07 12:00:06 +09:00
Rui Ueyama 37998be0c1 Improve error message for multibyte characters 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