Fariborz Jahanian
92368a15f9
When rewriting a __block declaration, use a suitable API to get location of
...
the declaration in the presence of an initializer macro.
llvm-svn: 92312
2009-12-30 20:38:08 +00:00
Chris Lattner
1ca1d7adc2
remove extraneous #include
...
llvm-svn: 92310
2009-12-30 19:54:10 +00:00
Douglas Gregor
2d435306e5
Typo correction for type names when they appear in declarations, e.g., given
...
tring str2;
we produce the following diagnostic + fix-it:
typo.cpp:15:1: error: unknown type name 'tring'; did you mean 'string'?
tring str2;
^~~~~
string
To make this really useful, we'll need to introduce typo correction in
many more places (wherever we do name lookup), and implement
declaration-vs-expression heuristics that cope with typos
better. However, for now this will handle the simple cases where we
already get good "unknown type name" diagnostics.
The LookupVisibleDecls functions are intended to be used by code
completion as well as typo correction; that refactoring will happen
later.
llvm-svn: 92308
2009-12-30 17:04:44 +00:00
Douglas Gregor
ad183ac3c7
Fix typo in comment
...
llvm-svn: 92307
2009-12-30 16:01:52 +00:00
Zhongxing Xu
4629e92e78
Remove an duplicated #include.
...
llvm-svn: 92306
2009-12-30 06:48:20 +00:00
Zhongxing Xu
7b8b4d70ef
Simplify code by using an equivalent template class.
...
llvm-svn: 92305
2009-12-30 06:38:20 +00:00
Chandler Carruth
c712ce1b60
More fixes to the handling of CVR-comparisons on array types. Adds a method to
...
QualType to get CVR-qualifiers through array types, and switches the primary
comparison methods to use it. This may allow simplifying some of the callers of
getUnqualifiedArrayType.
Also fix the normalizing of CV-qualification during template deduction to
normalize through arrays and allow a more qualified deduced array type. This
fixes PR5911.
llvm-svn: 92289
2009-12-30 04:10:01 +00:00
Anders Carlsson
ac2f681777
More RTTI cleanup, test that RTTI classes have the correct vtables.
...
llvm-svn: 92284
2009-12-30 01:00:12 +00:00
John McCall
91f1a02648
Typedefs can be redeclared. That seems like something we should record in
...
the AST lest we run into some crazy canonicalization bug like PR5874.
llvm-svn: 92283
2009-12-30 00:31:22 +00:00
Eli Friedman
84341cd668
Make sure to explicitly pass type/value dependence to Expr constructor. This
...
caught several cases where we were not doing the right thing. I'm
not completely sure all cases are being handled correctly, but this should
be an improvement.
llvm-svn: 92281
2009-12-30 00:13:48 +00:00
Anders Carlsson
79c184e975
Match gcc and treat vector types as fundamental types.
...
llvm-svn: 92278
2009-12-29 22:30:11 +00:00
Anders Carlsson
ef88695860
Handle enum types as well.
...
llvm-svn: 92276
2009-12-29 22:13:01 +00:00
Anders Carlsson
0e4151c685
Test linkage of RTTI descriptors of array types.
...
llvm-svn: 92274
2009-12-29 21:58:32 +00:00
Anders Carlsson
26cf4ab8e2
Fix function type RTTI linkage and add tests.
...
llvm-svn: 92266
2009-12-29 20:20:19 +00:00
Chandler Carruth
585fb1e97e
Fix support for const_cast<>s of array types which actual change the
...
CV-qualifiers. Remove an error expectation from the 'good' set of const-cast
test cases. With this patch, the final non-template test case from PR5542
passes. (It's the same as the one already in const-cast.cpp.)
llvm-svn: 92257
2009-12-29 08:05:19 +00:00
Chris Lattner
3f8e5dd898
strength reduce this call away.
...
llvm-svn: 92253
2009-12-29 07:49:13 +00:00
Chandler Carruth
607f38e05f
Correctly refer to element CVR qualifications when determining if a type is
...
more or less cv-qualified than another during implicit conversion and overload
resolution ([basic.type.qualifier] p5). Factors the logic out of template
deduction and into the ASTContext so it can be shared.
This fixes several aspects of PR5542, but not all of them.
llvm-svn: 92248
2009-12-29 07:16:59 +00:00
Anders Carlsson
88ea2455f8
Get rid of FixedWidthIntType, as suggested by Chris and Eli.
...
llvm-svn: 92246
2009-12-29 07:07:36 +00:00
Chandler Carruth
c25c6ee3db
Handle using declarations in overloaded and template functions during ADL and
...
address resolution. This fixes PR5751.
Also, while we're here, remove logic from ADL which mistakenly included the
definition namespaces of overloaded and/or templated functions whose name or
address is used as an argument.
llvm-svn: 92245
2009-12-29 06:17:27 +00:00
Chris Lattner
9f021fd05d
adjust for llvm api changes.
...
llvm-svn: 92236
2009-12-28 23:41:39 +00:00
Chris Lattner
5e124bf913
this form of SetDebugLocation is about to go away, add some #includes that
...
are about to not come in implicitly.
llvm-svn: 92228
2009-12-28 21:44:41 +00:00
Zhongxing Xu
947420d6ad
Fix 80-col violation.
...
llvm-svn: 92204
2009-12-28 06:49:22 +00:00
Chris Lattner
9e0005f445
use best-fit instead of first-fit when reusing a MacroArgs object,
...
this speeds up Eonly on the testcase in PR5888 from 30.5s to 0.85s
llvm-svn: 92203
2009-12-28 06:36:46 +00:00
Chris Lattner
394f589e73
The PreExpArgTokens array is indexed with an argument #,
...
not a token number. Fix the reserve logic to get the right
amount of space.
llvm-svn: 92202
2009-12-28 06:17:16 +00:00
Sam Weinig
b999f68ed9
Fix for PR5871. Make __PRETTY_FUNCTION__ work for member functions defined in a class local to a function.
...
llvm-svn: 92200
2009-12-28 03:19:38 +00:00
Eli Friedman
affd5fdf37
Make sure to give an error for template argument lists followed by junk.
...
llvm-svn: 92177
2009-12-27 22:31:18 +00:00
Anton Korobeynikov
73d50b9141
Promote arguments of frameaddr / returnaddr builtins to i32 type, when needed.
...
This is needed for the platforms, where bitwidth of "int" is not 32 bits
(e.g. 16 on msp430).
llvm-svn: 92176
2009-12-27 14:27:22 +00:00
Eli Friedman
1e26278b3b
Add a sanity assertion so that we don't silently generate bad code; I'll file
...
a bug with a testcase hitting this assertion in a moment.
llvm-svn: 92175
2009-12-27 07:02:50 +00:00
Eli Friedman
847a2bce04
Fix PointerExprEvaluator::VisitCastExpr so it doesn't misfold C++ casts which
...
it doesn't know how to fold, like derived-to-base casts.
llvm-svn: 92173
2009-12-27 05:43:15 +00:00
Eli Friedman
af76ad73ed
Fix obvious mistake.
...
llvm-svn: 92172
2009-12-27 03:44:17 +00:00
Sam Weinig
4e83bd2795
Fix for PR5872. Add static specifier and const/volatile qualifiers to member functions in __PRETTY_FUNCTION__ predefined expressions.
...
llvm-svn: 92171
2009-12-27 01:38:20 +00:00
Eli Friedman
e14b1997db
Don't look through casts when looking for the underlying decl for a function
...
call; the standard doesn't expect us to, and the program could be doing
something crazy. Fixes PR5882.
llvm-svn: 92166
2009-12-26 03:35:45 +00:00
Eli Friedman
11c7b15148
Attempted fix for PR5884; this code will be dead soon, but this fix should
...
help for the moment.
llvm-svn: 92165
2009-12-25 23:59:21 +00:00
Benjamin Kramer
d20ef75b91
Remove some dead variables clang-analyzer found.
...
llvm-svn: 92162
2009-12-25 15:43:36 +00:00
Benjamin Kramer
a713b5d9a8
Fix typo spotted by MSVC.
...
GRExprEngine.cpp(1348) : warning C4305: 'argument' : truncation from 'clang::ProgramPoint::Kind' to 'bool'
llvm-svn: 92154
2009-12-25 09:44:02 +00:00
Eli Friedman
b8841af8bd
Minor optimization; emit proper unsupported messages for a couple of cases.
...
llvm-svn: 92153
2009-12-25 06:17:05 +00:00
Eli Friedman
2e06e8bbcc
Some small improvements to dead code elimination; helps a bit on
...
LLVM-Code-Symbols test.
llvm-svn: 92152
2009-12-25 05:29:40 +00:00
Eli Friedman
fddc26cc64
Make copy constructor elimination work in more cases; the case in question
...
here affects clang-on-clang.
llvm-svn: 92151
2009-12-24 23:33:34 +00:00
Sam Weinig
07d211ea40
Fix for PR5844. Be explicit about anonymous struct/class/union/namespaces in __PRETTY_FUNCTION__ predefined expression.
...
llvm-svn: 92149
2009-12-24 23:15:03 +00:00
Anders Carlsson
fb404888af
Move a bunch of class related functions to CGClass.cpp, no functionality change.
...
llvm-svn: 92148
2009-12-24 22:46:43 +00:00
Anders Carlsson
bfb3671b25
Pass the return value slot to all call exprs.
...
llvm-svn: 92145
2009-12-24 21:13:40 +00:00
Douglas Gregor
33636e66c7
Egregious, disgusting workaround for PR5866. We need to rework how we
...
keep track of friends within templates, which will provide a real for
PR5866. For now, this makes sure we don't do something entirely stupid
with friends of specializations.
llvm-svn: 92143
2009-12-24 20:56:24 +00:00
Anders Carlsson
1749083e2e
Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us halfway towards fixing PR5824.
...
llvm-svn: 92142
2009-12-24 20:40:36 +00:00
Douglas Gregor
4b65441598
Add test case for PR5868, and improve location information slightly for implicit "this" expressions
...
llvm-svn: 92141
2009-12-24 20:23:34 +00:00
Douglas Gregor
8e8eaa14f7
When rebuilding a MemberExpr that refers to an anonymous union, be
...
sure to perform derived-to-base conversions on the base
expression. Fixes PR5868. Proper testcase is coming soon.
llvm-svn: 92139
2009-12-24 20:02:50 +00:00
Anders Carlsson
61a401caec
Pass ReturnValueSlot to EmitCall. No functionality change yet.
...
llvm-svn: 92138
2009-12-24 19:25:24 +00:00
Daniel Dunbar
2db411f5a7
Fix -Asserts warning.
...
llvm-svn: 92137
2009-12-24 19:19:26 +00:00
Anders Carlsson
0435ed5875
Add a ReturnValueSlot class. Change the argument order in EmitCall to match the other overload better.
...
llvm-svn: 92136
2009-12-24 19:08:58 +00:00
Douglas Gregor
363b151ff7
When transforming CXXExprWithTemporaries and CXXBindTemporaryExpr
...
expressions (e.g., for template instantiation), just transform the
subexpressions and return those, since the temporary-related nodes
will be implicitly regenerated. Fixes PR5867, but I said that
before...
llvm-svn: 92135
2009-12-24 18:51:59 +00:00
Douglas Gregor
5c13090bd4
Fix double-destruction assertion to account for temporaries in conditionals
...
llvm-svn: 92134
2009-12-24 18:16:21 +00:00