diff --git a/devito/ir/iet/visitors.py b/devito/ir/iet/visitors.py index 2f1987aca9..228a3e7f86 100644 --- a/devito/ir/iet/visitors.py +++ b/devito/ir/iet/visitors.py @@ -705,7 +705,15 @@ def visit_Operator(self, o, mode='all'): efuncs.extend([self._visit(i), blankline]) # Definitions - headers = [c.Define(*i) for i in o._headers] + [blankline] + headers = [] + for h in o._headers: + try: + headers.append(c.Define(*h)) + except TypeError: + # Plain string + headers.append(c.Line(h)) + headers = headers + [blankline] + # headers = [c.Define(*i) for i in o._headers] + [blankline] # Header files includes = self._operator_includes(o) + [blankline] diff --git a/devito/passes/iet/dtypes.py b/devito/passes/iet/dtypes.py index 95b944c2b1..619d81fd8a 100644 --- a/devito/passes/iet/dtypes.py +++ b/devito/passes/iet/dtypes.py @@ -30,7 +30,7 @@ def _complex_includes(iet: Callable, lang: type[LangBB], compiler: Compiler, return iet, {} metadata = {} - lib = as_tuple(lang['header-complex']) + lib = as_tuple(lang['includes-complex']) if lang.get('complex-namespace') is not None: metadata['namespaces'] = lang['complex-namespace'] diff --git a/devito/passes/iet/languages/C.py b/devito/passes/iet/languages/C.py index 0453bdcad7..3bcade46e2 100644 --- a/devito/passes/iet/languages/C.py +++ b/devito/passes/iet/languages/C.py @@ -25,7 +25,7 @@ class CBB(LangBB): 'alloc-global-symbol': lambda i, j, k: Call('memcpy', (i, j, k)), # Complex and float16 - 'header-complex': 'complex.h', + 'includes-complex': 'complex.h', } diff --git a/devito/passes/iet/languages/CXX.py b/devito/passes/iet/languages/CXX.py index 5554308a0c..52e4ba695b 100644 --- a/devito/passes/iet/languages/CXX.py +++ b/devito/passes/iet/languages/CXX.py @@ -61,7 +61,7 @@ class CXXBB(LangBB): 'alloc-global-symbol': lambda i, j, k: Call('memcpy', (i, j, k)), # Complex and float16 - 'header-complex': 'complex', + 'includes-complex': 'complex', 'complex-namespace': [UsingNamespace('std::complex_literals')], 'def-complex': std_arith, }