aboutsummaryrefslogtreecommitdiffstats
path: root/parse.c
AgeCommit message (Expand)AuthorFilesLines
2021-04-04fix null-pointer crash with with ident same as one of the attributesLuc Van Oostenryck1-1/+1
2020-12-29packed: add support for __packed structLuc Van Oostenryck1-1/+4
2020-12-29struct-attr: fix: do not ignore struct/union/enum type attributesLuc Van Oostenryck1-0/+2
2020-12-29struct-attr: fix type attribute like 'struct __attr { ... }'Luc Van Oostenryck1-1/+3
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (3)Luc Van Oostenryck1-9/+6
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (2)Luc Van Oostenryck1-13/+13
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (1)Luc Van Oostenryck1-5/+5
2020-12-29apply_ctype: move up its declarationLuc Van Oostenryck1-2/+2
2020-12-29apply_ctype: reverse the order of argumentsLuc Van Oostenryck1-4/+4
2020-12-29apply_ctype: use self-explanatory argument nameLuc Van Oostenryck1-10/+10
2020-10-27Merge branches 'cleanup-linearize', 'inline-use', 'inline-def', 'pure-call', ...Luc Van Oostenryck1-1/+9
2020-10-26handle more graciously labels with no statementLuc Van Oostenryck1-0/+5
2020-10-22warn on all missing parameter typesLuc Van Oostenryck1-1/+9
2020-08-17fix typo in warningLuc Van Oostenryck1-1/+1
2020-08-09Merge branches 'attr-asm' and 'storage-mod'Luc Van Oostenryck1-217/+119
2020-08-09parse: simplify set_storage_class()Luc Van Oostenryck1-5/+2
2020-08-09parse: improve error messages concerning storage specifiersLuc Van Oostenryck1-5/+4
2020-08-09parse: let asm_modifier() use the keyword modifierLuc Van Oostenryck1-13/+3
2020-08-09parse: associate modifiers with their keywordLuc Van Oostenryck1-109/+47
2020-08-09parse: rework handling of storage_classLuc Van Oostenryck1-49/+22
2020-07-31Merge branch 'array-decl'Luc Van Oostenryck1-37/+16
2020-07-25keyword type is a bitmask and must be tested soLuc Van Oostenryck1-1/+1
2020-07-25attribute: simplify parsing of attributesLuc Van Oostenryck1-19/+3
2020-07-25testing for sym->op is unneeded for lookup_keyword()Luc Van Oostenryck1-1/+1
2020-07-25testing for SYM_KEYWORD is unneeded for lookup_keyword()Luc Van Oostenryck1-4/+2
2020-07-25attribute: no need to lookup '__attribute__' in NS_KEYWORDLuc Van Oostenryck1-1/+1
2020-07-25attribute: factorize matching of '__attribute__'Luc Van Oostenryck1-19/+16
2020-07-25attribute: directly use attribute_specifier() to handle attributesLuc Van Oostenryck1-1/+1
2020-07-25attribute: remove argument 'keywords' from handle_attributes()Luc Van Oostenryck1-13/+12
2020-07-25attribute: fold parse_asm_declarator() into handle_asm_name()Luc Van Oostenryck1-12/+8
2020-07-25attribute: split handle_asm_name() from handle_attributes()Luc Van Oostenryck1-3/+18
2020-07-25use lookup_keyword() for qualifiersLuc Van Oostenryck1-1/+1
2020-07-25show-mod: no ending space when showing a single modifierLuc Van Oostenryck1-1/+1
2020-07-23allow [*] in array declaratorsLuc Van Oostenryck1-1/+6
2020-07-23remove now unused match_idents()Luc Van Oostenryck1-18/+0
2020-07-23simplify & fix parsing of array declaratorsLuc Van Oostenryck1-18/+10
2020-07-23do not accept comma expressions in array declaratorLuc Van Oostenryck1-1/+1
2020-07-18Merge branch 'empty-expr'Luc Van Oostenryck1-1/+4
2020-07-14Merge branch 'keyword-tbl'Luc Van Oostenryck1-154/+132
2020-07-14warn on empty initializationsLuc Van Oostenryck1-1/+4
2020-07-08keyword: use some macros to avoid duplicationLuc Van Oostenryck1-125/+98
2020-07-08keyword: reorder the keywordsLuc Van Oostenryck1-38/+34
2020-07-08keyword: reorganize the keyword tableLuc Van Oostenryck1-139/+148
2020-07-08c2x: message in _Static_assert() is now optionalLuc Van Oostenryck1-8/+16
2020-07-06cleanup: move parsing helpers to parse.cLuc Van Oostenryck1-0/+38
2020-06-14attribute: parse but ignore enum attributesLuc Van Oostenryck1-0/+4
2020-06-03univ-init: scalar initializer needs some additional checksLuc Van Oostenryck1-7/+10
2020-05-21Merge branch 'univ'Luc Van Oostenryck1-0/+7
2020-05-21Merge branch 'bad-goto'Luc Van Oostenryck1-18/+55
2020-05-21univ-init: conditionally accept { 0 } without warningsLuc Van Oostenryck1-0/+7
2020-05-21bad-label: respect attribute((unused))Luc Van Oostenryck1-1/+10
2020-05-21bad-label: mark labels as used when neededLuc Van Oostenryck1-4/+6
2020-05-21bad-goto: jumping inside a statement expression is an errorLuc Van Oostenryck1-4/+26
2020-05-21scope: give a scope for labels & gotosLuc Van Oostenryck1-1/+7
2020-05-21scope: s/{start,end}_symbol_scope/{start,end}_block_scope/Luc Van Oostenryck1-6/+6
2020-05-21scope: __label__ is specialLuc Van Oostenryck1-2/+1
2020-05-21scope: move scope opening/ending inside compound_statement()Luc Van Oostenryck1-7/+6
2020-05-19attribute: 'externally_visible' is just another 'declaration' modifierLuc Van Oostenryck1-15/+3
2020-05-19attribute: 'inline' is just another 'declaration' modifierLuc Van Oostenryck1-2/+2
2020-05-19attribute: '__tls' is just another 'declaration' modifierLuc Van Oostenryck1-3/+3
2020-05-17attribute: teach sparse about attribute((gnu_inline))Luc Van Oostenryck1-0/+2
2020-05-17attribute: separate modifiers into type/declarationLuc Van Oostenryck1-6/+8
2020-05-17attribute: add support for unusedLuc Van Oostenryck1-0/+2
2020-05-17attribute: allow some attribute to be present multiple timesLuc Van Oostenryck1-1/+1
2020-05-17attribute: add helper apply_mod() and use itLuc Van Oostenryck1-7/+9
2020-03-24add support for GCC's __auto_typeLuc Van Oostenryck1-0/+38
2020-02-20struct_union_enum_specifier: always initialize sym->scopeOleg Nesterov1-0/+1
2019-11-30bitfield: display the bitfield name in error messagesLuc Van Oostenryck1-6/+3
2019-11-30bitfield: keep the bitfield identLuc Van Oostenryck1-0/+1
2019-11-28spec: replace lllong_ctype by int128_ctypeLuc Van Oostenryck1-7/+7
2019-11-26Merge branch 'parse-spec' into masterLuc Van Oostenryck1-21/+24
2019-11-25spec: get rid of all specifier MOD_XXXLuc Van Oostenryck1-7/+5
2019-11-20propagate function modifiers only to functionsLuc Van Oostenryck1-23/+26
2019-11-15function attributes apply to the function declarationLuc Van Oostenryck1-1/+16
2019-11-12Add -Wexternal-function-has-definitionJohn Levon1-2/+2
2019-11-11spec: s/size/rank/Luc Van Oostenryck1-6/+6
2019-11-11spec: KW_LONG is not neededLuc Van Oostenryck1-2/+2
2019-11-11spec: KW_SHORT is not neededLuc Van Oostenryck1-3/+3
2019-11-11spec: improve parsing of __int128Luc Van Oostenryck1-4/+4
2019-11-11spec: add '.class = CInt'Luc Van Oostenryck1-0/+3
2019-11-11spec: types[] is indexed by the specifier classLuc Van Oostenryck1-2/+4
2019-11-11spec: process chars like other integer typesLuc Van Oostenryck1-9/+9
2019-10-30Add '__' prefix and suffix to all __attribute__ #definesJoe Perches1-1/+7
2019-10-09"graph" segfaults on top-level asmLuc Van Oostenryck1-1/+1
2019-09-30Merge branch 'fix-expand-asm' into tipLuc Van Oostenryck1-13/+9
2019-09-30fix sign extension in casting enumsDan Carpenter1-1/+1
2019-09-30remove useless optimization in cast_enum_list()Luc Van Oostenryck1-2/+0
2019-09-27asm: use a specific struct for asm operandsLuc Van Oostenryck1-3/+3
2019-09-27asm: check earlier that body & constraints are stringsLuc Van Oostenryck1-3/+4
2019-09-26string: use string_expression() in parse_static_assert()Luc Van Oostenryck1-7/+2
2019-03-27evaluate: externally_visible functions don't need a declarationJann Horn1-1/+15
2018-12-21remove self-assignment of base_typeLuc Van Oostenryck1-1/+1
2018-12-14teach sparse about asm inlineLuc Van Oostenryck1-7/+27
2018-12-12as-name: check for multiple address spaces at parsing timeLuc Van Oostenryck1-1/+6
2018-12-12as-name: allow ident as address_spaceLuc Van Oostenryck1-8/+26
2018-12-12as-name: use idents for address spacesLuc Van Oostenryck1-2/+10
2018-12-01Conditionalize 'warning: non-ANSI function ...'John Levon1-4/+7
2018-12-01Accept comma-separated list for function declarations.Luc Van Oostenryck1-1/+1
2018-12-01Use -Wimplicit-int when warning about missing K&R argument typesLuc Van Oostenryck1-1/+4
2018-12-01fix implicit K&R argument typesLuc Van Oostenryck1-1/+3
2018-10-05enum: more specific error message for empty enumLuc Van Oostenryck1-1/+1
2018-10-05enum: default to unsignedLuc Van Oostenryck1-6/+6
2018-10-05enum: keep enumerators as int if they fitLuc Van Oostenryck1-0/+37
2018-10-05enum: rewrite bound checkingLuc Van Oostenryck1-50/+34
2018-10-05enum: warn on bad enumsLuc Van Oostenryck1-2/+4
2018-10-05enum: warn when mixing different restricted typesLuc Van Oostenryck1-0/+5
2018-10-05enum: only warn (once) when mixing bitwisenessLuc Van Oostenryck1-0/+7
2018-10-05enum: use the values to determine the base typeLuc Van Oostenryck1-14/+1
2018-10-05enum: use the smallest type that fitLuc Van Oostenryck1-2/+0
2018-10-05enum: fix cast_enum_list()Luc Van Oostenryck1-0/+1
2018-10-05enum: fix UB when rshifting by full widthLuc Van Oostenryck1-2/+15
2018-09-01Merge branch 'has-attribute' into tipLuc Van Oostenryck1-1/+3
2018-09-01has-attr: add __designated_init__ & transparent_unionLuc Van Oostenryck1-0/+2
2018-09-01has-attr: move 'mode' next to '__mode__'Luc Van Oostenryck1-1/+1
2018-08-24remove superfluous newline in 'unknown mode attribute' error messageLuc Van Oostenryck1-1/+1
2018-08-25add support for mode __byte__Luc Van Oostenryck1-0/+2
2018-08-25add support for mode __pointer__Luc Van Oostenryck1-1/+17
2018-08-25mode keywords don't need MOD_{CHAR,LONG,...}Luc Van Oostenryck1-12/+12
2018-06-04Merge branches 'label-redef', 'goto-reserved', 'errmsg-builtin-pos', 'fix-bui...Luc Van Oostenryck1-40/+25
2018-05-26label: avoid multiple definitionsLuc Van Oostenryck1-3/+6
2018-05-26context: extra warning for __context__() & friendsLuc Van Oostenryck1-0/+4
2018-05-26context: stricter syntax for __context__ statementLuc Van Oostenryck1-10/+8
2018-05-26context: fix crashes while parsing '__context__;' or '__context__(;'Luc Van Oostenryck1-1/+3
2018-05-26context: fix parsing of attribute 'context'Luc Van Oostenryck1-32/+13
2018-05-06Merge branches 'unop', 'describe-dirty', 'range-syntax', 'old-testcases', 'fi...Luc Van Oostenryck1-1/+8
2018-05-06use function-like syntax for __range__Luc Van Oostenryck1-1/+4
2018-05-04teach sparse about _Floatn and _FloatnxLuc Van Oostenryck1-0/+5
2018-05-01fix: warn on typedef redefinitionLuc Van Oostenryck1-0/+4
2018-02-16no repetition in unknown attribute warning messageLuc Van Oostenryck1-1/+1
2017-11-11Merge branches 'volatile-loads-are-side-effects', 'fix-volatile-simplificatio...Luc Van Oostenryck1-15/+30
2017-11-11define MOD_ACCESS for (MOD_ASSIGNED | MOD_ADDRESSABLE)Luc Van Oostenryck1-1/+1
2017-11-08add support for C11's _Atomic as type qualifierLuc Van Oostenryck1-0/+13
2017-11-08associate MOD_RESTRICT with restrict-qualified variablesLuc Van Oostenryck1-5/+11
2017-11-08define MOD_QUALIFIER for (MOD_CONST | MOD_VOLATILE)Luc Van Oostenryck1-1/+1
2017-11-08remove redundancy in MOD_STORAGELuc Van Oostenryck1-1/+1
2017-11-08MOD_ACCESSED is not a type modifier ...Luc Van Oostenryck1-1/+1
2017-09-17use a specific struct for asm operandsLuc Van Oostenryck1-9/+5
2017-07-04Add full list of gcc attributeChristopher Li1-104/+10
2017-07-04Let create_symbol check for previous same symbolChristopher Li1-2/+4
2017-06-23Adding ignored attribute optimizev0.5.1-rc3Christopher Li1-2/+4
2017-06-08ret-void: warn for implicit typeLuc Van Oostenryck1-0/+9
2017-05-12keyword: add a comment about NS_TYPEDEF & reserved keywordsLuc Van Oostenryck1-0/+1
2017-05-12sparse: add support for _Static_assertLance Richardson1-1/+44
2017-03-06move 'extern with initializer' validation after the validate methodLuc Van Oostenryck1-4/+5
2017-03-06check the storage of C99 for-loop initializersLuc Van Oostenryck1-1/+12
2017-03-06add an optional validation method to external_declaration()Luc Van Oostenryck1-3/+7
2017-03-04make -Wbitwise operational againLuc Van Oostenryck1-2/+14
2017-02-13let identical symbols share their evaluate/expand methodsLuc Van Oostenryck1-1/+3
2017-02-13C11: teach sparse about '_Alignas()'Luc Van Oostenryck1-0/+43
2017-02-13C11: teach sparse about '_Noreturn'Luc Van Oostenryck1-0/+14
2017-02-13C11: teach sparse about '_Thread_local'Luc Van Oostenryck1-0/+1
2017-02-13add support for __int128Luc Van Oostenryck1-0/+10
2017-02-13fix missing element in types declarationLuc Van Oostenryck1-1/+1
2017-02-13Warn on unknown attributes instead of throwing errorsLuc Van Oostenryck1-1/+2
2017-01-27make 'ignored_attributes[]' staticLuc Van Oostenryck1-1/+1
2017-01-27fix mixup in "Handle SForced in storage_modifiers"Luc Van Oostenryck1-3/+3
2016-11-17Handle SForced in storage_modifiersJeff Layton1-2/+2
2016-10-26sparse: add no_sanitize_address as an ignored attributeRui Teng1-0/+2
2016-10-13sparse: ignore __assume_aligned__ attributeLance Richardson1-0/+2
2016-10-13sparse: add 'alloc_align' to the ignored attributesRamsay Jones1-0/+2
2015-08-15Add default case to switches on enum variablesTony Camuso1-0/+3
2015-06-11sparse/parse.c: ignore hotpatch attributeHeiko Carstens1-0/+2
2014-11-10parse.c: remove duplicate 'may_alias' ignored_attributesRamsay Jones1-2/+0
2014-10-10sparse: add 'gnu_inline' to the ignored attributesRamsay Jones1-0/+2
2014-10-10Add the __restrict__ keywordRamsay Jones1-1/+2
2014-08-02Make same_symbol list share the same scopeChristopher Li1-0/+1
2014-04-17parse: support c99 [static ...] in abstract array declaratorsCody P Schafer1-1/+17
2014-04-01Support GCC's transparent unionsJohn Keeping1-1/+6
2013-11-29sparse: Relicense under the MIT licenseFranz Schrober1-1/+17
2013-04-26Allow forced attribute in function argumentv0.4.5-rc1Christopher Li1-0/+1
2013-02-21sparse patch v2: add noclone as an ignored attributeRandy Dunlap1-0/+3
2012-06-25sparse: Add 'error' to ignored attributesKOSAKI Motohiro1-0/+2
2012-06-25sparse: Add '__vector_size__' to ignored attributesKOSAKI Motohiro1-0/+1
2012-06-04check missing or duplicate goto labelsXi Wang1-1/+5
2012-01-18sparse: Add 'leaf' to ignored attributes.Ethan Jackson1-0/+2
2011-08-25sparse: Fix __builtin_safe_p for pure and const functionsPekka Enberg1-5/+5
2011-08-23Fix parsing empty asm clobberChristopher Li1-1/+2
2011-08-23Ignore the ms_hook_prologue attribute.Michael Stefaniuc1-0/+2
2011-06-28sparse: Add 'artifical' to ignore attributesPekka Enberg1-0/+2
2011-05-31Ignore attribute vector_sizeChristopher Li1-0/+1
2011-04-26parse.c: "if(" -> "if (" adjustmentJan Pokorný1-3/+3
2010-10-08parser: add Blackfin gcc infoMike Frysinger1-0/+6
2010-07-19skip may_alias and declare builtin_fabsMorten Welinder1-0/+2
2010-07-13parser: fix and simplify support of asm gotoJiri Slaby1-1/+2
2010-06-17parser: add support for asm gotoJiri Slaby1-0/+23
2010-06-17Ignore the may_alias GCC attributeDamien Lespiau1-0/+2
2010-03-28Pointer don't inherent the alignment from base typeChristopher Li1-0/+1
2010-03-28Ignore "naked" attributeMichael Buesch1-0/+2
2010-03-28ignore attributes "externally_visible" and "signal"Michael Buesch1-0/+4
2010-03-28New attribute designated_init: mark a struct as requiring designated initJosh Triplett1-0/+15
2010-03-28Handle __builtin_ms_va_list.Michael Stefaniuc1-0/+1
2010-03-28Ignore the alloc_size attribute.Michael Stefaniuc1-0/+2
2010-03-28Ignore the ms_abi/sysv_abi attributes.Michael Stefaniuc1-0/+4
2010-03-28Declare ignored attributres into a list of string.Christopher Li1-71/+82
2010-03-28Move noreturn attribute out of ignore attr areaChristopher Li1-2/+2
2009-10-16do not ignore attribute 'noreturn'...Kamil Dudka1-2/+2
2009-08-01Add support for TImode type (__int128_t)Blue Swirl1-3/+22
2009-08-03Ignore attribute __bounded__, used by OpenBSD headers.Blue Swirl1-0/+2
2009-07-18Avoid "attribute 'warning': unknown attribute" warningLinus Torvalds1-0/+2
2009-07-18Allow array declarators to have 'restrict' in themLinus Torvalds1-0/+2