llvm/clang/test/Preprocessor/optimize.c

// RUN: %clang_cc1 -Eonly %s -DOPT_O2 -O2 -verify
#ifdef OPT_O2
  // expected-no-diagnostics
  #ifndef __OPTIMIZE__
    #error "__OPTIMIZE__ not defined"
  #endif
  #ifdef __OPTIMIZE_SIZE__
    #error "__OPTIMIZE_SIZE__ defined"
  #endif
#endif

// RUN: %clang_cc1 -Eonly %s -DOPT_O0 -verify
#ifdef OPT_O0
  // expected-no-diagnostics
  #ifdef __OPTIMIZE__
    #error "__OPTIMIZE__ defined"
  #endif
  #ifdef __OPTIMIZE_SIZE__
    #error "__OPTIMIZE_SIZE__ defined"
  #endif
#endif

// RUN: %clang_cc1 -Eonly %s -DOPT_OS -Os -verify
#ifdef OPT_OS
  // expected-no-diagnostics
  #ifndef __OPTIMIZE__
    #error "__OPTIMIZE__ not defined"
  #endif
  #ifndef __OPTIMIZE_SIZE__
    #error "__OPTIMIZE_SIZE__ not defined"
  #endif
#endif