diff --git a/pyopencl/__init__.py b/pyopencl/__init__.py index 02fa08e1d7d6a2dd1a0ec5c6a4cf778d70f3ecb2..0b68de82e12dae3487d46c9b969705e50cc5ba88 100644 --- a/pyopencl/__init__.py +++ b/pyopencl/__init__.py @@ -1269,9 +1269,16 @@ def _add_functionality(): } def to_string(cls, value, default_format=None): + names = [] for name in dir(cls): - if (not name.startswith("_") and getattr(cls, name) == value): - return name + attr = getattr(cls, name) + if name.startswith('_') or type(attr) is not type(value): + continue + if attr == value or attr & value: + names.append(name) + + if names: + return " ".join(names) if default_format is None: raise ValueError("a name for value %d was not found in %s"