Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#define DEF1

1 1	jan 1 OK

#ifdef DEF1
1 2	jan 2 OK
#endif

1 3	jan 3 OK

#ifdef	DEF2
1 4	jan 4 NOT OK
#else
1 5	jan 5 OK
#endif

#ifndef	DEF2
1 6	jan 6 OK
#else
1 7	jan 7 NOT OK
#endif

#ifdef DEF1
#ifndef DEF2
1 8	jan 8 OK
#endif
#endif

#ifdef DEF1
#ifdef DEF2
1 9	jan 9 NOT OK
#else
1 10	jan 10 OK
#endif
#else
1 11	jan 11 NOT OK
#endif

#define DEF2

#ifndef DEF1	// skip = 1
#ifndef DEF2	// skip = 2
1 12	jan 12 NOT OK
#else		// skip = 1 unskip = 0
1 13	jan 13 NOT OK
#endif		// skip = 0 unskip = 0
#else		// skip = 0 unskip = 1
1 14	jan 14 OK
#endif		// skip = 0 unskip = 0

#undef DEF1

#ifdef DEF1 // OFF
#ifdef DEF2 // ON
#ifdef DEF3 // OFF
1 15	jan 15 NOT OK
#else
1 16	jan 16 NOT OK
#endif // DEF3
#else // DEF2
#ifdef DEF3
1 17	jan 17 NOT OK
#else
1 18	jan 18 NOT OK
#endif // DEF3
#endif // DEF2
#else // DEF1
#ifdef DEF2
#ifdef DEF3
1 19	jan 19 NOT OK
#else
1 20	jan 20 OK
#endif // DEF3
#else // DEF2
#ifdef DEF3
1 21	jan 21 NOT OK
#else
1 22	jan 22 NOT OK
#endif // DEF3
#endif // DEF2
#endif // DEF1

1 23	jan 23 OK