As per book The C++ Programming Language (Bjarne Stroustrup), in section 15.2.3 (The One definition rule) page no 425, I write program as below :
file1.cpp
struct S2 { int a; char b; };
file2.cpp
struct S2 { int a; char bb; };
int main(){ return 0;}
To compile I tried below command.
g++ -std=c++11 file1.cpp file2.cpp
and
clang++ -std=c++11 file1.cpp file2.cpp
Both these command producing executable with out any error or warning. But as per book this example should give error.