Not a comprehensive list, but some of the things I ran into when converting a large C++ codebase:
Libraries, of course. Find all of them, and see what they've got. In my case, we decided to move to Open Source libraries for JPEG handling and data compression, and so we compile our own. Commercial libraries may give you more problems.
Pointer conversions. On 32-bit systems, usually
sizeof(int) == sizeof(void *), and lots of people work on that basis. On a 64-bit system a round trip from pointer to
int to pointer will frequently lose half the pointer. Your compiler should be able to help here.
Data object size values. This would be a good time to go through and change all size values to
size_t, if you can find them, and pointer differences to
ptrdiff_t. This isn't necessarily going to be a problem, but since we were being pushed by the size of the data we were working on I wanted to make sure it could grow as much as possible.
Object size. Any
class you've got with pointer members is going to grow, and if you're changing any
ptrdiff_t. Again, this is unlikely to be a problem, but you may want to check for I/O. If you're doing any binary I/O, you really need to examine what's being input and output. If you're sending or receiving data through a fixed protocol, you need to look at it. Do a grep for
union and check each one for changes.