- May 06, 2010
-
-
Chris Lattner authored
in the near future. llvm-svn: 103169
-
Chris Lattner authored
llvm-svn: 103168
-
Chris Lattner authored
float -> double (which happens because they are modelled as int(...) functions), and add a testcase for isinf. llvm-svn: 103167
-
Chris Lattner authored
this is generating correct but suboptimal (extra extend to double) code for the float case. Will investigate next. llvm-svn: 103166
-
Chandler Carruth authored
llvm-svn: 103165
-
Chandler Carruth authored
building and passing arguments to cc1 layer when setting values to their defaults. llvm-svn: 103162
-
Zhongxing Xu authored
after inlining post-call checking shouldn't be done. llvm-svn: 103161
-
Zhongxing Xu authored
flag now, and can be used with other analyses. Only turned it on for C++ methods for now. llvm-svn: 103160
-
Douglas Gregor authored
different tag kind ("struct" vs. "class") than the primary template, which has an affect on access control. Should fix the last remaining Boost.Accumulors failure. llvm-svn: 103144
-
Ted Kremenek authored
method will sometimes return different results for the same input SourceLocations. I haven't unraveled this method completely yet, so this truly is a workaround until a better fix comes along. llvm-svn: 103143
-
Chandler Carruth authored
picking a more consistent pattern. llvm-svn: 103142
-
Chandler Carruth authored
llvm-svn: 103141
-
John McCall authored
except it only skips implicit casts. Also fix ObjCImplicitGetterSetterRefExpr's child_begin to skip the base expression if it's actually a type reference (which you get with static property references). llvm-svn: 103132
-
Chris Lattner authored
function attributes like byval get applied to the function definition. This fixes PR7058 and makes i386 llvm/clang bootstrap pass all the same tests as x86-64 bootstrap for me (the llvmc tests still fail in both). llvm-svn: 103131
-
Douglas Gregor authored
provide a note that shows where the copy-assignment operator was needed. We used to have this, but I broke it during refactoring. Finishes PR6999. llvm-svn: 103127
-
- May 05, 2010
-
-
Fariborz Jahanian authored
of properties which are of C++ objects. Code Gen to follow (Radar 7468090). llvm-svn: 103123
-
Douglas Gregor authored
reference type, make sure that the initializer we build is the of the appropriate type for the *reference*, not for the thing that it refers to. Fixes PR7050. llvm-svn: 103115
-
mike-m authored
llvm-svn: 103090
-
Douglas Gregor authored
destructors, place the __cxa_atexit call after the __cxa_guard_release call, mimicking GCC/LLVM-GCC behavior. Noticed while debugging something related. llvm-svn: 103088
-
Alexis Hunt authored
with no whitespace. This will allow statements to be referred to in attribute TableGen files. llvm-svn: 103087
-
Alexis Hunt authored
whitespace which makes this patch unreadable. Will recommit without the whitespace. llvm-svn: 103086
-
Douglas Gregor authored
ParseOptionalCXXScopeSpecifier() only annotates the subset of template-ids which are not subject to lexical ambiguity. Add support for the more general case in ParseUnqualifiedId() to handle cases such as A::template B(). Also improve some diagnostic locations. Fixes PR7030, from Alp Toker! llvm-svn: 103081
-
Chris Lattner authored
print out all of the category numbers with their description. This is useful for clients that want to map the numbers produced by --fdiagnostics-show-category=id to their human readable string form. The output is simple but utilitarian: $ clang --print-diagnostic-categories 1,Format String 2,Something Else This implements rdar://7928193 llvm-svn: 103080
-
Douglas Gregor authored
implicitly-generated copy constructor. Previously, Sema would perform some checking and instantiation to determine which copy constructors, etc., would be called, then CodeGen would attempt to figure out which copy constructor to call... but would get it wrong, or poke at an uninstantiated default argument, or fail in other ways. The new scheme is similar to what we now do for the implicit copy-assignment operator, where Sema performs all of the semantic analysis and builds specific ASTs that look similar to the ASTs we'd get from explicitly writing the copy constructor, so that CodeGen need only do a direct translation. However, it's not quite that simple because one cannot explicit write elementwise copy-construction of an array. So, I've extended CXXBaseOrMemberInitializer to contain a list of indexing variables used to copy-construct the elements. For example, if we have: struct A { A(const A&); }; struct B { A array[2][3]; }; then we generate an implicit copy assignment operator for B that looks something like this: B::B(const B &other) : array[i0][i1](other.array[i0][i1]) { } CodeGen will loop over the invented variables i0 and i1 to visit all elements in the array, so that each element in the destination array will be copy-constructed from the corresponding element in the source array. Of course, if we're dealing with arrays of scalars or class types with trivial copy-assignment operators, we just generate a memcpy rather than a loop. Fixes PR6928, PR5989, and PR6887. Boost.Regex now compiles and passes all of its regression tests. Conspicuously missing from this patch is handling for the exceptional case, where we need to destruct those objects that we have constructed. I'll address that case separately. llvm-svn: 103079
-
Anders Carlsson authored
llvm-svn: 103078
-
Douglas Gregor authored
llvm-svn: 103077
-
Chris Lattner authored
llvm-svn: 103075
-
Alexis Hunt authored
llvm-svn: 103074
-
Alexis Hunt authored
llvm-svn: 103072
-
Chris Lattner authored
llvm-svn: 103067
-
Ted Kremenek authored
clang_getCursor(). Tokens are now annotated with the cursor (for the matching AST element) that most closely encompasses that token. llvm-svn: 103064
-
Ted Kremenek authored
llvm-svn: 103063
-
Ted Kremenek authored
llvm-svn: 103062
-
Ted Kremenek authored
Refactor visitor logic for clang_annotateTokens() into a worker class. No functionality change yet. llvm-svn: 103061
-
- May 04, 2010
-
-
Chris Lattner authored
over choice of: t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,Format String] dox to come. llvm-svn: 103056
-
Chris Lattner authored
print the diagnostic category number in the [] at the end of the line. For example: $ cat t.c #include <stdio.h> void foo() { printf("%s", 4); } $ clang t.c -fsyntax-only -fdiagnostics-print-source-range-info t.c:3:11:{3:10-3:12}{3:15-3:16}: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1] printf("%s", 4); ~^ ~ 1 warning generated. Clients that want category information can now pick the number out of the output, rdar://7928231. More coming. llvm-svn: 103053
-
John McCall authored
they're unreachable. This matters because (if they're POD, or if this is C) the scope containing the variable might be reachable even if the variable isn't. Fixes PR7044. llvm-svn: 103052
-
Chris Lattner authored
and diagnostic groups. This allows the compiler to group diagnostics together (e.g. "Logic Warning", "Format String Warning", etc) like the static analyzer does. This is not exposed through anything in the compiler yet. llvm-svn: 103051
-
Fariborz Jahanian authored
llvm-svn: 103028
-
Douglas Gregor authored
typedef int functype(int, int); functype func; also instantiate the synthesized function parameters for the resulting function declaration. With this change, Boost.Wave builds and passes all of its regression tests. llvm-svn: 103025
-