@parameterized({'fsanitize_undefined': (['-fsanitize=undefined'],), 'fsanitize_integer': (['-fsanitize=integer'],), 'fsanitize_shift': (['-fsanitize=shift'],)})
@no_fastcomp('ubsan not supported on fastcomp')
@no_wasm2js('TODO: sanitizers in wasm2js')
def test_ubsan_full_left_shift(self, args):
    self.emcc_args += args
    self.do_run(open(path_from_root('tests', 'core', 'test_ubsan_full_left_shift.c')).read(), assert_all=True, expected_output=['src.cpp:3:5: runtime error: left shift of negative value -1', "src.cpp:7:5: runtime error: left shift of 16 by 29 places cannot be represented in type 'int'"])
@parameterized({'fsanitize_undefined': (['-fsanitize=undefined'],), 'fsanitize_integer': (['-fsanitize=integer'],), 'fsanitize_shift': (['-fsanitize=shift'],)})
@no_fastcomp('ubsan not supported on fastcomp')
@no_wasm2js('TODO: sanitizers in wasm2js')
def test_ubsan_full_left_shift(self, args):
    self.emcc_args += args
    self.do_run(open(path_from_root('tests', 'core', 'test_ubsan_full_left_shift.c')).read(), assert_all=True, expected_output=['src.cpp:3:5: runtime error: left shift of negative value -1', "src.cpp:7:5: runtime error: left shift of 16 by 29 places cannot be represented in type 'int'"])