| /* { dg-do compile } */ |
| /* { dg-options "-Wimplicit-function-declaration -fdiagnostics-show-caret" } */ |
| |
| typedef struct GtkWidget { int dummy; } GtkWidget; |
| |
| extern void gtk_widget_show_all (GtkWidget *w); |
| |
| void |
| test_1 (GtkWidget *w) |
| { |
| gtk_widget_showall (w); /* { dg-warning "3: implicit declaration of function .gtk_widget_showall.; did you mean .gtk_widget_show_all.?" } */ |
| /* { dg-begin-multiline-output "" } |
| gtk_widget_showall (w); |
| ^~~~~~~~~~~~~~~~~~ |
| gtk_widget_show_all |
| { dg-end-multiline-output "" } */ |
| |
| /* Ensure we don't try to suggest "gtk_widget_showall" for subsequent |
| corrections. */ |
| gtk_widget_showall_ (w); /* { dg-warning "3: implicit declaration of function .gtk_widget_showall_.; did you mean .gtk_widget_show_all.?" } */ |
| /* { dg-begin-multiline-output "" } |
| gtk_widget_showall_ (w); |
| ^~~~~~~~~~~~~~~~~~~ |
| gtk_widget_show_all |
| { dg-end-multiline-output "" } */ |
| |
| GtkWidgetShowAll (w); /* { dg-warning "3: implicit declaration of function .GtkWidgetShowAll.; did you mean .gtk_widget_show_all.?" } */ |
| /* { dg-begin-multiline-output "" } |
| GtkWidgetShowAll (w); |
| ^~~~~~~~~~~~~~~~ |
| gtk_widget_show_all |
| { dg-end-multiline-output "" } */ |
| } |
| |
| int |
| test_2 (int param) |
| { |
| return parma * parma; /* { dg-error "10: .parma. undeclared .first use in this function.; did you mean .param." } */ |
| /* { dg-begin-multiline-output "" } |
| return parma * parma; |
| ^~~~~ |
| param |
| { dg-end-multiline-output "" } */ |
| } |
| |
| #define MACRO(X) ((X)) |
| |
| int |
| test_3 (int i) |
| { |
| return MACRAME (i); /* { dg-warning "10: implicit declaration of function .MACRAME.; did you mean .MACRO.?" } */ |
| /* { dg-begin-multiline-output "" } |
| return MACRAME (i); |
| ^~~~~~~ |
| MACRO |
| { dg-end-multiline-output "" } */ |
| } |
| |
| #define IDENTIFIER_POINTER(X) ((X)) |
| |
| int |
| test_4 (int node) |
| { |
| return IDENTIFIER_PTR (node); /* { dg-warning "10: implicit declaration of function .IDENTIFIER_PTR.; did you mean .IDENTIFIER_POINTER.?" } */ |
| /* { dg-begin-multiline-output "" } |
| return IDENTIFIER_PTR (node); |
| ^~~~~~~~~~~~~~ |
| IDENTIFIER_POINTER |
| { dg-end-multiline-output "" } */ |
| } |
| |
| |
| int |
| test_5 (void) |
| { |
| return __LINE_; /* { dg-error "10: .__LINE_. undeclared .first use in this function.; did you mean .__LINE__." } */ |
| /* { dg-begin-multiline-output "" } |
| return __LINE_; |
| ^~~~~~~ |
| __LINE__ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| #define MAX_ITEMS 100 |
| int array[MAX_ITEM]; /* { dg-error "11: .MAX_ITEM. undeclared here .not in a function.; did you mean .MAX_ITEMS." } */ |
| /* { dg-begin-multiline-output "" } |
| int array[MAX_ITEM]; |
| ^~~~~~~~ |
| MAX_ITEMS |
| { dg-end-multiline-output "" } */ |
| |
| |
| enum foo { |
| FOO_FIRST, |
| FOO_SECOND |
| }; |
| |
| int |
| test_6 (enum foo f) |
| { |
| switch (f) |
| { |
| case FOO_FURST: /* { dg-error "10: .FOO_FURST. undeclared .first use in this function.; did you mean .FOO_FIRST." } */ |
| break; |
| /* { dg-begin-multiline-output "" } |
| case FOO_FURST: |
| ^~~~~~~~~ |
| FOO_FIRST |
| { dg-end-multiline-output "" } */ |
| |
| case FOO_SECCOND: /* { dg-error "10: .FOO_SECCOND. undeclared .first use in this function.; did you mean .FOO_SECOND." } */ |
| break; |
| /* { dg-begin-multiline-output "" } |
| case FOO_SECCOND: |
| ^~~~~~~~~~~ |
| FOO_SECOND |
| { dg-end-multiline-output "" } */ |
| |
| default: |
| break; |
| } |
| } |
| |
| int snprintf (char *, __SIZE_TYPE__, const char *, ...); |
| |
| void |
| test_7 (int i, int j) |
| { |
| int buffer[100]; |
| snprint (buffer, 100, "%i of %i", i, j); /* { dg-warning "3: implicit declaration of function .snprint.; did you mean .snprintf.." } */ |
| /* { dg-begin-multiline-output "" } |
| snprint (buffer, 100, "%i of %i", i, j); |
| ^~~~~~~ |
| snprintf |
| { dg-end-multiline-output "" } */ |
| } |