]> granicus.if.org Git - clang/commit
Modify the way sub-statements are stored and retrieved from PCH.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 28 Jun 2010 22:28:35 +0000 (22:28 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 28 Jun 2010 22:28:35 +0000 (22:28 +0000)
commit919e693e80632d214c1f3110f6ee5d1c0b61f06b
tree9f01a593a4f164fb5777c5020a2948c6e021cce3
parent8ff296496de0970c8d6d72320a1427a926d7ef14
Modify the way sub-statements are stored and retrieved from PCH.

Before this commit, sub-stmts were stored as encountered and when they were placed in the Stmts stack we had to know what index
each stmt operand has. This complicated supporting variable sub-stmts and sub-stmts that were contained in TypeSourceInfos, e.g.

x = sizeof(int[1]);

would crash PCH.

Now, sub-stmts are stored in reverse order, from last to first, so that when reading them, in order to get the next sub-stmt we just
need to pop the last stmt from the stack. This greatly simplified the way stmts are written and read (just use PCHWriter::AddStmt and
 PCHReader::ReadStmt accordingly) and allowed variable stmt operands and TypeSourceInfo exprs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107087 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Frontend/PCHReader.h
include/clang/Frontend/PCHWriter.h
lib/Frontend/PCHReader.cpp
lib/Frontend/PCHReaderDecl.cpp
lib/Frontend/PCHReaderStmt.cpp
lib/Frontend/PCHWriter.cpp
lib/Frontend/PCHWriterStmt.cpp
test/PCH/exprs.c
test/PCH/exprs.h