summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-06-04 16:24:45 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-06-04 17:00:52 +0900
commit2b7454eb922ccbda065affc92e2e94c7c28b809f (patch)
treec3f0983400d43a7475b9f524691f32735eb70a9e
parent047471c52960e32146025fab064487d25f92a141 (diff)
Update leaked-globals [Bug #16934]
* match uppercase types which would be global, other than [BDT] * ignore `RUBY_` prefixed symbols
-rw-r--r--common.mk2
-rwxr-xr-xtool/leaked-globals4
2 files changed, 3 insertions, 3 deletions
diff --git a/common.mk b/common.mk
index a7bb4950d9..bc0044fb43 100644
--- a/common.mk
+++ b/common.mk
@@ -356,7 +356,7 @@ $(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)
ruby.imp: $(COMMONOBJS)
$(Q){ \
$(NM) -Pgp $(COMMONOBJS) | \
- awk 'BEGIN{print "#!"}; $$2~/^[BDT]$$/&&$$1!~/^$(SYMBOL_PREFIX)(Init_|InitVM_|ruby_static_id_|.*_threadptr_|rb_ec_)|^\./{print $$1}'; \
+ awk 'BEGIN{print "#!"}; $$2~/^[A-TV-Z]$$/&&$$1!~/^$(SYMBOL_PREFIX)(Init_|InitVM_|ruby_static_id_|.*_threadptr_|rb_ec_)|^\./{print $$1}'; \
($(CHDIR) $(srcdir) && \
exec sed -n '/^MJIT_FUNC_EXPORTED/!d;N;s/.*\n\(rb_[a-zA-Z_0-9]*\).*/$(SYMBOL_PREFIX)\1/p' cont.c gc.c thread*c vm*.c) \
} | \
diff --git a/tool/leaked-globals b/tool/leaked-globals
index ec116211de..0fb9e657c9 100755
--- a/tool/leaked-globals
+++ b/tool/leaked-globals
@@ -21,10 +21,10 @@ print "Checking leaked global symbols..."
STDOUT.flush
IO.foreach("|#{NM} -Pgp #{ARGV.join(' ')}") do |line|
n, t, = line.split
- next unless /[BDT]/ =~ t
+ next unless /[A-TV-Z]/ =~ t
next unless n.sub!(/^#{SYMBOL_PREFIX}/o, "")
next if n.include?(".")
- next if /\A(?:Init_|InitVM_|ruby_|rb_|[Oo]nig|dln_|mjit_|coroutine_|nu(?:comp|rat)_)/ =~ n
+ next if /\A(?:Init_|InitVM_|RUBY_|ruby_|rb_|[Oo]nig|dln_|mjit_|coroutine_|nu(?:comp|rat)_)/ =~ n
next if REPLACE.include?(n)
puts col.fail("leaked") if count.zero?
count += 1