<?xml version="1.0"?>
<statsTarget><link>http://cia.vc/stats/author/fpichet</link><counters><counter name="forever" lastEventTime="1307476053" firstEventTime="1283503433">149</counter></counters><metadata></metadata><recentMessages><message><timestamp>1307329079</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>132675</revision><author>fpichet</author><log>ok now, let's fix that MSVC warning for real.</log><url>http://llvm.org/viewvc/llvm-project?rev=132675&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Sema/Sema.h">cfe/trunk/include/clang/Sema/Sema.h</file></files></commit></body></message><message><timestamp>1307328126</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>132674</revision><author>fpichet</author><log>Fix MSVC warning:
&quot;unsafe mix of type 'int' and type 'bool' in operation&quot;</log><url>http://llvm.org/viewvc/llvm-project?rev=132674&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Sema/Sema.h">cfe/trunk/include/clang/Sema/Sema.h</file></files></commit></body></message><message><timestamp>1306385720</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>llvm</project></source><body><commit><revision>132109</revision><author>fpichet</author><log>Fix MSVC warning regarding mkdir function usage.</log><url>http://llvm.org/viewvc/llvm-project?rev=132109&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/runtime/libprofile/GCDAProfiling.c">llvm/trunk/runtime/libprofile/GCDAProfiling.c</file></files></commit></body></message><message><timestamp>1306340103</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>132059</revision><author>fpichet</author><log>Disable MSVC warning about runtime stack overflow for DebugOverflowStack.</log><url>http://llvm.org/viewvc/llvm-project?rev=132059&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Lex/Pragma.cpp">cfe/trunk/lib/Lex/Pragma.cpp</file></files></commit></body></message><message><timestamp>1306339630</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>132058</revision><author>fpichet</author><log>Fix MSVC warning: &lt;unsafe use of type 'bool' in operation&gt;</log><url>http://llvm.org/viewvc/llvm-project?rev=132058&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/AST/TypePrinter.cpp">cfe/trunk/lib/AST/TypePrinter.cpp</file></files></commit></body></message><message><timestamp>1306342973</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>llvm</project></source><body><commit><revision>132062</revision><author>fpichet</author><log>Remove unused OpcodeMask enumerator.</log><url>http://llvm.org/viewvc/llvm-project?rev=132062&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.h">llvm/trunk/lib/Target/X86/X86InstrInfo.h</file></files></commit></body></message><message><timestamp>1306318789</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>132052</revision><author>fpichet</author><log>Add support for Microsoft __if_exists, __if_not_exists extension at class scope.

Example:

typedef int TYPE;
class C {
  __if_exists(TYPE) {
     TYPE a;
  }
  __if_not_exists(TYPE) {
     this will never be parsed.
  }
}; </log><url>http://llvm.org/viewvc/llvm-project?rev=132052&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/Parser/MicrosoftExtensions.cpp">cfe/trunk/test/Parser/MicrosoftExtensions.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Parse/Parser.h">cfe/trunk/include/clang/Parse/Parser.h</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Parse/ParseDeclCXX.cpp">cfe/trunk/lib/Parse/ParseDeclCXX.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Parse/Parser.cpp">cfe/trunk/lib/Parse/Parser.cpp</file></files></commit></body></message><message><timestamp>1306341153</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>llvm</project></source><body><commit><revision>132061</revision><author>fpichet</author><log>Fix 3 MSVC warnings: 
'void (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(void)'

atexit really expects a &quot;void f(void)&quot; function.</log><url>http://llvm.org/viewvc/llvm-project?rev=132061&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/runtime/libprofile/EdgeProfiling.c">llvm/trunk/runtime/libprofile/EdgeProfiling.c</file><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/runtime/libprofile/BasicBlockTracing.c">llvm/trunk/runtime/libprofile/BasicBlockTracing.c</file><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/runtime/libprofile/OptimalEdgeProfiling.c">llvm/trunk/runtime/libprofile/OptimalEdgeProfiling.c</file></files></commit></body></message><message><timestamp>1306339090</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>llvm</project></source><body><commit><revision>132057</revision><author>fpichet</author><log>Fix MSVC warning: &quot;is out of range for enum constant&quot; 
MSVC doesn't support 64 bit enum. 
OpcodeMask is not used anywhere in the code base. </log><url>http://llvm.org/viewvc/llvm-project?rev=132057&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.h">llvm/trunk/lib/Target/X86/X86InstrInfo.h</file></files></commit></body></message><message><timestamp>1306203103</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131950</revision><author>fpichet</author><log>MSVC doesn't do any validation regarding exception specification.</log><url>http://llvm.org/viewvc/llvm-project?rev=131950&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td">cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaExceptionSpec.cpp">cfe/trunk/lib/Sema/SemaExceptionSpec.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file></files></commit></body></message><message><timestamp>1306122224</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131896</revision><author>fpichet</author><log>Emulate a MSVC bug where if during an using declaration name lookup, the declaration found is unaccessible (private) and that declaration was bring into scope via another using declaration whose target declaration is accessible (public) then no error is generated.

