// For -Iinc1/path1 -Iinc1/path2
// bar.h from local directory will define i1, while the ones from inc1/path1 and inc1/path2 will not.
// notHere.h is only in inc1/path1 and inc2/path2, and only inc1/path1 defines p1, p2, and p3
// parent.h is local again, and defines i4

#include "bar.h"
#include "notHere.h"
#include "parent.h"

float4 main() : SV_Position
{
    return i1 + i4 + p1 + p2 + p3;
}