From: Wheeler, F. W (Research) <wh...@cr...> - 2003-03-05 20:03:06
|
Andrew Fitzgibbon wrote: > Fred Wheeler wrote: > > I'm not going to check in the bool->int change right yet. I > > suspect this is really a VCL problem. > > I'm hoping that someone else will see that and have some idea > > what could be going wrong in vcl. > > I suspect forward declaration of vector<T> maybe? The compiler > is allowed to have a specialization of vector<bool>, and I guess > it should live in <vector>. I'm not sure what this forward declaration issue might be, but I'm happy to try anything anyone specifically suggests. When I was trying to diagnose the problem, one of the things I tried was to give the two files in question identical #includes. That was no help. I have a hunch that point might be relevant to the suggestion that forward declarations could be an issue. When I saw the following on the web I was hopeful that this was a known fixed problem and the fix would show up in the next release. Fixes in the build of August 26,2002 Q143482, Q141518 Error with the vector<bool> specialization Q142106 internal error: 0_1451 due to optimize routine However, I see this same note in with the docs that came with our current version of the compiler (comp_intel/7.0/compiler70/docs/notes/icc_issues.txt) so I guess this is not the problem. Darn. > Can you get a minimal pair of files which produce different > mangling? > It could be an icc bug as well, and Intel will need small > example files to be convinced... I may try to whittle down what's in VCSL to get a minimal example. However, I am not enthusiastic about going through a lot of trouble for Intel's sake. They make it very difficult to get real information about known and fixed problems with icc on their web site. Also, I think you need to jump through some registration hoops just to submit a problem report. Some nerve. I just tried both vcl_vector<bool> and std::vector<bool> in vcsl. Both give the identical link problem I originally reported. I guess vcl_ is just a pass through to STL under icc. So, it seems clear that this is an icc bug, or a *very* obscure language issue. Fred Wheeler |