aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-12-29 20:29:48 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-12-29 20:29:48 +0000
commit7ce2d2a8fef63a53f4226989fddd21e2bd78a051 (patch)
treeb788fa3a77645cf4414ff5917551f3bf619bbcae /llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
parent399b10a48c0382f2d6e8373a856b3c573de58c23 (diff)
downloadllvm-7ce2d2a8fef63a53f4226989fddd21e2bd78a051.zip
llvm-7ce2d2a8fef63a53f4226989fddd21e2bd78a051.tar.gz
llvm-7ce2d2a8fef63a53f4226989fddd21e2bd78a051.tar.bz2
For PR950:
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
Diffstat (limited to 'llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp')
0 files changed, 0 insertions, 0 deletions