I use the gcc's fixed point extensions, which have been present in the gcc for Cortex-M since 2011.
The toolchain which is included in the current version of KDS (4.8.4 20140725 (release)) gives me a segmentation fault during compilation.
The segmentation fault happens when a long _Accum variable retVal is divided by an element of a referenced struct:
retVal = retVal / filter->numberOfElements;
Building file: ../Sources/drivers/filters.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O3 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -DKINETIS -DARM_MATH_CM4 -I"/opt/toolchain/CMSIS/CMSIS/Include" -I"/home/dominik/workspace.kds/test/Static_Code/PDD" -I"/home/dominik/workspace.kds/test/Static_Code/IO_Map" -I"/home/dominik/workspace.kds/test/Sources" -I"/home/dominik/workspace.kds/test/Generated_Code" -std=gnu99 -MMD -MP -MF"Sources/drivers/filters.d" -MT"Sources/drivers/filters.o" -c -o "Sources/drivers/filters.o" "../Sources/drivers/filters.c"
../Sources/drivers/filters.c: In function 'filters_updateMovingAverage':
../Sources/drivers/filters.c:172:1: internal compiler error: Segmentation fault
The current release of the toolchain (5.3.1 20160307 (release)) compiles without errors and works perfectly, hence it is not a big problem. It's still weird, though.
Compilation works flawlessly if I comment out the mentioned line.