forked from OSchip/llvm-project
7ce2d2a8fe
Remove all grammar conflicts from assembly parsing. This change involves: 1. Making the "type" keyword not a primitive type (removes several reduce/reduce conflicts) 2. Being more specific about which linkage types are allowed for functions and global variables. In particular "appending" can no longer be specified for a function. A differentiation was made between the various internal and external linkage types. 3. Introduced the "define" keyword which is now required when defining a function. This disambiguates several cases where a named function return type could get confused with the definition of a new type. Using the keyword eliminates all shift/reduce conflicts and the remaining reduce/reduce conflicts. These changes are necessary to implement the function parameter attributes that will be introduced soon. Adding the function parameter attributes in the presence of the shift/reduce and reduce/reduce conflicts led to severe ambiguities that caused the parser to report syntax errors that needed to be resolved. This patch resolves them. llvm-svn: 32770 |
||
---|---|---|
.. | ||
AsmWriter.cpp | ||
BasicBlock.cpp | ||
ConstantFolding.cpp | ||
ConstantFolding.h | ||
Constants.cpp | ||
Dominators.cpp | ||
Function.cpp | ||
Globals.cpp | ||
InlineAsm.cpp | ||
Instruction.cpp | ||
Instructions.cpp | ||
IntrinsicInst.cpp | ||
LeakDetector.cpp | ||
Makefile | ||
Mangler.cpp | ||
Module.cpp | ||
ModuleProvider.cpp | ||
Pass.cpp | ||
PassManager.cpp | ||
PassManagerT.h | ||
SymbolTable.cpp | ||
SymbolTableListTraitsImpl.h | ||
Type.cpp | ||
TypeSymbolTable.cpp | ||
Value.cpp | ||
ValueSymbolTable.cpp | ||
ValueTypes.cpp | ||
Verifier.cpp |