/* * 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. */ void nested_loop() { int i, j; char a[10]; for (i = 0; i < 10; i++) { a[i] = 'a'; /* SAFE */ for (j = 0; j <= 10; j++) { a[j] = 'a'; /* BUG */ } } } void nested_loop2_Ok() { double arr[10]; int i, j; for (i = 0; i < 10; i++) { for (j = 5; j < 15; j++) { arr[i] = 0.0; arr[j - 5] = 0.0; } } } void nested_loop3_Bad() { double arr[10]; int i, j; for (i = 0; i <= 10; i++) { for (j = 5; j < 15; j++) { arr[i] = 0.0; } } } void nested_loop4_Bad() { double arr[10]; int i, j; for (i = 0; i < 10; i++) { for (j = 5; j <= 15; j++) { arr[j - 5] = 0.0; } } } void nested_loop_narrowing_Good() { int i = 0; int a[10]; while (1) { while (1) { a[i] = 0; for (i = 0; i < 5; i++) { } } } } void nested_loop_narrowing_Bad() { int i = 0; int a[10]; while (1) { while (1) { a[i] = 0; for (i = 0; i < 10; i++) { } } } }