Hello,
Could you confirm that dynamic_cast is not (yet?) supported by OpenACC?
Here is the small reproducer:
#include <iostream>
#include "openacc.h"
#include "accel.h"
class base
{
public:
base(){}
virtual ~base(){}
int base_int;
};
class derived : public base
{
public:
derived(){}
~derived(){}
int derived_int;
};
int main ()
{
base basevar;
#pragma acc serial
{
derived* derivedptr = dynamic_cast<derived*>(&basevar);
}
return 0;
}
With “pgc++ -acc test.C”, the error message is:
"test.C", line 27: warning: variable "derivedptr" was declared but never
referenced
derived* derivedptr = dynamic_cast<derived*>(&basevar);
^
PGCC-S-0155-PGI support procedure called within a compute region: __dynamic_cast (test.C: 27)
PGCC-S-0155-Compiler failed to translate accelerator region (see -Minfo messages) (test.C: 26)
PGCC/x86-64 Linux 19.4-0: compilation completed with severe errors
Thanks,
Shine