[PATCH] D91980: [OpenMP] Add initial support for `omp [begin/end] assumes`
Alexey Bataev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 23 13:33:15 PST 2020
ABataev added inline comments.
================
Comment at: clang/include/clang/Sema/Sema.h:10333
+ /// Check if there is an active global `omp begin assumes` directive.
+ bool isInOpenMPAssumeScope() { return !OMPAssumeScoped.empty(); }
+
----------------
jdoerfert wrote:
> ABataev wrote:
> > ABataev wrote:
> > > `const` member functions.
> > It may have side-effects with template instantiations. What if we have something like this:
> > ```
> > #pragma omp begin assumes ...
> > template <typename T>
> > struct S {
> > ...
> > }
> > #pragma omp end assumes
> >
> > void bar() {
> > #pragma omp assumes ...
> > {
> > S<int> s;
> > s.foo();
> > }
> > }
> > ```
> > ?
> >
> > `struct S<int>` will be instantiated in the second assume region context though I doubt this is the user intention.
> I'm not sure what problem you expect here. Could you elaborate what you think should happen or should not?
May it lead to the wrong compiler assumptions and result in the incorrect codegen?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91980/new/
https://reviews.llvm.org/D91980
More information about the cfe-commits
mailing list