Douglas Gregor
4f13beb8b6
Start detangling the BlockSemaInfo/Sema mess. No functionality change.
...
llvm-svn: 97494
2010-03-01 20:44:28 +00:00
Ted Kremenek
80263e5905
Allow a '0' precision in format strings (as the man page says it is okay).
...
Fixes <rdar://problem/7700339>.
llvm-svn: 97482
2010-03-01 19:22:33 +00:00
John McCall
de9607bc6f
The latest draft uses 'dt' to mangle member expressions, and now so do we.
...
llvm-svn: 97479
2010-03-01 19:12:25 +00:00
Douglas Gregor
79e31db9a9
When looking for a redeclaration of a static variable, only look for redeclarations. Fixes PR6449
...
llvm-svn: 97478
2010-03-01 19:11:54 +00:00
Douglas Gregor
aff9c1a033
When instantiating a function-scoped enum, make sure that it and its
...
enumeration constants get placed into the local instantiation hash
table. Fixes PR6375.
llvm-svn: 97471
2010-03-01 19:00:07 +00:00
Douglas Gregor
604c30299d
Robustify instantiation of templates when there are errors in the
...
template definition. Do this both by being more tolerant of errors in
our asserts and by not dropping a variable declaration completely when
its initializer is ill-formed. Fixes the crash-on-invalid in PR6375,
but not the original issue.
llvm-svn: 97463
2010-03-01 18:27:54 +00:00
John McCall
8bc2a70dfe
Don't infinite-loop if TryAnnotateCXXScopeToken fails to annotate but doesn't
...
signal an error. This can happen even when the current token is '::' if
this is a ::new or ::delete expression.
This was an oversight in my recent parser refactor; fixes PR 5825.
llvm-svn: 97462
2010-03-01 18:20:46 +00:00
Douglas Gregor
2528936379
Finish pushing source-location information though TreeTransform's
...
TransformDefinition.
llvm-svn: 97445
2010-03-01 17:25:41 +00:00
Douglas Gregor
a04f2ca19a
When looking for the instantiated declaration that corresponds to a
...
given declaration in a template, make sure that the context we're
searching through is complete. Fixes PR6376.
llvm-svn: 97444
2010-03-01 15:56:25 +00:00
Zhongxing Xu
6d3cc382df
Since now we store the cast type with an ElementRegion, there is
...
no need to store a type with SymbolRegionValue.
llvm-svn: 97437
2010-03-01 06:56:52 +00:00
Zhongxing Xu
b0e5c27113
Assert when loading from a code text region instead of returning an unknown silently.
...
llvm-svn: 97436
2010-03-01 05:29:02 +00:00
Douglas Gregor
a070ffa7b8
Don't warn about case-value conversions from a negative value to a
...
larger unsigned value, since this is implementation-defined
behavior. (We previously suppressed this warning when converting from
a signed value to an unsigned value of the same size).
llvm-svn: 97430
2010-03-01 01:04:55 +00:00
Douglas Gregor
a51c67424e
Improve name mangling for dependently-scoped declaration references.
...
llvm-svn: 97422
2010-02-28 22:05:49 +00:00
Douglas Gregor
5610db6923
Add name mangling for DeclRefExprs that refer to external names
...
llvm-svn: 97418
2010-02-28 21:40:32 +00:00
Anders Carlsson
5b79c31471
Remove debug output.
...
llvm-svn: 97407
2010-02-28 18:39:30 +00:00
Anders Carlsson
7162ab947b
Handle unused functions in construction vtables correctly.
...
llvm-svn: 97406
2010-02-28 18:37:33 +00:00
Chris Lattner
73a9c7d891
pull some altivec stuff out of line.
...
llvm-svn: 97405
2010-02-28 18:33:55 +00:00
Douglas Gregor
e489a7d3d3
Warn about the deprecated string literal -> char* conversion. Fixes PR6428.
...
llvm-svn: 97404
2010-02-28 18:30:25 +00:00
Chris Lattner
fd48afe412
Implement PR6423 by using one token of lookahead to disambiguate
...
an *almost* always incorrect case. This only does the lookahead
in the insanely unlikely case, so it shouldn't impact performance.
On this testcase:
struct foo {
}
typedef int x;
Before:
t.c:3:9: error: cannot combine with previous 'struct' declaration specifier
typedef int x;
^
After:
t.c:2:2: error: expected ';' after struct
}
^
;
llvm-svn: 97403
2010-02-28 18:18:36 +00:00
Anders Carlsson
8b37bb7c48
When laying out vtables for virtual bases in construction vtables, we need to check if the vtable is a primary base in the layout class.
...
llvm-svn: 97402
2010-02-28 18:08:38 +00:00
John McCall
1629149103
Support constant-evaluation of __builtin_nans* as well as the correct constant
...
evaluation of __builtin_nan*. Most of the work to make this work is in LLVM.
Fixes <rdar://problem/7696712> and part of PR 5255.
llvm-svn: 97383
2010-02-28 13:00:19 +00:00
Zhongxing Xu
7ba9e99015
Use getBody() to get the function definition when the decl referenced is not
...
definition.
llvm-svn: 97373
2010-02-28 06:39:11 +00:00
Anders Carlsson
e3385f566b
More improvements to construction vtables; we know handle vbase offsets correctly (I hope).
...
llvm-svn: 97361
2010-02-28 01:43:58 +00:00
Dan Gohman
357421ea12
Opt into the Verifier now that it's an opt-in feature of
...
addPassesToEmitFile.
llvm-svn: 97358
2010-02-28 00:55:40 +00:00
Anders Carlsson
62c6c72bab
Pass information about whether a base is virtual or not down to getCtorVtable, we need this information in the vtable builder.
...
llvm-svn: 97356
2010-02-28 00:36:23 +00:00
Anders Carlsson
31f595f5ef
Add new function.
...
llvm-svn: 97353
2010-02-28 00:10:58 +00:00
Anders Carlsson
f98b47d3b9
Fix to dumpLayout; we want to be able to dump address points even if the vtable doesn't have any methods.
...
llvm-svn: 97350
2010-02-27 23:58:01 +00:00
Nick Lewycky
48f74d2c9a
Debian sid moved these headers into /4.4 and left /4.4.3 as a symlink. Update.
...
Also, add support for 32-bit x86 Debian sid.
llvm-svn: 97347
2010-02-27 22:35:43 +00:00
Anders Carlsson
c3f92a16f2
Add a simple construction vtable test.
...
llvm-svn: 97344
2010-02-27 21:09:00 +00:00
Anders Carlsson
9391375d95
Start fleshing out construction vtable support.
...
llvm-svn: 97342
2010-02-27 20:39:05 +00:00
Anders Carlsson
603d7d1910
Enable the new vtable layout code for vtables that aren't construction vtables. (This doesn't mean that we emit LLVM IR using it yet, it just means that it's running and hopefully not crashing or asserting).
...
llvm-svn: 97341
2010-02-27 20:02:53 +00:00
Anders Carlsson
9f19aaaa3a
Move ComputeThisAdjustmentBaseOffset to VtableBuilder.
...
llvm-svn: 97340
2010-02-27 19:57:44 +00:00
Anders Carlsson
b26c2abac7
Make sure to insert the primary base in the set :)
...
llvm-svn: 97339
2010-02-27 19:51:04 +00:00
Anders Carlsson
e02a926a1c
Use the real base offset when calculating vbase offsets.
...
llvm-svn: 97338
2010-02-27 19:21:58 +00:00
Anders Carlsson
4d0729a7cc
Figured out why the test was failing, this will hopefully fix it.
...
llvm-svn: 97336
2010-02-27 19:00:53 +00:00
Anders Carlsson
2b381bbb5c
Don't add this adjustments for pure virtual member functions.
...
llvm-svn: 97334
2010-02-27 18:16:50 +00:00
Anders Carlsson
01d3c7da60
We want to store method info for unused functions.
...
llvm-svn: 97333
2010-02-27 18:09:40 +00:00
Benjamin Kramer
718f722271
Revert 97324. Chris says this cleanup could hurt -E performance.
...
llvm-svn: 97331
2010-02-27 18:02:51 +00:00
Benjamin Kramer
a197fb6731
Move method out-of-line. I thought this would be a candidate for inlining but I was wrong.
...
llvm-svn: 97330
2010-02-27 17:05:45 +00:00
Anders Carlsson
4068798cbc
Finish up the changes to this adjustments.
...
llvm-svn: 97328
2010-02-27 16:52:49 +00:00
Benjamin Kramer
53fa347ee6
Another trivial getSpelling simplification.
...
llvm-svn: 97327
2010-02-27 16:29:36 +00:00
Anders Carlsson
d46ed89d79
Stub out more of the 'this' pointer adjustment fixes I've been planning. Start using a set vector for primary bases so they will be ordered.
...
llvm-svn: 97326
2010-02-27 16:18:19 +00:00
Benjamin Kramer
b14e0b637a
Simplify code.
...
llvm-svn: 97324
2010-02-27 14:22:08 +00:00
Benjamin Kramer
0a1abd4088
Add an overload of Preprocessor::getSpelling which takes a SmallVector and
...
returns a StringRef. Use it to simplify some repetitive code.
llvm-svn: 97322
2010-02-27 13:44:12 +00:00
Ted Kremenek
09597b461d
Fix crasher caused by setting a bit in a possibly empty bitvector while
...
doing printf format string checking. This is a recent regression.
llvm-svn: 97318
2010-02-27 08:34:51 +00:00
Anders Carlsson
d2025417ef
Fix another vtable layout bug; we weren't looking hard enough for overriden functions when determining if an overrider will ever be used.
...
llvm-svn: 97306
2010-02-27 06:38:03 +00:00
Anders Carlsson
d69b2f93ea
Handle vcall offset sharing between destructors.
...
llvm-svn: 97304
2010-02-27 04:12:52 +00:00
Anders Carlsson
b08aaa3e10
Fix a bug where we were generating an unnecessary vtable for a virtual base that's already a primary virtual base.
...
llvm-svn: 97303
2010-02-27 04:05:52 +00:00
Douglas Gregor
b8b9f28e24
Robustify SourceManager::getLocation(), so that it returns an
...
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.
llvm-svn: 97299
2010-02-27 02:42:25 +00:00
Ted Kremenek
d166819c26
For printf format string checking, add support for positional format strings.
...
Along the way, coelesce some of the diagnostics.
llvm-svn: 97297
2010-02-27 01:41:03 +00:00