1445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// RUN: %clang_cc1 -fsyntax-only -verify %s 296e7813f08c6adf1d8657b0da86741b54e850fd7Rafael Espindola// RUN: not %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s 396e7813f08c6adf1d8657b0da86741b54e850fd7Rafael Espindola// RUN: not %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits -x c++ %s 2>&1 | FileCheck %s 4445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko 5445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// expected-note@+1 2{{previous definition is here}} 6445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenkoint main() { 7445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko return 0; 8445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko} 9445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko 10445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// expected-error@+2 {{static declaration of 'main' follows non-static declaration}} 11445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// expected-warning@+1 {{'main' should not be declared static}} 12445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenkostatic int main() { 13445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:1-[[@LINE-1]]:8}:"" 14445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko return 0; 15445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko} 16445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko 17bcd0650c1e50a2e73b11717731e074a1ac2ac5baDavid Majnemer// expected-error@+2 {{redefinition of 'main'}} 18bcd0650c1e50a2e73b11717731e074a1ac2ac5baDavid Majnemer// expected-error@+1 {{'main' is not allowed to be declared inline}} 19445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenkoinline int main() { 20445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:1-[[@LINE-1]]:8}:"" 21445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko return 0; 22445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko} 23445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko 24bcd0650c1e50a2e73b11717731e074a1ac2ac5baDavid Majnemer// expected-warning@+5 {{function 'main' declared 'noreturn' should not return}} 25445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// expected-warning@+2 {{'main' is not allowed to be declared _Noreturn}} 26445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// expected-note@+1 {{remove '_Noreturn'}} 27445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko_Noreturn int main() { 28445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:1-[[@LINE-1]]:11}:"" 29445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko return 0; 30445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko} 31445743dec72f675070d4789c348607cd8cbf6090Dmitri Gribenko 32