Purebasic 6.21 x86 C Backend crash with nested long arrays names in structures

Post bugreports for the Windows version here
dreamzonne
New User
New User
Posts: 7
Joined: Mon Jul 29, 2019 4:02 pm

Purebasic 6.21 x86 C Backend crash with nested long arrays names in structures

Post by dreamzonne »

Hello PureBasic Team,

After extensive trial-and-error testing, I've identified a compiler crash in x86 PB 6.21 C backend related to structure naming length.
This was particularly challenging to isolate, as the error only manifests with long names and nested arrays.

Minimal Reproduction Case:

Code: Select all

Structure Str_Antidisestablishmentarianism
  i.i
EndStructure

Structure Str_Floccinaucinihilipilification
  Array Antidisestablishmentarianism.Str_Antidisestablishmentarianism(0)
EndStructure

Structure Str_Supercalifragilisticexpialidocious
  Array Floccinaucinihilipilification.Str_Floccinaucinihilipilification(0)
EndStructure

Structure Str_Hippopotomonstrosesquipedaliophobias
  Array Supercalifragilisticexpialidocious.Str_Supercalifragilisticexpialidocious(0)
EndStructure

Structure Str_Pneumonoultramicroscopicsilicovolcanoconiosis
  Array Hippopotomonstrosesquipedaliophobias.Str_Hippopotomonstrosesquipedaliophobias(0)
EndStructure

Global Pneumonoultramicroscopicsilicovolcanoconiosis.Str_Pneumonoultramicroscopicsilicovolcanoconiosis

ReDim Pneumonoultramicroscopicsilicovolcanoconiosis\Hippopotomonstrosesquipedaliophobias(1)
ReDim Pneumonoultramicroscopicsilicovolcanoconiosis\Hippopotomonstrosesquipedaliophobias(1)\Supercalifragilisticexpialidocious(1)
ReDim Pneumonoultramicroscopicsilicovolcanoconiosis\Hippopotomonstrosesquipedaliophobias(1)\Supercalifragilisticexpialidocious(1)\Floccinaucinihilipilification(1)
ReDim Pneumonoultramicroscopicsilicovolcanoconiosis\Hippopotomonstrosesquipedaliophobias(1)\Supercalifragilisticexpialidocious(1)\Floccinaucinihilipilification(1)\Antidisestablishmentarianism(1)
In my production code, the issue with a nested array structure goes at 9 levels deep.
The array names themselves aren't excessively long, but their length seems to trigger the same problematic behavior.

I was nearly driven crazy debugging this because it's a port from an old PureBasic implementation that worked perfectly fine.

I hope this would help to fix this pbcompiler crash
BR