Issue 124249
Summary Explicit inner struct specialization is not included in AST
Labels new issue
Assignees
Reporter Vindicatory
    I'm trying to parse sample code with calling 
`clang -Xclang -ast-dump -ferror-limit=0 sample.cpp`


```
#include "BAD"
#include "VERYBAD"

template <typename T>
struct my_struct
{
 struct inner {
      T a;
   };
};

extern int test;

template<>
struct my_struct<int>::inner
{
};

extern int test2;
```

The last two node are 
```
|-VarDecl 0x2034635a608 <line:25:1, col:12> col:12 test 'int' extern
`-VarDecl 0x2034635a870 <line:32:1, col:12> col:12 test2 'int' extern
```

But If I remove #include "VERYBAD", there is still one "fatal error message", but now, AST includes that template specialization.

What is the logic behind this parser behavior? Why are 2 errors critical and one is not? And is there a way to somehow ignore them?


_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to