[all-commits] [llvm/llvm-project] 78747b: [clang][WebAssembly] Loosen restriction on `main` ...

Sam Clegg via All-commits all-commits at lists.llvm.org
Wed Jun 15 13:56:34 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 78747bd39af807eb6b56709b9713c303704c47ad
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2022-06-15 (Wed, 15 Jun 2022)

  Changed paths:
    M clang/lib/AST/Mangle.cpp
    A clang/test/CodeGen/mangle-wasm-main-noproto.c
    A clang/test/CodeGen/mangle-wasm-main-void.c
    A clang/test/CodeGen/mangle-wasm-main.c

  Log Message:
  [clang][WebAssembly] Loosen restriction on `main` symbol mangling

Remove the `hasPrototype()` restriction so that old style K&R
declarations of main work too.

For example the following has 2 params but no prototype.

int main(argc, argv)
    int argc;
    char *argv[];
  return 0;

Also, use `getNumParams()` over `param_size()` which seems to be a more
direct way to get at the same information.

Also, add missing tests for this mangling.

Differential Revision: https://reviews.llvm.org/D127888

More information about the All-commits mailing list