[PATCH] Fix #include cycle between Pass.h and PassSupport.h

Richard Smith richard at metafoo.co.uk
Mon May 11 15:50:44 PDT 2015


Hi chandlerc,

Pass.h #includes PassSupport.h and PassAnalysisSupport.h. Each of those #includes Pass.h. This makes the modules build unhappy when local submodule visibility is enabled.

The approach taken here is:

* Move the definition of the Pass base class and related types to PassBase.h
* Change the other two headers to include PassBase.h instead of Pass.h

This way including Pass.h gets the full Pass interface, and PassBase.h gets just the base Pass classes. One functional difference is that including PassSupport does *not* provide PassAnalysisSupport and vice versa. I'm doing a build right now to see if I need to add includes of those two anywhere as a result.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9685

Files:
  include/llvm/Pass.h
  include/llvm/PassAnalysisSupport.h
  include/llvm/PassBase.h
  include/llvm/PassSupport.h
  include/llvm/module.modulemap

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9685.25519.patch
Type: text/x-patch
Size: 17893 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150511/270d9201/attachment.bin>


More information about the llvm-commits mailing list