int[*] foo = {1,2,3}; fn int* bar(int index) { int* array = &foo; return &array[index]; } fn int* baz(int index) { int[] array = &foo; return &array[index]; } fn int* abc(int index) { int[3] array; return &array[1]; // #error: invalid once the function returns } fn int* abc2(int index) { int val; return &val; // #error: invalid once the function returns }