]>
granicus.if.org Git - clang/log
Steve Naroff [Tue, 16 Jun 2009 00:20:10 +0000 (00:20 +0000)]
Add a comment to Sema::ActOnTranslationUnitScope().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73450
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 23:45:43 +0000 (23:45 +0000)]
accept and ignore -Wdiv-by-zero
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73446
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 15 Jun 2009 20:58:58 +0000 (20:58 +0000)]
Fix: <rdar://problem/
6945561 > -[CIContext createCGLayerWithSize:info:] misinterpreted by clang scan-build
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73415
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 15 Jun 2009 20:36:07 +0000 (20:36 +0000)]
Fix: <rdar://problem/
6961230 > add knowledge of IOKit functions to retain/release checker
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73411
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 15 Jun 2009 19:53:21 +0000 (19:53 +0000)]
Tweak the C++ open projects page
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73409
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 15 Jun 2009 19:48:50 +0000 (19:48 +0000)]
PR4395: Don't detect token concatenation in C mode for
C++-specific tokens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73408
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 15 Jun 2009 19:08:31 +0000 (19:08 +0000)]
Include <limits>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73403
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 15 Jun 2009 19:02:54 +0000 (19:02 +0000)]
More XML output support, from Olaf Krzikalla!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73402
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 15 Jun 2009 17:56:45 +0000 (17:56 +0000)]
More parameter pack work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73395
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 15 Jun 2009 17:23:35 +0000 (17:23 +0000)]
Revert r73341.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73393
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 15 Jun 2009 17:18:42 +0000 (17:18 +0000)]
More [basic.lookup.unqual] tests.
- p13 and p14 are important failures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73392
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 15 Jun 2009 17:04:53 +0000 (17:04 +0000)]
Add a new 'Pack' argument kind to TemplateArgument. This is not yet used.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73391
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 15 Jun 2009 16:52:15 +0000 (16:52 +0000)]
Base SFINAE error suppression counting on the class of an error, not
its (possibly-remapped) diagnostics. Thanks, Chris!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73390
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 15 Jun 2009 16:50:45 +0000 (16:50 +0000)]
Note that we've implemented the right angle brackets extension in C++0x
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73389
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 15 Jun 2009 15:56:08 +0000 (15:56 +0000)]
Test for [basic.lookup.unqual]p3
- Failing, at least in part, because lookup in parser is finding a friend
function where it shouldn't.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73388
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 15 Jun 2009 13:22:32 +0000 (13:22 +0000)]
'not magic' => 'is not magic'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73386
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 15 Jun 2009 09:57:52 +0000 (09:57 +0000)]
PR4388: get rid of an extra # line directive; in addition to being
unnecessary, this was causing issues for assembler-with-cpp mode, which
doesn't process the directive.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73382
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 05:18:27 +0000 (05:18 +0000)]
Minor tweak to -fdiagnostics-print-source-range-info to make it print
ranges more similar to the console output. Consider:
#define FOO(X, Y) X/ Y
void foo(int *P, int *Q) {
FOO(P, Q);
}
Before we emitted:
t.c:4:3:{4:3-4:6}{4:3-4:6}: error: invalid operands to binary expression ('int *' and 'int *')
FOO(P, Q);
^~~~~~~~~
...
Note that while we underline the macro args that the range info just includes FOO
without its macros. This change teaches the printed ranges to include macro args
also so that we get:
t.c:4:3:{4:3-4:12}{4:3-4:12}: error: invalid operands to binary expression ('int *' and 'int *')
FOO(P, Q);
^~~~~~~~~
...
This fixes rdar://
6939599
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73378
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 05:02:34 +0000 (05:02 +0000)]
Fix #pragma GCC system_header by making it insert a virtual linemarker into
the file at the point of the pragma. This allows clang to know that all
sourcelocations after the pragma are in a system header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73376
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 05:00:02 +0000 (05:00 +0000)]
rename test
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73375
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 04:59:21 +0000 (04:59 +0000)]
convert this test to -verify mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73374
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 04:35:16 +0000 (04:35 +0000)]
If PCH refers to a file that doesn't exist anymore, emit a nice error
like:
fatal error: could not find file '1.h' referenced by PCH file
instead of aborting with an assertion failure, PR4219
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73371
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 04:25:18 +0000 (04:25 +0000)]
use the new Path::isAbsolute function, fixing a fixme. Patch by Gregory Curfman!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73370
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 04:08:28 +0000 (04:08 +0000)]
no really, add the lines :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73367
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 01:25:23 +0000 (01:25 +0000)]
Fix PR2741 by making our newline tracking be aware of newlines that
can occur in the middle of comment tokens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73365
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jun 2009 01:09:11 +0000 (01:09 +0000)]
"GCC emits an __objc_class_name_{classname} symbol for every class, and a corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly."
Patch by David Chisnall!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73364
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 14 Jun 2009 22:39:26 +0000 (22:39 +0000)]
PR4391: Tweak -ast-print output to generate valid output for edge cases
like "int x = + +3;".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73356
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 14 Jun 2009 21:41:37 +0000 (21:41 +0000)]
PR4390: Make sure to handle anonymous unions correctly while building
static intializers for structs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73349
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sun, 14 Jun 2009 16:45:35 +0000 (16:45 +0000)]
Test modification.
Patch by Jean-Daniel Dupas
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73343
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Sun, 14 Jun 2009 09:40:09 +0000 (09:40 +0000)]
fix the menu's links
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73341
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 14 Jun 2009 08:02:22 +0000 (08:02 +0000)]
Introduce a SFINAE "trap" that keeps track of the number of errors
that were suppressed due to SFINAE. By checking whether any errors
occur at the end of template argument deduction, we avoid the
possibility of suppressing an error (due to SFINAE) and then
recovering so well that template argument deduction never detects that
there was a problem. Thanks to Eli for the push in this direction.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73336
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 14 Jun 2009 07:33:30 +0000 (07:33 +0000)]
Update LLVM.
Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:
- If we are in a template argument deduction context, any diagnostic
that is considered a SFINAE error (or warning) will be
suppressed. The error will be propagated up the call stack via the
normal means.
- By default, all warnings and errors are SFINAE errors. Add the
NoSFINAE class to a diagnostic in the .td file to make it a hard
error (e.g., for access-control violations).
Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73332
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 14 Jun 2009 04:08:08 +0000 (04:08 +0000)]
Fix "for all intensive purposes" to "for all intents and purposes".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73323
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 14 Jun 2009 02:17:33 +0000 (02:17 +0000)]
PR4351: Add constant evaluation for constructs like "foo == NULL", where
foo has a constant address.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jun 2009 01:54:56 +0000 (01:54 +0000)]
Sink the BuiltinInfo object from ASTContext into the
preprocessor and initialize it early in clang-cc. This
ensures that __has_builtin works in all modes, not just
when ASTContext is around.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73319
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jun 2009 01:05:48 +0000 (01:05 +0000)]
move the various builtins stuff from libast to libbasic. This
fixes a layering violation in lib/Basic/Targets.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73318
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jun 2009 00:52:07 +0000 (00:52 +0000)]
prune #includes, Builtins.h/cpp no longer depends on libast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73317
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jun 2009 00:45:47 +0000 (00:45 +0000)]
move GetBuiltinType from Builtin::Context to ASTContext.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73316
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jun 2009 00:23:56 +0000 (00:23 +0000)]
change ParseStatementOrDeclaration to emit the 'missing ;' with
ExpectAndConsume instead of custom diag logic. This gets us an
insertion hint and positions the ; at the end of the line
instead of on the next token. Before:
t.c:5:1: error: expected ';' after return statement
}
^
after:
t.c:4:11: error: expected ';' after return statement
return 4
^
;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73315
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jun 2009 00:07:48 +0000 (00:07 +0000)]
improve localizability by not passing english phrases into
diagnostics in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73314
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 23:34:16 +0000 (23:34 +0000)]
Simplify mangleFunctionDecl by unnesting a crazy condition. This fixes
the check for extern "c" system headers, which should prevent functiondecls
from being mangled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73311
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 23:31:51 +0000 (23:31 +0000)]
add a handy predicate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73310
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 13 Jun 2009 21:37:10 +0000 (21:37 +0000)]
Fix the calling convention for structs/unions containing SSE vectors on
x86-32. This is slightly messy, but I think it's consistent with gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73306
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 20:51:38 +0000 (20:51 +0000)]
declare an 'operator delete' to match operator new, this avoids many many
warnings when building with VC++, patch by AlisdairM!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73305
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 20:35:58 +0000 (20:35 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73304
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 13 Jun 2009 20:02:26 +0000 (20:02 +0000)]
Don't include system headers when overriding triple.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 13 Jun 2009 19:40:25 +0000 (19:40 +0000)]
Force Obj-C runtime version for this test
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73300
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 13 Jun 2009 18:28:48 +0000 (18:28 +0000)]
Switch to the new test runner.
- TestRunner.sh still needs to be moved over.
- Please let me know if you find problems / missing features.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73298
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 13 Jun 2009 18:20:51 +0000 (18:20 +0000)]
Have CheckClassTemplatePartialSpecializationArgs take a TemplateArgumentListBuilder. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73297
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 18:11:10 +0000 (18:11 +0000)]
a couple minor tweaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73296
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 13 Jun 2009 10:38:46 +0000 (10:38 +0000)]
Allow initializing a vector with a vector in addition to allowing a list
of the elements. Issue reported on cfe-dev by Mattias Holm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73292
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 07:13:28 +0000 (07:13 +0000)]
implement and document a new __has_feature and __has_builtin magic
builtin preprocessor macro. This appears to work with two caveats:
1) builtins are registered in -E mode, and 2) target-specific builtins
are unconditionally registered even if they aren't supported by the
target (e.g. SSE4 builtin when only SSE1 is enabled).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73289
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 13 Jun 2009 06:59:07 +0000 (06:59 +0000)]
Move a bunch of tests into temp.param, and write a few tests for paragraphs that hadn't been touched before
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73288
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 13 Jun 2009 06:16:36 +0000 (06:16 +0000)]
Add some random C++ standard tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73287
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 13 Jun 2009 06:06:53 +0000 (06:06 +0000)]
Add the structure for a C++ test suite that mimics the structure of the C++ standard
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73286
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 13 Jun 2009 04:51:30 +0000 (04:51 +0000)]
Fix for PR4382: allow instantiating dependent nested name specifiers.
I'm not completely sure this is the right way to fix this issue, but it seems
reasonable, and it's consistent with the non-template code for this
construct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73285
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 13 Jun 2009 02:59:33 +0000 (02:59 +0000)]
If a CXXRecordDecl is a class template, the 'this' type should be the injected class name type. Fixes pr4383.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73284
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 13 Jun 2009 02:08:00 +0000 (02:08 +0000)]
More work on type parameter packs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73281
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 13 Jun 2009 01:31:11 +0000 (01:31 +0000)]
Stop tracking non-compound value for struct. It may be caused by imprecise cast
logic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73279
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 13 Jun 2009 00:59:32 +0000 (00:59 +0000)]
Remove a bunch of unnecessary template argument deduction code that was
obviously written by someone who didn't read C++ [temp.class.spec].
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73276
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 13 Jun 2009 00:33:33 +0000 (00:33 +0000)]
Move template type argument checking out into a separate function. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73275
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 13 Jun 2009 00:26:55 +0000 (00:26 +0000)]
When some template parameters of a class template partial
specialization cannot be deduced, produce a warning noting that the
affected class template partial specialization will never be used.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73274
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 13 Jun 2009 00:26:38 +0000 (00:26 +0000)]
Fix PR4372, another case where non-prototyped functions can prevent
always_inline from working.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73273
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 13 Jun 2009 00:08:58 +0000 (00:08 +0000)]
Improvements to TemplateArgumentListBuilder to make it work better with parameter packs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73272
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 23:20:15 +0000 (23:20 +0000)]
A parameter pack must always come last in a class template.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73269
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 23:13:22 +0000 (23:13 +0000)]
No need to mark the parameter as invalid, just ignore the default argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73268
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 23:09:56 +0000 (23:09 +0000)]
Address more comments from Doug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73267
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 12 Jun 2009 23:04:47 +0000 (23:04 +0000)]
add the location of the ')' in a do/while statement to DoStmt.
This fixes a source range problem reported by Olaf Krzikalla.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73266
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 22:56:54 +0000 (22:56 +0000)]
Address comments from Doug - Add a Sema::SemaRef.BuildBlockPointerType and use it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73264
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 22:31:52 +0000 (22:31 +0000)]
It looks like we've finished off matching of class template partial specializations; add comments and update the C++ status page
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73263
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 22:30:13 +0000 (22:30 +0000)]
Parameter packs can't have default arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73262
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 22:23:22 +0000 (22:23 +0000)]
Keep track of whether a type parameter is actually a type parameter pack.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73261
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 22:21:45 +0000 (22:21 +0000)]
Finish implementing checking of class template partial specializations
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 22:08:06 +0000 (22:08 +0000)]
Diagnose C++ [temp.class.spec]p9b3, where a class template partial
specialization's arguments are identical to the implicit template
arguments of the primary template. Typically, this is meant to be a
declaration/definition of the primary template, so we give that
advice.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73259
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 21:21:02 +0000 (21:21 +0000)]
Diagnose the incorrect use of non-type template arguments for class
template partial specializations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73254
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 12 Jun 2009 20:11:05 +0000 (20:11 +0000)]
Minor formatting tweak.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73251
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 12 Jun 2009 20:08:48 +0000 (20:08 +0000)]
Fix a minor formatting mistake.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73250
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 12 Jun 2009 20:04:25 +0000 (20:04 +0000)]
Some updates to the gcc extension sections of the users manual.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73249
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 19:58:00 +0000 (19:58 +0000)]
Parse support for C++0x type parameter packs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73247
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 19:43:02 +0000 (19:43 +0000)]
Verify that the template parameters of a class template partial
specialization do not have default arguments
(C++ [temp.class.spec]p10).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73245
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 19:15:38 +0000 (19:15 +0000)]
Update the C++ status to reflect improvements in template argument deduction and the handling of class template partial specializations
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73242
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 18:53:02 +0000 (18:53 +0000)]
Fix PR4365.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73240
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Jun 2009 18:26:56 +0000 (18:26 +0000)]
Improve template argument deduction to keep track of why template
argument deduction failed. For example, given
template<typename T> struct is_same<T, T> { ... };
template argument deduction will fail for is_same<int, float>, and now
reports enough information
Right now, we don't do anything with this extra information, but it
can be used for informative diagnostics that say, e.g., "template
argument deduction failed because T was deduced to 'int' in one
context and 'float' in another".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 16:51:40 +0000 (16:51 +0000)]
It's an error to use a function declared in a class definition as a default argument before the function has been declared.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73234
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 12 Jun 2009 16:23:10 +0000 (16:23 +0000)]
Deducation and instantiation of block types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73232
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 12 Jun 2009 03:59:12 +0000 (03:59 +0000)]
use getAsPointerType() method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73218
91177308 -0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Fri, 12 Jun 2009 02:54:12 +0000 (02:54 +0000)]
CMake: New variable LLVM_LIBDIR_SUFFIX.
Patch by Ingmar Vanhassel!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73217
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 11 Jun 2009 21:22:55 +0000 (21:22 +0000)]
Don't assert when generating code with static_asserts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73208
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 11 Jun 2009 20:33:41 +0000 (20:33 +0000)]
PR4371: Reduce the inlining threshold outside of -O3. This makes
the clang inlining threshold consistent with the threshold for llvm-gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 11 Jun 2009 18:50:02 +0000 (18:50 +0000)]
Following gcc, hide the hack to include the SSE2 intrinsics from
xmmintrin.h in an ifdef.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73200
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 11 Jun 2009 18:17:24 +0000 (18:17 +0000)]
Add summary lookup for IOServiceGetMatchingService.
Convert tabs to spaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73198
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 11 Jun 2009 18:10:48 +0000 (18:10 +0000)]
Refactor some function name -> summary lookup using a switch statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73197
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 11 Jun 2009 18:10:32 +0000 (18:10 +0000)]
Once we have deduced the template arguments of a class template
partial specialization, substitute those template arguments back into
the template arguments of the class template partial specialization to
see if the results still match the original template arguments.
This code is more general than it needs to be, since we don't yet
diagnose C++ [temp.class.spec]p9. However, it's likely to be needed
for function templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73196
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 11 Jun 2009 16:06:49 +0000 (16:06 +0000)]
Add a null check that fixes the crash in PR4362, and make sure to instantiate non-type template arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73193
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 11 Jun 2009 14:59:18 +0000 (14:59 +0000)]
Point to the clang driver, not the ccc driver
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73192
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 11 Jun 2009 14:55:39 +0000 (14:55 +0000)]
Add pseudo-destructors to the Open Projects list
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73191
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 11 Jun 2009 14:53:37 +0000 (14:53 +0000)]
Prune some projects that have already been started
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73190
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 11 Jun 2009 09:11:27 +0000 (09:11 +0000)]
Bind the mistakenly generated nonloc::SymbolVal to struct correctly. See the
comments for added test case for details.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73189
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Thu, 11 Jun 2009 07:27:30 +0000 (07:27 +0000)]
Use more robust getAsRecordType() method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73186
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 11 Jun 2009 01:11:20 +0000 (01:11 +0000)]
Make sure to calculate value-dependence correctly when deal with ICEs.
(Actually, this isn't precisely correct, but it doesn't make
sense to query whether an expression that isn't an ICE is
value-dependent anyway.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73179
91177308 -0d34-0410-b5e6-
96231b3b80d8