This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP][FIX] Verify compatible types for declare variant calls
ClosedPublic

Authored by jdoerfert on Sep 27 2020, 2:17 PM.

Details

Summary

Especially for templates we need to check at some point if the base
function matches the specialization we might call instead. Before this
lead to the replacement of std::sqrt(int(2)) calls with one that
converts the argument to a std::complex<int>, clearly not the desired
behavior.

Reported as PR47655

Diff Detail

Event Timeline

jdoerfert created this revision.Sep 27 2020, 2:17 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 27 2020, 2:17 PM
jdoerfert requested review of this revision.Sep 27 2020, 2:17 PM
jdoerfert updated this revision to Diff 294567.Sep 27 2020, 2:30 PM

Remove lefotver dump

jdoerfert updated this revision to Diff 294596.Sep 27 2020, 9:45 PM

Add instantiation check and expand test case

The minimal reproducer and full app work now.

JonChesterfield accepted this revision.Sep 28 2020, 8:34 AM

Change looks reasonable in itself too

This revision is now accepted and ready to land.Sep 28 2020, 8:34 AM
This revision was landed with ongoing or failed builds.Sep 28 2020, 9:28 PM
This revision was automatically updated to reflect the committed changes.