Author: vsapsai Date: Tue Jan 2 10:02:19 2018 New Revision: 321660 URL: http://llvm.org/viewvc/llvm-project?rev=321660&view=rev Log: [Sema] Don't emit the -Wstrict-prototypes warning for variadic functions.
rdar://problem/33251668 Reviewers: arphaman, ahatanak Reviewed By: arphaman Subscribers: ptitei, cfe-commits Differential Revision: https://reviews.llvm.org/D41528 Modified: cfe/trunk/lib/Sema/SemaType.cpp cfe/trunk/test/Sema/warn-strict-prototypes.c Modified: cfe/trunk/lib/Sema/SemaType.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=321660&r1=321659&r2=321660&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaType.cpp (original) +++ cfe/trunk/lib/Sema/SemaType.cpp Tue Jan 2 10:02:19 2018 @@ -4767,7 +4767,7 @@ static TypeSourceInfo *GetFullTypeForDec break; case DeclaratorChunk::Function: { const DeclaratorChunk::FunctionTypeInfo &FTI = DeclType.Fun; - if (FTI.NumParams == 0) + if (FTI.NumParams == 0 && !FTI.isVariadic) S.Diag(DeclType.Loc, diag::warn_strict_prototypes) << IsBlock << FixItHint::CreateInsertion(FTI.getRParenLoc(), "void"); Modified: cfe/trunk/test/Sema/warn-strict-prototypes.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/warn-strict-prototypes.c?rev=321660&r1=321659&r2=321660&view=diff ============================================================================== --- cfe/trunk/test/Sema/warn-strict-prototypes.c (original) +++ cfe/trunk/test/Sema/warn-strict-prototypes.c Tue Jan 2 10:02:19 2018 @@ -65,3 +65,9 @@ void foo11(p, p2) int p; int p2; {} void __attribute__((cdecl)) foo12(d) // expected-warning {{this old-style function definition is not preceded by a prototype}} short d; {} + +// No warnings for variadic functions. Overloadable attribute is required +// to avoid err_ellipsis_first_param error. +// rdar://problem/33251668 +void foo13(...) __attribute__((overloadable)); +void foo13(...) __attribute__((overloadable)) {} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits