Skip to content

Commit 0e740a2

Browse files
authored
Honor -g0 when it follows -g. (#16728)
Fixes: #16724
1 parent 46d580e commit 0e740a2

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

emcc.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3072,10 +3072,10 @@ def consume_arg_file():
30723072
# if we don't need to preserve LLVM debug info, do not keep this flag
30733073
# for clang
30743074
if settings.DEBUG_LEVEL < 3:
3075-
newargs[i] = ''
3075+
newargs[i] = '-g0'
30763076
else:
3077-
# for 3+, report -g to clang as -g4 etc. are not accepted
3078-
newargs[i] = '-g'
3077+
# for 3+, report -g3 to clang as -g4 etc. are not accepted
3078+
newargs[i] = '-g3'
30793079
if settings.DEBUG_LEVEL == 4:
30803080
settings.GENERATE_SOURCE_MAP = 1
30813081
diagnostics.warning('deprecated', 'please replace -g4 with -gsource-map')

tests/test_other.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11904,3 +11904,10 @@ def test_in_tree_header_usage(self):
1190411904
create_file('test.c', '#include <emscripten.h>')
1190511905
err = self.expect_fail([EMCC, '-I' + path_from_root('system/include'), 'test.c'])
1190611906
self.assertContained('#error "Including files directly from the emscripten source tree is not supported', err)
11907+
11908+
def test_multiple_g_flags(self):
11909+
# Verify that a second -g argument overrides the first
11910+
self.run_process([EMCC, test_file('hello_world.c'), '-c', '-g'])
11911+
self.assertIn(b'.debug', read_binary('hello_world.o'))
11912+
self.run_process([EMCC, test_file('hello_world.c'), '-c', '-g', '-g0'])
11913+
self.assertNotIn(b'.debug', read_binary('hello_world.o'))

0 commit comments

Comments
 (0)