/* For GLSL in OpenGL ES, an undefined macro appearing in an #if or #elif
 * expression, (other than as an argument to defined) is an error.
 *
 * Except in the case of a short-circuiting && or || operator, where the
 * specification explicitly mandates that there be no error.
 */
#version 300 es

/* These yield errors */
#if NOT_DEFINED
#endif

#if 0
#elif ALSO_NOT_DEFINED
#endif

/* But these yield no errors */
#if 1 || STILL_NOT_DEFINED
Success
#endif

#if 0
#elif 0 && WILL_ANYONE_DEFINE_ANYTHING
#else
More success
#endif