[cfe-commits] Circular dependencies in headers

Sean Silva silvas at purdue.edu
Fri Oct 5 14:23:12 PDT 2012


> Interesting! It looks like the offending header is AllDiagnostics.h, which doesn't actually seem to be a problem since the headers it includes just define the diagnostic enum values for each of the libraries. Perhaps we should just pull all those headers into Basic, like we do for the .td files.

That sounds logical. What potential downsides does that have? Is the
current state of affairs just a historical accident, or is it
intentional?

-- Sean Silva

On Fri, Oct 5, 2012 at 11:58 AM, Jordan Rose <jordan_rose at apple.com> wrote:
>
> On Oct 4, 2012, at 18:35 , Sean Silva <silvas at purdue.edu> wrote:
>
>>> Sema depends on AST, and we don't allow circular dependencies. I guess it would be nice if we had a map of all our dependencies somewhere; bonus points if it's autogenerated. Double bonus points if the SVN server rejects commits that cause a circular dependency.
>>
>> I guess the "would be nice" part if fulfilled by page 3 of
>> <http://wiki.ifs.hsr.ch/SemProgAnTr/files/Clang_Architecture_-_ChristopherGuntli.pdf>..
>>
>> It looks like Doxygen also has some information about dependencies on
>> its "directory" pages. For example, there appears to be an alarming
>> amount of circularity on
>> <http://clang.llvm.org/doxygen/dir_36b800a3fe94cf7aedd3066cf4f06787.html>
>> (primarily, it seems, related to libBasic). It looks like most are
>> just strays, e.g. with 31 dependencies in one direction and 1 in the
>> other.
>
> Interesting! It looks like the offending header is AllDiagnostics.h, which doesn't actually seem to be a problem since the headers it includes just define the diagnostic enum values for each of the libraries. Perhaps we should just pull all those headers into Basic, like we do for the .td files.
>
> Good catch, Sean.
>
> Jordan




More information about the cfe-commits mailing list