Community
Participate
Working Groups
Eclipse IDE for C/C++ Developers Version: Kepler Service Release 1 Build id: 20130919-0819 Reproducing the bug: Consider the following code: ============== Original Version =============== #define A // Id to be renamed int main(int argc, char** argv) { int a; #ifdef A a = 1; #endif #ifndef A a = 2; #endif return a; } =============================================== Now, let's rename macro "A" to "not A" ============= Refactored Version ============== #define not A // Invalid rename int main(int argc, char** argv) { int a; #ifdef A a = 1; #endif #ifndef A // Missing definition a = 2; #endif return a; } =============================================== The change is not behavior-preserving: The refactoring tool did not update the following reference ("#ifdef A"). In fact, it doesn't make sense to have a "#ifdef not A" but the tool 1) Allows blank spaces while renaming and 2) didn't update all references. Thanks in advance.