why after deleting some functions, the IData Space overflow!

I got a demo sources from our chip vendor.
It can be compiled successfully!
However, after I comment out some functions, the compiler says that IData Space overflow. When I check the MAP file, I find that there is no ?STACK. Why?

I donot add any new file to the project, nor drop any file from the project. I only comment out several function calls in a file.

Why? Thanks a lot!

Parents
  • Overlay analysis?

    When you comment out calls to a function, those functions no longer have a place in the call tree from main(). So, they must become the root of a new call tree. This means their local variables, temporaries, etc., no longer overlay with the main call tree. Since the code remains in the program, it can increase the amount of memory needed. If the original program were close to its limits, commenting out a function can cause the program no longer to compile.

    You can fix the call tree manually with the OVERLAY directive in the linker. You also might try something like:

    if (0)
    MyFunction();

    rather than

    //MyFunction();

    to remove the call.

Reply
  • Overlay analysis?

    When you comment out calls to a function, those functions no longer have a place in the call tree from main(). So, they must become the root of a new call tree. This means their local variables, temporaries, etc., no longer overlay with the main call tree. Since the code remains in the program, it can increase the amount of memory needed. If the original program were close to its limits, commenting out a function can cause the program no longer to compile.

    You can fix the call tree manually with the OVERLAY directive in the linker. You also might try something like:

    if (0)
    MyFunction();

    rather than

    //MyFunction();

    to remove the call.

Children
More questions in this forum