I am a little confused...

I have an embedded project that uses the STM32 HAL libraries which in turn uses the stm32f072rb CMSIS header files.

The HAL claims [here](http://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf) that it is **Strict ANSI-C**

```
The source code of drivers is developed in Strict ANSI-C, which makes it
independent from the development tools. It is checked with CodeSonarTM static
analysis tool. It is fully documented and is MISRA-C 2004 compliant.

```

I have the belief that Strict ANSI-C means C89 so I added these gcc flags to my Makefile.

```
CFLAGS =            -std=c89\
                    -pedantic-errors

```

But when I do it gives lots of errors and warnings. If I remove these flags it compiles.

I am very confused over this. Am I lacking something or their documentation is wrong?

Here are some gcc compiler erros with the flag enabled... They keep repeating over many of STM32 HAL files.

```
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
error: unknown type name 'inline'
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'NVIC_GetPriority'

```