diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-14 15:38:35 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-14 15:38:35 +0000 | 
| commit | d2e0a8dd949ab874c6d66f97106bd5c270e2fa7d (patch) | |
| tree | e8a99a0386e8f6bece630700da5915c8a312c2d9 /lib/CodeGen/CodeGenModule.cpp | |
| parent | fdc82ccb3f2b23a89e7002fe8238e1422b00f96a (diff) | |
Notes
Diffstat (limited to 'lib/CodeGen/CodeGenModule.cpp')
| -rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index ab29d2dbb566..36005430ae4c 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -1243,9 +1243,15 @@ void CodeGenModule::EmitModuleLinkOptions() {    SmallVector<clang::Module *, 16> Stack;    // Seed the stack with imported modules. -  for (Module *M : ImportedModules) +  for (Module *M : ImportedModules) { +    // Do not add any link flags when an implementation TU of a module imports +    // a header of that same module. +    if (M->getTopLevelModuleName() == getLangOpts().CurrentModule && +        !getLangOpts().isCompilingModule()) +      continue;      if (Visited.insert(M).second)        Stack.push_back(M); +  }    // Find all of the modules to import, making a little effort to prune    // non-leaf modules.  | 
