I am really happy to see this work moving forward. I think it is a great
direction for the project.
Unfortunately, though, revision 30351 (the first point at which the llvm branch
was reintroduced) has broken my code on Windows 64. Things are working fine
though on 32 bit Windows and Linux.
Pardon the stupid question(s)... I was surprised by the behavior of the
following code when range checking and overflow checking was enabled on
win32:
procedure test_rangeoverflow;
var
a, b: BYTE;
i: Integer;
begin
a := 128;
b := 129;
i := a + b; // no errors, i is 257; a and b
With the fpc 2.7.1 trunk, the following simple program does not work
under darwin unless I also include the unit cwstring:
program project1;
{$mode objfpc}{$H+}
uses sysutils;// also needs the unit cwstring to work under
darwin
function toupper(const s: WideString): WideString;