Procedure Inliner does not handle Symbol name conflicts
Procedure Inliner produces incorrect code when inlining multiple functions to the same Scope while both define Symbols with the same name.
e.g:
#pragma gcs_inline
void foo(int a, int b) {
int buffer[512];
int i;
for(i=a;i<b;i++) {
buffer[i]=10;
}
}
void bar(int x, int y) {
int buffer[512];
int i;
for(i=0;i<x;i++) {
#pragma gcs_inline
foo(8, 9);
buffer[i]=0;
}
}
int main(int argc, char** argv) {
#pragma gcs_inline
bar(7,argc);
}