  int  a ;
  int  b ;
// A single empty line
  int  c ;
/*

more than 8 empty lines
(forces a line marker instead of newline padding)




*/
  int  d ;

// RUN: %clang_cc1 -E %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=LINEMARKERS
// RUN: %clang_cc1 -E -P %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=COLSONLY
// RUN: %clang_cc1 -E -fminimize-whitespace %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=MINCOL
// RUN: %clang_cc1 -E -P -fminimize-whitespace %s 2>&1 | FileCheck %s --strict-whitespace --check-prefix=MINWS

// Check behavior after varying number of lines without emitted tokens.

// LINEMARKERS:      {{^}}# 1 "{{.*}}skip-empty-lines.c" 2
// LINEMARKERS-NEXT: {{^}}  int a ;
// LINEMARKERS-NEXT: {{^}}  int b ;
// LINEMARKERS-EMPTY:
// LINEMARKERS-NEXT: {{^}}  int c ;
// LINEMARKERS-NEXT: {{^}}# 14 "{{.*}}skip-empty-lines.c"
// LINEMARKERS-NEXT: {{^}}  int d ;

// COLSONLY:      {{^}}  int a ;
// COLSONLY-NEXT: {{^}}  int b ;
// COLSONLY-NEXT: {{^}}  int c ;
// COLSONLY-NEXT: {{^}}  int d ;

// MINCOL:      {{^}}# 1 "{{.*}}skip-empty-lines.c" 2
// MINCOL-NEXT: {{^}}int a;
// MINCOL-NEXT: {{^}}int b;
// MINCOL-EMPTY:
// MINCOL-NEXT: {{^}}int c;
// MINCOL-NEXT: {{^}}# 14 "{{.*}}skip-empty-lines.c"
// MINCOL-NEXT: {{^}}int d;

// MINWS: {{^}}int a;int b;int c;int d;

