- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to build a project with ICC and it fails with atleast one of the files. I have attached the pre-processed file ? Can you help please ?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Karthik,
What compiler options are using to build this preprocessed file?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Karthik K.,
Can you provide the source code, the GCC compiler options and the Intel C++ compiler options you are using. It is a bit difficult to understand the issue without more detailed info.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I was able to reproduce the compilation problems using a GNU 6.0 compiler and icpc with a GNU 6.x reference compiler (this enables -std=c++14 by default).
I saw about a half dozen compilation problems, but I think there are only two actual problems (the others are duplicates or cascading errors from the orignal error).
(1) Reported as CMPLRS-42520.
This error:
/*
clang and GNU allow this, Intel gives an error.
sptel15-400> g++ -c -std=c++14 bug1.cpp
sptel15-401> icpc -c bug1.cpp
"bug1.cpp", line 17: error: constexpr constructor calls non-constexpr
constructor for subobject initialization
constexpr LiveSet() : Parent() {}
^
1 error detected in the compilation of "bug1.cpp".
sptel15-402>
this is medium priority.
thanks
Judy
*/
template <typename Set>
struct LiveSetAccessors {
LiveSetAccessors() {}
};
template <class Accessors>
struct CommonRegSet : public Accessors
{
typedef Accessors Parent;
constexpr CommonRegSet() : Parent() {}
};
struct LiveSet
: public CommonRegSet<LiveSetAccessors<int>>
{
typedef CommonRegSet<LiveSetAccessors<int>> Parent;
constexpr LiveSet() : Parent() {}
};
//constexpr LiveSet l; // GNU gives an error here if constexpr is used
(2) Reported as CMPLRS-42497
/*
Intel gives an error here, GNU and Clang do not.
sptel15-407> g++ -c bug2.cpp
sptel15-408> icpc bug2.cpp
"bug2.cpp", line 13: error: class "C<int>" has no member "foo"
if (C<T>::foo(*thingp)) ;
^
detected during instantiation of "void foo2(T *) [with T=int]" at
line 21
1 error detected in the compilation of "bug2.cpp".
sptel15-409>
*/
template <typename T>
struct C {};
template <typename T>
struct C<T*>
;
template <typename T>
void foo2(T* thingp)
typedef void(fp)(int);
template < fp TraceFn = foo2> void f();
Thank you for reporting these problems...
Judy
Attachments

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page