diff --git a/src/compiler/crystal/codegen/codegen.cr b/src/compiler/crystal/codegen/codegen.cr index cbf63ad..1c0e537 100644 --- a/src/compiler/crystal/codegen/codegen.cr +++ b/src/compiler/crystal/codegen/codegen.cr @@ -2050,13 +2050,10 @@ module Crystal def self.safe_mangling(program, name) if program.has_flag?("windows") name.gsub do |char| - case char - when '<', '>', '(', ')', '*', ':', ',', '#', '@', ' ' - "." - when '+' - ".." - else + if char.ascii_alphanumeric? char + else + ".#{char.ord.to_s(16)}." end end else