Translation unit #1:int x = 5; // initializing declaration of x
Translation unit #2:extern constinit int x; // IFNDR, not reachable from initializing declaration of x — end example]
Translation unit #1:inline int f();
Translation unit #2:int f() { return 17; } // IFNDR, end of definition domain but no inline declaration of f is reachable — end example]
Translation unit #1:inline int f(int x, int y = 2); inline int f(int x = 1, int y); // IFNDR, default arguments of f are 1 and 2
Translation unit #2:inline int f(int x = 3, int y = 4); // IFNDR, default arguments of f are 3 and 4 — end example]
Translation unit #1:int f(int x) pre(x >= 0); // IFNDR, pre present, not present in the other first declaration of f int g(int x) pre(x == 0); // IFNDR, pre differs from the other first declaration of g int h(int x) pre(x <= 0); // OK, pre equivalent to pre on the other first declaration of h
Translation unit #2:int f(int x); // IFNDR, pre not present, present in the other first declaration of f int g(int x) pre(x != 0); // IFNDR, pre differs from the other first declaration of g int h(int y) pre(y <= 0); // OK, pre equivalent to pre on the other first declaration of h — end example]
Translation unit #1:extern "C" { void f(); }
Translation unit #2:extern "C++" { void f(); } // IFNDR, different language linkage — end example]
Translation unit #1:struct S { int x; } s, *p = &s;
Translation unit #2:struct alignas(16) S; // IFNDR, definition of S lacks alignment extern S* p; — end example]
Translation unit #1:int h(int x [[indeterminate]]); // IFNDR, mismatched [[indeterminate]] to other first declaration of h
Translation unit #2:int h(int x); // IFNDR, mismatched [[indeterminate]] to other first declaration of h — end example]