Has anyone had success with __attribute__((flatten)) using yagarto?
I have tried various locations of the attribute tag in the function
declaration or definition, but it appears the attribute is completely
ignored.
1 | void test_flatten(void) __attribute__((flatten));
|
2 |
|
3 | void test_flatten(void){
|
4 | function1();
|
5 | function2();
|
6 | }
|
From what I understand, flatten is supposed to "inline" all calls within
a function, essentially creating one large "stand-alone" function. When
I step through the supposedly flattened code, there are still "bl"
instructions to function1() and function2() locations.