Commit Graph

25299 Commits

Author SHA1 Message Date
Chris Lattner a48fbe8c53 Fix PR8029, a x86-32 ABI regression in introduced in r112211
llvm-svn: 112537
2010-08-30 22:03:23 +00:00
Gabor Greif 3fe617cc09 add two more use-cases (explicit instantiation) that should pass now
llvm-svn: 112533
2010-08-30 21:45:06 +00:00
Gabor Greif 718d515b3a fix dual aspect of PR8007,
namely when the friend function prototype is already used
at the point of the template definition that is supposed
to inject the friend function. Testcase verifies four
scenarios.
I would like receive some code review for this.

llvm-svn: 112524
2010-08-30 21:10:05 +00:00
Douglas Gregor 66d2c8e886 Perform the function-to-pointer adjustment during template argument
deduction where the parameter is a function reference, function
pointer, or member function pointer and the argument is an overloaded
function. Fixes <rdar://problem/8360106>, a template argument
deduction issue found by Boost.Filesystem.

llvm-svn: 112523
2010-08-30 21:04:23 +00:00
Bob Wilson b9225f7f85 Translate NEON vmovn builtin to a vector truncation instead of using an llvm
intrinsic.

llvm-svn: 112504
2010-08-30 19:57:13 +00:00
Tom Care 9026d4b488 Adjusted the semantics of assign checking in IdempotentOperationChecker
- Fixed a regression where assigning '0' would be reported
- Changed the way self assignments are filtered to allow constant testing
- Added a test case for assign ops
- Fixed one test case where a function pointer was not considered constant
- Fixed test cases relating to 0 assignment

llvm-svn: 112501
2010-08-30 19:25:43 +00:00
Alexis Hunt 3b7918625c Revert my user-defined literal commits - r1124{58,60,67} pending
some issues being sorted out.

llvm-svn: 112493
2010-08-30 17:47:05 +00:00
Chris Lattner 5f183aa592 add a fixme.
llvm-svn: 112491
2010-08-30 17:11:14 +00:00
Chris Lattner 7a9e9e7d76 use 'features' instead of 'PP->getLangOptions'.
llvm-svn: 112490
2010-08-30 17:09:08 +00:00
Douglas Gregor 561eceb4c4 Heap-allocate the attribute vectors in
ASTContext::DeclAttrs. Otherwise, iterators will go stale when the
DenseMap reallocates, which can cause crashes when, e.g., looping over
the attributes in a template to instantiate them and add the results
to the instantiation of that template.

llvm-svn: 112488
2010-08-30 16:49:28 +00:00
Douglas Gregor 1262b0636e Fix an corner-case assertion introduced by the refactoring in r112258;
when we're taking the address of a unresolvable value, it might be an
implicit member access. Fixes some Boost.Spirit regressions.

llvm-svn: 112487
2010-08-30 16:00:47 +00:00
Douglas Gregor 3cc2648b47 Now that GCC will have #pragma push/pop (in GCC 4.6), allow the
#pragma without requiring it to be in the "clang" namespace, from
Louis Gerbarg!

llvm-svn: 112484
2010-08-30 15:15:34 +00:00
Douglas Gregor f62c5294c1 Emulate (some of) Microsoft's looser semantic checking of exception
specifications, from Martin Vejnar!

llvm-svn: 112482
2010-08-30 15:04:51 +00:00
Douglas Gregor 759ef23bb8 In Microsoft compatibility mode, don't parse the exponent as part of
the pp-number in a hexadecimal floating point literal, from Francois
Pichet! Fixes PR7968.

llvm-svn: 112481
2010-08-30 14:50:47 +00:00
Douglas Gregor 2b1bbecb6b Predeclare class type_info in Microsoft mode, from Francois Pichet!
llvm-svn: 112478
2010-08-30 14:44:26 +00:00
Douglas Gregor cfcb942267 Add test case from PR6952, which now works (thanks to Gabor).
llvm-svn: 112477
2010-08-30 14:37:53 +00:00
Douglas Gregor 2c7d9290ee Add redeclaration checking for static data members and fix a corner
case with redeclaration checking for fields, from Faisal Vali!
Fixes PR7970.

llvm-svn: 112476
2010-08-30 14:32:14 +00:00
Douglas Gregor 5209a0d850 Fix CMake dependencies
llvm-svn: 112475
2010-08-30 14:31:03 +00:00
Duncan Sands f610b5b622 Straighten out target triples provided on the command line
before using them.

llvm-svn: 112468
2010-08-30 09:42:39 +00:00
Alexis Hunt e3675ef0f3 Two minor fixes to user-defined literals:
- Zero-initialize UDLData so that crashes stop
 - Stop complaining that we can't emit them (we most certainly can)

llvm-svn: 112467
2010-08-30 09:27:16 +00:00
Chandler Carruth 9ed87ba797 Add some braces for sanity and GCC silence. These became unbalanced in r112122,
so please review echristo and let me know if the logic is wrong now.

llvm-svn: 112466
2010-08-30 07:36:24 +00:00
Alexis Hunt 8591e9e06f Fix some test-breaking that snuck into my previous commit
llvm-svn: 112460
2010-08-29 22:39:32 +00:00
Alexis Hunt 79eb5469e0 Implement C++0x user-defined string literals.
The extra data stored on user-defined literal Tokens is stored in extra
allocated memory, which is managed by the PreprocessorLexer because there isn't
a better place to put it that makes sure it gets deallocated, but only after
it's used up. My testing has shown no significant slowdown as a result, but
independent testing would be appreciated.

llvm-svn: 112458
2010-08-29 21:26:48 +00:00
Douglas Gregor 981a0c4613 When providing a code completion for an Objective-C message send, drop
the parameter names from the completions, e.g., provide

  withString:(NSString *)

