From 8970c8c25c45e6a4f92b0652c65e26d890939409 Mon Sep 17 00:00:00 2001 From: Kostis Sagonas Date: Wed, 16 Dec 2015 23:09:46 +0100 Subject: Fix compilation of matching with UTF binaries The code generated by the HiPE compiler for pattern matching with UTF binaries was such that sometimes THE_NON_VALUE was stored in the roots followed by the garbage collector. This was not an issue for the vanilla native code compiler, but was problematic for the ErLLVM back-end. Fix the issue by not storing THE_NON_VALUE in the live roots. An alternative fix would be to change the code of the garbage collector. With this fix, there are no more (known) failing test cases for the ErLLVM back-end (at least on x86_64 with LLVM 3.5, which is the configuation regularly tested). Thanks to @margnus1 for the fix. --- lib/hipe/test/bs_SUITE_data/bs_utf.erl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/hipe/test/bs_SUITE_data') diff --git a/lib/hipe/test/bs_SUITE_data/bs_utf.erl b/lib/hipe/test/bs_SUITE_data/bs_utf.erl index b50566ab1b..24526f574d 100644 --- a/lib/hipe/test/bs_SUITE_data/bs_utf.erl +++ b/lib/hipe/test/bs_SUITE_data/bs_utf.erl @@ -16,10 +16,10 @@ test() -> ok = utf8_roundtrip(), ok = utf16_roundtrip(), ok = utf32_roundtrip(), - %% Currently, the following are problematic for the LLVM backend - %% ok = utf8_illegal_sequences(), - %% ok = utf16_illegal_sequences(), - %% ok = utf32_illegal_sequences(), + %% The following were problematic for the LLVM backend + ok = utf8_illegal_sequences(), + ok = utf16_illegal_sequences(), + ok = utf32_illegal_sequences(), ok. %%------------------------------------------------------------------- -- cgit v1.2.3