View Issue Details

IDProjectCategoryView StatusLast Update
0037493FPCCompilerpublic2020-08-07 15:03
Reporter0h2o Assigned ToFlorian  
Status resolvedResolutionduplicate 
Product Version3.3.1 
Fixed in Version3.3.1 
Summary0037493: Internal error 2012081306 with -O3
DescriptionHi, the following code snippet will trigger an internal error(2012081306) in ppcx64 when -O3 is specified:

var a : integer;
    write(not((1 in[a]) and (a > a) and (a in[1])))
Steps To Reproduce1. build the latest fpc-3.3.1 with fpc-3.2.0
2. path_to_fpc-3.3.1/compiler/ppcx64 -O3 ./ice8.pas
TagsNo tags attached.
Fixed in Revision
Attached Files


duplicate of 0036775 resolvedSven Barth Internal Error 200405231 raised when manually compiling Lazarus 



2020-08-05 20:38


ice8.pas (80 bytes)   
var a : integer;
    write(not((1 in[a]) and (a > a) and (a in[1]))) 
ice8.pas (80 bytes)   

Jonas Maebe

2020-08-05 20:55

manager   ~0124582

I can reproduce it with a compiler from two days ago, but not with today's compiler. It seems it has been fixed in the mean time.

As an aside: are you using a fuzzer to create these snippets?


2020-08-06 04:29

reporter   ~0124595

Sorry, I forgot to actually recompile today's latest trunk.

Yes, and it's a part of an ongoing research. Thanks for your amazingly quick fixing speed :)


2020-08-06 08:51

reporter   ~0124602

Hi again, really sorry for the disturbance ~

I can see that the bug presented in issue 0036775 took approximately 5 months to fix, I wonder, compared with the test case provided in issue 0036775, would it be easier for you to fix the bug using a smaller snippet like the one provided in this issue ? This is currently a point that we want to know.

Thanks again for your attention, your help will be greatly appreciated !
@Jonas @Florian


2020-08-06 08:53

reporter   ~0124603

I will share the details of our work with you once we have completed the research, if you are interested :)

Sven Barth

2020-08-06 09:22

manager   ~0124606

@0h2o: it's not necessarily known from the beginning that two bugs are in fact the same (just look at the different internal error being generated). And the biggest problem for 0036775 was to get a reproducible test case that isn't "compile Lazarus", not to mention that the original patch only hid the system as Florian had shown. In this specific case 0036775 painted a clearer picture of the underlying problem once one took a look at it.


2020-08-06 09:48

administrator   ~0124609

In general, the shorter the example the better. But response time largely depends if people find time to look after it etc. After all, FPC Is a community project run by volunteers.


2020-08-06 14:30

reporter   ~0124614

Last edited: 2020-08-07 15:03

View 2 revisions

I see, thanks again for your kind reply !

Issue History

Date Modified Username Field Change
2020-08-05 20:38 0h2o New Issue
2020-08-05 20:38 0h2o File Added: ice8.pas
2020-08-05 20:55 Jonas Maebe Note Added: 0124582
2020-08-05 23:16 Florian Assigned To => Florian
2020-08-05 23:16 Florian Status new => resolved
2020-08-05 23:16 Florian Resolution open => duplicate
2020-08-05 23:16 Florian Fixed in Version => 3.3.1
2020-08-05 23:16 Florian FPCTarget => -
2020-08-05 23:16 Florian Relationship added duplicate of 0036775
2020-08-06 04:29 0h2o Note Added: 0124595
2020-08-06 08:51 0h2o Note Added: 0124602
2020-08-06 08:53 0h2o Note Added: 0124603
2020-08-06 09:22 Sven Barth Note Added: 0124606
2020-08-06 09:48 Florian Note Added: 0124609
2020-08-06 14:30 0h2o Note Added: 0124614
2020-08-07 15:03 0h2o Note Edited: 0124614 View Revisions