3 ms·
One issue that can happen that the article didn't mention is running out of AST node identifiers in Clang. Clang uses a 32-bit number to identify AST nodes. If
by jbandela1 2y ago
One issue that can happen that the article didn't mention is running out of AST node identifiers in Clang.
Clang uses a 32-bit number to identify AST nodes. If a single translation unit is large enough, it can overflow this and you can get some very weird compilation errors.
- 201984 2y agoUnless your amalgamated source file is getting into the 100s of megabytes to gigabytes range, I doubt that would be an issue.
- gmueckl 2y agoIf template instantiations use up AST node identifiers (I don't know whether whether they do), I can see scenarios where crazy amplified template instantiation chains can eat substantial chunks of that range.
- buildartefact 2y agoThey do.
- SassyBird 2y agoI suspect extensive use of Boost-style template metaprogramming is a great help in making this goal realistic.