/* Test "ignore redundant include" facility.

   We must test with C and C++ comments, and null directives, outside
   the guard conditional; also, we test guarding with #ifndef and #if
   !defined.  -H is used because cpp might confuse the issue by
   optimizing out #line markers.  This test only passes if each of the
   headers is read exactly once.

   The disgusting regexp in the dg-error line, when stuck into
   dg.exp's compiler-output regexp, matches the correct -H output and
   only the correct -H output.  It has to be all on one line because
   otherwise it will not be interpreted all in one unit.  */

/* { dg-do compile }
   { dg-options "-H" }
   { dg-error "mi1c\.h\n\[^\n\]*mi1cc\.h\n\[^\n\]*mi1nd\.h\n\[^\n\]*mi1ndp\.h\n\[^\n\]*mi1x\.h" "redundant include check" { target *-*-* } 0 } */

#include "mi1c.h"
#include "mi1c.h"
#include "mi1c.h"

#include "mi1cc.h"
#include "mi1cc.h"

#include "mi1nd.h"
#include "mi1nd.h"

#include "mi1ndp.h"
#include "mi1ndp.h"

#define MIX_H
#include "mi1x.h"
#include "mi1x.h"

int
main (void)
{
  return a + b + c + d;
}