Example:
class A { public: int f();  };
class B : public A { private: using A::f; };
class C : public B { private: using B::f; };

Here, B::f is private so this should fail in Standard C++, but because B::f refers to A::f which is public MSVC accepts it.

This fixes 1 error when parsing MFC code with clang.</log><url>http://llvm.org/viewvc/llvm-project?rev=131896&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td">cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaAccess.cpp">cfe/trunk/lib/Sema/SemaAccess.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Sema/Lookup.h">cfe/trunk/include/clang/Sema/Lookup.h</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp">cfe/trunk/lib/Sema/SemaDeclCXX.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file></files></commit></body></message><message><timestamp>1305773651</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>llvm</project></source><body><commit><revision>131624</revision><author>fpichet</author><log>Fix the MSVC build.
Use a set of overloaded functions instead of template function for CreatePassFn.

It seems that template deduction for functions type that differs only by return type doesn't work with MSVC. </log><url>http://llvm.org/viewvc/llvm-project?rev=131624&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/llvm/trunk/include/llvm/Support/StandardPasses.h">llvm/trunk/include/llvm/Support/StandardPasses.h</file></files></commit></body></message><message><timestamp>1305400627</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131362</revision><author>fpichet</author><log>Revert 131347. It asserts if the specialization in within a class template:

template&lt;class U&gt; 
struct X1 {
  template&lt;class T&gt; void f(T*);
  template&lt;&gt; void f(int*) { } 
};

Won't be so simple. I need to think more about it.</log><url>http://llvm.org/viewvc/llvm-project?rev=131362&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td">cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp">cfe/trunk/lib/Sema/SemaDecl.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp">cfe/trunk/lib/Sema/SemaTemplate.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file></files></commit></body></message><message><timestamp>1305395206</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131347</revision><author>fpichet</author><log>In Microsoft mode, allow template function explicit specialization at class scope.
Necessary to parse MFC and MSVC standard lib code.

Example:
struct X {
  template&lt;class T&gt; void f(T) { }
  template&lt;&gt; void f(int) { } 
} </log><url>http://llvm.org/viewvc/llvm-project?rev=131347&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td">cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp">cfe/trunk/lib/Sema/SemaDecl.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp">cfe/trunk/lib/Sema/SemaTemplate.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file></files></commit></body></message><message><timestamp>1305152899</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131202</revision><author>fpichet</author><log>Add a Microsoft C test following r131201.</log><url>http://llvm.org/viewvc/llvm-project?rev=131202&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/Sema/MicrosoftExtensions.c">cfe/trunk/test/Sema/MicrosoftExtensions.c</file></files></commit></body></message><message><timestamp>1305152034</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131201</revision><author>fpichet</author><log>In Microsoft mode, allow conversion from pointer to integral type no matter what size the integral type is. Necessary to parse MFC code.

Example:
void f(char *ptr) {
  char var = (char)ptr;
}</log><url>http://llvm.org/viewvc/llvm-project?rev=131201&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaCXXCast.cpp">cfe/trunk/lib/Sema/SemaCXXCast.cpp</file></files></commit></body></message><message><timestamp>1304986112</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131113</revision><author>fpichet</author><log>Add a __uuidof test where the uuid attribute is on the second declaration. 
Also some -fdelayed-template-parsing test refactoring.</log><url>http://llvm.org/viewvc/llvm-project?rev=131113&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/Parser/MicrosoftExtensions.cpp">cfe/trunk/test/Parser/MicrosoftExtensions.cpp</file></files></commit></body></message><message><timestamp>1304980366</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131108</revision><author>fpichet</author><log>Add a FIXME.</log><url>http://llvm.org/viewvc/llvm-project?rev=131108&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp">cfe/trunk/lib/Frontend/InitPreprocessor.cpp</file></files></commit></body></message><message><timestamp>1304896510</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131077</revision><author>fpichet</author><log>Fix test.</log><url>http://llvm.org/viewvc/llvm-project?rev=131077&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file></files></commit></body></message><message><timestamp>1304895161</timestamp><generator><name>Built-in Subversion repository interface</name><version>1.0</version></generator><source><project>clang</project></source><body><commit><revision>131076</revision><author>fpichet</author><log>Allow implicit conversion from function pointer to void* in Microsoft mode. 
Necessary to parse MFC code.</log><url>http://llvm.org/viewvc/llvm-project?rev=131076&amp;view=rev</url><files><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema/SemaOverload.cpp">cfe/trunk/lib/Sema/SemaOverload.cpp</file><file action="modify" uri="http://llvm.org/svn/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp">cfe/trunk/test/SemaCXX/MicrosoftExtensions.cpp</file></files></commit></body></message></recentMessages></statsTarget>
