Fix regoff_t for LP32 and _FILE_OFFSET_BITS=64.

bionic is built without _FILE_OFFSET_BITS=64, so internally regoff_t
was 32-bit on LP32, but code compiled with _FILE_OFFSET_BITS would
expect rm_so and rm_eo in struct regmatch_t to be 64-bit, leading to
confusion.

Bug: http://b/23566443
Change-Id: Iae92fa545104068e4f64ce1977f5ec616859638c
This commit is contained in:
Elliott Hughes
2015-08-27 14:48:32 -07:00
parent bfaee4bd6a
commit adf5c7237d
2 changed files with 13 additions and 2 deletions

View File

@@ -36,3 +36,13 @@ TEST(regex, smoke) {
regfree(&re);
}
TEST(regex, match_offsets) {
regex_t re;
regmatch_t matches[1];
ASSERT_EQ(0, regcomp(&re, "b", 0));
ASSERT_EQ(0, regexec(&re, "abc", 1, matches, 0));
ASSERT_EQ(1, matches[0].rm_so);
ASSERT_EQ(2, matches[0].rm_eo);
regfree(&re);
}