diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 4a80b1342..666970e16 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -3377,6 +3377,9 @@ bool Tokenizer::simplifyTokenList1(const char FileName[]) // Remove [[deprecated]] simplifyDeprecated(); + // remove __attribute__((?)) + simplifyAttribute(); + // Simplify the C alternative tokens (and, or, etc.) simplifyCAlternativeTokens(); @@ -3470,9 +3473,6 @@ bool Tokenizer::simplifyTokenList1(const char FileName[]) // That call here fixes #7190 validate(); - // remove __attribute__((?)) - simplifyAttribute(); - // remove unnecessary member qualification.. removeUnnecessaryQualification(); diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 031318900..dc9c50ac0 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -4755,6 +4755,8 @@ private: ASSERT_EQUALS("short array [ 3 ] ;", tokenizeAndStringify("short array[3] __attribute ((aligned));")); ASSERT_EQUALS("int x [ 2 ] ;", tokenizeAndStringify("int x[2] __attribute ((packed));")); ASSERT_EQUALS("int vecint ;", tokenizeAndStringify("int __attribute((mode(SI))) __attribute((vector_size (16))) vecint;")); + + ASSERT_EQUALS("struct Payload_IR_config { uint8_t tap [ 16 ] ; } ;", tokenizeAndStringify("struct __attribute__((packed, gcc_struct)) Payload_IR_config { uint8_t tap[16]; };")); } void functionAttributeBefore() {