Skip to content

Commit 2b74894

Browse files
committed
More gcov improvements
- Suppress debug assertions - Exclude ext/opcache/jit/ir Closes GH-21629
1 parent f907571 commit 2b74894

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

Zend/zend_API.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1055,7 +1055,13 @@ static zend_always_inline bool zend_char_has_nul_byte(const char *s, size_t know
10551055
#define RETURN_ZVAL(zv, copy, dtor) do { RETVAL_ZVAL(zv, copy, dtor); return; } while (0)
10561056
#define RETURN_FALSE do { RETVAL_FALSE; return; } while (0)
10571057
#define RETURN_TRUE do { RETVAL_TRUE; return; } while (0)
1058-
#define RETURN_THROWS() do { ZEND_ASSERT(EG(exception)); (void) return_value; return; } while (0)
1058+
1059+
#ifndef HAVE_GCOV
1060+
# define RETURN_THROWS() do { ZEND_ASSERT(EG(exception)); (void) return_value; return; } while (0)
1061+
#else
1062+
/* Drop ZEND_ASSERT() to avoid untested branch warning in gcov. */
1063+
# define RETURN_THROWS() do { (void) return_value; return; } while (0)
1064+
#endif
10591065

10601066
#define HASH_OF(p) (Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties(Z_OBJ_P(p)) : NULL)))
10611067

build/Makefile.gcov

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@ GCOVR_EXCLUDES = \
2424
'ext/hash/sha3/.*' \
2525
'ext/lexbor/lexbor/.*' \
2626
'ext/mbstring/libmbfl/.*' \
27+
'ext/opcache/jit/ir/.*' \
2728
'ext/pcre/pcre2lib/.*' \
2829
'ext/uri/uriparser/.*'
2930

30-
GCOVR_EXCLUDE_LINES_BY_PATTERN = '.*\b(ZEND_PARSE_PARAMETERS_(START|END|NONE)|Z_PARAM_).*'
31+
GCOVR_EXCLUDE_LINES_BY_PATTERNS = \
32+
'.*\b(ZEND_PARSE_PARAMETERS_(START|END|NONE)|Z_PARAM_).*' \
33+
'\s*EMPTY_SWITCH_DEFAULT_CASE\(\)(;)?\s*' \
34+
'\s*ZEND_ASSERT\(.*\);\s*' \
35+
'\s*ZEND_UNREACHABLE\(\);\s*'
3136

3237
lcov: lcov-html
3338

@@ -53,14 +58,14 @@ gcovr-html:
5358
@rm -rf gcovr_html/
5459
@mkdir gcovr_html
5560
gcovr -sr . -o gcovr_html/index.html --html --html-details \
56-
--exclude-lines-by-pattern $(GCOVR_EXCLUDE_LINES_BY_PATTERN) \
61+
$(foreach pattern, $(GCOVR_EXCLUDE_LINES_BY_PATTERNS), --exclude-lines-by-pattern $(pattern)) \
5762
$(foreach lib, $(GCOVR_EXCLUDES), -e $(lib))
5863

5964
gcovr-xml:
6065
@echo "Generating gcovr XML"
6166
@rm -f gcovr.xml
6267
gcovr -sr . -o gcovr.xml --xml \
63-
--exclude-lines-by-pattern $(GCOVR_EXCLUDE_LINES_BY_PATTERN) \
68+
$(foreach pattern, $(GCOVR_EXCLUDE_LINES_BY_PATTERNS), --exclude-lines-by-pattern $(pattern)) \
6469
$(foreach lib, $(GCOVR_EXCLUDES), -e $(lib))
6570

6671
.PHONY: gcovr-html lcov-html php_lcov.info

0 commit comments

Comments
 (0)