diff --git a/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp b/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp --- a/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp +++ b/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp @@ -177,6 +177,10 @@ HandleTemplateSpecializations(*cast(ND), Symbols, RDO); return true; + case Decl::Kind::Record: + case Decl::Kind::Typedef: + case Decl::Kind::Enum: + case Decl::Kind::EnumConstant: case Decl::Kind::TemplateTypeParm: return true; case Decl::Kind::Var: diff --git a/clang/test/InterfaceStubs/noninstancetypes.c b/clang/test/InterfaceStubs/noninstancetypes.c new file mode 100644 --- /dev/null +++ b/clang/test/InterfaceStubs/noninstancetypes.c @@ -0,0 +1,10 @@ +// RUN: %clang_cc1 -o - -emit-interface-stubs %s | FileCheck %s +// TODO: Change clang_cc1 to clang when llvm-ifs can accept empty symbol lists. + +// CHECK: Symbols: +// CHECK-NEXT: ... + +struct a; +enum { b }; +typedef int c; +