/* Test for inferior function calls MPX context. Copyright (C) 2017-2023 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include /* Defined size for arrays. */ #define ARRAY_LENGTH 5 int upper (int *a, int *b, int *c, int *d, int len) { int value; value = *(a + len); value = *(b + len); value = *(c + len); value = *(d + len); value = value - *a + 1; return value; } int lower (int *a, int *b, int *c, int *d, int len) { int value; value = *(a - len); value = *(b - len); value = *(c - len); value = *(d - len); value = value - *a + 1; return value; } char char_upper (char *str, int length) { char ch; ch = *(str + length); return ch; } char char_lower (char *str, int length) { char ch; ch = *(str - length); return ch; } int main (void) { int sa[ARRAY_LENGTH]; int sb[ARRAY_LENGTH]; int sc[ARRAY_LENGTH]; int sd[ARRAY_LENGTH]; int *x, *a, *b, *c, *d; char mchar; char hello[] = "Hello"; x = malloc (sizeof (int) * ARRAY_LENGTH); a = malloc (sizeof (int) * ARRAY_LENGTH); b = malloc (sizeof (int) * ARRAY_LENGTH); c = malloc (sizeof (int) * ARRAY_LENGTH); d = malloc (sizeof (int) * ARRAY_LENGTH); *x = upper (sa, sb, sc, sd, 0); /* bkpt 1. */ *x = lower (a, b, c, d, 0); mchar = char_upper (hello, 10); mchar = char_lower (hello, 10); free (x); free (a); free (b); free (c); free (d); return 0; }