John McCall
588d2d585d
Extract TemplateArgument into a new header just for common template
...
classes. Move its implementation into a new module.
This will seem marginally more justified in a bit.
llvm-svn: 85499
2009-10-29 07:48:15 +00:00
Zhongxing Xu
aa4121d062
Add an assertion to ensure NullDerefChecker exists.
...
llvm-svn: 85497
2009-10-29 05:56:54 +00:00
Ted Kremenek
1dbdbcc04c
Fix accidental use of CheckSVal instead of CheckLocation, and add a
...
small test case to show we handle dereferences of undefined values.
llvm-svn: 85492
2009-10-29 05:33:39 +00:00
Douglas Gregor
98261735b4
StringSwitch-ify attribute name mapping.
...
llvm-svn: 85491
2009-10-29 05:26:58 +00:00
Chris Lattner
08bb9ef7f7
make this interpretable.
...
llvm-svn: 85487
2009-10-29 05:25:27 +00:00
Ted Kremenek
1f0a56e4c9
Fix an insidious bug in RegionStore::RemoveDeadBindings() pointed out
...
by Zhongxing Xu. RemoveDeadBindings() would falsely prune
SymbolicRegions from the store that wrapped derived symbols whose
liveness could only be determined after scanning the store.
llvm-svn: 85484
2009-10-29 05:14:17 +00:00
Chris Lattner
e963d092d8
add two new and very exhaustive preprocessor tests, patch by
...
Ken Dyck!
llvm-svn: 85482
2009-10-29 04:55:36 +00:00
Chris Lattner
d0952749f7
simplify intmax setup, patch by Ken Dyck!
...
llvm-svn: 85481
2009-10-29 04:54:24 +00:00
Daniel Dunbar
1a8a2e8e97
Remove some obsolete or unnecessary FIXMEs.
...
llvm-svn: 85475
2009-10-29 02:39:57 +00:00
Daniel Dunbar
945577ce93
PR5328: Allow duplicatic -pedantic (and -pedantic-errors) options.
...
- clang-cc doesn't care about their relative order with other -W options.
llvm-svn: 85473
2009-10-29 02:24:45 +00:00
Daniel Dunbar
b0b18615e2
Kill off MakeFormattedString helper function.
...
llvm-svn: 85472
2009-10-29 02:24:37 +00:00
Zhongxing Xu
6b8bfb376b
Move NullDeref and UndefDeref into their own checker.
...
Add a CheckLocation() interface to Checker.
Now ImplicitNullDeref nodes are cached in NullDerefChecker.
More cleanups follow.
llvm-svn: 85471
2009-10-29 02:09:30 +00:00
Daniel Dunbar
38b6279ce4
Reject -I- in driver instead of clang-cc.
...
llvm-svn: 85469
2009-10-29 01:53:44 +00:00
Daniel Dunbar
938eb27b25
Formatting fixes.
...
llvm-svn: 85468
2009-10-29 01:53:18 +00:00
Chris Lattner
29fb551a36
make this more interesting, test the static const array.
...
llvm-svn: 85464
2009-10-29 01:20:34 +00:00
Ted Kremenek
33335b1504
Add test case for <rdar://problem/7342806>.
...
llvm-svn: 85462
2009-10-29 00:49:46 +00:00
Douglas Gregor
f7b87cb529
[llvm up]
...
Switch a few ugly switch-on-string-literal constructs to use the new
llvm::StringSwitch.
llvm-svn: 85461
2009-10-29 00:41:01 +00:00
Chris Lattner
edc56ef41c
optimize out some ifdefs.
...
llvm-svn: 85453
2009-10-29 00:22:00 +00:00
John Thompson
e413e88f2e
Fix some Window-isms to get these tests to pass on Windows.
...
llvm-svn: 85450
2009-10-29 00:10:42 +00:00
Douglas Gregor
21610380de
Implement support for semantic checking and template instantiation of
...
class template partial specializations of member templates. Also,
fixes a silly little bug in the marking of "used" template parameters
in member templates. Fixes PR5236.
llvm-svn: 85447
2009-10-29 00:04:11 +00:00
Chris Lattner
6c4d255bf3
Implement clang support for indirect branch and address of label
...
using the new LLVM support for this. This is temporarily hiding
behind horrible and ugly #ifdefs until the time when the optimizer
is stable (hopefully a week or so). Until then, lets make it "opt in" :)
llvm-svn: 85446
2009-10-28 23:59:40 +00:00
Ted Kremenek
1c9401ec15
Unused ivars checker: also check methods in categories that are defined in the same translation unit. Fixes <rdar://problem/6260004>.
...
llvm-svn: 85442
2009-10-28 22:18:22 +00:00
Steve Naroff
f0c8611d3f
Fix <rdar://problem/7330784>. Avoid crashing on 'Class<p>' when generating meta-data for a class.
...
llvm-svn: 85440
2009-10-28 22:03:49 +00:00
Mike Stump
5179f308a2
Refine __builtin_object_size. Don't try and get a size for things
...
that don't have sizes.
llvm-svn: 85435
2009-10-28 21:22:24 +00:00
Fariborz Jahanian
29baa2b1ba
Minor cleanup.
...
llvm-svn: 85434
2009-10-28 21:07:28 +00:00
Fariborz Jahanian
f1639fffbc
Code gen for array construction - WIP
...
llvm-svn: 85432
2009-10-28 20:55:41 +00:00
Steve Naroff
58bd62d190
Remove _clang_initCXLookupHint() and _clang_getCursorWithHint(). Related to <rdar://problem/7310688>.
...
Localize the optimization to ResolveLocationInAST(). The last valid AST location is now stored with ASTUnit. There still isn't optimal, however it's an improvement (with a much cleaner API). Having the client manage an "hint" is error prone and complex.
I wanted to land the major changes before finishing up the optimizations.
llvm-svn: 85425
2009-10-28 20:44:47 +00:00
Mike Stump
476e2dfe19
Refactor a bit.
...
llvm-svn: 85424
2009-10-28 20:44:03 +00:00
Ted Kremenek
faba9fe5e4
Pull ivar scanning logic into another utility function. This refactoring will enable scanning
...
categories as well (WIP). No functionality change yet.
llvm-svn: 85423
2009-10-28 20:37:47 +00:00
Chris Lattner
a0c0d88ba8
factor a creation of Int32Ty.
...
llvm-svn: 85422
2009-10-28 20:36:47 +00:00
Fariborz Jahanian
d264ee0cba
Use array's base element type in getting to its
...
constructor. WIP.
llvm-svn: 85420
2009-10-28 19:04:36 +00:00
Fariborz Jahanian
57277c5cae
Removed an unnecessary arguement passed to InitializeVarWithConstructor
...
which should come from the variable and wasn't correct for arrays in any case.
No change in functionality.
llvm-svn: 85415
2009-10-28 18:41:06 +00:00
Fariborz Jahanian
370606afee
Restored note on pointer to members with a pointer
...
to issue involved.
llvm-svn: 85409
2009-10-28 18:06:53 +00:00
Chris Lattner
ab5e0af8bc
random tidying
...
llvm-svn: 85408
2009-10-28 17:39:19 +00:00
Fariborz Jahanian
7e4e44f5fa
Removed a Note related to pointer to member functions which
...
does not seem to exist any longer.
llvm-svn: 85405
2009-10-28 17:25:01 +00:00
Fariborz Jahanian
42f666342c
Diagnose use of data pointer member in a function call
...
expression instead of crashing.
llvm-svn: 85401
2009-10-28 16:49:46 +00:00
Douglas Gregor
05925031f7
Mangle based on the declaration we're given, not the canonical
...
declaration, since attributes that affect mangling may have been added
to subsequent declarations. However, to determine the linkage of the
declaration, we need to look at the canonical declaration. Fixes PR4412.
llvm-svn: 85400
2009-10-28 16:31:34 +00:00
Edward O'Callaghan
5c5214626c
Fix for PR4887, Credit to Jonathan Gray.
...
llvm-svn: 85392
2009-10-28 15:13:08 +00:00
Zhongxing Xu
cb131542f1
make CallGraph more flexible by letting it accept ASTContext instead of ASTUnit.
...
Patch by Simone Pellegrini.
llvm-svn: 85386
2009-10-28 12:23:03 +00:00
Chris Lattner
5e71d43155
adjust for a pending LLVM change.
...
llvm-svn: 85373
2009-10-28 05:12:07 +00:00
Mike Stump
82d25e4e5e
Add mangling for VTTs.
...
llvm-svn: 85363
2009-10-28 01:51:46 +00:00
Mike Stump
375faa8dd7
Finish off pure virtual function handling.
...
llvm-svn: 85354
2009-10-28 00:35:46 +00:00
Douglas Gregor
3da3c06578
Slightly improve source location information during template instantiation
...
llvm-svn: 85353
2009-10-28 00:29:27 +00:00
Douglas Gregor
19f3d70149
Test
...
explicit-instantiation-declaration-after-explicit-instantiation-definition
errors. This wraps up explicit template instantiation for now.
llvm-svn: 85347
2009-10-27 23:55:05 +00:00
Mike Stump
bb9ff05778
Prep work for putting ___cxa_pure_virtual in the vtables for pure functions.
...
llvm-svn: 85345
2009-10-27 23:46:47 +00:00
Mike Stump
18e8b477e8
Refactor code a little.
...
llvm-svn: 85343
2009-10-27 23:36:26 +00:00
Douglas Gregor
b7e5c847c4
Implement proper linkage for explicit instantiation declarations of
...
inlined functions. For example, given
template<typename T>
class string {
unsigned Len;
public:
unsigned size() const { return Len; }
};
extern template class string<char>;
we now give the instantiation of string<char>::size
available_externally linkage (if it is ever instantiated!), as
permitted by the C++0x standard.
llvm-svn: 85340
2009-10-27 23:26:40 +00:00
Fariborz Jahanian
ef8b8ce207
Type of a conditional expression with two distinct objective-c
...
class pointer is the most derived common class of the two.
This is <rdar://problem/7334235>.
llvm-svn: 85337
2009-10-27 23:02:38 +00:00
Mike Stump
876387ba4f
__builtin_object_size refinements. Ensure we handle expressions with
...
side-effects up front, as when we switch to the llvm intrinsic call
for __builtin_object_size later, it will have two evaluations.
We also finish off the intrinsic version of the code so we can just
turn it on once llvm has the intrinsic.
llvm-svn: 85324
2009-10-27 22:09:17 +00:00
Oscar Fuentes
843c828ed5
CMake: Respect LLVM_LIBDIR_SUFFIX for clang-specific headers under
...
${libdir}/clang
Patch by Ingmar Vanhassel!
llvm-svn: 85308
2009-10-27 21:15:21 +00:00
Douglas Gregor
583dcafce4
Introduce FunctionDecl::isInlined() to tell whether a function should
...
be inlined.
llvm-svn: 85307
2009-10-27 21:11:48 +00:00
Douglas Gregor
35b5753e17
Rename FunctionDecl::isInline/setInline to
...
FunctionDecl::isInlineSpecified/setInlineSpecified.
llvm-svn: 85305
2009-10-27 21:01:01 +00:00
Douglas Gregor
afca3b4a5c
Explicit instantiation suppresses the instantiation of non-inline
...
function template specializations and member functions of class
template specializations.
llvm-svn: 85300
2009-10-27 20:53:28 +00:00
Oscar Fuentes
e814afd7b0
Rather than excluding quite some things, and still installing
...
CMakeLists.txt, Makefiles, ... it's better to whitelist what we really
want to install.
Patch by Ingmar Vanhassel!
llvm-svn: 85283
2009-10-27 19:59:34 +00:00
Daniel Dunbar
c369d73405
Set OptimizeForSize LLVM function attribute with -Os.
...
llvm-svn: 85278
2009-10-27 19:48:08 +00:00
Daniel Dunbar
59ca7f1a1e
Convert test to FileCheck.
...
llvm-svn: 85277
2009-10-27 19:48:00 +00:00
Oscar Fuentes
e6fc25321f
CMake: Append LLVM_LIBDIR_SUFFIX to library destination.
...
Based on a patch by Ingmar Vanhassel.
llvm-svn: 85276
2009-10-27 19:42:21 +00:00
Daniel Dunbar
c14753b781
Fix crash when synthesizing property setters when the property type and ivar
...
type have mismatched Objective-C types.
- <rdar://problem/7336352> [irgen] crash in synthesized property construction
llvm-svn: 85275
2009-10-27 19:21:30 +00:00
Douglas Gregor
1d957a336f
An explicit instantiation definition only instantiations those class
...
members that have a definition. Also, use
CheckSpecializationInstantiationRedecl as part of this instantiation
to make sure that we diagnose the various kinds of problems that can
occur with explicit instantiations.
llvm-svn: 85270
2009-10-27 18:42:08 +00:00
Fariborz Jahanian
115654873d
Generate constructor for value-initialization cases, even if the
...
implementation technique doesn't call the constructor at that point.
DR302. Fixes pr5296.
llvm-svn: 85249
2009-10-27 16:51:19 +00:00
Douglas Gregor
04a0a6c461
Test for interaction between explicit instantiations and specializations
...
llvm-svn: 85244
2009-10-27 15:36:37 +00:00
Douglas Gregor
969c2a238c
Test various aspects of explicit instantiation that were already implemented.
...
llvm-svn: 85243
2009-10-27 15:00:12 +00:00
John Thompson
995c845e5c
Disabling some MS extensions which cause this test to fail
...
llvm-svn: 85242
2009-10-27 14:58:27 +00:00
Rafael Espindola
177f1d979d
Split AddDefaultSystemIncludePaths into C, C++ and framework specific functions.
...
The user visible changes are:
*) Frameworks are only searched on OS X
*) The Cygwin c++ headers are now marked as c++ aware. I am almost
sure that not marking them was a bug.
llvm-svn: 85240
2009-10-27 14:47:31 +00:00
Steve Naroff
6231f18793
Add support for 'CXFile' (<rdar://problem/7303360>).
...
- 4 new functions (clang_getCursorSourceFile, clang_getDeclSourceFile, clang_getFileName, clang_getFileTime).
- Should remove clang_getDeclSource() and clang_getCursorSource(). For now, just put 'deprecate' comment in header.
- Also changed CXX style comment to C style (to eliminate warning).
llvm-svn: 85238
2009-10-27 14:35:18 +00:00
Anders Carlsson
29295bff61
Add a PrettyStackTraceDecl in CodeGenModule::EmitGlobalDefinition.
...
llvm-svn: 85237
2009-10-27 14:32:27 +00:00
John Thompson
ec87bb5c46
Disabling some MS extensions which cause these tests to fail
...
llvm-svn: 85236
2009-10-27 14:31:53 +00:00
John Thompson
de258b5ab9
Changes for building as a Windows DLL
...
llvm-svn: 85234
2009-10-27 13:42:56 +00:00
Benjamin Kramer
59b7cf6a6d
Make test independent of darwin system headers.
...
llvm-svn: 85232
2009-10-27 12:19:13 +00:00
Sebastian Redl
4461507151
Implement Chris's suggestions for the precendence warnings. Reformat the code a bit. Test the fixits.
...
llvm-svn: 85231
2009-10-27 12:10:02 +00:00
Nuno Lopes
0e86b8675f
fix tests
...
llvm-svn: 85223
2009-10-27 10:09:29 +00:00
Douglas Gregor
ef6ab417c1
Only set the point of instantiation for an implicit or explicit
...
instantiation once we have committed to performing the
instantiation. As part of this, make our makeshift
template-instantiation location information suck slightly less.
Fixes PR5264.
llvm-svn: 85209
2009-10-27 06:26:26 +00:00
Edward O'Callaghan
6d9350b73b
Typo in revision 85201.
...
llvm-svn: 85202
2009-10-27 03:59:44 +00:00
Edward O'Callaghan
7cd5c818da
Convert Preprocessor Clang tests to FileCheck in regards to PR5307.
...
llvm-svn: 85201
2009-10-27 03:47:36 +00:00
Edward O'Callaghan
576a03fed2
Fix a broken test in rev. 85199.
...
llvm-svn: 85200
2009-10-27 03:14:56 +00:00
Edward O'Callaghan
f78edf52de
Convert Preprocessor Clang tests to FileCheck in regards to PR5307.
...
llvm-svn: 85199
2009-10-27 02:36:32 +00:00
Mike Stump
989dc73c48
Almost missed this one... Doc update for last change.
...
llvm-svn: 85196
2009-10-27 02:07:23 +00:00
Mike Stump
ab8b2e08c3
Refine noreturn handling. Fixes -Wmissing-noreturn so that it doesn't
...
complain that functions that have a return statement should be
declared noreturn. Fixed PR5286.
llvm-svn: 85195
2009-10-27 01:59:05 +00:00
Edward O'Callaghan
60c143eff0
Preprocessor tests are whitespace sensitive, as per Revision: 85170 review.
...
llvm-svn: 85194
2009-10-27 01:45:51 +00:00
Ted Kremenek
f3afe1e900
Use a pred_iterator instead of a succ_iterator (wrong typedef).
...
llvm-svn: 85193
2009-10-27 01:07:53 +00:00
Ted Kremenek
64fd20d243
Add test cases for <rdar://problem/7332673>.
...
llvm-svn: 85191
2009-10-27 01:05:20 +00:00
Rafael Espindola
bb85c2644a
Document -nobuiltininc
...
llvm-svn: 85188
2009-10-27 00:29:40 +00:00
Mike Stump
7a484dd6a9
Prep for future __builtin_object_size refinements. The theory is that
...
someone will add an llvm intrinsic for us to use, so the optimizer can
figure out the hard cases. WIP.
For those that want to help, double check with Eric before starting.
He has a bit of code this will plug into.
llvm-svn: 85175
2009-10-26 23:39:48 +00:00
Mike Stump
5183a14bfb
__builtin_object_size refinements. Also handle stack based objects. WIP.
...
llvm-svn: 85174
2009-10-26 23:05:19 +00:00
Edward O'Callaghan
0e2f7930fb
Convert a few tests to FileCheck for PR5307.
...
llvm-svn: 85170
2009-10-26 22:51:02 +00:00
Ted Kremenek
12e678d550
Unify Unix and Windows code paths when executing 'clang'.
...
llvm-svn: 85163
2009-10-26 22:14:08 +00:00
Ted Kremenek
bf0690c99f
Remove unnecessary calls to 'flush()'.
...
llvm-svn: 85162
2009-10-26 22:08:39 +00:00
Fariborz Jahanian
038374f887
Add Code gen support for '->*' operator which fell
...
through the crack.
llvm-svn: 85160
2009-10-26 21:58:25 +00:00
Mike Stump
10bd7e1c5b
__builtin_object_size refinements. When we run out of object, be sure
...
to clamp at 0 bytes left. WIP.
llvm-svn: 85157
2009-10-26 21:38:39 +00:00
Edward O'Callaghan
72af806797
Convert a few tests to FileCheck for PR5307.
...
llvm-svn: 85154
2009-10-26 20:49:20 +00:00
Fariborz Jahanian
59f64202d6
Add 'fixit' hint on mis-use of pointer-to-member
...
binary operators.
llvm-svn: 85153
2009-10-26 20:45:27 +00:00
Steve Naroff
a4a347f0b9
Add some missing header files to the Xcode project.
...
llvm-svn: 85152
2009-10-26 20:36:31 +00:00
Mike Stump
99f11f769e
Be sure to zero-extend. And refactor.
...
llvm-svn: 85140
2009-10-26 18:57:47 +00:00
Mike Stump
722cedfb0d
__builtin_object_size refinements. WIP.
...
llvm-svn: 85136
2009-10-26 18:35:08 +00:00
Sebastian Redl
c6a9254f01
Convert some driver checks to FileCheck.
...
llvm-svn: 85133
2009-10-26 18:07:30 +00:00
Daniel Dunbar
431895f748
clang-cc: Allow building for x86_64 with -mmacosx-version-min=10.4.
...
llvm-svn: 85132
2009-10-26 17:52:49 +00:00
Chandler Carruth
6e0df53865
Switch vtable to linkeonce_odr. Patch by nlewycky.
...
llvm-svn: 85131
2009-10-26 17:14:14 +00:00
Sebastian Redl
4afb7c58a4
Add fixit hint to bitwise precedence warning.
...
llvm-svn: 85129
2009-10-26 17:01:32 +00:00
Douglas Gregor
e0105ad38b
assert -> llvm_unreachable
...
llvm-svn: 85125
2009-10-26 16:27:58 +00:00
Sebastian Redl
4302824fe2
Implement a warning for mixing bitwise logical with comparison ops. Fixes PR5297.
...
llvm-svn: 85117
2009-10-26 15:24:15 +00:00
Rafael Espindola
b3549d74da
Rename -nostdclanginc to -nobuiltininc.
...
llvm-svn: 85116
2009-10-26 13:36:57 +00:00
Zhongxing Xu
b7945461cb
'error' is usually used as a noreturn function. This can suppress some false
...
warnings. Eventually we need a way to import externally defined functions
summaries.
llvm-svn: 85092
2009-10-26 05:18:31 +00:00
Chandler Carruth
a3f084ce16
Update location of DataTypes.h to reflect move in LLVM with r85086.
...
llvm-svn: 85087
2009-10-26 01:37:10 +00:00
Daniel Dunbar
495b478404
Phrase compile time assert in standard way.
...
llvm-svn: 85079
2009-10-25 23:11:15 +00:00
Chris Lattner
c0c043903b
rename getTypeSigned() -> isTypeSigned() per daniel's review.
...
llvm-svn: 85076
2009-10-25 22:49:18 +00:00
Chris Lattner
c77f989687
Fix PR5298 - -Wmissing-noreturn shouldn't warn if the function is already
...
declared noreturn.
llvm-svn: 85075
2009-10-25 22:43:07 +00:00
Chris Lattner
b7df3c66c8
Implement rdar://6756623 - use of deprecated type in deprecated typedef should not warn
...
llvm-svn: 85073
2009-10-25 22:31:57 +00:00
Sebastian Redl
e24b16205f
Make sure we actually have a definition before asking if it is implicit. Fixes PR4674.
...
llvm-svn: 85072
2009-10-25 22:31:45 +00:00
Chris Lattner
ecf328e6dd
When parsing a top level struct declaration, make sure to
...
process decl attributes instead of dropping them on the floor.
This allows us to diagnose cases like the testcase. Also don't
diagnose deprecated stuff in ActOnTag: not all uses of tags
may be 'uses', and SemaType does this now.
llvm-svn: 85071
2009-10-25 22:21:57 +00:00
Chris Lattner
e40853aabd
move calls to DiagnoseUseOfDecl (which warns about deprecated/unavailable
...
types) out of Sema::getTypeName into ConvertDeclSpecToType. getTypeName
is sometimes used as a predicate in the parser, so it could cause redundant
diags to be emitted. This is also needed by two upcoming enhancements.
llvm-svn: 85070
2009-10-25 22:09:09 +00:00
Chris Lattner
de126cfa83
cleanups
...
llvm-svn: 85069
2009-10-25 22:05:13 +00:00
Sebastian Redl
d7b3d7dd79
Remove the Skip parameter from GetTypeForDeclarator and dependents. Take the opportunity to improve an error message and fix PR4498.
...
llvm-svn: 85068
2009-10-25 21:45:37 +00:00
Chris Lattner
588f19acc1
remove a nonsensical todo
...
llvm-svn: 85067
2009-10-25 21:19:07 +00:00
Daniel Dunbar
fb049eef8f
Tweak test, with -strict-whitespace $ won't match on Windows because the buffer
...
will have \r\n.
- Perhaps we should make FileCheck normalize line-endings, even in
strict-whitespace mode?
llvm-svn: 85066
2009-10-25 20:34:02 +00:00
Chris Lattner
1138f04aa5
move the extwarn about using long long out of the entry of
...
GetTypeForDeclarator and into the code that handles long long
already.
llvm-svn: 85063
2009-10-25 18:25:04 +00:00
Chris Lattner
dae17dbbed
simplify interface to ConvertDeclSpecToType, check for inferred
...
block return types only when a TST isn't specified, not every time
through GetTypeForDeclarator.
llvm-svn: 85062
2009-10-25 18:21:37 +00:00
Chris Lattner
ebfde05f29
change ConvertDeclSpecToType to be a static function in SemaType.cpp
...
llvm-svn: 85061
2009-10-25 18:07:27 +00:00
Chris Lattner
1fb66f4323
change Sema::ActOnFriendTypeDecl to use GetTypeForDeclarator instead
...
of ConvertDeclSpecToType, which I'd like to keep private to SemaType.cpp.
We do this by cons'ing up a trivial Declarator for the type.
John, please review.
llvm-svn: 85060
2009-10-25 17:47:27 +00:00
Chris Lattner
22e8563175
various cleanups for SemaType.cpp
...
llvm-svn: 85059
2009-10-25 17:36:50 +00:00
Chris Lattner
a27dd59277
minor reorg: check both attributes before decl.
...
llvm-svn: 85058
2009-10-25 17:21:40 +00:00
Chris Lattner
17e15f18c5
simplify Sema::getTypeName a bit: if control gets out of the switch,
...
IIDecl cannot be null. There is no need to check for both C++ mode and
presence of CXXRecordDecl. ObjC interfaces can't have ScopeSpecs.
llvm-svn: 85057
2009-10-25 17:16:46 +00:00
Chris Lattner
5566290b34
In objc mode, every identifier in a cast expression was using doing a
...
type looking using getTypeName() and every property access was using
NextToken() to do lookahead to see if the identifier is followed by
a '.'. Rearrange this code to not need lookahead and only do the
type lookup if we have "identifier." in the token stream. Also
improve a diagnostic a bit.
llvm-svn: 85056
2009-10-25 17:04:48 +00:00
Sebastian Redl
1054faed32
Audit the code for places where it is assumed that every base specifier refers to a RecordType. Add assertions or conditions as appropriate. This fixes another crash in the Apache stdlib vector.
...
llvm-svn: 85055
2009-10-25 17:03:50 +00:00
Sebastian Redl
c45c03c9dd
Ignore dependent bases in ADL. Fixes PR5271.
...
llvm-svn: 85054
2009-10-25 09:35:33 +00:00
Nate Begeman
e46ee9aaea
Add support for vector shifts, pretty straight forward.
...
llvm-svn: 85033
2009-10-25 02:26:48 +00:00
Nate Begeman
b8326be4d9
Fix a bug in calculating shufflevector indices when constructing vectors from other vectors.
...
If I can find it again, I will check in a testcase.
llvm-svn: 85032
2009-10-25 02:26:01 +00:00
Daniel Dunbar
841fa8e289
Fix cmake failure trying to get SVN info for non-SVN trees.
...
llvm-svn: 85015
2009-10-24 20:32:58 +00:00
Sanjiv Gupta
84f0f776e9
Add a preprocessor define for adding a "near" section attribute for allowing
...
objects to be placed at shared memory.
llvm-svn: 85007
2009-10-24 18:08:20 +00:00
Benjamin Kramer
3f81d655d7
Remove duplicated constructor declaration.
...
llvm-svn: 84997
2009-10-24 10:09:11 +00:00
Benjamin Kramer
1402ce3e42
Switch alloca/sprintf to SmallString/raw_ostream.
...
llvm-svn: 84996
2009-10-24 09:57:09 +00:00
John McCall
703a3f8a7b
Preserve type source information in TypedefDecls. Preserve it across
...
template instantiation. Preserve it through PCH. Show it off to the indexer.
I'm healthily ignoring the vector type cases because we don't have a sensible
TypeLoc implementation for them anyway.
llvm-svn: 84994
2009-10-24 08:00:42 +00:00
Douglas Gregor
d33198420d
Fix overload resolution when calling a member template or taking the
...
address of a member template when explicit template arguments are
provided.
llvm-svn: 84991
2009-10-24 04:59:53 +00:00
Fariborz Jahanian
aa9894c583
Make the local buffer overflow safe.
...
llvm-svn: 84981
2009-10-24 00:16:42 +00:00
Fariborz Jahanian
205baf61c4
Fixe a buffer overflow problem which causes a crash
...
in a certain project. Need to have a permananent fix later
(FIXME added).
llvm-svn: 84980
2009-10-23 23:55:43 +00:00
Douglas Gregor
6b815c8799
Implement template instantiation for non-type template
...
parameters. Fixes PR5103.
llvm-svn: 84979
2009-10-23 23:25:44 +00:00
John McCall
48f2d5860d
Store the builtin types as CanQualTypes. Expand a bit on the CanQual API,
...
but also remove some methods that cause ambiguities, and generally
make CanQual<blah> more analogous to QualType.
llvm-svn: 84976
2009-10-23 23:03:21 +00:00
Douglas Gregor
091f04256a
Migrate Sema::ActOnCallExpr to Sema::FixOverloadedFunctionReference,
...
so that we maintain better source information after template argument
deduction and overloading resolves down to a specific
declaration. Found and dealt with a few more cases that
FixOverloadedFunctionReference didn't cope with.
(Finally) added a test case that puts together this change with the
DeclRefExpr change to (optionally) include nested-name-specifiers and
explicit template argument lists.
llvm-svn: 84974
2009-10-23 22:18:25 +00:00
Sebastian Redl
e2530ec0c0
Correct a comment.
...
llvm-svn: 84973
2009-10-23 22:13:42 +00:00
John McCall
856bbea332
Remove OriginalTypeParmDecl; the original type is the one specified
...
in the DeclaratorInfo, if one is present.
Preserve source information through template instantiation. This is made
more complicated by the possibility that ParmVarDecls don't have DIs, which
is possibly worth fixing in the future.
Also preserve source information for function parameters in ObjC method
declarations.
llvm-svn: 84971
2009-10-23 21:48:59 +00:00
John McCall
3665e00c87
Add ASTContext::getTrivialDeclaratorInfo, which initializes a new
...
source info block with a single location.
llvm-svn: 84970
2009-10-23 21:14:09 +00:00
Fariborz Jahanian
9a14b84ac5
Diagnose misuse of '.*' and '->*' operators during parse
...
instead of crashing in code gen.
llvm-svn: 84968
2009-10-23 21:01:39 +00:00
Sebastian Redl
f212a92bb6
Fix operator precedence in Doug's most recent commit.
...
llvm-svn: 84964
2009-10-23 19:38:17 +00:00
Sebastian Redl
c057f423a0
Apply the special enum restrictions from [over.match.oper]p3b2 in argument-dependent lookup too. This fixes PR5244.
...
llvm-svn: 84963
2009-10-23 19:23:15 +00:00
Douglas Gregor
4bd90e53c2
Eliminate QualifiedDeclRefExpr, which captured the notion of a
...
qualified reference to a declaration that is not a non-static data
member or non-static member function, e.g.,
namespace N { int i; }
int j = N::i;
Instead, extend DeclRefExpr to optionally store the qualifier. Most
clients won't see or care about the difference (since
QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the
number of top-level expression types that clients need to cope with,
brings the implementation of DeclRefExpr into line with MemberExpr,
and simplifies and unifies our handling of declaration references.
Extended DeclRefExpr to (optionally) store explicitly-specified
template arguments. This occurs when naming a declaration via a
template-id (which will be stored in a TemplateIdRefExpr) that,
following template argument deduction and (possibly) overload
resolution, is replaced with a DeclRefExpr that refers to a template
specialization but maintains the template arguments as written.
llvm-svn: 84962
2009-10-23 18:54:35 +00:00
Fariborz Jahanian
c9af8fd76b
Fixed a code gen bug (by fixing the AST) involving user-defined
...
pointer-to-member type conversion follwed by a pointer-to-member
standard conversion.
llvm-svn: 84955
2009-10-23 18:08:22 +00:00
John McCall
24e7cb6f26
Rebuild dependently-sized ext vectors if either the element type or the size
...
changed under the transform.
llvm-svn: 84953
2009-10-23 17:55:45 +00:00
Benjamin Kramer
0c78c7aa20
Silence GCC 4.3 warning.
...
TreeTransform.h:2333: warning: suggest parentheses around && within ||
llvm-svn: 84949
2009-10-23 10:48:09 +00:00
John McCall
6fd4c23324
Emit calls using the canonical prototype of the called function.
...
llvm-svn: 84947
2009-10-23 08:22:42 +00:00
Ted Kremenek
ca42a51dce
Add comment.
...
llvm-svn: 84930
2009-10-23 04:45:31 +00:00
Ted Kremenek
49c5232d9f
Fix integer overflow in PCHReader when reading the length of an
...
identifier. This caused a crash when reading PCH files that contained
long identifier names.
The issue is that 'StrLenPtr' was previously a 'const char *', meaning
the byte loaded from it would be interpretted as a signed integer. If
the topmost bit was set, conversion to 'unsigned' would extend that
bit, causing an overflow.
The solution is to make 'StrLenPtr' an 'unsigned char *', always
treating the value as an unsigned integer.
This fixes: <rdar://problem/7328900>
llvm-svn: 84925
2009-10-23 03:57:22 +00:00
John Thompson
d73d7add37
Fixed undefined behavior in pushMappings when the stack has to resize.
...
llvm-svn: 84924
2009-10-23 02:21:17 +00:00
Mike Stump
9bb0059449
Add radar number.
...
llvm-svn: 84923
2009-10-23 02:13:20 +00:00
Mike Stump
ae2559a221
Fixup the return type of functions.
...
llvm-svn: 84922
2009-10-23 01:52:13 +00:00
John McCall
e634700c81
FunctionTypeLocs don't necessarily provide ParmVarDecls, so don't crash if
...
one was PCH'ed without any.
llvm-svn: 84920
2009-10-23 01:28:53 +00:00
John McCall
90459c50d7
Preserve type source information when substituting into FieldDecls.
...
Just r84734 now that some fundamental work has been completed.
llvm-svn: 84914
2009-10-22 23:33:21 +00:00
John McCall
fa2d692b7d
Preserve source information for anonymous struct/union declarations.
...
llvm-svn: 84913
2009-10-22 23:31:08 +00:00
Fariborz Jahanian
ffba662dd2
Complete code gen for '.*' binary expression for
...
both scalar and aggregates.
llvm-svn: 84910
2009-10-22 22:57:31 +00:00
Fariborz Jahanian
0797404a33
Fixes a warning.
...
llvm-svn: 84909
2009-10-22 22:49:47 +00:00
John McCall
fc93cf9777
When building types from declarators, instead of building two types (one for
...
the DeclaratorInfo, one for semantic analysis), just build a single type whose
canonical type will reflect the semantic analysis (assuming the type is
well-formed, of course).
To make that work, make a few changes to the type system:
* allow the nominal pointee type of a reference type to be a (possibly sugared)
reference type. Also, preserve the original spelling of the reference type.
Both of these can be ignored on canonical reference types.
* Remove ObjCProtocolListType and preserve the associated source information on
the various ObjC TypeLocs. Preserve the spelling of protocol lists except in
the canonical form.
* Preserve some level of source type structure on parameter types, but
canonicalize on the canonical function type. This is still a WIP.
Drops code size, makes strides towards accurate source location representation,
slight (~1.7%) progression on Cocoa.h because of complexity drop.
llvm-svn: 84907
2009-10-22 22:37:11 +00:00
Ted Kremenek
2a3ffa9658
Always emit error diagnostics when an error occurs within clang_createTranslationUnit() and clang_createTranslationUnitFromSource(). These kind of errors are ones that shouldn't be missed.
...
llvm-svn: 84904
2009-10-22 22:19:00 +00:00
John Thompson
69b4b14f52
Disable Microsoft extensions to fix failure on Windows.
...
llvm-svn: 84893
2009-10-22 20:34:27 +00:00
John McCall
b692a098c6
Canonicality is a property of qualified types, not unqualified types.
...
llvm-svn: 84891
2009-10-22 20:10:53 +00:00
Chris Lattner
c78b8f3c3a
fix #2 :)
...
llvm-svn: 84889
2009-10-22 19:56:49 +00:00
Chris Lattner
7b53668b8f
fix testcase, thanks Daniel.
...
llvm-svn: 84888
2009-10-22 19:56:26 +00:00
Douglas Gregor
6a573fe543
When replacing a template-id expression with a declaration reference expression after overloading completes, make sure to keep the qualifier. Still not ready with that test-case...
...
llvm-svn: 84880
2009-10-22 18:02:20 +00:00
Ted Kremenek
a96b72a4ca
Split clang_getCursor() into clang_getCursor() and clang_getCursorWithHint().
...
llvm-svn: 84873
2009-10-22 17:22:53 +00:00
Douglas Gregor
d019ff686c
When building and instantiating a template-id reference expression, such as
...
N::f<int>
keep track of the full nested-name-specifier. This is mainly QoI and
relatively hard to test; will try to come up with a printing-based
test once we also retain the explicit template arguments past overload
resolution.
llvm-svn: 84869
2009-10-22 17:20:55 +00:00
Daniel Dunbar
cb8eb225b1
Update test; the driver can find a different gcc tool chain directory when
...
simulating running on a different system.
llvm-svn: 84862
2009-10-22 16:05:11 +00:00
Sebastian Redl
802f14ccde
Try to instantiate templates before doing hierarchy checks in static_cast. Fixes PR5261.
...
llvm-svn: 84860
2009-10-22 15:07:22 +00:00
Douglas Gregor
3c8a0cfa5b
When a template-id expression refers to a member function template, turn it into an (implicit) member access expression. Fixes PR5220
...
llvm-svn: 84848
2009-10-22 07:19:14 +00:00
Douglas Gregor
6493d9c27e
Refactor our handling of implicit member reference expressions to get most of the logic out of BuildDeclarationNameExpr
...
llvm-svn: 84847
2009-10-22 07:08:30 +00:00
Chris Lattner
63d2b3615c
fix PR5265: the size of a float3 should be rounded up to its alignment.
...
This ensures that arrays of float3 are correctly padded.
llvm-svn: 84833
2009-10-22 05:17:15 +00:00
Ted Kremenek
44886fd124
Add some explanatory diagnostics when clang_createTranslationUnitFromSource fails.
...
llvm-svn: 84825
2009-10-22 03:24:01 +00:00
Zhongxing Xu
4611aee0ac
Rename: CheckBadDiv->CheckDivZero.
...
llvm-svn: 84824
2009-10-22 01:58:10 +00:00
Mike Stump
c9f1efe6b3
Remove some misguided code.
...
llvm-svn: 84823
2009-10-22 01:31:24 +00:00
Mike Stump
e1b19ba05b
Extend out the block descriptor structure for debug information with
...
the copy/dispose helpers as appropriate.
llvm-svn: 84817
2009-10-22 00:49:09 +00:00
Daniel Dunbar
820782aae0
Driver: Fix thinko in logic for finding gcc's tool chain directory.
...
llvm-svn: 84805
2009-10-22 00:12:00 +00:00
Ted Kremenek
649bf5c04b
Enhance 'clang_createTranslationUnitFromSourceFile()' in two ways:
...
(1) Allow the source file to be specified in the actual command line arguments by allowing the
caller to set 'source_filename' to NULL.
(2) Automatically strip off the arguments '-emit-ast', '-fsyntax-only', and '-c'.
llvm-svn: 84802
2009-10-22 00:03:57 +00:00
Fariborz Jahanian
52987dc581
Code gen for '.*' binary expressions - WIP.
...
llvm-svn: 84800
2009-10-21 23:45:42 +00:00
Douglas Gregor
c02cfe2a55
Don't (directly) call RequireCompleteType with an invalid source location.
...
llvm-svn: 84793
2009-10-21 23:19:44 +00:00
Mike Stump
f23b0ead3d
Turn on the preallocation of all BlockDeclRefExprs.
...
llvm-svn: 84789
2009-10-21 22:02:08 +00:00
Douglas Gregor
b8440a76c4
Don't generate pointer types for void or base classes when finding
...
conversion types for builtin overloaded operator candidates; I misread
this section in the standard the first time around.
llvm-svn: 84788
2009-10-21 22:01:30 +00:00
Mike Stump
066b616684
Refine collection of BlockDeclRefExprs. WIP.
...
llvm-svn: 84787
2009-10-21 22:01:24 +00:00
Benjamin Kramer
961b4e3edb
Driver: don't produce bogus osx version numbers if no version (aka 0) was specified.
...
llvm-svn: 84781
2009-10-21 21:05:07 +00:00
Fariborz Jahanian
b25817ac1f
Expand on code gen. for pointer to data members so it works
...
for base classe members as well. Test case enhanced for this.
llvm-svn: 84780
2009-10-21 21:01:47 +00:00
Benjamin Kramer
53b4041151
Force triple; this test was failing on non-darwin platforms due to different
...
asm comment styles (## vs #).
llvm-svn: 84777
2009-10-21 19:59:43 +00:00
Fariborz Jahanian
4ebdff5e1c
Code gen for pointer-to-datamember - WIP.
...
llvm-svn: 84771
2009-10-21 18:38:00 +00:00
Mike Stump
945fec05dd
Fix typo.
...
llvm-svn: 84770
2009-10-21 18:24:18 +00:00
Mike Stump
41eb02d496
Refactor.
...
llvm-svn: 84769
2009-10-21 18:23:01 +00:00
Mike Stump
9496790211
Complete out debug info generation for captured __block variables. WIP.
...
llvm-svn: 84768
2009-10-21 18:16:27 +00:00
Anders Carlsson
fcb4ab4420
Change FixOverloadedFunctionReference to return a (possibly new) expression. Substitute TemplateIdRefExprs with DeclRefExprs. Doug, plz review :)
...
llvm-svn: 84763
2009-10-21 17:16:23 +00:00
Douglas Gregor
26b9178a50
Downgrade "function declared 'noreturn' should not return" from an
...
error (by default) to a warning, per C++0x [dcl.attr.noreturn]. Patch
from Sean Hunt!
llvm-svn: 84762
2009-10-21 15:46:01 +00:00
Steve Naroff
20bad0b7c6
Extend clang_getCursor() to take a 'relativeDecl' argument (so speed up searching). Without a 'relativeDecl', the algorithm is n-squared. For example, running the following command on 'Large.m' takes hours without a 'relatvieDecl'.
...
snaroff% time ../../Debug/bin/c-index-test Large.ast all > Large.out
snaroff% cat Large.m
#import <Cocoa/Cocoa.h>
#import <QuickTime/QuickTime.h>
#import <OpenGL/OpenGL.h>
With a 'relativeDecl', it takes <30 seconds:-)
llvm-svn: 84760
2009-10-21 13:56:23 +00:00
Edward O'Callaghan
437ec1ed6e
Add AuroraUX ABI Triple in correct place.
...
llvm-svn: 84758
2009-10-21 11:58:24 +00:00
Zhongxing Xu
2ebee13ff2
Simplify some code. No functionality change.
...
llvm-svn: 84757
2009-10-21 11:42:22 +00:00
Ted Kremenek
7fd48d8549
Update checker build.
...
llvm-svn: 84750
2009-10-21 08:00:24 +00:00
Chris Lattner
72cdcacb02
add helpful methods to TargetInfo for querying builtin integer type properties,
...
patch by Ken Dyck!
llvm-svn: 84746
2009-10-21 06:24:21 +00:00
Douglas Gregor
74ba25ca5a
Improve diagnostics and template instantiation behavior when calling
...
an overloaded function call operator.
llvm-svn: 84745
2009-10-21 06:18:39 +00:00
Chris Lattner
6720492c39
hookize wint_t's definition, patch by Edward O'Callaghan (from PR5233).
...
llvm-svn: 84740
2009-10-21 04:59:34 +00:00
Mike Stump
7fe9cc1dd5
Prep work to always preallocate BlockDeclRefExprs so that we can
...
generate the debug information for the first parameter to the block
invoke functions. WIP.
llvm-svn: 84737
2009-10-21 03:49:08 +00:00