instead of

  withString:(NSString *)string

since the parameter name is, by convention, redundant with the
selector piece that precedes it and the completions can get
unnecessarily long.

llvm-svn: 112456
2010-08-29 19:47:46 +00:00
Douglas Gregor 99129efdd3 Improve code completion for initializer lists in constructors. Instead
of prioritizing just by initialization order, we bump the priority of
just the *next* initializer in the list, and leave everything else at
the normal priority. That way, if one intentionally skips the
initialization of a base or member (to get default initialization),
we'll still get ordered completion for the rest.

llvm-svn: 112454
2010-08-29 19:27:27 +00:00
Douglas Gregor fdce48b0ca Add missing test case for constructor-initializer code completions
llvm-svn: 112453
2010-08-29 19:20:21 +00:00
Fariborz Jahanian 161848a030 ObjClang++: Allow declaration of block variable in a collection
statement header (fixes radar 8295106).

llvm-svn: 112443
2010-08-29 17:20:53 +00:00
Zhongxing Xu b0a6de9e8f Add comments.
llvm-svn: 112414
2010-08-29 05:16:31 +00:00
Bob Wilson 0e7a398936 Translate NEON vaddl, vaddw, vsubl, and vsubw builtins to llvm add/sub
with zext/sext operations, instead of to llvm intrinsics.  (We can also
get rid of the clang builtins and handle these entirely in the arm_neon.h
header if there is a way to express vector sext/zext in C.)

llvm-svn: 112413
2010-08-29 05:14:28 +00:00
John McCall 49039d4afb Complain if a __pragma isn't terminated.
llvm-svn: 112392
2010-08-29 01:09:54 +00:00
John McCall 89e925d78e Add support for Microsoft's __pragma in the preprocessor.
Patch by Francois Pichet!

llvm-svn: 112391
2010-08-28 22:34:47 +00:00
John McCall 0856906b1e When perform exact-qualifier-match template argument deduction,
properly account for the possibility that certain opaque types
might be more qualified than they appear.  Fixes PR7708.

llvm-svn: 112390
2010-08-28 22:14:41 +00:00
John McCall fb3f9ba969 If filtering a lookup result leaves it ambiguous, keep the ambiguity
kind.  Fixes PR7252.

llvm-svn: 112383
2010-08-28 20:17:00 +00:00
Ted Kremenek 52ac860d9c Delete the relaxedLiveness object in the dtor of AnalysisContext.
llvm-svn: 112380
2010-08-28 18:59:04 +00:00
Chris Lattner 0e7c68da96 improve comment, patch by Vladimir Kirillov!
llvm-svn: 112374
2010-08-28 16:26:18 +00:00
Gabor Greif ae849e4407 simplify by relying on cascading operator->
llvm-svn: 112373
2010-08-28 15:46:56 +00:00
Gabor Greif 122f1eb2b8 simplify
llvm-svn: 112372
2010-08-28 15:42:30 +00:00
Nick Lewycky 4a9da315d3 Fix copy+paste error in comment.
llvm-svn: 112370
2010-08-28 13:52:51 +00:00
Gabor Greif b0c557be1e add another test for PR8007
this is still failing, need to come up with a fix
(but we are in good company as the first gcc version
 pass this test will be v4.6)

llvm-svn: 112369
2010-08-28 12:12:45 +00:00
Gabor Greif 156315b7d8 the target of the link uses the singular form, so do we too
llvm-svn: 112367
2010-08-28 11:05:27 +00:00
Gabor Greif e27ea5c92e typo
llvm-svn: 112366
2010-08-28 11:03:06 +00:00
Gabor Greif e6523ea915 suppress annoying textual repetition as 'aka'
llvm-svn: 112365
2010-08-28 10:40:52 +00:00
Argyrios Kyrtzidis 43b205796f Fix the memory leak of FloatingLiteral/IntegerLiteral.
For large floats/integers, APFloat/APInt will allocate memory from the heap to represent these numbers.
Unfortunately, when we use a BumpPtrAllocator to allocate IntegerLiteral/FloatingLiteral nodes the memory associated with
the APFloat/APInt values will never get freed.
I introduce the class 'APNumericStorage' which uses ASTContext's allocator for memory allocation and is used internally by FloatingLiteral/IntegerLiteral.

Fixes rdar://7637185

llvm-svn: 112361
2010-08-28 09:06:06 +00:00
John McCall 1177ff1740 That's not the right direction to compute notional accessibility in at all.
llvm-svn: 112360
2010-08-28 08:47:21 +00:00
John McCall c6af8f4689 Fix build. Bad me, adding last-minute assertions.
llvm-svn: 112359
2010-08-28 08:10:32 +00:00
John McCall 96329678e4 When checking access control for an instance member access on
an object of type I, if the current access target is protected
when named in a class N, consider the friends of the classes P
where I <= P <= N and where a notional member of N would be
non-forbidden in P.

llvm-svn: 112358
2010-08-28 07:56:00 +00:00
Gabor Greif 468aa3b20c check whether sema issues a redefinition error
llvm-svn: 112347
2010-08-28 02:00:22 +00:00
Gabor Greif 34ecff269e perform cheap test first
llvm-svn: 112346
2010-08-28 01:58:12 +00:00
Nick Lewycky 02d13d1356 Ignore this flag too, Clang doesn't seem to use random numbers internally.
llvm-svn: 112342
2010-08-28 01:01:21 +00:00
Gabor Greif 73ddbc51ab note to self: save before committing; add PR
llvm-svn: 112339
2010-08-28 00:48:36 +00:00