Lines Matching +full:- +full:- +full:target
1 #include "../clang-tidy/utils/FixItHintUtils.h"
24 Finder->addMatcher(varDecl(hasName("target")).bind("var"), this);
32 auto Diag = diag(D->getBeginLoc(), "doing const transformation");
50 // ----------------------------------------------------------------------------
51 // Test Value-like types. Everything with indirection is done later.
52 // ----------------------------------------------------------------------------
55 StringRef Snippet = "int target = 0;";
57 EXPECT_EQ("const int target = 0;", runCheckOnCode<ValueLTransform>(Snippet));
58 EXPECT_EQ("const int target = 0;",
61 EXPECT_EQ("int const target = 0;", runCheckOnCode<ValueRTransform>(Snippet));
62 EXPECT_EQ("int const target = 0;",
67 StringRef S = "MyInt target = 0;";
70 EXPECT_EQ(Cat("const MyInt target = 0;"),
72 EXPECT_EQ(Cat("const MyInt target = 0;"),
75 EXPECT_EQ(Cat("MyInt const target = 0;"),
77 EXPECT_EQ(Cat("MyInt const target = 0;"),
82 StringRef S = "MyInt target = nullptr;";
85 EXPECT_EQ(Cat("const MyInt target = nullptr;"),
87 EXPECT_EQ(Cat("const MyInt target = nullptr;"),
90 EXPECT_EQ(Cat("MyInt const target = nullptr;"),
92 EXPECT_EQ(Cat("MyInt const target = nullptr;"),
97 StringRef S = "MyInt target = 0;";
100 EXPECT_EQ(Cat("const MyInt target = 0;"),
102 EXPECT_EQ(Cat("const MyInt target = 0;"),
105 EXPECT_EQ(Cat("MyInt const target = 0;"),
107 EXPECT_EQ(Cat("MyInt const target = 0;"),
112 StringRef S = "MyInt target = nullptr;";
115 EXPECT_EQ(Cat("const MyInt target = nullptr;"),
117 EXPECT_EQ(Cat("const MyInt target = nullptr;"),
120 EXPECT_EQ(Cat("MyInt const target = nullptr;"),
122 EXPECT_EQ(Cat("MyInt const target = nullptr;"),
127 StringRef S = "auto target = f();";
130 EXPECT_EQ(Cat("const auto target = f();"),
132 EXPECT_EQ(Cat("const auto target = f();"),
135 EXPECT_EQ(Cat("auto const target = f();"),
137 EXPECT_EQ(Cat("auto const target = f();"),
142 StringRef S = "auto target = f();";
145 EXPECT_EQ(Cat("const auto target = f();"),
147 EXPECT_EQ(Cat("const auto target = f();"),
150 EXPECT_EQ(Cat("auto const target = f();"),
152 EXPECT_EQ(Cat("auto const target = f();"),
157 StringRef S = "auto target = f();";
160 EXPECT_EQ(Cat("const auto target = f();"),
162 EXPECT_EQ(Cat("const auto target = f();"),
165 EXPECT_EQ(Cat("auto const target = f();"),
167 EXPECT_EQ(Cat("auto const target = f();"),
172 StringRef S = "decltype(f()) target = f();";
175 EXPECT_EQ(Cat("const decltype(f()) target = f();"),
177 EXPECT_EQ(Cat("const decltype(f()) target = f();"),
180 EXPECT_EQ(Cat("decltype(f()) const target = f();"),
182 EXPECT_EQ(Cat("decltype(f()) const target = f();"),
189 StringRef S = "decltype(f()) target = f();";
192 EXPECT_EQ(Cat("const decltype(f()) target = f();"),
194 EXPECT_EQ(Cat("const decltype(f()) target = f();"),
197 EXPECT_EQ(Cat("decltype(f()) const target = f();"),
199 EXPECT_EQ(Cat("decltype(f()) const target = f();"),
207 StringRef S = "decltype(f()) target = f();";
210 EXPECT_EQ(Cat("const decltype(f()) target = f();"),
212 EXPECT_EQ(Cat("const decltype(f()) target = f();"),
215 EXPECT_EQ(Cat("decltype(f()) const target = f();"),
217 EXPECT_EQ(Cat("decltype(f()) const target = f();"),
221 StringRef Snippet = "int ((target)) = 0;";
223 EXPECT_EQ("const int ((target)) = 0;",
225 EXPECT_EQ("const int ((target)) = 0;",
228 EXPECT_EQ("int const ((target)) = 0;",
230 EXPECT_EQ("int const ((target)) = 0;",
234 // ----------------------------------------------------------------------------
235 // Test builtin-arrays
236 // ----------------------------------------------------------------------------
239 StringRef Snippet = "int target[][1] = {{1}, {2}, {3}};";
241 EXPECT_EQ("const int target[][1] = {{1}, {2}, {3}};",
243 EXPECT_EQ("const int target[][1] = {{1}, {2}, {3}};",
246 EXPECT_EQ("int const target[][1] = {{1}, {2}, {3}};",
248 EXPECT_EQ("int const target[][1] = {{1}, {2}, {3}};",
252 StringRef Snippet = "int ((target))[][1] = {{1}, {2}, {3}};";
254 EXPECT_EQ("const int ((target))[][1] = {{1}, {2}, {3}};",
256 EXPECT_EQ("const int ((target))[][1] = {{1}, {2}, {3}};",
259 EXPECT_EQ("int const ((target))[][1] = {{1}, {2}, {3}};",
261 EXPECT_EQ("int const ((target))[][1] = {{1}, {2}, {3}};",
265 StringRef Snippet = "int x; int* target[] = {&x, &x, &x};";
267 EXPECT_EQ("int x; const int* target[] = {&x, &x, &x};",
269 EXPECT_EQ("int x; int const* target[] = {&x, &x, &x};",
272 EXPECT_EQ("int x; int* const target[] = {&x, &x, &x};",
274 EXPECT_EQ("int x; int* const target[] = {&x, &x, &x};",
278 StringRef Snippet = "int* x = nullptr; int** target[] = {&x, &x, &x};";
280 EXPECT_EQ("int* x = nullptr; int* const* target[] = {&x, &x, &x};",
282 EXPECT_EQ("int* x = nullptr; int** const target[] = {&x, &x, &x};",
285 EXPECT_EQ("int* x = nullptr; int* const* target[] = {&x, &x, &x};",
287 EXPECT_EQ("int* x = nullptr; int** const target[] = {&x, &x, &x};",
291 StringRef Snippet = "int x; int* (target)[] = {&x, &x, &x};";
293 EXPECT_EQ("int x; const int* (target)[] = {&x, &x, &x};",
295 EXPECT_EQ("int x; int const* (target)[] = {&x, &x, &x};",
298 EXPECT_EQ("int x; int* const (target)[] = {&x, &x, &x};",
300 EXPECT_EQ("int x; int* const (target)[] = {&x, &x, &x};",
304 // ----------------------------------------------------------------------------
306 // ----------------------------------------------------------------------------
309 StringRef Snippet = "int x = 42; int& target = x;";
311 EXPECT_EQ("int x = 42; const int& target = x;",
313 EXPECT_EQ("int x = 42; const int& target = x;",
316 EXPECT_EQ("int x = 42; int const& target = x;",
318 EXPECT_EQ("int x = 42; int const& target = x;",
322 StringRef Snippet = "int&& target = 42;";
323 EXPECT_EQ("const int&& target = 42;",
325 EXPECT_EQ("const int&& target = 42;",
328 EXPECT_EQ("int const&& target = 42;",
330 EXPECT_EQ("int const&& target = 42;",
334 StringRef Snippet = "int* p; int *& target = p;";
335 EXPECT_EQ("int* p; int * const& target = p;",
337 EXPECT_EQ("int* p; int * const& target = p;",
340 EXPECT_EQ("int* p; int * const& target = p;",
342 EXPECT_EQ("int* p; int * const& target = p;",
346 StringRef Snippet = "int x = 42; int ((& target)) = x;";
348 EXPECT_EQ("int x = 42; const int ((& target)) = x;",
350 EXPECT_EQ("int x = 42; const int ((& target)) = x;",
353 EXPECT_EQ("int x = 42; int const((& target)) = x;",
355 EXPECT_EQ("int x = 42; int const((& target)) = x;",
360 StringRef Snippet = "int (&target)[4] = a;";
363 EXPECT_EQ(Cat("const int (&target)[4] = a;"),
365 EXPECT_EQ(Cat("const int (&target)[4] = a;"),
368 EXPECT_EQ(Cat("int const(&target)[4] = a;"),
370 EXPECT_EQ(Cat("int const(&target)[4] = a;"),
375 StringRef S = "auto& target = f();";
378 EXPECT_EQ(Cat("const auto& target = f();"),
380 EXPECT_EQ(Cat("auto const& target = f();"),
383 EXPECT_EQ(Cat("const auto& target = f();"),
385 EXPECT_EQ(Cat("auto const& target = f();"),
389 // ----------------------------------------------------------------------------
391 // ----------------------------------------------------------------------------
394 StringRef Snippet = "int* target = nullptr;";
396 EXPECT_EQ("int* const target = nullptr;",
398 EXPECT_EQ("int* const target = nullptr;",
401 EXPECT_EQ("const int* target = nullptr;",
403 EXPECT_EQ("int const* target = nullptr;",
407 StringRef Snippet = "int** target = nullptr;";
409 EXPECT_EQ("int** const target = nullptr;",
411 EXPECT_EQ("int** const target = nullptr;",
414 EXPECT_EQ("int* const* target = nullptr;",
416 EXPECT_EQ("int* const* target = nullptr;",
421 StringRef Snippet = "int (*target)[4] = &a;";
424 EXPECT_EQ(Cat("int (*const target)[4] = &a;"),
426 EXPECT_EQ(Cat("const int (*target)[4] = &a;"),
429 EXPECT_EQ(Cat("int (*const target)[4] = &a;"),
431 EXPECT_EQ(Cat("int const(*target)[4] = &a;"),
435 StringRef Snippet = "int ((**target)) = nullptr;";
437 EXPECT_EQ("int ((**const target)) = nullptr;",
439 EXPECT_EQ("int ((**const target)) = nullptr;",
442 EXPECT_EQ("int ((* const*target)) = nullptr;",
444 EXPECT_EQ("int ((* const*target)) = nullptr;",
449 StringRef S = "auto* target = f();";
452 EXPECT_EQ(Cat("auto* const target = f();"),
454 EXPECT_EQ(Cat("auto* const target = f();"),
457 EXPECT_EQ(Cat("const auto* target = f();"),
459 EXPECT_EQ(Cat("auto const* target = f();"),
464 StringRef S = "auto (((* target))) = f();";
467 EXPECT_EQ(Cat("auto (((* const target))) = f();"),
469 EXPECT_EQ(Cat("auto (((* const target))) = f();"),
472 EXPECT_EQ(Cat("const auto (((* target))) = f();"),
474 EXPECT_EQ(Cat("auto const(((* target))) = f();"),
478 StringRef S = "int (*target)(float, int, double) = nullptr;";
480 EXPECT_EQ("int (*const target)(float, int, double) = nullptr;",
482 EXPECT_EQ("int (*const target)(float, int, double) = nullptr;",
485 EXPECT_EQ("int (*const target)(float, int, double) = nullptr;",
487 EXPECT_EQ("int (*const target)(float, int, double) = nullptr;",
490 S = "int (((*target)))(float, int, double) = nullptr;";
491 EXPECT_EQ("int (((*const target)))(float, int, double) = nullptr;",
496 StringRef S = "int (A::*target)() = &A::f;";
499 EXPECT_EQ(Cat("int (A::*const target)() = &A::f;"),
501 EXPECT_EQ(Cat("int (A::*const target)() = &A::f;"),
504 EXPECT_EQ(Cat("int (A::*const target)() = &A::f;"),
506 EXPECT_EQ(Cat("int (A::*const target)() = &A::f;"),
509 S = "int (A::*((target)))() = &A::f;";
510 EXPECT_EQ(Cat("int (A::*const ((target)))() = &A::f;"),
515 StringRef S = "int A::*target = &A::member;";
518 EXPECT_EQ(Cat("int A::*const target = &A::member;"),
520 EXPECT_EQ(Cat("int A::*const target = &A::member;"),
523 EXPECT_EQ(Cat("int A::*const target = &A::member;"),
525 EXPECT_EQ(Cat("int A::*const target = &A::member;"),
528 S = "int A::*((target)) = &A::member;";
529 EXPECT_EQ(Cat("int A::*const ((target)) = &A::member;"),
533 // ----------------------------------------------------------------------------
535 // ----------------------------------------------------------------------------
539 StringRef S = "struct Foo target{0};";
542 EXPECT_EQ(Cat("const struct Foo target{0};"),
544 EXPECT_EQ(Cat("const struct Foo target{0};"),
547 EXPECT_EQ(Cat("struct Foo const target{0};"),
549 EXPECT_EQ(Cat("struct Foo const target{0};"),
552 S = "Foo target{0};";
553 EXPECT_EQ(Cat("const Foo target{0};"),
555 EXPECT_EQ(Cat("const Foo target{0};"),
558 EXPECT_EQ(Cat("Foo const target{0};"),
560 EXPECT_EQ(Cat("Foo const target{0};"),
563 S = "Foo (target){0};";
564 EXPECT_EQ(Cat("const Foo (target){0};"),
566 EXPECT_EQ(Cat("const Foo (target){0};"),
569 EXPECT_EQ(Cat("Foo const (target){0};"),
571 EXPECT_EQ(Cat("Foo const (target){0};"),
574 S = "struct S { int i; } target = { 0 };";
575 EXPECT_EQ("const struct S { int i; } target = { 0 };",
577 EXPECT_EQ("const struct S { int i; } target = { 0 };",
580 EXPECT_EQ("struct S { int i; } const target = { 0 };",
582 EXPECT_EQ("struct S { int i; } const target = { 0 };",
585 S = "struct { int i; } target = { 0 };";
586 EXPECT_EQ("const struct { int i; } target = { 0 };",
588 EXPECT_EQ("const struct { int i; } target = { 0 };",
591 EXPECT_EQ("struct { int i; } const target = { 0 };",
593 EXPECT_EQ("struct { int i; } const target = { 0 };",
598 StringRef S = "class Foo target;";
601 EXPECT_EQ(Cat("const class Foo target;"),
603 EXPECT_EQ(Cat("const class Foo target;"),
606 EXPECT_EQ(Cat("class Foo const target;"),
608 EXPECT_EQ(Cat("class Foo const target;"),
611 S = "Foo target;";
612 EXPECT_EQ(Cat("const Foo target;"), runCheckOnCode<ValueLTransform>(Cat(S)));
613 EXPECT_EQ(Cat("const Foo target;"),
616 EXPECT_EQ(Cat("Foo const target;"), runCheckOnCode<ValueRTransform>(Cat(S)));
617 EXPECT_EQ(Cat("Foo const target;"),
620 S = "Foo (target);";
621 EXPECT_EQ(Cat("const Foo (target);"),
623 EXPECT_EQ(Cat("const Foo (target);"),
626 EXPECT_EQ(Cat("Foo const (target);"),
628 EXPECT_EQ(Cat("Foo const (target);"),
633 StringRef S = "enum Foo target;";
636 EXPECT_EQ(Cat("const enum Foo target;"),
638 EXPECT_EQ(Cat("const enum Foo target;"),
641 EXPECT_EQ(Cat("enum Foo const target;"),
643 EXPECT_EQ(Cat("enum Foo const target;"),
646 S = "Foo target;";
647 EXPECT_EQ(Cat("const Foo target;"), runCheckOnCode<ValueLTransform>(Cat(S)));
648 EXPECT_EQ(Cat("const Foo target;"),
651 EXPECT_EQ(Cat("Foo const target;"), runCheckOnCode<ValueRTransform>(Cat(S)));
652 EXPECT_EQ(Cat("Foo const target;"),
655 S = "Foo (target);";
656 EXPECT_EQ(Cat("const Foo (target);"),
658 EXPECT_EQ(Cat("const Foo (target);"),
661 EXPECT_EQ(Cat("Foo const (target);"),
663 EXPECT_EQ(Cat("Foo const (target);"),
668 StringRef S = "union Foo target;";
671 EXPECT_EQ(Cat("const union Foo target;"),
673 EXPECT_EQ(Cat("const union Foo target;"),
676 EXPECT_EQ(Cat("union Foo const target;"),
678 EXPECT_EQ(Cat("union Foo const target;"),
681 S = "Foo target;";
682 EXPECT_EQ(Cat("const Foo target;"), runCheckOnCode<ValueLTransform>(Cat(S)));
683 EXPECT_EQ(Cat("const Foo target;"),
686 EXPECT_EQ(Cat("Foo const target;"), runCheckOnCode<ValueRTransform>(Cat(S)));
687 EXPECT_EQ(Cat("Foo const target;"),
690 S = "Foo (target);";
691 EXPECT_EQ(Cat("const Foo (target);"),
693 EXPECT_EQ(Cat("const Foo (target);"),
696 EXPECT_EQ(Cat("Foo const (target);"),
698 EXPECT_EQ(Cat("Foo const (target);"),
702 // ----------------------------------------------------------------------------
704 // ----------------------------------------------------------------------------
707 StringRef T = "#define DEFINE_VARIABLE int target = 42\n";
719 StringRef S = "DEFINE_VARIABLE(target);";
722 EXPECT_EQ(Cat("DEFINE_VARIABLE(target);"),
724 EXPECT_EQ(Cat("DEFINE_VARIABLE(target);"),
727 EXPECT_EQ(Cat("DEFINE_VARIABLE(target);"),
729 EXPECT_EQ(Cat("DEFINE_VARIABLE(target);"),
734 StringRef S = "BAD_TYPEDEF target = 42;";
737 EXPECT_EQ(Cat("BAD_TYPEDEF target = 42;"),
739 EXPECT_EQ(Cat("BAD_TYPEDEF target = 42;"),
742 EXPECT_EQ(Cat("BAD_TYPEDEF const target = 42;"),
744 EXPECT_EQ(Cat("BAD_TYPEDEF const target = 42;"),
749 StringRef S = "BAD_TYPEDEF target = nullptr;";
752 EXPECT_EQ(Cat("BAD_TYPEDEF const target = nullptr;"),
754 EXPECT_EQ(Cat("BAD_TYPEDEF const target = nullptr;"),
757 // FIXME: Failing even all parts seem to bail-out in for isMacroID()
759 EXPECT_NE(Cat("BAD_TYPEDEF target = nullptr;"),
761 EXPECT_EQ(Cat("BAD_TYPEDEF target = nullptr;"),
766 StringRef S = "BAD_TYPEDEF target = g;";
769 EXPECT_EQ(Cat("BAD_TYPEDEF target = g;"),
771 // FIXME: Failing even all parts seem to bail-out in for isMacroID()
772 EXPECT_NE(Cat("BAD_TYPEDEF target = g;"),
775 EXPECT_EQ(Cat("BAD_TYPEDEF target = g;"),
777 // FIXME: Failing even all parts seem to bail-out in for isMacroID()
778 EXPECT_NE(Cat("BAD_TYPEDEF target = g;"),
785 StringRef V = "{ DEBUG(int target = 42;); }";
789 EXPECT_EQ(Cat("{ DEBUG(const int target = 42;); }"),
791 EXPECT_EQ(Cat("{ DEBUG(int const target = 42;); }"),
797 StringRef V = "DEBUG( for(auto& target: array) 10 + target; );";
802 EXPECT_EQ(Cat("DEBUG( for(const auto& target: array); );"),
804 EXPECT_EQ(Cat("DEBUG( for(auto const& target: array); );"),
808 // ----------------------------------------------------------------------------
810 // ----------------------------------------------------------------------------
813 StringRef T = "template <typename T> T target = 3.1415;";
815 EXPECT_EQ("template <typename T> const T target = 3.1415;",
817 EXPECT_EQ("template <typename T> T const target = 3.1415;",
820 EXPECT_EQ("template <typename T> const T target = 3.1415;",
822 EXPECT_EQ("template <typename T> T const target = 3.1415;",
827 StringRef S = "{ T target = v; }";
830 EXPECT_EQ(Cat("{ const T target = v; }"),
832 EXPECT_EQ(Cat("{ T const target = v; }"),
835 EXPECT_EQ(Cat("{ const T target = v; }"),
837 EXPECT_EQ(Cat("{ T const target = v; }"),
842 StringRef S = "{ T* target = v; }";
845 EXPECT_EQ(Cat("{ T* const target = v; }"),
847 EXPECT_EQ(Cat("{ T* const target = v; }"),
850 EXPECT_EQ(Cat("{ const T* target = v; }"),
852 EXPECT_EQ(Cat("{ T const* target = v; }"),
857 StringRef S = "{ T& target = v; }";
860 EXPECT_EQ(Cat("{ const T& target = v; }"),
862 EXPECT_EQ(Cat("{ T const& target = v; }"),
865 EXPECT_EQ(Cat("{ const T& target = v; }"),
867 EXPECT_EQ(Cat("{ T const& target = v; }"),
872 StringRef S = "{ T target = v; }";
883 auto Cat = [&](StringRef Target) {
884 return (T + Target + InstantStart + InstValue + InstConstValue +
890 EXPECT_EQ(Cat("{ const T target = v; }"),
892 EXPECT_EQ(Cat("{ T const target = v; }"),
895 EXPECT_EQ(Cat("{ const T target = v; }"),
897 EXPECT_EQ(Cat("{ T const target = v; }"),
903 StringRef S = "{ T target = v; }";
907 EXPECT_EQ(Cat("{ const T target = v; }"),
909 EXPECT_EQ(Cat("{ T const target = v; }"),
912 EXPECT_EQ(Cat("{ const T target = v; }"),
914 EXPECT_EQ(Cat("{ T const target = v; }"),
919 StringRef S = "{ T* target = v; }";
923 EXPECT_EQ(Cat("{ T* const target = v; }"),
925 EXPECT_EQ(Cat("{ T* const target = v; }"),
928 EXPECT_EQ(Cat("{ const T* target = v; }"),
930 EXPECT_EQ(Cat("{ T const* target = v; }"),
935 StringRef S = "{ T& target = v; }";
939 EXPECT_EQ(Cat("{ const T& target = v; }"),
941 EXPECT_EQ(Cat("{ T const& target = v; }"),
944 EXPECT_EQ(Cat("{ const T& target = v; }"),
946 EXPECT_EQ(Cat("{ T const& target = v; }"),
952 StringRef S = "{ typename T::value_type target; }";
955 EXPECT_EQ(Cat("{ const typename T::value_type target; }"),
957 EXPECT_EQ(Cat("{ typename T::value_type const target; }"),
960 EXPECT_EQ(Cat("{ const typename T::value_type target; }"),
962 EXPECT_EQ(Cat("{ typename T::value_type const target; }"),
968 StringRef S = "{ typename T::value_type *target; }";
971 EXPECT_EQ(Cat("{ typename T::value_type *const target; }"),
973 EXPECT_EQ(Cat("{ typename T::value_type *const target; }"),
976 EXPECT_EQ(Cat("{ const typename T::value_type *target; }"),
978 EXPECT_EQ(Cat("{ typename T::value_type const*target; }"),
984 StringRef S = "{ typename T::value_type &target = f; }";
987 EXPECT_EQ(Cat("{ const typename T::value_type &target = f; }"),
989 EXPECT_EQ(Cat("{ typename T::value_type const&target = f; }"),
992 EXPECT_EQ(Cat("{ const typename T::value_type &target = f; }"),
994 EXPECT_EQ(Cat("{ typename T::value_type const&target = f; }"),
1000 StringRef S = "{ TS<int> target(42); }";
1003 EXPECT_EQ(Cat("{ const TS<int> target(42); }"),
1005 EXPECT_EQ(Cat("{ TS<int> const target(42); }"),
1008 EXPECT_EQ(Cat("{ const TS<int> target(42); }"),
1010 EXPECT_EQ(Cat("{ TS<int> const target(42); }"),
1017 StringRef S = "{ TS<double> target(42.42); }";
1020 EXPECT_EQ(Cat("{ const TS<double> target(42.42); }"),
1022 EXPECT_EQ(Cat("{ TS<double> const target(42.42); }"),
1025 EXPECT_EQ(Cat("{ const TS<double> target(42.42); }"),
1027 EXPECT_EQ(Cat("{ TS<double> const target(42.42); }"),
1031 // -----------------------------------------------------------------------------
1033 // -----------------------------------------------------------------------------
1036 StringRef S = "int * target = 0;";
1038 "const int * target = 0;");
1040 "int const* target = 0;");
1042 "int * const target = 0;");
1044 "int * const target = 0;");
1048 StringRef S = "Object *target;";
1054 Cat("const Object *target;"));
1056 Cat("Object const*target;"));
1058 Cat("Object *const target;"));
1060 Cat("Object *const target;"));
1064 StringRef S = "- (void) foo: (int *) target;";
1069 Cat("- (void) foo: (const int *) target;"));
1071 Cat("- (void) foo: (int const*) target;"));
1075 Cat("- (void) foo: (int * const) target;"));
1077 Cat("- (void) foo: (int * const) target;"));