Fix FORTIFY_SOURCE unittests.

The compiler is too damn smart.

Change-Id: Ibef3ef41ec99f8cd9c06f1dbca535819f9a08197
This commit is contained in:
Nick Kralevich 2013-06-19 10:25:44 -07:00
parent c656d732c7
commit 3cd4cac2ce
2 changed files with 12 additions and 4 deletions

View File

@ -289,10 +289,14 @@ TEST(Fortify1_Clang, strcat2) {
__BIONIC_FORTIFY_INLINE
size_t test_fortify_inline(char* buf) {
return __bos(buf);
return __bos(buf);
}
TEST(Fortify1_Clang, fortify_inline) {
char buf[1024];
ASSERT_EQ(test_fortify_inline(buf), sizeof(buf));
// no-op. Prints nothing. Needed to prevent the compiler
// from optimizing out buf.
buf[0] = '\0';
printf("%s", buf);
ASSERT_EQ(sizeof(buf), test_fortify_inline(buf));
}

View File

@ -162,10 +162,14 @@ TEST(Fortify2_Clang_DeathTest, strncpy_fortified) {
__BIONIC_FORTIFY_INLINE
size_t test_fortify2_inline(char* buf) {
return __bos(buf);
return __bos(buf);
}
TEST(Fortify2_Clang, fortify_inline) {
char buf[1024];
ASSERT_EQ(test_fortify2_inline(buf), sizeof(buf));
// no-op. Prints nothing. Needed to prevent the compiler
// from optimizing out buf.
buf[0] = '\0';
printf("%s", buf);
ASSERT_EQ(sizeof(buf), test_fortify2_inline(buf));
}