Skip to content

Commit 63a57b1

Browse files
author
Daniel Balla
committed
Fix JerryScript build with clang-6.0
Clang-6.0 would throw the following error while building ``` jerryscript/jerry-core/api/jerry.c:1527:71: error: implicit conversion loses integer precision: 'jerry_regexp_flags_t' to 'uint16_t' (aka 'unsigned short') [-Werror,-Wconversion] jerry_value_t ret_val = ecma_op_create_regexp_object (ecma_pattern, flags); ``` This patch fixes the issue. Also change the `jerry_create_regexp` and `jerry_create_regexp_sz` functions' `flags` parameter to `uint16_t` since the values created with `bitwise inclusive OR` are not part of the enum. JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
1 parent 22b0851 commit 63a57b1

File tree

4 files changed

+9
-10
lines changed

4 files changed

+9
-10
lines changed

docs/02.API-REFERENCE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3426,7 +3426,7 @@ Optional flags can be set using [jerry_regexp_flags_t](#jerry_regexp_flags_t);
34263426
**Prototype**
34273427
```c
34283428
jerry_value_t
3429-
jerry_create_regexp (const jerry_char_t *pattern_p, jerry_regexp_flags_t flags);
3429+
jerry_create_regexp (const jerry_char_t *pattern_p, uint16_t flags);
34303430
```
34313431

34323432
- `pattern_p` - the RegExp pattern as a zero-terminated UTF-8 string
@@ -3438,7 +3438,7 @@ jerry_create_regexp (const jerry_char_t *pattern_p, jerry_regexp_flags_t flags);
34383438
```c
34393439
{
34403440
jerry_char_t pattern_p = "[cgt]gggtaaa|tttaccc[acg]";
3441-
jerry_regexp_flags_t pattern_flags = JERRY_REGEXP_FLAG_IGNORE_CASE;
3441+
uint16_t pattern_flags = JERRY_REGEXP_FLAG_IGNORE_CASE;
34423442

34433443
jerry_value_t regexp = jerry_create_regexp (pattern_p, pattern_flags);
34443444

@@ -3459,7 +3459,7 @@ Optional flags can be set using [jerry_regexp_flags_t](#jerry_regexp_flags_t);
34593459
**Prototype**
34603460
```c
34613461
jerry_value_t
3462-
jerry_create_regexp_sz (const jerry_char_t *pattern_p, jerry_size_t pattern_size, jerry_regexp_flags_t flags);
3462+
jerry_create_regexp_sz (const jerry_char_t *pattern_p, jerry_size_t pattern_size, uint16_t flags);
34633463
```
34643464

34653465
- `pattern_p` - the RegExp pattern as a zero-terminated UTF-8 string
@@ -3473,7 +3473,7 @@ jerry_create_regexp_sz (const jerry_char_t *pattern_p, jerry_size_t pattern_size
34733473
{
34743474
jerry_char_t pattern_p = "[cgt]gggtaaa|tttaccc[acg]";
34753475
jerry_size_t pattern_size = sizeof (pattern_p) - 1;
3476-
jerry_regexp_flags_t pattern_flags = JERRY_REGEXP_FLAG_IGNORE_CASE;
3476+
uint16_t pattern_flags = JERRY_REGEXP_FLAG_IGNORE_CASE;
34773477

34783478
jerry_value_t regexp = jerry_create_regexp_sz (pattern_p, pattern_size, pattern_flags);
34793479

jerry-core/api/jerry.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,7 +1499,7 @@ jerry_create_string_sz (const jerry_char_t *str_p, /**< pointer to string */
14991499
*/
15001500
jerry_value_t
15011501
jerry_create_regexp (const jerry_char_t *pattern_p, /**< zero-terminated UTF-8 string as RegExp pattern */
1502-
jerry_regexp_flags_t flags) /**< optional RegExp flags */
1502+
uint16_t flags) /**< optional RegExp flags */
15031503
{
15041504
return jerry_create_regexp_sz (pattern_p, lit_zt_utf8_string_size (pattern_p), flags);
15051505
} /* jerry_create_regexp */
@@ -1512,7 +1512,7 @@ jerry_create_regexp (const jerry_char_t *pattern_p, /**< zero-terminated UTF-8 s
15121512
jerry_value_t
15131513
jerry_create_regexp_sz (const jerry_char_t *pattern_p, /**< zero-terminated UTF-8 string as RegExp pattern */
15141514
jerry_size_t pattern_size, /**< length of the pattern */
1515-
jerry_regexp_flags_t flags) /**< optional RegExp flags */
1515+
uint16_t flags) /**< optional RegExp flags */
15161516
{
15171517
jerry_assert_api_available ();
15181518

jerry-core/include/jerryscript-core.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,9 +458,8 @@ jerry_value_t jerry_create_number_nan (void);
458458
jerry_value_t jerry_create_null (void);
459459
jerry_value_t jerry_create_object (void);
460460
jerry_value_t jerry_create_promise (void);
461-
jerry_value_t jerry_create_regexp (const jerry_char_t *pattern, jerry_regexp_flags_t flags);
462-
jerry_value_t jerry_create_regexp_sz (const jerry_char_t *pattern, jerry_size_t pattern_size,
463-
jerry_regexp_flags_t flags);
461+
jerry_value_t jerry_create_regexp (const jerry_char_t *pattern, uint16_t flags);
462+
jerry_value_t jerry_create_regexp_sz (const jerry_char_t *pattern, jerry_size_t pattern_size, uint16_t flags);
464463
jerry_value_t jerry_create_string_from_utf8 (const jerry_char_t *str_p);
465464
jerry_value_t jerry_create_string_sz_from_utf8 (const jerry_char_t *str_p, jerry_size_t str_size);
466465
jerry_value_t jerry_create_string (const jerry_char_t *str_p);

tests/unit-core/test-regexp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ main (void)
2626
jerry_value_t global_obj_val = jerry_get_global_object ();
2727

2828
jerry_char_t pattern[] = "[^.]+";
29-
jerry_regexp_flags_t flags = JERRY_REGEXP_FLAG_GLOBAL | JERRY_REGEXP_FLAG_MULTILINE;
29+
uint16_t flags = JERRY_REGEXP_FLAG_GLOBAL | JERRY_REGEXP_FLAG_MULTILINE;
3030
jerry_value_t regex_obj = jerry_create_regexp (pattern, flags);
3131
TEST_ASSERT (jerry_value_is_object (regex_obj));
3232

0 commit comments

Comments
 (0)