view gcc/testsuite/g++.dg/warn/Wformat-method.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 84e7813d76e9
children
line wrap: on
line source

// { dg-options "-Wformat -fdiagnostics-show-caret" }

class logger
{
public:
  void log (const char *fmt, ...) __attribute__((format (printf, 2, 3)));
};

void test ()
{
  logger out;
  out.log ("before %s after", 42); // { dg-warning "argument 3 has type 'int'" }
  /* { dg-begin-multiline-output "" }
   out.log ("before %s after", 42);
                    ~^         ~~
                     |         |
                     char*     int
                    %d
   { dg-end-multiline-output "" } */
}

template <typename T>
class logger_2
{
public:
  void log (const char *fmt, ...) __attribute__((format (printf, 2, 3)));
};

void test_2 ()
{
  logger_2<int> out;
  out.log ("before %s after", 42); // { dg-warning "argument 3 has type 'int'" }
  /* { dg-begin-multiline-output "" }
   out.log ("before %s after", 42);
                    ~^         ~~
                     |         |
                     char*     int
                    %d
   { dg-end-multiline-output "" } */
}