- Jun 16, 2009
-
-
Chris Lattner authored
registered when PCH wasn't being used. We should always install (in BuiltinInfo) information about target-specific builtins, but we shouldn't register any builtin identifier infos. This fixes the build of apps that use PCH and target specific builtins together. llvm-svn: 73492
-
Zhongxing Xu authored
be unique. llvm-svn: 73482
-
Zhongxing Xu authored
llvm-svn: 73474
-
Anders Carlsson authored
llvm-svn: 73462
-
Anders Carlsson authored
llvm-svn: 73452
-
Steve Naroff authored
llvm-svn: 73450
-
- Jun 15, 2009
-
-
rdar://problem/6945561Ted Kremenek authored
Fix: <rdar://problem/6945561> -[CIContext createCGLayerWithSize:info:] misinterpreted by clang scan-build llvm-svn: 73415
-
-
Eli Friedman authored
C++-specific tokens. llvm-svn: 73408
-
Douglas Gregor authored
llvm-svn: 73402
-
Anders Carlsson authored
llvm-svn: 73395
-
Anders Carlsson authored
llvm-svn: 73391
-
Douglas Gregor authored
its (possibly-remapped) diagnostics. Thanks, Chris! llvm-svn: 73390
-
Eli Friedman authored
unnecessary, this was causing issues for assembler-with-cpp mode, which doesn't process the directive. llvm-svn: 73382
-
Chris Lattner authored
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 llvm-svn: 73378
-
Chris Lattner authored
the file at the point of the pragma. This allows clang to know that all sourcelocations after the pragma are in a system header. llvm-svn: 73376
-
Chris Lattner authored
like: fatal error: could not find file '1.h' referenced by PCH file instead of aborting with an assertion failure, PR4219 llvm-svn: 73371
-
Chris Lattner authored
llvm-svn: 73370
-
Chris Lattner authored
llvm-svn: 73367
-
Chris Lattner authored
can occur in the middle of comment tokens. llvm-svn: 73365
-
Chris Lattner authored
"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! llvm-svn: 73364
-
Eli Friedman authored
like "int x = + +3;". llvm-svn: 73356
-
- Jun 14, 2009
-
-
Eli Friedman authored
static intializers for structs. llvm-svn: 73349
-
Douglas Gregor authored
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. llvm-svn: 73336
-
Douglas Gregor authored
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. llvm-svn: 73332
-
Eli Friedman authored
foo has a constant address. llvm-svn: 73321
-
Chris Lattner authored
preprocessor and initialize it early in clang-cc. This ensures that __has_builtin works in all modes, not just when ASTContext is around. llvm-svn: 73319
-
Chris Lattner authored
fixes a layering violation in lib/Basic/Targets.cpp. llvm-svn: 73318
-
Chris Lattner authored
llvm-svn: 73317
-
Chris Lattner authored
llvm-svn: 73316
-
Chris Lattner authored
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 ^ ; llvm-svn: 73315
-
Chris Lattner authored
diagnostics in some cases. llvm-svn: 73314
-
Chris Lattner authored
the check for extern "c" system headers, which should prevent functiondecls from being mangled. llvm-svn: 73311
-
- Jun 13, 2009
-
-
Eli Friedman authored
x86-32. This is slightly messy, but I think it's consistent with gcc. llvm-svn: 73306
-
Anders Carlsson authored
Have CheckClassTemplatePartialSpecializationArgs take a TemplateArgumentListBuilder. No functionality change. llvm-svn: 73297
-
Eli Friedman authored
of the elements. Issue reported on cfe-dev by Mattias Holm. llvm-svn: 73292
-
Chris Lattner authored
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). llvm-svn: 73289
-
Eli Friedman authored
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. llvm-svn: 73285
-
Anders Carlsson authored
If a CXXRecordDecl is a class template, the 'this' type should be the injected class name type. Fixes pr4383. llvm-svn: 73284
-
Anders Carlsson authored
llvm-svn: 73281
-