|
|
|
/*
|
|
|
|
* Copyright (c) 2016-present, Programming Research Laboratory (ROPAS)
|
|
|
|
* Seoul National University, Korea
|
|
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the MIT license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
void do_while_sub(char* a, int len) {
|
|
|
|
int i = 0;
|
|
|
|
do {
|
|
|
|
a[i] = i;
|
|
|
|
i++;
|
|
|
|
} while (i < len);
|
|
|
|
}
|
|
|
|
|
|
|
|
void do_while_Good() {
|
|
|
|
char* a = malloc(10);
|
|
|
|
do_while_sub(a, 10); /* SAFE */
|
|
|
|
}
|
|
|
|
|
|
|
|
void do_while_Bad() {
|
|
|
|
char* a = malloc(10);
|
|
|
|
do_while_sub(a, 11); /* BUG */
|
|
|
|
}
|
|
|
|
|
|
|
|
void do_while_2_Good() {
|
|
|
|
int count = 10;
|
|
|
|
int a[count];
|
|
|
|
int i = 0;
|
|
|
|
do {
|
|
|
|
a[i] = 0;
|
|
|
|
} while (++i < count);
|
|
|
|
}
|
|
|
|
|
|
|
|
void do_while_2_Bad() {
|
|
|
|
int count = 10;
|
|
|
|
int a[count];
|
|
|
|
int i = 0;
|
|
|
|
do {
|
|
|
|
a[i] = 0;
|
|
|
|
} while (i++ < count);
|
|
|
|
}
|