[llvm-commits] CVS: llvm/lib/AsmParser/Lexer.cpp.cvs Lexer.l.cvs llvmAsmParser.cpp.cvs llvmAsmParser.h.cvs llvmAsmParser.y.cvs
Reid Spencer
reid at x10sys.com
Tue May 22 11:53:13 PDT 2007
Changes in directory llvm/lib/AsmParser:
Lexer.cpp.cvs updated: 1.45 -> 1.46
Lexer.l.cvs updated: 1.37 -> 1.38
llvmAsmParser.cpp.cvs updated: 1.99 -> 1.100
llvmAsmParser.h.cvs updated: 1.77 -> 1.78
llvmAsmParser.y.cvs updated: 1.99 -> 1.100
---
Log message:
Regenerate.
---
Diffs of the changes: (+647 -661)
Lexer.cpp.cvs | 393 ++++++++++++++--------------
Lexer.l.cvs | 77 ++---
llvmAsmParser.cpp.cvs | 692 +++++++++++++++++++++++++-------------------------
llvmAsmParser.h.cvs | 6
llvmAsmParser.y.cvs | 140 +++++-----
5 files changed, 647 insertions(+), 661 deletions(-)
Index: llvm/lib/AsmParser/Lexer.cpp.cvs
diff -u llvm/lib/AsmParser/Lexer.cpp.cvs:1.45 llvm/lib/AsmParser/Lexer.cpp.cvs:1.46
--- llvm/lib/AsmParser/Lexer.cpp.cvs:1.45 Tue May 22 01:56:32 2007
+++ llvm/lib/AsmParser/Lexer.cpp.cvs Tue May 22 13:52:55 2007
@@ -17,10 +17,10 @@
#define yylineno llvmAsmlineno
#line 20 "Lexer.cpp"
-/* A lexical scanner generated by flex */
+/* A lexical scanner generated by flex*/
/* Scanner skeleton version:
- * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.45 2007/05/22 06:56:32 lattner Exp $
+ * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.46 2007/05/22 18:52:55 reid Exp $
*/
#define FLEX_SCANNER
@@ -28,6 +28,7 @@
#define YY_FLEX_MINOR_VERSION 5
#include <stdio.h>
+#include <unistd.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@@ -41,7 +42,6 @@
#ifdef __cplusplus
#include <stdlib.h>
-#include <unistd.h>
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -153,6 +153,15 @@
#define unput(c) yyunput( c, yytext_ptr )
+/* Some routines like yy_flex_realloc() are emitted as static but are
+ not called by all lexers. This generates warnings in some compilers,
+ notably GCC. Arrange to suppress these. */
+#ifdef __GNUC__
+#define YY_MAY_BE_UNUSED __attribute__((unused))
+#else
+#define YY_MAY_BE_UNUSED
+#endif
+
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
@@ -259,7 +268,7 @@
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
static void yy_flex_free YY_PROTO(( void * ));
#define yy_new_buffer yy_create_buffer
@@ -881,7 +890,7 @@
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 1 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#define INITIAL 0
/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
//
@@ -896,7 +905,7 @@
//
//===----------------------------------------------------------------------===*/
#define YY_NEVER_INTERACTIVE 1
-#line 28 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 28 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#include "ParserInternals.h"
#include "llvm/Module.h"
#include "llvm/Support/MathExtras.h"
@@ -973,29 +982,20 @@
// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
-// appropriate character. If AllowNull is set to false, a \00 value will cause
-// an exception to be thrown.
-//
-// If AllowNull is set to true, the return value of the function points to the
-// last character of the string in memory.
-//
-char *UnEscapeLexed(char *Buffer, bool AllowNull) {
+// appropriate character.
+char *UnEscapeLexed(char *Buffer) {
char *BOut = Buffer;
for (char *BIn = Buffer; *BIn; ) {
if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
- char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
- *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
- if (!AllowNull && !*BOut)
- GenerateError("String literal cannot accept \\00 escape!");
-
- BIn[3] = Tmp; // Restore character
- BIn += 3; // Skip over handled chars
+ char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
+ *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
+ BIn[3] = Tmp; // Restore character
+ BIn += 3; // Skip over handled chars
++BOut;
} else {
*BOut++ = *BIn++;
}
}
-
return BOut;
}
@@ -1168,10 +1168,10 @@
YY_DECL
{
register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
+ register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_act;
-#line 182 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 173 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 1178 "Lexer.cpp"
@@ -1267,272 +1267,272 @@
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 184 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 175 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ /* Ignore comments for now */ }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 186 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 177 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return BEGINTOK; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 187 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 178 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ENDTOK; }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 188 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 179 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TRUETOK; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 189 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 180 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return FALSETOK; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 190 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 181 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DECLARE; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 191 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 182 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DEFINE; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 192 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 183 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return GLOBAL; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 193 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 184 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return CONSTANT; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 194 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 185 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return INTERNAL; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 195 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 186 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return LINKONCE; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 196 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 187 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return WEAK; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 197 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 188 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return APPENDING; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 198 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 189 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DLLIMPORT; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 199 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 190 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DLLEXPORT; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 200 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 191 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return HIDDEN; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 201 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 192 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return PROTECTED; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 202 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 193 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return EXTERN_WEAK; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 203 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return EXTERNAL; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 204 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return THREAD_LOCAL; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 205 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ZEROINITIALIZER; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 206 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DOTDOTDOT; }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 207 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UNDEF; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 208 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NULL_TOK; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 209 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TO; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 210 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TAIL; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 211 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TARGET; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 212 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TRIPLE; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 213 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DEPLIBS; }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 214 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DATALAYOUT; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 215 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return VOLATILE; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 216 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ALIGN; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 217 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SECTION; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 218 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ALIAS; }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 219 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return MODULE; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 220 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ASM_TOK; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 221 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SIDEEFFECT; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 223 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return CC_TOK; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 224 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return CCC_TOK; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 225 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return FASTCC_TOK; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 226 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return COLDCC_TOK; }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 227 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return X86_STDCALLCC_TOK; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 228 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return X86_FASTCALLCC_TOK; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 230 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return INREG; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 231 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SRET; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 232 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NOUNWIND; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 233 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NORETURN; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 235 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::VoidTy, VOID); }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 236 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 227 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::FloatTy, FLOAT); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 237 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::DoubleTy,DOUBLE);}
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 238 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::LabelTy, LABEL); }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 239 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TYPE; }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 240 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OPAQUE; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 241 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 232 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ uint64_t NumBits = atoull(yytext+1);
if (NumBits < IntegerType::MIN_INT_BITS ||
NumBits > IntegerType::MAX_INT_BITS)
@@ -1543,419 +1543,418 @@
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 249 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 240 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Add, ADD); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 250 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Sub, SUB); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 251 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Mul, MUL); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 252 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 253 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 254 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 245 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 255 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 246 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, URem, UREM); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 256 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 247 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, SRem, SREM); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 257 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 248 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, FRem, FREM); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 258 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 249 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Shl, SHL); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 259 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 250 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, LShr, LSHR); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 260 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 251 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, AShr, ASHR); }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 261 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 252 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, And, AND); }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 262 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 253 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Or , OR ); }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 263 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Xor, XOR); }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 264 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, ICmp, ICMP); }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 265 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, FCmp, FCMP); }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 267 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return EQ; }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 268 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NE; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 269 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SLT; }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 270 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SGT; }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 271 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SLE; }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 272 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SGE; }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 273 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ULT; }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 274 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UGT; }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 275 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ULE; }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 276 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UGE; }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 277 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OEQ; }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 278 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ONE; }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 279 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OLT; }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 280 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 271 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OGT; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 281 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OLE; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 282 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OGE; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 283 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ORD; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 284 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UNO; }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 285 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UEQ; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 286 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UNE; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 288 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 289 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, Call, CALL); }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 290 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, Trunc, TRUNC); }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 291 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, ZExt, ZEXT); }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 292 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, SExt, SEXT); }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 293 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 294 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPExt, FPEXT); }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 295 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 296 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 297 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 298 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 299 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 300 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 301 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 292 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, BitCast, BITCAST); }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 302 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, Select, SELECT); }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 303 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, VAArg , VAARG); }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 304 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Ret, RET); }
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 305 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Br, BR); }
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 306 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Switch, SWITCH); }
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 307 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Invoke, INVOKE); }
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 308 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Unwind, UNWIND); }
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 309 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 311 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Malloc, MALLOC); }
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 312 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 313 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Free, FREE); }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 314 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Load, LOAD); }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 315 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Store, STORE); }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 316 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 318 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 319 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 320 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 323 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
- UnEscapeLexed(yytext+1);
- llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
+ llvmAsmlval.StrVal = new std::string(yytext+1); // Skip %
return LOCALVAR;
}
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 328 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
- UnEscapeLexed(yytext+1);
- llvmAsmlval.StrVal = strdup(yytext+1); // Skip @
+ llvmAsmlval.StrVal = new std::string(yytext+1); // Skip @
return GLOBALVAR;
}
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 333 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 322 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
- yytext[strlen(yytext)-1] = 0; // nuke colon
- UnEscapeLexed(yytext);
- llvmAsmlval.StrVal = strdup(yytext);
+ yytext[yyleng-1] = 0; // nuke colon
+ llvmAsmlval.StrVal = new std::string(yytext);
return LABELSTR;
}
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 339 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 327 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
- yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
- UnEscapeLexed(yytext+1);
- llvmAsmlval.StrVal = strdup(yytext+1);
+ yytext[yyleng-2] = 0; // nuke colon, end quote
+ const char* EndChar = UnEscapeLexed(yytext+1);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+1, EndChar - yytext - 1);
return LABELSTR;
}
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 346 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ // Note that we cannot unescape a string constant here! The
- // string constant might contain a \00 which would not be
- // understood by the string stuff. It is valid to make a
- // [sbyte] c"Hello World\00" constant, for example.
- //
- yytext[strlen(yytext)-1] = 0; // nuke end quote
- llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
+#line 335 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ yytext[yyleng-1] = 0; // nuke end quote
+ const char* EndChar = UnEscapeLexed(yytext+1);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+1, EndChar - yytext - 1);
return STRINGCONSTANT;
}
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 355 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 341 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
- yytext[strlen(yytext)-1] = 0; // nuke end quote
- llvmAsmlval.StrVal = strdup(yytext+2); // Nuke @, quote
+ yytext[yyleng-1] = 0; // nuke end quote
+ const char* EndChar = UnEscapeLexed(yytext+2);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+2, EndChar - yytext - 2);
return ATSTRINGCONSTANT;
}
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 361 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 348 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
- yytext[strlen(yytext)-1] = 0; // nuke end quote
- llvmAsmlval.StrVal = strdup(yytext+2); // Nuke %, quote
+ yytext[yyleng-1] = 0; // nuke end quote
+ const char* EndChar = UnEscapeLexed(yytext+2);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+2, EndChar - yytext - 2);
return PCTSTRINGCONSTANT;
}
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 366 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ int len = strlen(yytext);
- uint32_t numBits = ((len * 64) / 19) + 1;
- APInt Tmp(numBits, yytext, len, 10);
+#line 355 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{
+ uint32_t numBits = ((yyleng * 64) / 19) + 1;
+ APInt Tmp(numBits, yytext, yyleng, 10);
uint32_t activeBits = Tmp.getActiveBits();
if (activeBits > 0 && activeBits < numBits)
Tmp.trunc(activeBits);
@@ -1970,10 +1969,10 @@
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 380 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ int len = strlen(yytext);
- uint32_t numBits = (((len-1) * 64) / 19) + 2;
- APInt Tmp(numBits, yytext, len, 10);
+#line 369 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{
+ uint32_t numBits = (((yyleng-1) * 64) / 19) + 2;
+ APInt Tmp(numBits, yytext, yyleng, 10);
uint32_t minBits = Tmp.getMinSignedBits();
if (minBits > 0 && minBits < numBits)
Tmp.trunc(minBits);
@@ -1988,8 +1987,8 @@
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 395 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
-{ int len = strlen(yytext+3) - 3;
+#line 384 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ int len = yyleng - 3;
uint32_t bits = len * 4;
APInt Tmp(bits, yytext+3, len, 16);
uint32_t activeBits = Tmp.getActiveBits();
@@ -2009,7 +2008,7 @@
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 413 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 402 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+1);
if ((unsigned)Val != Val)
@@ -2020,7 +2019,7 @@
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 420 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 409 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+1);
if ((unsigned)Val != Val)
@@ -2031,16 +2030,16 @@
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 428 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 417 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 429 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 418 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 431 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 420 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
/* Make sure to free the internal buffers for flex when we are
* done reading our input!
@@ -2051,20 +2050,20 @@
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 439 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 428 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ /* Ignore whitespace */ }
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 440 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 429 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return yytext[0]; }
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 442 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 2068 "Lexer.cpp"
+#line 2067 "Lexer.cpp"
case YY_END_OF_BUFFER:
{
@@ -2440,6 +2439,7 @@
#endif /* ifndef YY_NO_UNPUT */
+#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
#else
@@ -2513,7 +2513,7 @@
return c;
}
-
+#endif /* YY_NO_INPUT */
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
@@ -2624,11 +2624,6 @@
}
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -2946,5 +2941,5 @@
return 0;
}
#endif
-#line 442 "/Users/sabre/cvs/llvm/lib/AsmParser/Lexer.l"
+#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
Index: llvm/lib/AsmParser/Lexer.l.cvs
diff -u llvm/lib/AsmParser/Lexer.l.cvs:1.37 llvm/lib/AsmParser/Lexer.l.cvs:1.38
--- llvm/lib/AsmParser/Lexer.l.cvs:1.37 Tue May 22 01:56:32 2007
+++ llvm/lib/AsmParser/Lexer.l.cvs Tue May 22 13:52:55 2007
@@ -101,29 +101,20 @@
// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
-// appropriate character. If AllowNull is set to false, a \00 value will cause
-// an exception to be thrown.
-//
-// If AllowNull is set to true, the return value of the function points to the
-// last character of the string in memory.
-//
-char *UnEscapeLexed(char *Buffer, bool AllowNull) {
+// appropriate character.
+char *UnEscapeLexed(char *Buffer) {
char *BOut = Buffer;
for (char *BIn = Buffer; *BIn; ) {
if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
- char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
- *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
- if (!AllowNull && !*BOut)
- GenerateError("String literal cannot accept \\00 escape!");
-
- BIn[3] = Tmp; // Restore character
- BIn += 3; // Skip over handled chars
+ char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
+ *BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
+ BIn[3] = Tmp; // Restore character
+ BIn += 3; // Skip over handled chars
++BOut;
} else {
*BOut++ = *BIn++;
}
}
-
return BOut;
}
@@ -321,51 +312,49 @@
{LocalVarName} {
- UnEscapeLexed(yytext+1);
- llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
+ llvmAsmlval.StrVal = new std::string(yytext+1); // Skip %
return LOCALVAR;
}
{GlobalVarName} {
- UnEscapeLexed(yytext+1);
- llvmAsmlval.StrVal = strdup(yytext+1); // Skip @
+ llvmAsmlval.StrVal = new std::string(yytext+1); // Skip @
return GLOBALVAR;
}
{Label} {
- yytext[strlen(yytext)-1] = 0; // nuke colon
- UnEscapeLexed(yytext);
- llvmAsmlval.StrVal = strdup(yytext);
+ yytext[yyleng-1] = 0; // nuke colon
+ llvmAsmlval.StrVal = new std::string(yytext);
return LABELSTR;
}
{QuoteLabel} {
- yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
- UnEscapeLexed(yytext+1);
- llvmAsmlval.StrVal = strdup(yytext+1);
+ yytext[yyleng-2] = 0; // nuke colon, end quote
+ const char* EndChar = UnEscapeLexed(yytext+1);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+1, EndChar - yytext - 1);
return LABELSTR;
}
-{StringConstant} { // Note that we cannot unescape a string constant here! The
- // string constant might contain a \00 which would not be
- // understood by the string stuff. It is valid to make a
- // [sbyte] c"Hello World\00" constant, for example.
- //
- yytext[strlen(yytext)-1] = 0; // nuke end quote
- llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
+{StringConstant} { yytext[yyleng-1] = 0; // nuke end quote
+ const char* EndChar = UnEscapeLexed(yytext+1);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+1, EndChar - yytext - 1);
return STRINGCONSTANT;
}
{AtStringConstant} {
- yytext[strlen(yytext)-1] = 0; // nuke end quote
- llvmAsmlval.StrVal = strdup(yytext+2); // Nuke @, quote
+ yytext[yyleng-1] = 0; // nuke end quote
+ const char* EndChar = UnEscapeLexed(yytext+2);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+2, EndChar - yytext - 2);
return ATSTRINGCONSTANT;
}
-
{PctStringConstant} {
- yytext[strlen(yytext)-1] = 0; // nuke end quote
- llvmAsmlval.StrVal = strdup(yytext+2); // Nuke %, quote
+ yytext[yyleng-1] = 0; // nuke end quote
+ const char* EndChar = UnEscapeLexed(yytext+2);
+ llvmAsmlval.StrVal =
+ new std::string(yytext+2, EndChar - yytext - 2);
return PCTSTRINGCONSTANT;
}
-{PInteger} { int len = strlen(yytext);
- uint32_t numBits = ((len * 64) / 19) + 1;
- APInt Tmp(numBits, yytext, len, 10);
+{PInteger} {
+ uint32_t numBits = ((yyleng * 64) / 19) + 1;
+ APInt Tmp(numBits, yytext, yyleng, 10);
uint32_t activeBits = Tmp.getActiveBits();
if (activeBits > 0 && activeBits < numBits)
Tmp.trunc(activeBits);
@@ -377,9 +366,9 @@
return EUINT64VAL;
}
}
-{NInteger} { int len = strlen(yytext);
- uint32_t numBits = (((len-1) * 64) / 19) + 2;
- APInt Tmp(numBits, yytext, len, 10);
+{NInteger} {
+ uint32_t numBits = (((yyleng-1) * 64) / 19) + 2;
+ APInt Tmp(numBits, yytext, yyleng, 10);
uint32_t minBits = Tmp.getMinSignedBits();
if (minBits > 0 && minBits < numBits)
Tmp.trunc(minBits);
@@ -392,7 +381,7 @@
}
}
-{HexIntConstant} { int len = strlen(yytext+3) - 3;
+{HexIntConstant} { int len = yyleng - 3;
uint32_t bits = len * 4;
APInt Tmp(bits, yytext+3, len, 16);
uint32_t activeBits = Tmp.getActiveBits();
Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.99 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.100
--- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.99 Sat May 19 02:22:10 2007
+++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs Tue May 22 13:52:55 2007
@@ -342,7 +342,7 @@
/* Copy the first part of user declarations. */
-#line 14 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
#include "ParserInternals.h"
#include "llvm/CallingConv.h"
@@ -614,7 +614,7 @@
return CurModule.Types[D.Num];
break;
case ValID::LocalName: // Is it a named definition?
- if (const Type *N = CurModule.CurrentModule->getTypeByName(D.Name)) {
+ if (const Type *N = CurModule.CurrentModule->getTypeByName(D.getName())) {
D.destroy(); // Free old strdup'd memory...
return N;
}
@@ -692,7 +692,7 @@
if (!inFunctionScope())
return 0;
ValueSymbolTable &SymTab = CurFun.CurrentFunction->getValueSymbolTable();
- Value *N = SymTab.lookup(D.Name);
+ Value *N = SymTab.lookup(D.getName());
if (N == 0)
return 0;
if (N->getType() != Ty)
@@ -703,7 +703,7 @@
}
case ValID::GlobalName: { // Is it a named definition?
ValueSymbolTable &SymTab = CurModule.CurrentModule->getValueSymbolTable();
- Value *N = SymTab.lookup(D.Name);
+ Value *N = SymTab.lookup(D.getName());
if (N == 0)
return 0;
if (N->getType() != Ty)
@@ -882,7 +882,7 @@
// We haven't seen this BB before and its first mention is a definition.
// Just create it and return it.
- std::string Name (ID.Type == ValID::LocalName ? ID.Name : "");
+ std::string Name (ID.Type == ValID::LocalName ? ID.getName() : "");
BB = new BasicBlock(Name, CurFun.CurrentFunction);
if (ID.Type == ValID::LocalID) {
assert(ID.Num == CurFun.NextValNum && "Invalid new block number");
@@ -904,7 +904,7 @@
if (BBI != CurFun.BBForwardRefs.end()) {
BB = BBI->second;
} if (ID.Type == ValID::LocalName) {
- std::string Name = ID.Name;
+ std::string Name = ID.getName();
Value *N = CurFun.CurrentFunction->getValueSymbolTable().lookup(Name);
if (N)
if (N->getType()->getTypeID() == Type::LabelTyID)
@@ -935,7 +935,7 @@
// Otherwise, this block has not been seen before, create it.
std::string Name;
if (ID.Type == ValID::LocalName)
- Name = ID.Name;
+ Name = ID.getName();
BB = new BasicBlock(Name, CurFun.CurrentFunction);
// Insert it in the forward refs map.
@@ -1007,10 +1007,12 @@
// name is not null) things referencing Name can be resolved. Otherwise, things
// refering to the number can be resolved. Do this now.
//
-static void ResolveTypeTo(char *Name, const Type *ToTy) {
+static void ResolveTypeTo(std::string *Name, const Type *ToTy) {
ValID D;
- if (Name) D = ValID::createLocalName(Name);
- else D = ValID::createLocalID(CurModule.Types.size());
+ if (Name)
+ D = ValID::createLocalName(*Name);
+ else
+ D = ValID::createLocalID(CurModule.Types.size());
std::map<ValID, PATypeHolder>::iterator I =
CurModule.LateResolveTypes.find(D);
@@ -1024,10 +1026,10 @@
// null potentially, in which case this is a noop. The string passed in is
// assumed to be a malloc'd string buffer, and is free'd by this function.
//
-static void setValueName(Value *V, char *NameStr) {
+static void setValueName(Value *V, std::string *NameStr) {
if (!NameStr) return;
- std::string Name(NameStr); // Copy string
- free(NameStr); // Free old string
+ std::string Name(*NameStr); // Copy string
+ delete NameStr; // Free old string
if (V->getType() == Type::VoidTy) {
GenerateError("Can't assign name '" + Name+"' to value with void type");
@@ -1049,7 +1051,7 @@
/// ParseGlobalVariable - Handle parsing of a global. If Initializer is null,
/// this is a declaration, otherwise it is a definition.
static GlobalVariable *
-ParseGlobalVariable(char *NameStr,
+ParseGlobalVariable(std::string *NameStr,
GlobalValue::LinkageTypes Linkage,
GlobalValue::VisibilityTypes Visibility,
bool isConstantGlobal, const Type *Ty,
@@ -1063,15 +1065,15 @@
std::string Name;
if (NameStr) {
- Name = NameStr; // Copy string
- free(NameStr); // Free old string
+ Name = *NameStr; // Copy string
+ delete NameStr; // Free old string
}
// See if this global value was forward referenced. If so, recycle the
// object.
ValID ID;
if (!Name.empty()) {
- ID = ValID::createGlobalName((char*)Name.c_str());
+ ID = ValID::createGlobalName(Name);
} else {
ID = ValID::createGlobalID(CurModule.Values.size());
}
@@ -1124,12 +1126,12 @@
// This function returns true if the type has already been defined, but is
// allowed to be redefined in the specified context. If the name is a new name
// for the type plane, it is inserted and false is returned.
-static bool setTypeName(const Type *T, char *NameStr) {
+static bool setTypeName(const Type *T, std::string *NameStr) {
assert(!inFunctionScope() && "Can't give types function-local names!");
if (NameStr == 0) return false;
- std::string Name(NameStr); // Copy string
- free(NameStr); // Free old string
+ std::string Name(*NameStr); // Copy string
+ delete NameStr; // Free old string
// We don't allow assigning names to void type
if (T == Type::VoidTy) {
@@ -1303,7 +1305,7 @@
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 955 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 957 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
typedef union YYSTYPE {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
@@ -1339,8 +1341,8 @@
double FPVal;
bool BoolVal;
- char *StrVal; // This memory is strdup'd!
- llvm::ValID ValIDVal; // strdup'd memory maybe!
+ std::string *StrVal; // This memory must be deleted
+ llvm::ValID ValIDVal;
llvm::Instruction::BinaryOps BinaryOpVal;
llvm::Instruction::TermOps TermOpVal;
@@ -1351,7 +1353,7 @@
llvm::FCmpInst::Predicate FPredicate;
} YYSTYPE;
/* Line 196 of yacc.c. */
-#line 1355 "llvmAsmParser.tab.c"
+#line 1357 "llvmAsmParser.tab.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@@ -1363,7 +1365,7 @@
/* Line 219 of yacc.c. */
-#line 1367 "llvmAsmParser.tab.c"
+#line 1369 "llvmAsmParser.tab.c"
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
@@ -1717,36 +1719,36 @@
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short int yyrline[] =
{
- 0, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
- 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114,
- 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1118,
- 1118, 1119, 1119, 1120, 1120, 1121, 1121, 1122, 1122, 1126,
- 1126, 1127, 1127, 1128, 1128, 1129, 1129, 1130, 1130, 1131,
- 1131, 1132, 1132, 1133, 1134, 1139, 1140, 1140, 1142, 1142,
- 1142, 1143, 1143, 1147, 1151, 1156, 1156, 1158, 1159, 1164,
- 1170, 1171, 1172, 1173, 1174, 1178, 1179, 1180, 1184, 1185,
- 1186, 1187, 1191, 1192, 1193, 1197, 1198, 1199, 1200, 1201,
- 1205, 1206, 1207, 1210, 1211, 1212, 1213, 1214, 1215, 1216,
- 1223, 1224, 1225, 1226, 1229, 1230, 1235, 1236, 1237, 1240,
- 1241, 1248, 1249, 1255, 1256, 1264, 1272, 1273, 1278, 1279,
- 1280, 1285, 1298, 1298, 1298, 1298, 1301, 1305, 1309, 1316,
- 1321, 1329, 1359, 1390, 1395, 1407, 1417, 1421, 1431, 1438,
- 1445, 1452, 1457, 1462, 1469, 1470, 1477, 1484, 1492, 1498,
- 1510, 1538, 1554, 1583, 1611, 1637, 1657, 1683, 1703, 1715,
- 1722, 1788, 1798, 1808, 1814, 1824, 1830, 1840, 1845, 1850,
- 1858, 1870, 1892, 1900, 1906, 1917, 1922, 1927, 1933, 1939,
- 1948, 1952, 1960, 1960, 1963, 1963, 1966, 1977, 1998, 2003,
- 2011, 2012, 2016, 2016, 2020, 2020, 2023, 2026, 2050, 2061,
- 2061, 2072, 2071, 2081, 2080, 2091, 2106, 2109, 2115, 2128,
- 2132, 2137, 2139, 2144, 2149, 2158, 2168, 2179, 2183, 2192,
- 2201, 2206, 2328, 2328, 2330, 2339, 2339, 2341, 2346, 2358,
- 2362, 2367, 2371, 2375, 2379, 2383, 2387, 2391, 2395, 2399,
- 2424, 2428, 2442, 2446, 2450, 2454, 2460, 2460, 2466, 2475,
- 2479, 2488, 2497, 2506, 2510, 2515, 2519, 2523, 2528, 2538,
- 2557, 2566, 2646, 2650, 2657, 2668, 2681, 2691, 2702, 2712,
- 2721, 2730, 2733, 2734, 2741, 2745, 2750, 2771, 2788, 2802,
- 2816, 2828, 2836, 2843, 2849, 2855, 2861, 2876, 2961, 2966,
- 2970, 2977, 2984, 2992, 2999, 3007, 3015, 3029, 3046
+ 0, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
+ 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1122,
+ 1122, 1123, 1123, 1124, 1124, 1125, 1125, 1126, 1126, 1130,
+ 1130, 1131, 1131, 1132, 1132, 1133, 1133, 1134, 1134, 1135,
+ 1135, 1136, 1136, 1137, 1138, 1143, 1144, 1144, 1146, 1146,
+ 1146, 1147, 1147, 1151, 1155, 1160, 1160, 1162, 1163, 1168,
+ 1174, 1175, 1176, 1177, 1178, 1182, 1183, 1184, 1188, 1189,
+ 1190, 1191, 1195, 1196, 1197, 1201, 1202, 1203, 1204, 1205,
+ 1209, 1210, 1211, 1214, 1215, 1216, 1217, 1218, 1219, 1220,
+ 1227, 1228, 1229, 1230, 1233, 1234, 1239, 1240, 1241, 1244,
+ 1245, 1252, 1253, 1259, 1260, 1268, 1276, 1277, 1282, 1283,
+ 1284, 1289, 1302, 1302, 1302, 1302, 1305, 1309, 1313, 1320,
+ 1325, 1333, 1363, 1394, 1399, 1411, 1421, 1425, 1435, 1442,
+ 1449, 1456, 1461, 1466, 1473, 1474, 1481, 1488, 1496, 1502,
+ 1514, 1542, 1558, 1585, 1613, 1639, 1659, 1685, 1705, 1717,
+ 1724, 1790, 1800, 1810, 1816, 1826, 1832, 1842, 1847, 1852,
+ 1860, 1872, 1894, 1902, 1908, 1919, 1924, 1929, 1935, 1941,
+ 1950, 1954, 1962, 1962, 1965, 1965, 1968, 1979, 2000, 2005,
+ 2013, 2014, 2018, 2018, 2022, 2022, 2025, 2028, 2052, 2063,
+ 2063, 2074, 2073, 2083, 2082, 2093, 2112, 2115, 2121, 2131,
+ 2135, 2140, 2142, 2147, 2152, 2161, 2171, 2182, 2186, 2195,
+ 2204, 2209, 2330, 2330, 2332, 2341, 2341, 2343, 2348, 2360,
+ 2364, 2369, 2373, 2377, 2381, 2385, 2389, 2393, 2397, 2401,
+ 2426, 2430, 2440, 2444, 2448, 2453, 2460, 2460, 2466, 2475,
+ 2479, 2488, 2497, 2506, 2510, 2517, 2521, 2525, 2530, 2540,
+ 2559, 2568, 2648, 2652, 2659, 2670, 2683, 2693, 2704, 2714,
+ 2723, 2732, 2735, 2736, 2743, 2747, 2752, 2773, 2790, 2804,
+ 2818, 2830, 2838, 2845, 2851, 2857, 2863, 2878, 2963, 2968,
+ 2972, 2979, 2986, 2994, 3001, 3009, 3017, 3031, 3048
};
#endif
@@ -3122,142 +3124,142 @@
switch (yyn)
{
case 29:
-#line 1118 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1122 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
break;
case 30:
-#line 1118 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1122 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
break;
case 31:
-#line 1119 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1123 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
break;
case 32:
-#line 1119 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1123 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
break;
case 33:
-#line 1120 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1124 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
break;
case 34:
-#line 1120 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1124 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
break;
case 35:
-#line 1121 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1125 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
break;
case 36:
-#line 1121 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1125 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
break;
case 37:
-#line 1122 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1126 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
break;
case 38:
-#line 1122 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1126 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
break;
case 39:
-#line 1126 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1130 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
break;
case 40:
-#line 1126 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1130 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
break;
case 41:
-#line 1127 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1131 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
break;
case 42:
-#line 1127 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1131 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
break;
case 43:
-#line 1128 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1132 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
break;
case 44:
-#line 1128 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1132 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
break;
case 45:
-#line 1129 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1133 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
break;
case 46:
-#line 1129 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1133 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
break;
case 47:
-#line 1130 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1134 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
break;
case 48:
-#line 1130 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1134 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
break;
case 49:
-#line 1131 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1135 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
break;
case 50:
-#line 1131 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1135 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
break;
case 51:
-#line 1132 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1136 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
break;
case 52:
-#line 1132 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1136 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
break;
case 53:
-#line 1133 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1137 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
break;
case 54:
-#line 1134 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1138 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
break;
case 62:
-#line 1143 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1147 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.StrVal) = 0; ;}
break;
case 63:
-#line 1147 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1151 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.StrVal) = (yyvsp[-1].StrVal);
CHECK_FOR_ERROR
@@ -3265,7 +3267,7 @@
break;
case 64:
-#line 1151 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1155 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.StrVal) = 0;
CHECK_FOR_ERROR
@@ -3273,7 +3275,7 @@
break;
case 68:
-#line 1159 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1163 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.StrVal) = 0;
CHECK_FOR_ERROR
@@ -3281,7 +3283,7 @@
break;
case 69:
-#line 1164 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1168 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.StrVal) = (yyvsp[-1].StrVal);
CHECK_FOR_ERROR
@@ -3289,152 +3291,152 @@
break;
case 70:
-#line 1170 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1174 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
break;
case 71:
-#line 1171 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1175 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
break;
case 72:
-#line 1172 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1176 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
break;
case 73:
-#line 1173 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1177 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
break;
case 74:
-#line 1174 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1178 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
break;
case 75:
-#line 1178 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1182 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
break;
case 76:
-#line 1179 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1183 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
break;
case 77:
-#line 1180 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1184 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
break;
case 78:
-#line 1184 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1188 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
break;
case 79:
-#line 1185 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1189 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
break;
case 80:
-#line 1186 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1190 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Visibility) = GlobalValue::HiddenVisibility; ;}
break;
case 81:
-#line 1187 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1191 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
break;
case 82:
-#line 1191 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1195 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
break;
case 83:
-#line 1192 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1196 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
break;
case 84:
-#line 1193 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1197 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
break;
case 85:
-#line 1197 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1201 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
break;
case 86:
-#line 1198 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1202 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
break;
case 87:
-#line 1199 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1203 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
break;
case 88:
-#line 1200 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1204 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
break;
case 89:
-#line 1201 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1205 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
break;
case 90:
-#line 1205 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1209 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
break;
case 91:
-#line 1206 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1210 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
break;
case 92:
-#line 1207 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1211 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
break;
case 93:
-#line 1210 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1214 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = CallingConv::C; ;}
break;
case 94:
-#line 1211 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1215 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = CallingConv::C; ;}
break;
case 95:
-#line 1212 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1216 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = CallingConv::Fast; ;}
break;
case 96:
-#line 1213 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1217 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = CallingConv::Cold; ;}
break;
case 97:
-#line 1214 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1218 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
break;
case 98:
-#line 1215 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1219 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
break;
case 99:
-#line 1216 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1220 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
GEN_ERROR("Calling conv too large");
@@ -3444,66 +3446,66 @@
break;
case 100:
-#line 1223 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1227 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
break;
case 101:
-#line 1224 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1228 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::SExt; ;}
break;
case 102:
-#line 1225 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1229 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::InReg; ;}
break;
case 103:
-#line 1226 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1230 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::StructRet; ;}
break;
case 104:
-#line 1229 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1233 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::None; ;}
break;
case 105:
-#line 1230 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1234 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ParamAttrs) = (yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs);
;}
break;
case 106:
-#line 1235 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1239 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::NoReturn; ;}
break;
case 107:
-#line 1236 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1240 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::NoUnwind; ;}
break;
case 109:
-#line 1240 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1244 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ParamAttrs) = ParamAttr::None; ;}
break;
case 110:
-#line 1241 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1245 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ParamAttrs) = (yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs);
;}
break;
case 111:
-#line 1248 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1252 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = 0; ;}
break;
case 112:
-#line 1249 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1253 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.UIntVal) = (yyvsp[0].UInt64Val);
if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3513,12 +3515,12 @@
break;
case 113:
-#line 1255 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1259 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.UIntVal) = 0; ;}
break;
case 114:
-#line 1256 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1260 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.UIntVal) = (yyvsp[0].UInt64Val);
if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3528,10 +3530,10 @@
break;
case 115:
-#line 1264 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1268 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
- if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
+ for (unsigned i = 0, e = (yyvsp[0].StrVal)->length(); i != e; ++i)
+ if ((*(yyvsp[0].StrVal))[i] == '"' || (*(yyvsp[0].StrVal))[i] == '\\')
GEN_ERROR("Invalid character in section name");
(yyval.StrVal) = (yyvsp[0].StrVal);
CHECK_FOR_ERROR
@@ -3539,36 +3541,36 @@
break;
case 116:
-#line 1272 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1276 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.StrVal) = 0; ;}
break;
case 117:
-#line 1273 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1277 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.StrVal) = (yyvsp[0].StrVal); ;}
break;
case 118:
-#line 1278 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1282 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{;}
break;
case 119:
-#line 1279 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1283 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{;}
break;
case 120:
-#line 1280 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1284 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- CurGV->setSection((yyvsp[0].StrVal));
- free((yyvsp[0].StrVal));
+ CurGV->setSection(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 121:
-#line 1285 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1289 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
GEN_ERROR("Alignment must be a power of two");
@@ -3578,7 +3580,7 @@
break;
case 126:
-#line 1301 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1305 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
CHECK_FOR_ERROR
@@ -3586,7 +3588,7 @@
break;
case 127:
-#line 1305 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1309 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
CHECK_FOR_ERROR
@@ -3594,7 +3596,7 @@
break;
case 128:
-#line 1309 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1313 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Pointer type?
if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
GEN_ERROR("Cannot form a pointer to a basic block");
@@ -3605,7 +3607,7 @@
break;
case 129:
-#line 1316 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1320 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Named types are also simple types...
const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
CHECK_FOR_ERROR
@@ -3614,7 +3616,7 @@
break;
case 130:
-#line 1321 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1325 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Type UpReference
if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder
@@ -3626,7 +3628,7 @@
break;
case 131:
-#line 1329 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1333 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
std::vector<const Type*> Params;
ParamAttrsVector Attrs;
@@ -3660,7 +3662,7 @@
break;
case 132:
-#line 1359 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1363 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
std::vector<const Type*> Params;
ParamAttrsVector Attrs;
@@ -3694,7 +3696,7 @@
break;
case 133:
-#line 1390 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1394 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Sized array type?
(yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
delete (yyvsp[-1].TypeVal);
@@ -3703,7 +3705,7 @@
break;
case 134:
-#line 1395 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1399 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Vector type?
const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -3719,7 +3721,7 @@
break;
case 135:
-#line 1407 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1411 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Structure type?
std::vector<const Type*> Elements;
for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -3733,7 +3735,7 @@
break;
case 136:
-#line 1417 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1421 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Empty structure type?
(yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
CHECK_FOR_ERROR
@@ -3741,7 +3743,7 @@
break;
case 137:
-#line 1421 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1425 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
std::vector<const Type*> Elements;
for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-2].TypeList)->begin(),
@@ -3755,7 +3757,7 @@
break;
case 138:
-#line 1431 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1435 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Empty structure type?
(yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
CHECK_FOR_ERROR
@@ -3763,7 +3765,7 @@
break;
case 139:
-#line 1438 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1442 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeWithAttrs).Ty = (yyvsp[-1].TypeVal);
(yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs);
@@ -3771,7 +3773,7 @@
break;
case 140:
-#line 1445 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1449 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -3782,14 +3784,14 @@
break;
case 141:
-#line 1452 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1456 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
;}
break;
case 142:
-#line 1457 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1461 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeWithAttrsList) = new TypeWithAttrsList();
(yyval.TypeWithAttrsList)->push_back((yyvsp[0].TypeWithAttrs));
@@ -3798,7 +3800,7 @@
break;
case 143:
-#line 1462 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1466 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
((yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList))->push_back((yyvsp[0].TypeWithAttrs));
CHECK_FOR_ERROR
@@ -3806,7 +3808,7 @@
break;
case 145:
-#line 1470 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1474 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList);
TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
@@ -3817,7 +3819,7 @@
break;
case 146:
-#line 1477 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1481 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeWithAttrsList) = new TypeWithAttrsList;
TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
@@ -3828,7 +3830,7 @@
break;
case 147:
-#line 1484 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1488 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeWithAttrsList) = new TypeWithAttrsList();
CHECK_FOR_ERROR
@@ -3836,7 +3838,7 @@
break;
case 148:
-#line 1492 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1496 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TypeList) = new std::list<PATypeHolder>();
(yyval.TypeList)->push_back(*(yyvsp[0].TypeVal));
@@ -3846,7 +3848,7 @@
break;
case 149:
-#line 1498 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1502 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal));
delete (yyvsp[0].TypeVal);
@@ -3855,7 +3857,7 @@
break;
case 150:
-#line 1510 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1514 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Nonempty unsized arr
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3887,7 +3889,7 @@
break;
case 151:
-#line 1538 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1542 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3907,7 +3909,7 @@
break;
case 152:
-#line 1554 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1558 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -3918,21 +3920,19 @@
int NumElements = ATy->getNumElements();
const Type *ETy = ATy->getElementType();
- char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
- if (NumElements != -1 && NumElements != (EndStr-(yyvsp[0].StrVal)))
+ if (NumElements != -1 && NumElements != int((yyvsp[0].StrVal)->length()))
GEN_ERROR("Can't build string constant of size " +
- itostr((int)(EndStr-(yyvsp[0].StrVal))) +
+ itostr((int)((yyvsp[0].StrVal)->length())) +
" when array has size " + itostr(NumElements) + "");
std::vector<Constant*> Vals;
if (ETy == Type::Int8Ty) {
- for (unsigned char *C = (unsigned char *)(yyvsp[0].StrVal);
- C != (unsigned char*)EndStr; ++C)
- Vals.push_back(ConstantInt::get(ETy, *C));
+ for (unsigned i = 0; i < (yyvsp[0].StrVal)->length(); ++i)
+ Vals.push_back(ConstantInt::get(ETy, (*(yyvsp[0].StrVal))[i]));
} else {
- free((yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
GEN_ERROR("Cannot build string arrays of non byte sized elements");
}
- free((yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
(yyval.ConstVal) = ConstantArray::get(ATy, Vals);
delete (yyvsp[-2].TypeVal);
CHECK_FOR_ERROR
@@ -3940,7 +3940,7 @@
break;
case 153:
-#line 1583 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1585 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Nonempty unsized arr
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -3972,7 +3972,7 @@
break;
case 154:
-#line 1611 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1613 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
if (STy == 0)
@@ -4002,7 +4002,7 @@
break;
case 155:
-#line 1637 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1639 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4026,7 +4026,7 @@
break;
case 156:
-#line 1657 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1659 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal)->get());
if (STy == 0)
@@ -4056,7 +4056,7 @@
break;
case 157:
-#line 1683 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1685 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -4080,7 +4080,7 @@
break;
case 158:
-#line 1703 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1705 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4096,7 +4096,7 @@
break;
case 159:
-#line 1715 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1717 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4107,7 +4107,7 @@
break;
case 160:
-#line 1722 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1724 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4148,7 +4148,7 @@
} else {
std::string Name;
if ((yyvsp[0].ValIDVal).Type == ValID::GlobalName)
- Name = (yyvsp[0].ValIDVal).Name;
+ Name = (yyvsp[0].ValIDVal).getName();
else if ((yyvsp[0].ValIDVal).Type != ValID::GlobalID)
GEN_ERROR("Invalid reference to global");
@@ -4177,7 +4177,7 @@
break;
case 161:
-#line 1788 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1790 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4191,7 +4191,7 @@
break;
case 162:
-#line 1798 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1800 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4205,7 +4205,7 @@
break;
case 163:
-#line 1808 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1810 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // integral constants
if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
GEN_ERROR("Constant value doesn't fit in type");
@@ -4215,7 +4215,7 @@
break;
case 164:
-#line 1814 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1816 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // arbitrary precision integer constants
uint32_t BitWidth = cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth();
if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) {
@@ -4229,7 +4229,7 @@
break;
case 165:
-#line 1824 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1826 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // integral constants
if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
GEN_ERROR("Constant value doesn't fit in type");
@@ -4239,7 +4239,7 @@
break;
case 166:
-#line 1830 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1832 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // arbitrary precision integer constants
uint32_t BitWidth = cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth();
if ((yyvsp[0].APIntVal)->getBitWidth() > BitWidth) {
@@ -4253,7 +4253,7 @@
break;
case 167:
-#line 1840 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1842 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Boolean constants
assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
(yyval.ConstVal) = ConstantInt::getTrue();
@@ -4262,7 +4262,7 @@
break;
case 168:
-#line 1845 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1847 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Boolean constants
assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
(yyval.ConstVal) = ConstantInt::getFalse();
@@ -4271,7 +4271,7 @@
break;
case 169:
-#line 1850 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1852 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Float & Double constants
if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
GEN_ERROR("Floating point constant invalid for type");
@@ -4281,7 +4281,7 @@
break;
case 170:
-#line 1858 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1860 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -4297,7 +4297,7 @@
break;
case 171:
-#line 1870 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1872 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
GEN_ERROR("GetElementPtr requires a pointer operand");
@@ -4323,7 +4323,7 @@
break;
case 172:
-#line 1892 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1894 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[-5].ConstVal)->getType() != Type::Int1Ty)
GEN_ERROR("Select condition must be of boolean type");
@@ -4335,7 +4335,7 @@
break;
case 173:
-#line 1900 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1902 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
GEN_ERROR("Binary operator types must match");
@@ -4345,7 +4345,7 @@
break;
case 174:
-#line 1906 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1908 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
GEN_ERROR("Logical operator types must match");
@@ -4360,7 +4360,7 @@
break;
case 175:
-#line 1917 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1919 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
GEN_ERROR("icmp operand types must match");
@@ -4369,7 +4369,7 @@
break;
case 176:
-#line 1922 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1924 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
GEN_ERROR("fcmp operand types must match");
@@ -4378,7 +4378,7 @@
break;
case 177:
-#line 1927 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1929 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
GEN_ERROR("Invalid extractelement operands");
@@ -4388,7 +4388,7 @@
break;
case 178:
-#line 1933 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1935 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
GEN_ERROR("Invalid insertelement operands");
@@ -4398,7 +4398,7 @@
break;
case 179:
-#line 1939 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1941 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
GEN_ERROR("Invalid shufflevector operands");
@@ -4408,7 +4408,7 @@
break;
case 180:
-#line 1948 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1950 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
CHECK_FOR_ERROR
@@ -4416,7 +4416,7 @@
break;
case 181:
-#line 1952 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1954 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ConstVector) = new std::vector<Constant*>();
(yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4425,27 +4425,27 @@
break;
case 182:
-#line 1960 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1962 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.BoolVal) = false; ;}
break;
case 183:
-#line 1960 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1962 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.BoolVal) = true; ;}
break;
case 184:
-#line 1963 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1965 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.BoolVal) = true; ;}
break;
case 185:
-#line 1963 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1965 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.BoolVal) = false; ;}
break;
case 186:
-#line 1966 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1968 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
const Type* VTy = (yyvsp[-1].TypeVal)->get();
Value *V = getVal(VTy, (yyvsp[0].ValIDVal));
@@ -4460,7 +4460,7 @@
break;
case 187:
-#line 1977 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 1979 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
Constant *Val = (yyvsp[-3].ConstVal);
const Type *DestTy = (yyvsp[-1].TypeVal)->get();
@@ -4476,7 +4476,7 @@
break;
case 188:
-#line 1998 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2000 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
CurModule.ModuleDone();
@@ -4485,7 +4485,7 @@
break;
case 189:
-#line 2003 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2005 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
CurModule.ModuleDone();
@@ -4494,12 +4494,12 @@
break;
case 192:
-#line 2016 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2018 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ CurFun.isDeclare = false; ;}
break;
case 193:
-#line 2016 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2018 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CurFun.FunctionDone();
CHECK_FOR_ERROR
@@ -4507,26 +4507,26 @@
break;
case 194:
-#line 2020 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2022 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ CurFun.isDeclare = true; ;}
break;
case 195:
-#line 2020 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2022 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CHECK_FOR_ERROR
;}
break;
case 196:
-#line 2023 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2025 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CHECK_FOR_ERROR
;}
break;
case 197:
-#line 2026 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2028 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4554,7 +4554,7 @@
break;
case 198:
-#line 2050 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2052 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
ResolveTypeTo((yyvsp[-2].StrVal), (yyvsp[0].PrimType));
@@ -4569,7 +4569,7 @@
break;
case 199:
-#line 2061 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2063 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
/* "Externally Visible" Linkage */
if ((yyvsp[0].ConstVal) == 0)
@@ -4581,14 +4581,14 @@
break;
case 200:
-#line 2068 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2070 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CurGV = 0;
;}
break;
case 201:
-#line 2072 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2074 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[0].ConstVal) == 0)
GEN_ERROR("Global value initializer is not a constant");
@@ -4598,14 +4598,14 @@
break;
case 202:
-#line 2077 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2079 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CurGV = 0;
;}
break;
case 203:
-#line 2081 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2083 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -4616,7 +4616,7 @@
break;
case 204:
-#line 2087 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2089 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CurGV = 0;
CHECK_FOR_ERROR
@@ -4624,15 +4624,19 @@
break;
case 205:
-#line 2091 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2093 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- std::string Name((yyvsp[-4].StrVal));
+ std::string Name;
+ if ((yyvsp[-4].StrVal)) {
+ Name = *(yyvsp[-4].StrVal);
+ delete (yyvsp[-4].StrVal);
+ }
if (Name.empty())
GEN_ERROR("Alias name cannot be empty");
Constant* Aliasee = (yyvsp[0].ConstVal);
if (Aliasee == 0)
- GEN_ERROR(std::string("Invalid aliasee for alias: ") + (yyvsp[-4].StrVal));
+ GEN_ERROR(std::string("Invalid aliasee for alias: ") + Name);
GlobalAlias* GA = new GlobalAlias(Aliasee->getType(), (yyvsp[-1].Linkage), Name, Aliasee,
CurModule.CurrentModule);
@@ -4643,78 +4647,75 @@
break;
case 206:
-#line 2106 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2112 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CHECK_FOR_ERROR
;}
break;
case 207:
-#line 2109 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2115 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CHECK_FOR_ERROR
;}
break;
case 208:
-#line 2115 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2121 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
- char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
- std::string NewAsm((yyvsp[0].StrVal), EndStr);
- free((yyvsp[0].StrVal));
-
if (AsmSoFar.empty())
- CurModule.CurrentModule->setModuleInlineAsm(NewAsm);
+ CurModule.CurrentModule->setModuleInlineAsm(*(yyvsp[0].StrVal));
else
- CurModule.CurrentModule->setModuleInlineAsm(AsmSoFar+"\n"+NewAsm);
+ CurModule.CurrentModule->setModuleInlineAsm(AsmSoFar+"\n"+*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 209:
-#line 2128 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2131 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
- free((yyvsp[0].StrVal));
+ CurModule.CurrentModule->setTargetTriple(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
;}
break;
case 210:
-#line 2132 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2135 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
- free((yyvsp[0].StrVal));
+ CurModule.CurrentModule->setDataLayout(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
;}
break;
case 212:
-#line 2139 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2142 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
- free((yyvsp[0].StrVal));
+ CurModule.CurrentModule->addLibrary(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 213:
-#line 2144 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2147 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
- free((yyvsp[0].StrVal));
+ CurModule.CurrentModule->addLibrary(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 214:
-#line 2149 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2152 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CHECK_FOR_ERROR
;}
break;
case 215:
-#line 2158 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2161 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4728,7 +4729,7 @@
break;
case 216:
-#line 2168 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2171 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -4742,7 +4743,7 @@
break;
case 217:
-#line 2179 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2182 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ArgList) = (yyvsp[0].ArgList);
CHECK_FOR_ERROR
@@ -4750,7 +4751,7 @@
break;
case 218:
-#line 2183 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2186 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ArgList) = (yyvsp[-2].ArgList);
struct ArgListEntry E;
@@ -4763,7 +4764,7 @@
break;
case 219:
-#line 2192 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2195 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ArgList) = new ArgListType;
struct ArgListEntry E;
@@ -4776,7 +4777,7 @@
break;
case 220:
-#line 2201 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2204 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ArgList) = 0;
CHECK_FOR_ERROR
@@ -4784,11 +4785,10 @@
break;
case 221:
-#line 2207 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2210 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- UnEscapeLexed((yyvsp[-6].StrVal));
- std::string FunctionName((yyvsp[-6].StrVal));
- free((yyvsp[-6].StrVal)); // Free strdup'd memory!
+ std::string FunctionName(*(yyvsp[-6].StrVal));
+ delete (yyvsp[-6].StrVal); // Free strdup'd memory!
// Check the function result for abstractness if this is a define. We should
// have no abstract types at this point
@@ -4877,8 +4877,8 @@
Fn->setCallingConv((yyvsp[-8].UIntVal));
Fn->setAlignment((yyvsp[0].UIntVal));
if ((yyvsp[-1].StrVal)) {
- Fn->setSection((yyvsp[-1].StrVal));
- free((yyvsp[-1].StrVal));
+ Fn->setSection(*(yyvsp[-1].StrVal));
+ delete (yyvsp[-1].StrVal);
}
// Add all of the arguments we parsed to the function...
@@ -4895,7 +4895,7 @@
for (ArgListType::iterator I = (yyvsp[-4].ArgList)->begin();
I != (yyvsp[-4].ArgList)->end() && ArgIt != ArgEnd; ++I, ++ArgIt) {
delete I->Ty; // Delete the typeholder...
- setValueName(ArgIt, I->Name); // Insert arg into symtab...
+ setValueName(ArgIt, I->Name); // Insert arg into symtab...
CHECK_FOR_ERROR
InsertValue(ArgIt);
Idx++;
@@ -4908,7 +4908,7 @@
break;
case 224:
-#line 2330 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2332 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.FunctionVal) = CurFun.CurrentFunction;
@@ -4920,7 +4920,7 @@
break;
case 227:
-#line 2341 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2343 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
CHECK_FOR_ERROR
@@ -4928,7 +4928,7 @@
break;
case 228:
-#line 2346 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2348 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
CurFun.CurrentFunction->setLinkage((yyvsp[-2].Linkage));
CurFun.CurrentFunction->setVisibility((yyvsp[-1].Visibility));
@@ -4939,7 +4939,7 @@
break;
case 229:
-#line 2358 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2360 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.BoolVal) = false;
CHECK_FOR_ERROR
@@ -4947,7 +4947,7 @@
break;
case 230:
-#line 2362 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2364 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.BoolVal) = true;
CHECK_FOR_ERROR
@@ -4955,7 +4955,7 @@
break;
case 231:
-#line 2367 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2369 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // A reference to a direct constant
(yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
CHECK_FOR_ERROR
@@ -4963,7 +4963,7 @@
break;
case 232:
-#line 2371 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2373 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
CHECK_FOR_ERROR
@@ -4971,7 +4971,7 @@
break;
case 233:
-#line 2375 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2377 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Perhaps it's an FP constant?
(yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
CHECK_FOR_ERROR
@@ -4979,7 +4979,7 @@
break;
case 234:
-#line 2379 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2381 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
CHECK_FOR_ERROR
@@ -4987,7 +4987,7 @@
break;
case 235:
-#line 2383 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2385 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
CHECK_FOR_ERROR
@@ -4995,7 +4995,7 @@
break;
case 236:
-#line 2387 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2389 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::createNull();
CHECK_FOR_ERROR
@@ -5003,7 +5003,7 @@
break;
case 237:
-#line 2391 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2393 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::createUndef();
CHECK_FOR_ERROR
@@ -5011,7 +5011,7 @@
break;
case 238:
-#line 2395 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2397 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // A vector zero constant.
(yyval.ValIDVal) = ValID::createZeroInit();
CHECK_FOR_ERROR
@@ -5019,7 +5019,7 @@
break;
case 239:
-#line 2399 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2401 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Nonempty unsized packed vector
const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
int NumElements = (yyvsp[-1].ConstVector)->size();
@@ -5048,7 +5048,7 @@
break;
case 240:
-#line 2424 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2426 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
CHECK_FOR_ERROR
@@ -5056,21 +5056,17 @@
break;
case 241:
-#line 2428 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2430 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
- char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
- std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
- End = UnEscapeLexed((yyvsp[0].StrVal), true);
- std::string Constraints = std::string((yyvsp[0].StrVal), End);
- (yyval.ValIDVal) = ValID::createInlineAsm(AsmStr, Constraints, (yyvsp[-3].BoolVal));
- free((yyvsp[-2].StrVal));
- free((yyvsp[0].StrVal));
+ (yyval.ValIDVal) = ValID::createInlineAsm(*(yyvsp[-2].StrVal), *(yyvsp[0].StrVal), (yyvsp[-3].BoolVal));
+ delete (yyvsp[-2].StrVal);
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 242:
-#line 2442 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2440 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Is it an integer reference...?
(yyval.ValIDVal) = ValID::createLocalID((yyvsp[0].UIntVal));
CHECK_FOR_ERROR
@@ -5078,7 +5074,7 @@
break;
case 243:
-#line 2446 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2444 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValIDVal) = ValID::createGlobalID((yyvsp[0].UIntVal));
CHECK_FOR_ERROR
@@ -5086,23 +5082,25 @@
break;
case 244:
-#line 2450 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2448 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Is it a named reference...?
- (yyval.ValIDVal) = ValID::createLocalName((yyvsp[0].StrVal));
+ (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 245:
-#line 2454 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2453 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Is it a named reference...?
- (yyval.ValIDVal) = ValID::createGlobalName((yyvsp[0].StrVal));
+ (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[0].StrVal));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
;}
break;
case 248:
-#line 2466 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2466 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5113,7 +5111,7 @@
break;
case 249:
-#line 2475 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2475 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
CHECK_FOR_ERROR
@@ -5121,7 +5119,7 @@
break;
case 250:
-#line 2479 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2479 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Do not allow functions with 0 basic blocks
(yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
CHECK_FOR_ERROR
@@ -5129,7 +5127,7 @@
break;
case 251:
-#line 2488 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2488 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
CHECK_FOR_ERROR
@@ -5141,7 +5139,7 @@
break;
case 252:
-#line 2497 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2497 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[0].InstVal)))
if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
@@ -5154,7 +5152,7 @@
break;
case 253:
-#line 2506 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2506 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Empty space between instruction lists
(yyval.BasicBlockVal) = defineBBVal(ValID::createLocalID(CurFun.NextValNum));
CHECK_FOR_ERROR
@@ -5162,15 +5160,17 @@
break;
case 254:
-#line 2510 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2510 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Labelled (named) basic block
- (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalName((yyvsp[0].StrVal)));
+ (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalName(*(yyvsp[0].StrVal)));
+ delete (yyvsp[0].StrVal);
CHECK_FOR_ERROR
+
;}
break;
case 255:
-#line 2515 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2517 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Return with a result...
(yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
CHECK_FOR_ERROR
@@ -5178,7 +5178,7 @@
break;
case 256:
-#line 2519 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2521 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Return with no result...
(yyval.TermInstVal) = new ReturnInst();
CHECK_FOR_ERROR
@@ -5186,7 +5186,7 @@
break;
case 257:
-#line 2523 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2525 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Unconditional Branch...
BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
CHECK_FOR_ERROR
@@ -5195,7 +5195,7 @@
break;
case 258:
-#line 2528 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2530 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
assert(cast<IntegerType>((yyvsp[-7].PrimType))->getBitWidth() == 1 && "Not Bool?");
BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
@@ -5209,7 +5209,7 @@
break;
case 259:
-#line 2538 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2540 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
CHECK_FOR_ERROR
@@ -5232,7 +5232,7 @@
break;
case 260:
-#line 2557 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2559 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
CHECK_FOR_ERROR
@@ -5245,7 +5245,7 @@
break;
case 261:
-#line 2567 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2569 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
// Handle the short syntax
@@ -5328,7 +5328,7 @@
break;
case 262:
-#line 2646 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2648 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TermInstVal) = new UnwindInst();
CHECK_FOR_ERROR
@@ -5336,7 +5336,7 @@
break;
case 263:
-#line 2650 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2652 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.TermInstVal) = new UnreachableInst();
CHECK_FOR_ERROR
@@ -5344,7 +5344,7 @@
break;
case 264:
-#line 2657 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2659 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.JumpTable) = (yyvsp[-5].JumpTable);
Constant *V = cast<Constant>(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5359,7 +5359,7 @@
break;
case 265:
-#line 2668 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2670 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
Constant *V = cast<Constant>(getExistingVal((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
@@ -5375,7 +5375,7 @@
break;
case 266:
-#line 2681 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2683 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
// Is this definition named?? if so, assign the name...
setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
@@ -5387,7 +5387,7 @@
break;
case 267:
-#line 2691 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2693 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ // Used for PHI nodes
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-5].TypeVal))->getDescription());
@@ -5402,7 +5402,7 @@
break;
case 268:
-#line 2702 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2704 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.PHIList) = (yyvsp[-6].PHIList);
Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5414,7 +5414,7 @@
break;
case 269:
-#line 2712 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2714 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5427,7 +5427,7 @@
break;
case 270:
-#line 2721 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2723 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5440,17 +5440,17 @@
break;
case 271:
-#line 2730 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2732 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ValueRefList) = new ValueRefList(); ;}
break;
case 272:
-#line 2733 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2735 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{ (yyval.ValueList) = new std::vector<Value*>(); ;}
break;
case 273:
-#line 2734 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2736 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.ValueList) = (yyvsp[-2].ValueList);
(yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5459,7 +5459,7 @@
break;
case 274:
-#line 2741 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2743 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.BoolVal) = true;
CHECK_FOR_ERROR
@@ -5467,7 +5467,7 @@
break;
case 275:
-#line 2745 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2747 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.BoolVal) = false;
CHECK_FOR_ERROR
@@ -5475,7 +5475,7 @@
break;
case 276:
-#line 2750 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2752 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5500,7 +5500,7 @@
break;
case 277:
-#line 2771 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2773 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5521,7 +5521,7 @@
break;
case 278:
-#line 2788 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2790 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5539,7 +5539,7 @@
break;
case 279:
-#line 2802 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2804 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
@@ -5557,7 +5557,7 @@
break;
case 280:
-#line 2816 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2818 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5573,7 +5573,7 @@
break;
case 281:
-#line 2828 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2830 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if ((yyvsp[-4].ValueVal)->getType() != Type::Int1Ty)
GEN_ERROR("select condition must be boolean");
@@ -5585,7 +5585,7 @@
break;
case 282:
-#line 2836 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2838 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
@@ -5596,7 +5596,7 @@
break;
case 283:
-#line 2843 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2845 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
GEN_ERROR("Invalid extractelement operands");
@@ -5606,7 +5606,7 @@
break;
case 284:
-#line 2849 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2851 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
GEN_ERROR("Invalid insertelement operands");
@@ -5616,7 +5616,7 @@
break;
case 285:
-#line 2855 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2857 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
GEN_ERROR("Invalid shufflevector operands");
@@ -5626,7 +5626,7 @@
break;
case 286:
-#line 2861 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2863 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
if (!Ty->isFirstClassType())
@@ -5645,7 +5645,7 @@
break;
case 287:
-#line 2877 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2879 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
// Handle the short syntax
@@ -5733,7 +5733,7 @@
break;
case 288:
-#line 2961 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2963 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.InstVal) = (yyvsp[0].InstVal);
CHECK_FOR_ERROR
@@ -5741,7 +5741,7 @@
break;
case 289:
-#line 2966 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2968 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.BoolVal) = true;
CHECK_FOR_ERROR
@@ -5749,7 +5749,7 @@
break;
case 290:
-#line 2970 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2972 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
(yyval.BoolVal) = false;
CHECK_FOR_ERROR
@@ -5757,7 +5757,7 @@
break;
case 291:
-#line 2977 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2979 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5768,7 +5768,7 @@
break;
case 292:
-#line 2984 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2986 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5780,7 +5780,7 @@
break;
case 293:
-#line 2992 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 2994 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
@@ -5791,7 +5791,7 @@
break;
case 294:
-#line 2999 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 3001 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
@@ -5803,7 +5803,7 @@
break;
case 295:
-#line 3007 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 3009 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
GEN_ERROR("Trying to free nonpointer type " +
@@ -5814,7 +5814,7 @@
break;
case 296:
-#line 3015 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 3017 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5832,7 +5832,7 @@
break;
case 297:
-#line 3029 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 3031 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -5853,7 +5853,7 @@
break;
case 298:
-#line 3046 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 3048 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
{
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
@@ -6144,7 +6144,7 @@
}
-#line 3063 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 3065 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
// common code from the two 'RunVMAsmParser' functions
Index: llvm/lib/AsmParser/llvmAsmParser.h.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.77 llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.78
--- llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.77 Sat May 19 02:22:10 2007
+++ llvm/lib/AsmParser/llvmAsmParser.h.cvs Tue May 22 13:52:55 2007
@@ -307,7 +307,7 @@
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 955 "/proj/llvm/llvm-2/lib/AsmParser/llvmAsmParser.y"
+#line 957 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
typedef union YYSTYPE {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
@@ -343,8 +343,8 @@
double FPVal;
bool BoolVal;
- char *StrVal; // This memory is strdup'd!
- llvm::ValID ValIDVal; // strdup'd memory maybe!
+ std::string *StrVal; // This memory must be deleted
+ llvm::ValID ValIDVal;
llvm::Instruction::BinaryOps BinaryOpVal;
llvm::Instruction::TermOps TermOpVal;
Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.99 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.100
--- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.99 Sat May 19 02:22:10 2007
+++ llvm/lib/AsmParser/llvmAsmParser.y.cvs Tue May 22 13:52:55 2007
@@ -282,7 +282,7 @@
return CurModule.Types[D.Num];
break;
case ValID::LocalName: // Is it a named definition?
- if (const Type *N = CurModule.CurrentModule->getTypeByName(D.Name)) {
+ if (const Type *N = CurModule.CurrentModule->getTypeByName(D.getName())) {
D.destroy(); // Free old strdup'd memory...
return N;
}
@@ -360,7 +360,7 @@
if (!inFunctionScope())
return 0;
ValueSymbolTable &SymTab = CurFun.CurrentFunction->getValueSymbolTable();
- Value *N = SymTab.lookup(D.Name);
+ Value *N = SymTab.lookup(D.getName());
if (N == 0)
return 0;
if (N->getType() != Ty)
@@ -371,7 +371,7 @@
}
case ValID::GlobalName: { // Is it a named definition?
ValueSymbolTable &SymTab = CurModule.CurrentModule->getValueSymbolTable();
- Value *N = SymTab.lookup(D.Name);
+ Value *N = SymTab.lookup(D.getName());
if (N == 0)
return 0;
if (N->getType() != Ty)
@@ -550,7 +550,7 @@
// We haven't seen this BB before and its first mention is a definition.
// Just create it and return it.
- std::string Name (ID.Type == ValID::LocalName ? ID.Name : "");
+ std::string Name (ID.Type == ValID::LocalName ? ID.getName() : "");
BB = new BasicBlock(Name, CurFun.CurrentFunction);
if (ID.Type == ValID::LocalID) {
assert(ID.Num == CurFun.NextValNum && "Invalid new block number");
@@ -572,7 +572,7 @@
if (BBI != CurFun.BBForwardRefs.end()) {
BB = BBI->second;
} if (ID.Type == ValID::LocalName) {
- std::string Name = ID.Name;
+ std::string Name = ID.getName();
Value *N = CurFun.CurrentFunction->getValueSymbolTable().lookup(Name);
if (N)
if (N->getType()->getTypeID() == Type::LabelTyID)
@@ -603,7 +603,7 @@
// Otherwise, this block has not been seen before, create it.
std::string Name;
if (ID.Type == ValID::LocalName)
- Name = ID.Name;
+ Name = ID.getName();
BB = new BasicBlock(Name, CurFun.CurrentFunction);
// Insert it in the forward refs map.
@@ -675,10 +675,12 @@
// name is not null) things referencing Name can be resolved. Otherwise, things
// refering to the number can be resolved. Do this now.
//
-static void ResolveTypeTo(char *Name, const Type *ToTy) {
+static void ResolveTypeTo(std::string *Name, const Type *ToTy) {
ValID D;
- if (Name) D = ValID::createLocalName(Name);
- else D = ValID::createLocalID(CurModule.Types.size());
+ if (Name)
+ D = ValID::createLocalName(*Name);
+ else
+ D = ValID::createLocalID(CurModule.Types.size());
std::map<ValID, PATypeHolder>::iterator I =
CurModule.LateResolveTypes.find(D);
@@ -692,10 +694,10 @@
// null potentially, in which case this is a noop. The string passed in is
// assumed to be a malloc'd string buffer, and is free'd by this function.
//
-static void setValueName(Value *V, char *NameStr) {
+static void setValueName(Value *V, std::string *NameStr) {
if (!NameStr) return;
- std::string Name(NameStr); // Copy string
- free(NameStr); // Free old string
+ std::string Name(*NameStr); // Copy string
+ delete NameStr; // Free old string
if (V->getType() == Type::VoidTy) {
GenerateError("Can't assign name '" + Name+"' to value with void type");
@@ -717,7 +719,7 @@
/// ParseGlobalVariable - Handle parsing of a global. If Initializer is null,
/// this is a declaration, otherwise it is a definition.
static GlobalVariable *
-ParseGlobalVariable(char *NameStr,
+ParseGlobalVariable(std::string *NameStr,
GlobalValue::LinkageTypes Linkage,
GlobalValue::VisibilityTypes Visibility,
bool isConstantGlobal, const Type *Ty,
@@ -731,15 +733,15 @@
std::string Name;
if (NameStr) {
- Name = NameStr; // Copy string
- free(NameStr); // Free old string
+ Name = *NameStr; // Copy string
+ delete NameStr; // Free old string
}
// See if this global value was forward referenced. If so, recycle the
// object.
ValID ID;
if (!Name.empty()) {
- ID = ValID::createGlobalName((char*)Name.c_str());
+ ID = ValID::createGlobalName(Name);
} else {
ID = ValID::createGlobalID(CurModule.Values.size());
}
@@ -792,12 +794,12 @@
// This function returns true if the type has already been defined, but is
// allowed to be redefined in the specified context. If the name is a new name
// for the type plane, it is inserted and false is returned.
-static bool setTypeName(const Type *T, char *NameStr) {
+static bool setTypeName(const Type *T, std::string *NameStr) {
assert(!inFunctionScope() && "Can't give types function-local names!");
if (NameStr == 0) return false;
- std::string Name(NameStr); // Copy string
- free(NameStr); // Free old string
+ std::string Name(*NameStr); // Copy string
+ delete NameStr; // Free old string
// We don't allow assigning names to void type
if (T == Type::VoidTy) {
@@ -987,8 +989,8 @@
double FPVal;
bool BoolVal;
- char *StrVal; // This memory is strdup'd!
- llvm::ValID ValIDVal; // strdup'd memory maybe!
+ std::string *StrVal; // This memory must be deleted
+ llvm::ValID ValIDVal;
llvm::Instruction::BinaryOps BinaryOpVal;
llvm::Instruction::TermOps TermOpVal;
@@ -1051,13 +1053,15 @@
%token <PrimType> FLOAT DOUBLE LABEL
%token TYPE
+
%token<StrVal> LOCALVAR GLOBALVAR LABELSTR
%token<StrVal> STRINGCONSTANT ATSTRINGCONSTANT PCTSTRINGCONSTANT
%type <StrVal> LocalName OptLocalName OptLocalAssign
%type <StrVal> GlobalName OptGlobalAssign GlobalAssign
-%type <UIntVal> OptAlign OptCAlign
%type <StrVal> OptSection SectionString
+%type <UIntVal> OptAlign OptCAlign
+
%token ZEROINITIALIZER TRUETOK FALSETOK BEGINTOK ENDTOK
%token DECLARE DEFINE GLOBAL CONSTANT SECTION ALIAS VOLATILE THREAD_LOCAL
%token TO DOTDOTDOT NULL_TOK UNDEF INTERNAL LINKONCE WEAK APPENDING
@@ -1139,7 +1143,7 @@
IntType : INTTYPE;
FPType : FLOAT | DOUBLE;
-LocalName : LOCALVAR | STRINGCONSTANT | PCTSTRINGCONSTANT
+LocalName : LOCALVAR | STRINGCONSTANT | PCTSTRINGCONSTANT ;
OptLocalName : LocalName | /*empty*/ { $$ = 0; };
/// OptLocalAssign - Value producing statements have an optional assignment
@@ -1153,7 +1157,7 @@
CHECK_FOR_ERROR
};
-GlobalName : GLOBALVAR | ATSTRINGCONSTANT;
+GlobalName : GLOBALVAR | ATSTRINGCONSTANT ;
OptGlobalAssign : GlobalAssign
| /*empty*/ {
@@ -1262,8 +1266,8 @@
SectionString : SECTION STRINGCONSTANT {
- for (unsigned i = 0, e = strlen($2); i != e; ++i)
- if ($2[i] == '"' || $2[i] == '\\')
+ for (unsigned i = 0, e = $2->length(); i != e; ++i)
+ if ((*$2)[i] == '"' || (*$2)[i] == '\\')
GEN_ERROR("Invalid character in section name");
$$ = $2;
CHECK_FOR_ERROR
@@ -1278,8 +1282,8 @@
GlobalVarAttributes : /* empty */ {} |
',' GlobalVarAttribute GlobalVarAttributes {};
GlobalVarAttribute : SectionString {
- CurGV->setSection($1);
- free($1);
+ CurGV->setSection(*$1);
+ delete $1;
CHECK_FOR_ERROR
}
| ALIGN EUINT64VAL {
@@ -1561,21 +1565,19 @@
int NumElements = ATy->getNumElements();
const Type *ETy = ATy->getElementType();
- char *EndStr = UnEscapeLexed($3, true);
- if (NumElements != -1 && NumElements != (EndStr-$3))
+ if (NumElements != -1 && NumElements != int($3->length()))
GEN_ERROR("Can't build string constant of size " +
- itostr((int)(EndStr-$3)) +
+ itostr((int)($3->length())) +
" when array has size " + itostr(NumElements) + "");
std::vector<Constant*> Vals;
if (ETy == Type::Int8Ty) {
- for (unsigned char *C = (unsigned char *)$3;
- C != (unsigned char*)EndStr; ++C)
- Vals.push_back(ConstantInt::get(ETy, *C));
+ for (unsigned i = 0; i < $3->length(); ++i)
+ Vals.push_back(ConstantInt::get(ETy, (*$3)[i]));
} else {
- free($3);
+ delete $3;
GEN_ERROR("Cannot build string arrays of non byte sized elements");
}
- free($3);
+ delete $3;
$$ = ConstantArray::get(ATy, Vals);
delete $1;
CHECK_FOR_ERROR
@@ -1759,7 +1761,7 @@
} else {
std::string Name;
if ($2.Type == ValID::GlobalName)
- Name = $2.Name;
+ Name = $2.getName();
else if ($2.Type != ValID::GlobalID)
GEN_ERROR("Invalid reference to global");
@@ -2089,13 +2091,17 @@
CHECK_FOR_ERROR
}
| OptGlobalAssign GVVisibilityStyle ALIAS AliasLinkage AliaseeRef {
- std::string Name($1);
+ std::string Name;
+ if ($1) {
+ Name = *$1;
+ delete $1;
+ }
if (Name.empty())
GEN_ERROR("Alias name cannot be empty");
Constant* Aliasee = $5;
if (Aliasee == 0)
- GEN_ERROR(std::string("Invalid aliasee for alias: ") + $1);
+ GEN_ERROR(std::string("Invalid aliasee for alias: ") + Name);
GlobalAlias* GA = new GlobalAlias(Aliasee->getType(), $4, Name, Aliasee,
CurModule.CurrentModule);
@@ -2114,36 +2120,33 @@
AsmBlock : STRINGCONSTANT {
const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
- char *EndStr = UnEscapeLexed($1, true);
- std::string NewAsm($1, EndStr);
- free($1);
-
if (AsmSoFar.empty())
- CurModule.CurrentModule->setModuleInlineAsm(NewAsm);
+ CurModule.CurrentModule->setModuleInlineAsm(*$1);
else
- CurModule.CurrentModule->setModuleInlineAsm(AsmSoFar+"\n"+NewAsm);
+ CurModule.CurrentModule->setModuleInlineAsm(AsmSoFar+"\n"+*$1);
+ delete $1;
CHECK_FOR_ERROR
};
TargetDefinition : TRIPLE '=' STRINGCONSTANT {
- CurModule.CurrentModule->setTargetTriple($3);
- free($3);
+ CurModule.CurrentModule->setTargetTriple(*$3);
+ delete $3;
}
| DATALAYOUT '=' STRINGCONSTANT {
- CurModule.CurrentModule->setDataLayout($3);
- free($3);
+ CurModule.CurrentModule->setDataLayout(*$3);
+ delete $3;
};
LibrariesDefinition : '[' LibList ']';
LibList : LibList ',' STRINGCONSTANT {
- CurModule.CurrentModule->addLibrary($3);
- free($3);
+ CurModule.CurrentModule->addLibrary(*$3);
+ delete $3;
CHECK_FOR_ERROR
}
| STRINGCONSTANT {
- CurModule.CurrentModule->addLibrary($1);
- free($1);
+ CurModule.CurrentModule->addLibrary(*$1);
+ delete $1;
CHECK_FOR_ERROR
}
| /* empty: end of list */ {
@@ -2205,9 +2208,8 @@
FunctionHeaderH : OptCallingConv ResultTypes GlobalName '(' ArgList ')'
OptFuncAttrs OptSection OptAlign {
- UnEscapeLexed($3);
- std::string FunctionName($3);
- free($3); // Free strdup'd memory!
+ std::string FunctionName(*$3);
+ delete $3; // Free strdup'd memory!
// Check the function result for abstractness if this is a define. We should
// have no abstract types at this point
@@ -2296,8 +2298,8 @@
Fn->setCallingConv($1);
Fn->setAlignment($9);
if ($8) {
- Fn->setSection($8);
- free($8);
+ Fn->setSection(*$8);
+ delete $8;
}
// Add all of the arguments we parsed to the function...
@@ -2314,7 +2316,7 @@
for (ArgListType::iterator I = $5->begin();
I != $5->end() && ArgIt != ArgEnd; ++I, ++ArgIt) {
delete I->Ty; // Delete the typeholder...
- setValueName(ArgIt, I->Name); // Insert arg into symtab...
+ setValueName(ArgIt, I->Name); // Insert arg into symtab...
CHECK_FOR_ERROR
InsertValue(ArgIt);
Idx++;
@@ -2426,13 +2428,9 @@
CHECK_FOR_ERROR
}
| ASM_TOK OptSideEffect STRINGCONSTANT ',' STRINGCONSTANT {
- char *End = UnEscapeLexed($3, true);
- std::string AsmStr = std::string($3, End);
- End = UnEscapeLexed($5, true);
- std::string Constraints = std::string($5, End);
- $$ = ValID::createInlineAsm(AsmStr, Constraints, $2);
- free($3);
- free($5);
+ $$ = ValID::createInlineAsm(*$3, *$5, $2);
+ delete $3;
+ delete $5;
CHECK_FOR_ERROR
};
@@ -2448,11 +2446,13 @@
CHECK_FOR_ERROR
}
| LocalName { // Is it a named reference...?
- $$ = ValID::createLocalName($1);
+ $$ = ValID::createLocalName(*$1);
+ delete $1;
CHECK_FOR_ERROR
}
| GlobalName { // Is it a named reference...?
- $$ = ValID::createGlobalName($1);
+ $$ = ValID::createGlobalName(*$1);
+ delete $1;
CHECK_FOR_ERROR
};
@@ -2508,8 +2508,10 @@
CHECK_FOR_ERROR
}
| LABELSTR { // Labelled (named) basic block
- $$ = defineBBVal(ValID::createLocalName($1));
+ $$ = defineBBVal(ValID::createLocalName(*$1));
+ delete $1;
CHECK_FOR_ERROR
+
};
BBTerminatorInst : RET ResolvedVal { // Return with a result...
More information about the llvm-commits
mailing list