def test_mangled_flags_with_fastmath_parfors_inline(self): # at least for these control cases flags = Flags() flags.nrt = True flags.auto_parallel = True flags.fastmath = True flags.inline = "always" self.assertLess(len(flags.get_mangle_string()), len(flags.summary())) demangled = flags.demangle(flags.get_mangle_string()) # There should be no pointer value in the demangled string. self.assertNotIn("0x", demangled)
def test_demangling_from_mangled_symbols(self): """Test demangling of flags from mangled symbol""" # Use default mangler to mangle the string fname = 'foo' argtypes = types.int32, flags = Flags() flags.nrt = True flags.target_backend = "myhardware" name = default_mangler( fname, argtypes, abi_tags=[flags.get_mangle_string()], ) # Find the ABI-tag. Starts with "B" prefix = "_Z3fooB" # Find the length of the ABI-tag m = re.match("[0-9]+", name[len(prefix):]) size = m.group(0) # Extract the ABI tag base = len(prefix) + len(size) abi_mangled = name[base:base + int(size)] # Demangle and check demangled = Flags.demangle(abi_mangled) self.assertEqual(demangled, flags.summary())
def test_mangled_flags_is_shorter(self): # at least for these control cases flags = Flags() flags.nrt = True flags.auto_parallel = True self.assertLess(len(flags.get_mangle_string()), len(flags.summary()))