Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
7568 Discussions

Compiler bug breaking debug builds? Problems with Linking (LNK1318)

jlperla
Beginner
142 Views

Hi there,

I am using Intel 11.1.060 on Windows 7 with MSVC 2008SP1.

I have been compiling a fairly complex program using a lot of TMP (and boost::parameter). At a certain point during my development, I started getting the following error when linking:

"fatal error LNK1318: Unexpected PDB error". It also showed some sort of error about the debug file being corrupt earlier. With a particular set of code, the error happens every time. But if Iuse slightly simpler versions of the functions I am calling, I do not get the error.

This only happens in a debug build (either in MSVC2008 or using NMAKE), and the release works fine.

I have deleted the debug files, rebuilt, etc. generated my project files using CMake, so no invisible project file changesoccurred.

Any ideas or known patches? It would be extraordinarily difficult to create a test case since it only started happening when I hit a certain level of complexity. Though I can happily give you SVN access.

Thanks for your help,

Jesse

0 Kudos
2 Replies
JenniferJ
Moderator
142 Views

Hi Jesse,

Yes, we will need a testcase or SVN access. Please use private response for this.

We have fixed on such error before. Let me find the old testcase to see if it breaks with 11.1.060.

Jennifer

JenniferJ
Moderator
142 Views

I tried two testcases from earlier bug report, both can be compiled fine.

So I'll need more info and a testcase for this new case. See if you could isolate it more to which file casues the link error: remove /Zi using the binary-search method to find which file.

The previous bug report about the .pdb, it's related to an unamed "structure" type like:

struct { int a; int b} AA; // error

instead of

struct _AA {int a; int b} AA; // ok

Jennifer

Reply