Some basic AST file generation questions

Win10-64, clang v11.0.0, VS2019

When I enter “clang.exe -help” from the command line I get a long list of clang options, and one of them is "-Xclang ". Thanks to previous help from a member of the cfe-users digest, I am able to do “clang.exe -Xclang -ast-dump -fsyntax-only SourceFile.c” to get the AST file for my source file. I have some basic questions about all this:

  1. I may have asked this before, but I’ve forgotten :frowning: The -ast-dump and -fsyntax-only options above are not listed when I enter “clang.exe -help”. Is there a command line option that will list these and all other options that are missing from the basic -help list? If so, what is it? If not, specifically where can I find these additional options listed and described?

  2. All of the following code I describe compiles, links, and runs correctly: I have an include guard protected header file named MyClass.h that includes a couple standard library headers followed by the declaration of a const variable followed by the definition of C++ class named MyClass followed by the definition of an inline function. When I do “clang.exe -Xclang -ast-dump -fsyntax-only MyClass.h” the resulting AST file contains the typical AST information from the two included header files, but only contains the two following lines for my code:

-VarDecl 0xb1ba010 <C:\MyClass.h:23:1, col:7> col:7 invalid MyClass ‘int’
`-VarDecl 0xb1ba060 <line:41:1, col:13> col:13 invalid MyClass ‘void’
When I look at the AST files produced for any of my implementation files that contain #include “MyClass.h”, the complete AST information for MyClass.h is there. Why is most of that AST information missing from the AST file produced directly from MyClass.h and how can I cause it to be there?

Thank you :slight_smile:
Ray

For (1) on my Linux

clang -cc1 -help

shows options of the compiler proper including ast-dump but I didn’t get syntax-only.

Nigel