- Feb 13, 2009
-
-
Mike Stump authored
llvm-svn: 64486
-
Mike Stump authored
llvm-svn: 64482
-
Mike Stump authored
llvm-svn: 64481
-
rdar://6562329Chris Lattner authored
wine sources. This was happening because HighlightMacros was calling EnterMainFile multiple times on the same preprocessor object and getting an assert due to the new #line stuff (the file in question was bison output with #line directives). The fix for this is to not reenter the file. Instead, relex the tokens in raw mode, swizzle them a bit and repreprocess the token stream. An added bonus of this is that rewrite macros will now hilight the macro definition as well as its uses. Woo. llvm-svn: 64480
-
Mike Stump authored
llvm-svn: 64479
-
Daniel Dunbar authored
llvm-svn: 64478
-
Ted Kremenek authored
Add some boilerplate to the PTH file to prepare for the caching of stats for directories (and negative stats too). llvm-svn: 64477
-
Douglas Gregor authored
llvm-svn: 64476
-
Mike Stump authored
llvm-svn: 64475
-
Douglas Gregor authored
by DeclContexts (always) rather than by statements. DeclContext currently goes out of its way to avoid destroying any Decls that might be owned by a DeclGroupOwningRef. However, in an error-recovery situation, a failure in a declaration statement can cause all of the decls in a DeclGroupOwningRef to be destroyed after they've already be added into the DeclContext. Hence, DeclContext is left with already-destroyed declarations, and bad things happen. This problem was causing failures that showed up as assertions on x86 Linux in test/Parser/objc-forcollection-neg-2.m. llvm-svn: 64474
-
Mike Stump authored
llvm-svn: 64473
-
Fariborz Jahanian authored
implementation with no category declaration! llvm-svn: 64470
-
Daniel Dunbar authored
- Now at 1274 passes on gcc compat suite vs 1262. llvm-svn: 64469
-
Mike Stump authored
llvm-svn: 64461
-
Mike Stump authored
llvm-svn: 64459
-
Mike Stump authored
llvm-svn: 64458
-
Mike Stump authored
llvm-svn: 64457
-
Mike Stump authored
llvm-svn: 64456
-
Mike Stump authored
llvm-svn: 64455
-
Mike Stump authored
llvm-svn: 64454
-
Mike Stump authored
llvm-svn: 64452
-
Mike Stump authored
llvm-svn: 64451
-
Mike Stump authored
llvm-svn: 64450
-
Anders Carlsson authored
llvm-svn: 64447
-
Anders Carlsson authored
llvm-svn: 64446
-
Anders Carlsson authored
llvm-svn: 64445
-
Anders Carlsson authored
llvm-svn: 64441
-
Eli Friedman authored
Currently only used for 128-bit integers. Note that we can't use the fixed-width integer types for other integer modes without other changes because glibc headers redefines (u)int*_t and friends using the mode attribute. For example, this means that uint64_t has to be compatible with unsigned __attribute((mode(DI))), and uint64_t is currently defined to long long. And I have a feeling we'll run into issues if we try to define uint64_t as something which isn't either long or long long. This doesn't get the alignment right in most cases, including the 128-bit integer case; I'll file a PR shortly. The gist of the issue is that the targets don't really expose the information necessary to figure out the alignment outside of the target description, so there's a non-trivial amount of work involved in getting it working right. That said, the alignment used is conservative, so the only issue with the current implementation is ABI compatibility. This makes it trivial to add some sort of "bitwidth" attribute to make arbitrary-width integers; I'll do that in a followup. We could also use this for stuff like the following for compatibility with gcc, but I have a feeling it would be a better idea for clang to be consistent between C and C++ modes rather than follow gcc's example for C mode. struct {unsigned long long x : 33;} x; unsigned long long a(void) {return x.x+1;} llvm-svn: 64434
-
Ted Kremenek authored
- Add 'EvalBind', which will be used by 'EvalStore' to pull much of the value binding logic out of GRTransferFuncs. - Rename many cases of 'St' to 'state'. llvm-svn: 64426
-
Douglas Gregor authored
llvm-svn: 64425
-
Eli Friedman authored
type doesn't do anything. llvm-svn: 64424
-
Chris Lattner authored
only insert spaces between tokens if the code had them or if they are actually required to avoid pasting. This reuses the same logic as -E mode. llvm-svn: 64421
-
Chris Lattner authored
PrintPreprocessedOutput into its own file. No functionality change. llvm-svn: 64418
-
Douglas Gregor authored
given name in a given scope is marked as "overloadable", every function declaration and definition with that same name and in that same scope needs to have the "overloadable" attribute. Essentially, the "overloadable" attribute is not part of attribute merging, so it must be specified even for redeclarations. This keeps users from trying to be too sneaky for their own good: double sin(double) __attribute__((overloadable)); // too sneaky #include <math.h> Previously, this would have made "sin" overloadable, and therefore given it a mangled name. Now, we get an error inside math.h when we see a (re)declaration of "sin" that doesn't have the "overloadable" attribute. llvm-svn: 64414
-
Douglas Gregor authored
ABI to the CodeGen library. Since C++ code-generation is so incomplete, we can't exercise much of this mangling code. However, a few smoke tests show that it's doing the same thing as GCC. When C++ codegen matures, we'll extend the ABI tester to verify name-mangling as well, and complete the implementation here. At this point, the major client of name mangling is in the uses of the new "overloadable" attribute in C, which allows overloading. Any "overloadable" function in C (or in an extern "C" block in C++) will be mangled the same way that the corresponding C++ function would be mangled. llvm-svn: 64413
-
Daniel Dunbar authored
llvm-svn: 64411
-
Mike Stump authored
_GCC_LIMITS_H_ is defined, when __GNUC__ is defined. Also, we need to stay away from possible conflicts with header guards. We should use CLANG_ to prefix all header guards. llvm-svn: 64408
-
- Feb 12, 2009
-
-
Daniel Dunbar authored
llvm-svn: 64397
-
-
Douglas Gregor authored
union subobject initialization before checking whether the next initiailizer was actually a designated initializer. This led to spurious "excess elements in union initializer" errors. Thanks to rdivacky for reporting the bug! llvm-svn: 64392
-