Sebastian Redl
d98ecd615f
The mysterious bug turns out to be an incredibly bone-headed mistake.
...
llvm-svn: 70160
2009-04-26 21:08:36 +00:00
Chris Lattner
0d0d3e56dd
make BitstreamCursor's copyable and assignable.
...
llvm-svn: 70159
2009-04-26 21:07:02 +00:00
Chris Lattner
9356acecff
Adjust to LLVM API changes that went into r70157.
...
llvm-svn: 70158
2009-04-26 20:59:20 +00:00
Chris Lattner
277800a643
Make a major API change to BitstreamReader: split all the reading
...
state out of the BitstreamReader class into a BitstreamCursor class.
Doing this allows the client to have multiple cursors into the same
file, each with potentially different live block stacks and
abbreviation records.
llvm-svn: 70157
2009-04-26 20:59:02 +00:00
Eli Friedman
64fc3c68e5
Fix for PR4079: make sure to construct the member expressions for
...
offsetof correctly in the presence of anonymous structs/unions.
This could definitely use some cleanup, but I don't really want to mess
with the anonymous union/struct code.
llvm-svn: 70156
2009-04-26 20:50:44 +00:00
Sebastian Redl
a7b98a772c
Implement function-try-blocks. However, there's a very subtle bug that I can't track down.
...
llvm-svn: 70155
2009-04-26 20:35:05 +00:00
Bill Wendling
5bf1a6e986
I cast, therefore I think I know what I'm doing.
...
llvm-svn: 70151
2009-04-26 20:12:38 +00:00
Bill Wendling
febab5d928
Use uint64_t instead of unsigned.
...
llvm-svn: 70148
2009-04-26 19:46:41 +00:00
Chris Lattner
0ba740892e
revert an incorrect patch. This causes crashes all over the place on a
...
64-bit build.
llvm-svn: 70147
2009-04-26 19:44:20 +00:00
Eli Friedman
1c4a175aef
Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.
...
llvm-svn: 70145
2009-04-26 19:19:15 +00:00
Eli Friedman
5cdb8cc267
Minor code cleanup.
...
llvm-svn: 70144
2009-04-26 19:04:51 +00:00
Steve Naroff
eda6d20792
Add PCH read/write support for ObjC statements.
...
llvm-svn: 70143
2009-04-26 18:52:16 +00:00
Chris Lattner
574428e4db
implement PR4077: [Linux kernel] inscrutable error on inline asm input/output constraint mismatch
...
Before we emitted:
$ clang t.c -S -m64
llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type!
Now we produce:
$ clang t.c -S -m64
t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int'
asm volatile("foo " : "=a" (a) :"0" (b));
~~~ ~^~
llvm-svn: 70142
2009-04-26 18:22:24 +00:00
Bill Wendling
995f81c5ce
Suppress warnings about conversion shortening 64-bit to 32-bit.
...
llvm-svn: 70138
2009-04-26 18:10:20 +00:00
Chris Lattner
4c92b51089
in a tied operand, don't copy over the name or constraint string, just the flags.
...
llvm-svn: 70137
2009-04-26 18:05:25 +00:00
Chris Lattner
c16d476b30
pull operands names "[foo]" into ConstraintInfo.
...
llvm-svn: 70136
2009-04-26 17:57:12 +00:00
Chris Lattner
c3f4c7b1c5
pull the constraint string into the ConstraintInfo struct
...
instead of passing it around in addition to it.
llvm-svn: 70135
2009-04-26 17:19:08 +00:00
Sanjiv Gupta
8d319047c5
Any size of integral indices are allowed in gep for indexing into sequential types. Also adding a test case to check the indices type allowed into struct.
...
llvm-svn: 70134
2009-04-26 17:14:35 +00:00
Steve Naroff
8d2b49aae3
Make sure we have a code in the node:-)
...
This fixes all the -emit-pch problems discovered by utils/pch-test.pl.
llvm-svn: 70125
2009-04-26 14:11:39 +00:00
Sebastian Redl
07d6f79f1b
Update StmtNodes.def with the new base class of CXXTemporaryObjectExpr
...
llvm-svn: 70122
2009-04-26 11:30:47 +00:00
Sebastian Redl
f79d397081
Make reference class unification in conditional expressions check for validity of the conversion.
...
llvm-svn: 70121
2009-04-26 11:21:02 +00:00
Torok Edwin
c26ed54e06
Add missing include. This fixes the build with gcc 4.3.3.
...
llvm-svn: 70115
2009-04-26 07:50:14 +00:00
Chris Lattner
d9725f7041
change TargetInfo::ConstraintInfo to be a struct that contains
...
the enum along with some other data.
llvm-svn: 70114
2009-04-26 07:16:29 +00:00
Douglas Gregor
8bdbf3628f
Turn off PCH by default, again
...
llvm-svn: 70113
2009-04-26 05:09:50 +00:00
Douglas Gregor
5b21e96c56
One more crazy try with PCH-by-default
...
llvm-svn: 70112
2009-04-26 03:59:49 +00:00
Douglas Gregor
2ef5dc4fc6
Make sure to pull in the target builtin records when initialize the AST context, even if we're not going to initialize the __builin_* identifiers
...
llvm-svn: 70111
2009-04-26 03:57:37 +00:00
Douglas Gregor
1d46a1f8a5
Simple little smoke-test script that tries to build PCH files and then
...
dump their contents for all of the compilable tests in Clang's
testsuite. All of the tests pass for C, but there are still many
failures for Objective-C.
llvm-svn: 70110
2009-04-26 03:52:11 +00:00
Douglas Gregor
1970d887ab
When writing a PCH file, write multiple type and declaration blocks as
...
necessary and iterate until all types and declarations have been
written. This reduces the Cocoa.h PCH file size by about 4% (since we
don't write types we don't need), and fixes problems where writing a
declaration generates a new type.
This doesn't seem to have any impact on performance either way.
llvm-svn: 70109
2009-04-26 03:49:13 +00:00
Douglas Gregor
32887f0274
Add a new -ast-dump-full option that traverses the translation unit
...
declaration rather than printing through the HandleTopLevelDecl
action. Using this, one can deserialize an entire PCH file and dump
it.
llvm-svn: 70108
2009-04-26 02:02:08 +00:00
Chris Lattner
44b03a67f8
Split C++ statements out to their own file.
...
llvm-svn: 70107
2009-04-26 01:42:41 +00:00
Douglas Gregor
58d23997c8
Turn of PCH by default. I got the info I was looking for
...
llvm-svn: 70106
2009-04-26 01:34:47 +00:00
Chris Lattner
f0b64d73a8
split ObjC and C++ Statements out into their own headers.
...
llvm-svn: 70105
2009-04-26 01:32:48 +00:00
Eli Friedman
bd0e67362c
Correct the order of the parameters to CheckAssignmentConstraints in
...
cleanup attribute checking. The difference isn't normally visible, but it
can make a difference...
llvm-svn: 70104
2009-04-26 01:30:08 +00:00
Daniel Dunbar
885db54671
Make this code a little more generic.
...
llvm-svn: 70103
2009-04-26 01:28:51 +00:00
Daniel Dunbar
72a6090dc4
Driver: Add -std-default= option.
...
- This can be used to supply a default value for -std=; the idea is
that this can be used in conjunction with CCC_ADD_ARGS or
QA_OVERRIDE_GCC3_OPTIONS to change the default without having to
modify the build system.
llvm-svn: 70102
2009-04-26 01:10:38 +00:00
Daniel Dunbar
3ba94d8778
Add option for AddAllArgsTranslated to control whether output argument
...
should be joined or separate.
llvm-svn: 70101
2009-04-26 01:07:52 +00:00
Chris Lattner
7ec71da215
implement PCH support for the rest of ExprObjC.h, including
...
the missing bits of ObjCMessageExpr.
llvm-svn: 70100
2009-04-26 00:44:05 +00:00
Douglas Gregor
06ccf7a463
Another shot at switching PCH on by default, now that we've cleaned up some bugs and improved performance. Will be reverted after Mr. Speedy gets done with it
...
llvm-svn: 70099
2009-04-26 00:37:38 +00:00
Anders Carlsson
6f5c15688d
When calling the cleanup function specified by __attribute__((cleanup)), make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>.
...
llvm-svn: 70098
2009-04-26 00:34:20 +00:00
Douglas Gregor
eda6a89c4e
Don't read all of the records in the PCH file's preprocessor block,
...
most of which are ignored. Instead, move the __COUNTER__ value out to
a PCH-level record (since it is handled eagerly) and move the header
file information into the SourceManager block (which is also,
currently, loaded eagerly).
This results in another 17% performance improvement in the
Cocoa-prefixed "Hello, World" with PCH.
llvm-svn: 70097
2009-04-26 00:07:37 +00:00
Eli Friedman
ab2784f2c1
Fix for PR4074: allow subscripting non-lvalue arrays in C90 mode.
...
I wasn't originally going to use this approach, but cases like
test/Sema/expr-comma.c make things difficult.
llvm-svn: 70096
2009-04-25 23:46:54 +00:00
Chris Lattner
0dedefe4f2
minor cleanups to ast-dump, use getBody(context).
...
llvm-svn: 70095
2009-04-25 23:31:28 +00:00
Douglas Gregor
99734e7669
Lazily load the controlling macros for all of the headers known in the
...
PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes
us from reading 503 identifiers down to 37 and from 470 macros down to
4. It also results in an 8% performance improvement.
llvm-svn: 70094
2009-04-25 23:30:02 +00:00
Chris Lattner
c06ce0f710
"This fixes message sends to super in a way that both works with real code and passes the test in the test suite. It also fixes a crash when using recent versions of GNU libobjc and compiling modules that do not contain any constant strings but do contain a declaration of the constant string class and possible some other corner cases (thanks to Pete French for providing me with a test case for that one)."
...
Patch by David Chisnall!
llvm-svn: 70093
2009-04-25 23:19:45 +00:00
Chris Lattner
003af24927
minor diagnostics improvements.
...
llvm-svn: 70092
2009-04-25 22:50:55 +00:00
Eli Friedman
50322773b7
Minor simplification.
...
llvm-svn: 70091
2009-04-25 22:44:54 +00:00
Eli Friedman
7524de1da2
Change isNullPointerConstant to be strict; hopefully this won't cause
...
any issues now that we have our own tgmath.h.
llvm-svn: 70090
2009-04-25 22:37:12 +00:00
Eli Friedman
bb967cc98d
Make VerifyIntegerConstantExpr print extension warnings for non-ICEs.
...
Overall, I'm not particularly happy with the current situation regarding
constant expression diagnostics, but I plan to improve it at some point.
llvm-svn: 70089
2009-04-25 22:26:58 +00:00
Chris Lattner
1c1595f9ef
improve documentation on build configurations, patch by
...
Josef Eisl!
llvm-svn: 70087
2009-04-25 22:24:49 +00:00
Eli Friedman
37e663df63
Silence gcc warnings.
...
llvm-svn: 70086
2009-04-25 22:20:56 +00:00