Skip to content

Commit a589459

Browse files
authored
Closes #12
1 parent 4a852dd commit a589459

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

clang/lib/Frontend/InitPreprocessor.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1336,6 +1336,19 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
13361336

13371337
// Get other target #defines.
13381338
TI.getTargetDefines(LangOpts, Builder);
1339+
1340+
// #define offsetof
1341+
Builder.append("#ifndef offsetof");
1342+
Builder.append("#if defined _MSC_VER && !defined _CRT_USE_BUILTIN_OFFSETOF");
1343+
Builder.append(" #ifdef __cplusplus");
1344+
Builder.append(" #define offsetof(s,m) ((::size_t)&reinterpret_cast<char const volatile&>((((s*)0)->m)))");
1345+
Builder.append(" #else");
1346+
Builder.append(" #define offsetof(s,m) ((size_t)&(((s*)0)->m))");
1347+
Builder.append(" #endif");
1348+
Builder.append("#else");
1349+
Builder.append(" #define offsetof(s,m) __builtin_offsetof(s,m)");
1350+
Builder.append("#endif");
1351+
Builder.append("#endif");
13391352
}
13401353

13411354
/// InitializePreprocessor - Initialize the preprocessor getting it and the

0 commit comments

Comments
 (0)