Chris Lattner
89d856e9e0
Fix a pretty awesome bug that only happened in a strange case with anonymous
...
types. This was reading the uint for the keyword after the token was advanced.
llvm-svn: 65743
2009-03-01 00:53:13 +00:00
Chris Lattner
bb1fe8abdd
reject 0 element vectors with:
...
@a = internal constant void bitcast(<0 x i8> <> to void)
^
Fixes PR3685
llvm-svn: 65698
2009-02-28 18:12:41 +00:00
Chris Lattner
778c62ccb5
add proper asmwriter and asmparser support for anonymous functions.
...
llvm-svn: 64953
2009-02-18 21:48:13 +00:00
Duncan Sands
d1de45a146
Pacify gcc-4.3 (thinks IsConstant may be used
...
uninitialized).
llvm-svn: 64220
2009-02-10 16:24:55 +00:00
Dan Gohman
9280a685db
Use slightly more correct grammar in error messages.
...
llvm-svn: 64148
2009-02-09 17:41:21 +00:00
Chris Lattner
c9e1b48449
fix typo
...
llvm-svn: 64091
2009-02-08 20:00:15 +00:00
Chris Lattner
412f626b96
reject void pointers with a nice error:
...
llvm-as: t.ll:2:15: pointers to void are invalid, use i8* instead
%X = type void*
^
instead of asserting and dying.
llvm-svn: 64089
2009-02-08 19:56:22 +00:00
Dale Johannesen
b842d529a3
Reapply 63765. Patches for clang and llvm-gcc to follow.
...
llvm-svn: 63812
2009-02-05 01:49:45 +00:00
Dale Johannesen
ae616c2c61
Reverting 63765. This broke the build of both clang
...
and llvm-gcc.
llvm-svn: 63786
2009-02-04 22:47:25 +00:00
Nate Begeman
6ae3aa83d0
New feature: add support for target intrinsics being defined in the
...
target directories themselves. This also means that VMCore no longer
needs to know about every target's list of intrinsics. Future work
will include converting the PowerPC target to this interface as an
example implementation.
llvm-svn: 63765
2009-02-04 19:47:21 +00:00
Chris Lattner
1f386b8ec8
Fix PR3372
...
llvm-svn: 63501
2009-02-02 07:24:28 +00:00
Rafael Espindola
6de96a1b5d
Add the private linkage.
...
llvm-svn: 62279
2009-01-15 20:18:42 +00:00
Chris Lattner
8c1cc34d6a
one more crash from PR3281, we now diagnose:
...
llvm-as: t.ll:2:39: function may not return opaque type
%"bwmoyl" = tail call coldcc opaque @g()
^
llvm-svn: 61933
2009-01-08 19:05:36 +00:00
Chris Lattner
1c8dd9be79
fix wordo
...
llvm-svn: 61728
2009-01-05 18:56:52 +00:00
Steve Naroff
f6bbfa3424
Remove redundant ValID::ValID:: scoping (doesn't compile on Windows).
...
llvm-svn: 61727
2009-01-05 18:48:47 +00:00
Chris Lattner
2ed06b4276
Reject PR3281:accepted03.ll with:
...
llvm-as: accepted03.ll:1:35: invalid unresolved type up reference
declare void @r({ \7, opaque, \10 } %su)
^
llvm-svn: 61725
2009-01-05 18:34:07 +00:00
Chris Lattner
dc83a54567
reject PR3281:crash11.ll with:
...
llvm-as: crash11.ll:2:27: function may not return return opaque type
"xw" = tail call opaque @608(label %31)
^
llvm-svn: 61722
2009-01-05 18:27:50 +00:00
Chris Lattner
8f57d29e0c
reject PR3281:crash10.ll with:
...
llvm-as: crash10.ll:3:35: floating point constant does not have type 'ppc_fp128'
"dumy" = fcmp ult ppc_fp128 "j",9209.4
^
llvm-svn: 61721
2009-01-05 18:24:23 +00:00
Chris Lattner
651252b019
reject PR3281:crash09.ll with this diagnostic:
...
llvm-as: crash09.ll:3:1: self referential type is invalid
type %0
^
llvm-svn: 61720
2009-01-05 18:19:46 +00:00
Chris Lattner
5261c8923f
allow opaque undefs. This resolves PR3282 and fixes
...
test/Assembler/2005-05-05-OpaqueUndefValues.ll
llvm-svn: 61719
2009-01-05 18:12:21 +00:00
Chris Lattner
229b0304f0
produce the same diagnostics for vicmp constant exprs as vicmp instructions.
...
llvm-svn: 61685
2009-01-05 08:26:05 +00:00
Chris Lattner
eeefa9a098
Fix PR3281:crash08.ll with this diagnostic:
...
llvm-as: crash08.ll:3:15: invalid operand type for instruction
"qp" = sdiv fp128 0x1, %30
^
llvm-svn: 61684
2009-01-05 08:24:46 +00:00
Chris Lattner
b55ab54b77
reject PR3281:crash07.ll with:
...
llvm-as: crash07.ll:2:32: va_arg requires operand with first class type
%y = va_arg [52 x <{}>] %43, double (...) sspreq
^
llvm-svn: 61683
2009-01-05 08:18:44 +00:00
Chris Lattner
ffa0778c36
reject undef/zero labels. This fixes PR3281:crash0[56].ll with these
...
diagnostics:
llvm-as: crash05.ll:1:14: invalid type for null constant
global label zeroinitializer addrspace (75), section "c"
^
llvm-as: crash06.ll:2:14: invalid type for null constant
udiv label zeroinitializer, @0
^
llvm-svn: 61681
2009-01-05 08:13:38 +00:00
Chris Lattner
c38e99547e
add checking intentionally elided for vfcmp/vicmp since they should really
...
just be removed. However, this fixes PR3281:crash04.ll, diagnosing it with:
lvm-as: crash04.ll:2:13: vfcmp requires vector floating point operands
vfcmp uno double* undef, undef
^
llvm-svn: 61680
2009-01-05 08:09:48 +00:00
Chris Lattner
ce473c7be0
diagnose PR3281:crash02.ll with:
...
llvm-as: crash02.ll:1:62: invalid function return type
declare { <{ <{}>, void ([1898 x { void ()* }], opaque, ...) (), fp128 * }>, opaque } @t ()
^
llvm-svn: 61679
2009-01-05 08:04:33 +00:00
Chris Lattner
fae73dd27f
reject PR3281:crash01.ll with:
...
llvm-as: crash01.ll:1:9: invalid function return type
declare opaque @t()
^
llvm-svn: 61678
2009-01-05 08:00:30 +00:00
Chris Lattner
998fa0a2a2
fix PR3281:accepted0[02].ll: represent empty arrays distinctly, and
...
diagnose attempts to initialize non-empty arrays with them. This
produces:
llvm-as: accepted02.ll:1:28: invalid empty array initializer
@"o" = global [5 x double] []
^
llvm-as: accepted00.ll:1:32: invalid empty array initializer
@"za" = thread_local global {} []
^
[
llvm-svn: 61676
2009-01-05 07:52:51 +00:00
Chris Lattner
d11f514739
PR3281:crash00.ll: produce this diagnostic instead of crashing:
...
@t = global i8 0, align 3
^
llvm-svn: 61675
2009-01-05 07:46:05 +00:00
Chris Lattner
ad6f3355a7
Refactor some parser interfaces to fix PR3278 and a FIXME:
...
ParseAssemblyString with a specified module would not parse
into the module, it would create and return a new one.
llvm-svn: 61635
2009-01-04 20:44:11 +00:00
Chris Lattner
59d0e3bc2e
Fix a really horrible typo, which caused undefined behavior.
...
llvm-svn: 61566
2009-01-02 08:49:06 +00:00
Chris Lattner
3822f63b88
minor cleanups and comment improvements.
...
llvm-svn: 61564
2009-01-02 08:05:26 +00:00
Chris Lattner
ac161bff07
Reimplement the old and horrible bison parser for .ll files with a nice
...
and clean recursive descent parser.
This change has a couple of ramifications:
1. The parser code is about 400 lines shorter (in what we maintain, not
including what is autogenerated).
2. The code should be significantly faster than the old code because we
don't have to work around bison's poor handling of datatypes with
ctors/dtors. This also makes the code much more resistant to memory
leaks.
3. We now get caret diagnostics from the .ll parser, woo.
4. The actual diagnostics emited from the parser are completely different
so a bunch of testcases had to be updated.
5. I now disallow "%ty = type opaque %ty = type i32". There was no good
reason to support this, it was just an accident of the old
implementation. I have no reason to think that anyone is actually using
this.
6. The syntax for sticking a global variable has changed to make it
unambiguous. I don't think anyone is depending on this since only clang
supports this and it is not solid yet, so I'm not worried about anything
breaking.
7. This gets rid of the last use of bison, and along with it the .cvs files.
I'll prune this from the makefiles as a subsequent commit.
There are a few minor cleanups that can be done after this commit (suggestions
welcome!) but this passes dejagnu testing and is ready for its time in the
limelight.
llvm-svn: 61558
2009-01-02 07:01:27 +00:00