diff options
author | Julie Hockett <juliehockett@google.com> | 2019-06-18 18:07:33 +0000 |
---|---|---|
committer | Julie Hockett <juliehockett@google.com> | 2019-06-18 18:07:33 +0000 |
commit | d9b3d08a9a631639190933531057b00d94afb758 (patch) | |
tree | b0890c4a9ca8e47d8ea368cf81309be299916c2a | |
parent | 76a149ef8187310a60fd20481fdb2a10c8ba968e (diff) | |
download | bcm5719-llvm-d9b3d08a9a631639190933531057b00d94afb758.tar.gz bcm5719-llvm-d9b3d08a9a631639190933531057b00d94afb758.zip |
[clang-tidy] Split fuchsia-default-arguments
Splits fuchsia-default-arguments check into two checks. fuchsia-default-arguments-calls warns if a function or method is called with default arguments. fuchsia-default-arguments-declarations warns if a function or method is declared with default parameters.
Committed on behalf of @diegoast (Diego Astiazarán).
Resolves b38051.
Differential Revision: https://reviews.llvm.org/D62437
llvm-svn: 363712
13 files changed, 229 insertions, 113 deletions
diff --git a/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt b/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt index b69a5c06470..30b319e7e5a 100644 --- a/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt @@ -1,7 +1,8 @@ set(LLVM_LINK_COMPONENTS support) add_clang_library(clangTidyFuchsiaModule - DefaultArgumentsCheck.cpp + DefaultArgumentsCallsCheck.cpp + DefaultArgumentsDeclarationsCheck.cpp FuchsiaTidyModule.cpp MultipleInheritanceCheck.cpp OverloadedOperatorCheck.cpp diff --git a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCallsCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCallsCheck.cpp new file mode 100644 index 00000000000..fa814b8c29a --- /dev/null +++ b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCallsCheck.cpp @@ -0,0 +1,35 @@ +//===--- DefaultArgumentsCallsCheck.cpp - clang-tidy-----------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "DefaultArgumentsCallsCheck.h" + +using namespace clang::ast_matchers; + +namespace clang { +namespace tidy { +namespace fuchsia { + +void DefaultArgumentsCallsCheck::registerMatchers(MatchFinder *Finder) { + // Calling a function which uses default arguments is disallowed. + Finder->addMatcher(cxxDefaultArgExpr().bind("stmt"), this); +} + +void DefaultArgumentsCallsCheck::check(const MatchFinder::MatchResult &Result) { + const auto *S = Result.Nodes.getNodeAs<CXXDefaultArgExpr>("stmt"); + if (!S) + return; + + diag(S->getUsedLocation(), + "calling a function that uses a default argument is disallowed"); + diag(S->getParam()->getBeginLoc(), "default parameter was declared here", + DiagnosticIDs::Note); +} + +} // namespace fuchsia +} // namespace tidy +} // namespace clang diff --git a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCheck.h b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCallsCheck.h index 8d26c35a6a9..18dfe0c9cf2 100644 --- a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCheck.h +++ b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCallsCheck.h @@ -1,4 +1,4 @@ -//===--- DefaultArgumentsCheck.h - clang-tidy--------------------*- C++ -*-===// +//===--- DefaultArgumentsCallsCheck.h - clang-tidy --------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_H -#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_H +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_CALLS_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_CALLS_H #include "../ClangTidyCheck.h" @@ -15,13 +15,13 @@ namespace clang { namespace tidy { namespace fuchsia { -/// Default arguments are not allowed in declared or called functions. +/// Default arguments are not allowed in called functions. /// /// For the user-facing documentation see: -/// http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-default-arguments.html -class DefaultArgumentsCheck : public ClangTidyCheck { +/// http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-default-arguments-calls.html +class DefaultArgumentsCallsCheck : public ClangTidyCheck { public: - DefaultArgumentsCheck(StringRef Name, ClangTidyContext *Context) + DefaultArgumentsCallsCheck(StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context) {} void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; @@ -31,4 +31,4 @@ public: } // namespace tidy } // namespace clang -#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_H +#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_CALLS_H diff --git a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCheck.cpp deleted file mode 100644 index 7f83ac674de..00000000000 --- a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsCheck.cpp +++ /dev/null @@ -1,61 +0,0 @@ -//===--- DefaultArgumentsCheck.cpp - clang-tidy----------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "DefaultArgumentsCheck.h" - -using namespace clang::ast_matchers; - -namespace clang { -namespace tidy { -namespace fuchsia { - -void DefaultArgumentsCheck::registerMatchers(MatchFinder *Finder) { - // Calling a function which uses default arguments is disallowed. - Finder->addMatcher(cxxDefaultArgExpr().bind("stmt"), this); - // Declaring default parameters is disallowed. - Finder->addMatcher(parmVarDecl(hasDefaultArgument()).bind("decl"), this); -} - -void DefaultArgumentsCheck::check(const MatchFinder::MatchResult &Result) { - if (const auto *S = - Result.Nodes.getNodeAs<CXXDefaultArgExpr>("stmt")) { - diag(S->getUsedLocation(), - "calling a function that uses a default argument is disallowed"); - diag(S->getParam()->getBeginLoc(), "default parameter was declared here", - DiagnosticIDs::Note); - } else if (const ParmVarDecl *D = - Result.Nodes.getNodeAs<ParmVarDecl>("decl")) { - SourceRange DefaultArgRange = D->getDefaultArgRange(); - - if (DefaultArgRange.getEnd() != D->getEndLoc()) { - return; - } else if (DefaultArgRange.getBegin().isMacroID()) { - diag(D->getBeginLoc(), - "declaring a parameter with a default argument is disallowed"); - } else { - SourceLocation StartLocation = - D->getName().empty() ? D->getBeginLoc() : D->getLocation(); - - SourceRange RemovalRange(Lexer::getLocForEndOfToken( - StartLocation, 0, - *Result.SourceManager, - Result.Context->getLangOpts() - ), - DefaultArgRange.getEnd() - ); - - diag(D->getBeginLoc(), - "declaring a parameter with a default argument is disallowed") - << D << FixItHint::CreateRemoval(RemovalRange); - } - } -} - -} // namespace fuchsia -} // namespace tidy -} // namespace clang diff --git a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsDeclarationsCheck.cpp b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsDeclarationsCheck.cpp new file mode 100644 index 00000000000..926c8b426df --- /dev/null +++ b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsDeclarationsCheck.cpp @@ -0,0 +1,54 @@ +//===--- DefaultArgumentsDeclarationsCheck.cpp - clang-tidy ---------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "DefaultArgumentsDeclarationsCheck.h" + +using namespace clang::ast_matchers; + +namespace clang { +namespace tidy { +namespace fuchsia { + +void DefaultArgumentsDeclarationsCheck::registerMatchers(MatchFinder *Finder) { + // Declaring default parameters is disallowed. + Finder->addMatcher(parmVarDecl(hasDefaultArgument()).bind("decl"), this); +} + +void DefaultArgumentsDeclarationsCheck::check( + const MatchFinder::MatchResult &Result) { + const auto *D = Result.Nodes.getNodeAs<ParmVarDecl>("decl"); + if (!D) + return; + + SourceRange DefaultArgRange = D->getDefaultArgRange(); + + if (DefaultArgRange.getEnd() != D->getEndLoc()) + return; + + if (DefaultArgRange.getBegin().isMacroID()) { + diag(D->getBeginLoc(), + "declaring a parameter with a default argument is disallowed"); + return; + } + + SourceLocation StartLocation = + D->getName().empty() ? D->getBeginLoc() : D->getLocation(); + + SourceRange RemovalRange( + Lexer::getLocForEndOfToken(StartLocation, 0, *Result.SourceManager, + Result.Context->getLangOpts()), + DefaultArgRange.getEnd()); + + diag(D->getBeginLoc(), + "declaring a parameter with a default argument is disallowed") + << D << FixItHint::CreateRemoval(RemovalRange); +} + +} // namespace fuchsia +} // namespace tidy +} // namespace clang diff --git a/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsDeclarationsCheck.h b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsDeclarationsCheck.h new file mode 100644 index 00000000000..19f16e6b46f --- /dev/null +++ b/clang-tools-extra/clang-tidy/fuchsia/DefaultArgumentsDeclarationsCheck.h @@ -0,0 +1,34 @@ +//===--- DefaultArgumentsDeclarationsCheck.h - clang-tidy -------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_DECLARATIONS_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_DECLARATIONS_H + +#include "../ClangTidyCheck.h" + +namespace clang { +namespace tidy { +namespace fuchsia { + +/// Default parameters are not allowed in declared functions. +/// +/// For the user-facing documentation see: +/// http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-default-parameters.html +class DefaultArgumentsDeclarationsCheck : public ClangTidyCheck { +public: + DefaultArgumentsDeclarationsCheck(StringRef Name, ClangTidyContext *Context) + : ClangTidyCheck(Name, Context) {} + void registerMatchers(ast_matchers::MatchFinder *Finder) override; + void check(const ast_matchers::MatchFinder::MatchResult &Result) override; +}; + +} // namespace fuchsia +} // namespace tidy +} // namespace clang + +#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_DEFAULT_ARGUMENTS_DECLARATIONS_H diff --git a/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp b/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp index 034a30ea38d..c59ec85468c 100644 --- a/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp @@ -1,4 +1,4 @@ -//===--- FuchsiaTidyModule.cpp - clang-tidy--------------------------------===// +//===--- FuchsiaTidyModule.cpp - clang-tidy -------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -10,7 +10,8 @@ #include "../ClangTidyModule.h" #include "../ClangTidyModuleRegistry.h" #include "../google/UnnamedNamespaceInHeaderCheck.h" -#include "DefaultArgumentsCheck.h" +#include "DefaultArgumentsCallsCheck.h" +#include "DefaultArgumentsDeclarationsCheck.h" #include "MultipleInheritanceCheck.h" #include "OverloadedOperatorCheck.h" #include "RestrictSystemIncludesCheck.h" @@ -28,8 +29,10 @@ namespace fuchsia { class FuchsiaModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { - CheckFactories.registerCheck<DefaultArgumentsCheck>( - "fuchsia-default-arguments"); + CheckFactories.registerCheck<DefaultArgumentsCallsCheck>( + "fuchsia-default-arguments-calls"); + CheckFactories.registerCheck<DefaultArgumentsDeclarationsCheck>( + "fuchsia-default-arguments-declarations"); CheckFactories.registerCheck<google::build::UnnamedNamespaceInHeaderCheck>( "fuchsia-header-anon-namespaces"); CheckFactories.registerCheck<MultipleInheritanceCheck>( diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index ed8f15295f8..1442c8e5894 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -125,6 +125,20 @@ Improvements to clang-tidy repeated branches in ``switch`` statements and indentical true and false branches in conditional operators. +- New :doc:`fuchsia-default-arguments-calls + <clang-tidy/checks/fuchsia-default-arguments-calls>` check. + + Warns if a function or method is called with default arguments. + This was previously done by `fuchsia-default-arguments check`, which has been + removed. + +- New :doc:`fuchsia-default-arguments-calls + <clang-tidy/checks/fuchsia-default-arguments-calls>` check. + + Warns if a function or method is declared with default parameters. + This was previously done by `fuchsia-default-arguments check` check, which has + been removed. + - New :doc:`google-readability-avoid-underscore-in-googletest-name <clang-tidy/checks/google-readability-avoid-underscore-in-googletest-name>` check. @@ -166,6 +180,14 @@ Improvements to clang-tidy which greatly reduces warnings related to loops which are unlikely to cause an actual functional bug. +- The ‘fuchsia-default-arguments’ check has been removed. + + Warnings of function or method calls and declarations with default arguments + were moved to :doc:`fuchsia-default-arguments-calls + <clang-tidy/checks/fuchsia-default-arguments-calls>` and + :doc:`fuchsia-default-arguments-calls + <clang-tidy/checks/fuchsia-default-arguments-calls>` checks respectively. + - The :doc:`google-runtime-int <clang-tidy/checks/google-runtime-int>` check has been disabled in Objective-C++. diff --git a/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments.rst b/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments-calls.rst index ab011bf345b..bc33ed10d8b 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments-calls.rst @@ -1,18 +1,16 @@ -.. title:: clang-tidy - fuchsia-default-arguments +.. title:: clang-tidy - fuchsia-default-arguments-calls -fuchsia-default-arguments -========================= +fuchsia-default-arguments-calls +=============================== -Warns if a function or method is declared or called with default arguments. +Warns if a function or method is called with default arguments. -For example, the declaration: +For example, given the declaration: .. code-block:: c++ int foo(int value = 5) { return value; } -will cause a warning. - A function call expression that uses a default argument will be diagnosed. Calling it without defaults will not cause a warning: diff --git a/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments-declarations.rst b/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments-declarations.rst new file mode 100644 index 00000000000..774425e9867 --- /dev/null +++ b/clang-tools-extra/docs/clang-tidy/checks/fuchsia-default-arguments-declarations.rst @@ -0,0 +1,16 @@ +.. title:: clang-tidy - fuchsia-default-arguments-declarations + +fuchsia-default-arguments-declarations +====================================== + +Warns if a function or method is declared with default parameters. + +For example, the declaration: + +.. code-block:: c++ + + int foo(int value = 5) { return value; } + +will cause a warning. + +See the features disallowed in Fuchsia at https://fuchsia.googlesource.com/zircon/+/master/docs/cxx.md diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index 6661cafa0f3..cafc346d56e 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -124,7 +124,8 @@ Clang-Tidy Checks cppcoreguidelines-pro-type-vararg cppcoreguidelines-slicing cppcoreguidelines-special-member-functions - fuchsia-default-arguments + fuchsia-default-arguments-calls + fuchsia-default-arguments-declarations fuchsia-header-anon-namespaces (redirects to google-build-namespaces) <fuchsia-header-anon-namespaces> fuchsia-multiple-inheritance fuchsia-overloaded-operator diff --git a/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments-calls.cpp b/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments-calls.cpp new file mode 100644 index 00000000000..ed9079092f6 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments-calls.cpp @@ -0,0 +1,36 @@ +// RUN: %check_clang_tidy %s fuchsia-default-arguments-calls %t + +int foo(int value = 5) { return value; } + +int f() { + foo(); + // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments-calls] + // CHECK-NOTES: [[@LINE-5]]:9: note: default parameter was declared here +} + +int bar(int value) { return value; } + +int n() { + foo(0); + bar(0); +} + +void x(int i = 12); + +struct S { + void x(int i); +}; + +void S::x(int i = 12) {} + +int main() { + S s; + s.x(); + // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments-calls] + // CHECK-NOTES: [[@LINE-6]]:11: note: default parameter was declared here + // CHECK-NEXT: void S::x(int i = 12) {} + x(); + // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments-calls] + // CHECK-NOTES: [[@LINE-16]]:8: note: default parameter was declared here + // CHECK-NEXT: void x(int i = 12); +} diff --git a/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments.cpp b/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments-declarations.cpp index 23f269ad129..1fe7041e24c 100644 --- a/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments.cpp +++ b/clang-tools-extra/test/clang-tidy/fuchsia-default-arguments-declarations.cpp @@ -1,26 +1,15 @@ -// RUN: %check_clang_tidy %s fuchsia-default-arguments %t +// RUN: %check_clang_tidy %s fuchsia-default-arguments-declarations %t int foo(int value = 5) { return value; } -// CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] +// CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: int foo(int value) { return value; } -int f() { - foo(); - // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments] - // CHECK-NOTES: [[@LINE-7]]:9: note: default parameter was declared here -} - int bar(int value) { return value; } -int n() { - foo(0); - bar(0); -} - class Baz { public: int a(int value = 5) { return value; } - // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] + // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: int a(int value) { return value; } int b(int value) { return value; } @@ -29,7 +18,7 @@ public: class Foo { // Fix should be suggested in declaration int a(int value = 53); - // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] + // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: int a(int value); }; @@ -40,7 +29,7 @@ int Foo::a(int value) { // Elided functions void f(int = 5) {}; -// CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] +// CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: void f(int) {}; void g(int) {}; @@ -49,12 +38,12 @@ void g(int) {}; #define D(val) = val void h(int i D(5)); -// CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] +// CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES-NOT: void h(int i); void x(int i); void x(int i = 12); -// CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] +// CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: void x(int i); void x(int i) {} @@ -64,17 +53,5 @@ struct S { }; void S::x(int i = 12) {} -// CHECK-NOTES: [[@LINE-1]]:11: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments] +// CHECK-NOTES: [[@LINE-1]]:11: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: void S::x(int i) {} - -int main() { - S s; - s.x(); - // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments] - // CHECK-NOTES: [[@LINE-8]]:11: note: default parameter was declared here - // CHECK-NEXT: void S::x(int i = 12) {} - x(); - // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments] - // CHECK-NOTES: [[@LINE-18]]:8: note: default parameter was declared here - // CHECK-NEXT: void x(int i = 12); -} |