[all-commits] [llvm/llvm-project] e3033c: [llvm][clang][IFS] Enhancing the llvm-ifs yaml for...

Puyan Lotfi via All-commits all-commits at lists.llvm.org
Wed Apr 1 07:49:15 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e3033c0ce5517efddbf92a079ad1e0ca4868591f
      https://github.com/llvm/llvm-project/commit/e3033c0ce5517efddbf92a079ad1e0ca4868591f
  Author: Puyan Lotfi <puyan at puyan.org>
  Date:   2020-04-01 (Wed, 01 Apr 2020)

  Changed paths:
    M clang/include/clang/Frontend/FrontendActions.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/test/InterfaceStubs/bad-format.cpp
    M clang/test/InterfaceStubs/blocks.c
    M clang/test/InterfaceStubs/class-template-partial-specialization.cpp
    M clang/test/InterfaceStubs/conflict-type.ifs
    M clang/test/InterfaceStubs/constructor-using-shadow.cpp
    M clang/test/InterfaceStubs/cxx-conversion.cpp
    M clang/test/InterfaceStubs/cxxdeduction-guide.cpp
    M clang/test/InterfaceStubs/driver-test3.c
    A clang/test/InterfaceStubs/empty.c
    M clang/test/InterfaceStubs/func.ifs
    M clang/test/InterfaceStubs/hidden-class-inheritance.cpp
    M clang/test/InterfaceStubs/indirect-field-decl.cpp
    M clang/test/InterfaceStubs/inline.c
    M clang/test/InterfaceStubs/lambda.cpp
    M clang/test/InterfaceStubs/namespace-alias.cpp
    M clang/test/InterfaceStubs/namespace.cpp
    M clang/test/InterfaceStubs/non-type-template-parm-decl.cpp
    M clang/test/InterfaceStubs/object.c
    M clang/test/InterfaceStubs/object.ifs
    M clang/test/InterfaceStubs/ppc.cpp
    M clang/test/InterfaceStubs/template-constexpr.cpp
    M clang/test/InterfaceStubs/template-namespace-function.cpp
    M clang/test/InterfaceStubs/template-template-parm-decl.cpp
    M clang/test/InterfaceStubs/trycatch.cpp
    M clang/test/InterfaceStubs/unresolved-using-typename.cpp
    M clang/test/InterfaceStubs/usings.cpp
    M clang/test/InterfaceStubs/var-template-specialization-decl.cpp
    M clang/test/InterfaceStubs/weak.cpp
    M clang/test/InterfaceStubs/windows.cpp
    M llvm/test/tools/llvm-ifs/Inputs/strong-mismatch-size.ifs
    M llvm/test/tools/llvm-ifs/Inputs/strong-mismatch-type.ifs
    M llvm/test/tools/llvm-ifs/conflict-header-format.ifs
    M llvm/test/tools/llvm-ifs/conflict-header-triple.ifs
    M llvm/test/tools/llvm-ifs/conflict-header-version.ifs
    M llvm/test/tools/llvm-ifs/conflict-size.ifs
    M llvm/test/tools/llvm-ifs/conflict-type.ifs
    M llvm/test/tools/llvm-ifs/conflict-weak.ifs
    M llvm/test/tools/llvm-ifs/default-empty.ifs
    A llvm/test/tools/llvm-ifs/empty1.ifs
    A llvm/test/tools/llvm-ifs/empty2.ifs
    M llvm/test/tools/llvm-ifs/func.ifs
    M llvm/test/tools/llvm-ifs/ios-tbd.ifs
    M llvm/test/tools/llvm-ifs/macos-tbd.ifs
    M llvm/test/tools/llvm-ifs/object-function-size-weak-combo.ifs
    M llvm/test/tools/llvm-ifs/object.ifs
    M llvm/test/tools/llvm-ifs/strong.ifs
    M llvm/test/tools/llvm-ifs/tvos-tbd.ifs
    M llvm/test/tools/llvm-ifs/version-ok.ifs
    M llvm/test/tools/llvm-ifs/watchos-tbd.ifs
    M llvm/test/tools/llvm-ifs/weak-mismatch.ifs
    M llvm/test/tools/llvm-ifs/weak.ifs
    M llvm/tools/llvm-ifs/llvm-ifs.cpp

  Log Message:
  -----------
  [llvm][clang][IFS] Enhancing the llvm-ifs yaml format for symbol lists.

Prior to this change the clang interface stubs format resembled
something ending with a symbol list like this:

 Symbols:
   a: { Type: Func }

This was problematic because we didn't actually want a map format and
also because we didn't like that an empty symbol list required
"Symbols: {}". That is to say without the empty {} llvm-ifs would crash
on an empty list.

With this new format it is much more clear which field is the symbol
name, and instead the [] that is used to express an empty symbol vector
is optional, ie:

Symbols:
 - { Name: a, Type: Func }

or

Symbols: []

or

Symbols:

This further diverges the format from existing llvm-elftapi. This is a
good thing because although the format originally came from the same
place, they are not the same in any way.

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




More information about the All-commits mailing list