<html><head><style id="-x-evo-quote-style" type="text/css">.-x-evo-quoted { -webkit-user-select: none; }</style><style id="-x-evo-a-color-style" type="text/css">a { color: #2a76c6; }</style><style id="-x-evo-a-color-style-visited" type="text/css">a.-x-evo-visited-link { color: #2e3436; }</style><style id="-x-evo-composer-sheet" media="screen" type="text/css">body {
  font-family: 'Monospace';
  font-size: 10pt;
  font-weight: 400;
  font-style: normal;
 -webkit-line-break: after-white-space;
 -webkit-font-smoothing: antialiased;
}
pre,code,.pre {
  font-family: 'Monospace';
  font-size: 10pt;
  font-weight: 400;
  font-style: normal;
}p,pre,code,address {
  margin: 0;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
td:before {
 content: "​";}
img {
  height: inherit; 
  width: inherit; 
}
span.-x-evo-resizable-wrapper:hover {
  outline: 1px dashed red; 
  resize: both; 
  overflow: hidden; 
  display: inline-block; 
}
td:hover {
  outline: 1px dotted red;
}
body[data-evo-plain-text] {
  font-family: Monospace; 
}
body[data-evo-plain-text] img.-x-evo-smiley-img, body:not([data-evo-plain-text]) span.-x-evo-smiley-text {
  display: none 
}
[data-evo-paragraph] {
  white-space: pre-wrap; 
}
body[data-evo-plain-text] [data-evo-paragraph] {
  word-wrap: break-word; 
  word-break: break-word; 
}
.-x-evo-plaintext-table {
  border-collapse: collapse;
  width: 78ch;
}
.-x-evo-plaintext-table td {
  vertical-align: top;
}
td > * {
  display : inline-block;
}
body[data-evo-plain-text] ul {
  list-style: outside none;
  -webkit-padding-start: 3ch; 
}
body[data-evo-plain-text] ul > li {
  list-style-position: outside;
  text-indent: -2ch;
}
body[data-evo-plain-text] ul > li::before {
  content: "* ";
}
body[data-evo-plain-text] ul.-x-evo-indented {
  -webkit-padding-start: 3ch; 
}
body:not([data-evo-plain-text]) ul > li.-x-evo-align-center,ol > li.-x-evo-align-center {
  list-style-position: inside;
}
body:not([data-evo-plain-text]) ul > li.-x-evo-align-right, ol > li.-x-evo-align-right {
  list-style-position: inside;
}
ol {
  -webkit-padding-start: 6ch; 
}
ol.-x-evo-indented {
  -webkit-padding-start: 3ch; 
}
.-x-evo-align-left {
  text-align: left; 
}
.-x-evo-align-center {
  text-align: center; 
}
.-x-evo-align-right {
  text-align: right; 
}
ol,ul {
  -webkit-margin-before: 0em; 
  -webkit-margin-after: 0em; 
}
blockquote {
  -webkit-margin-before: 0em; 
  -webkit-margin-after: 0em; 
}
a {
  word-wrap: break-word; 
  word-break: break-all; 
}
blockquote[type=cite] {
  padding: 0.0ex 0ex;
  margin: 0ex;
  -webkit-margin-start: 0em; 
  -webkit-margin-end : 0em; 
  color: #737373 !important; 
}
.-x-evo-quote-character {
  color: rgb(114,159,207);
}
.-x-evo-quote-character+.-x-evo-quote-character{
  color: rgb(173,127,168);
}
.-x-evo-quote-character+.-x-evo-quote-character+.-x-evo-quote-character{
  color: rgb(138,226,52);
}
.-x-evo-quote-character+.-x-evo-quote-character+.-x-evo-quote-character+.-x-evo-quote-character{
  color: rgb(252,175,62);
}
.-x-evo-quote-character+.-x-evo-quote-character+.-x-evo-quote-character+.-x-evo-quote-character+.-x-evo-quote-character{
  color: rgb(233,185,110);
}
body:not([data-evo-plain-text]) blockquote[type=cite] {
  padding: 0ch 1ch 0ch 1ch;
  margin: 0ch;
  border-width: 0px 2px 0px 2px;
  border-style: none solid none solid;
  border-radius: 2px;
}
body:not([data-evo-plain-text]) blockquote[type=cite] {
  border-color: rgb(114,159,207);
}
body:not([data-evo-plain-text]) blockquote[type=cite] blockquote[type=cite] {
  border-color: rgb(173,127,168);
}
body:not([data-evo-plain-text]) blockquote[type=cite] blockquote[type=cite] blockquote[type=cite] {
  border-color: rgb(138,226,52);
}
body:not([data-evo-plain-text]) blockquote[type=cite] blockquote[type=cite] blockquote[type=cite] blockquote[type=cite] {
  border-color: rgb(252,175,62);
}
body:not([data-evo-plain-text]) blockquote[type=cite] blockquote[type=cite] blockquote[type=cite] blockquote[type=cite] blockquote[type=cite] {
  border-color: rgb(233,185,110);
}
</style></head><body data-converted="" data-evo-plain-text="" bgcolor="#ffffff" text="#2e3436" link="#2a76c6" vlink="#2e3436" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" data-evo-draft=""><div data-evo-paragraph="" class="" style="width: 78ch;">I have an update on this, but I forgot to post it here.</div><div data-evo-paragraph="" class="" style="width: 78ch;"><br></div><div data-evo-paragraph="" class="" style="width: 78ch;">The fix turned out to be simple.  Given that the attribute subject in the Attr.td file is</div><div data-evo-paragraph="" class="" style="width: 78ch;">  let Subjects = SubjectsList<[Function]></div><div data-evo-paragraph="" class="" style="width: 78ch;"><br></div><div data-evo-paragraph="" class="" style="width: 78ch;">The only thing to do is to move the type attribute to the attribute list of the declarator.  That is accomplished by the following lines:</div><div data-evo-paragraph="" class="" style="width: 78ch;"><br></div><div data-evo-paragraph="" class="" style="width: 78ch;">In lib/Sema/SemaType.cpp, function processTypeAttrs():</div><div data-evo-paragraph="" class="" style="width: 78ch;"><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span id="-x-evo-selection-start-marker" data-anchor=""></span><span id="-x-evo-selection-end-marker"></span>  case AttributeList::AT_TheAttribute:</div><div data-evo-paragraph="" class="" style="width: 78ch;">    moveAttrFromListToList(attr, state.getCurrentAttrListRef(),</div><div data-evo-paragraph="" class="" style="width: 78ch;">                           state.getDeclarator().getAttrListRef());</div><div data-evo-paragraph="" class="" style="width: 78ch;">    break;</div><div data-evo-paragraph="" class="" style="width: 78ch;"><br></div><div data-evo-paragraph="" class="" style="width: 78ch;">Regards.</div><div data-evo-paragraph="" class="" style="width: 78ch;"><br></div><div data-evo-paragraph="" class="" style="width: 78ch;">El vie, 20-10-2017 a las 13:25 +0200, Javier López escribió:</div><blockquote type="cite"><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span></span>El mar, 10-10-2017 a las 22:48 -0600, Eric Fiselier escribió:</div><blockquote type="cite"><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>On Mon, Oct 9, 2017 at 7:47 PM, Richard Smith via cfe-dev <cfe-dev@lists.l<br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>lvm.org> wrote:</div><blockquote type="cite"><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>On 6 October 2017 at 07:36, Javier López Gómez via cfe-dev <cfe-dev@list<br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>s.llvm.org> wrote:</div><blockquote type="cite"><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>Hi,</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>I'm new to Clang hacking. Recently -prior to addition of a new<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>attribute-, I tried adding a C++11 spelling of the DiagnoseIf<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>attribute in the file</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>`tools/clang/include/clang/Basic/Attr.td':</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>  let Spellings = [GNU<"diagnose_if">,</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>                   CXX11<"", "diagnose_if", 201603>];</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>but the parser complains if the expression contains references to</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>function arguments, even if `LateParsed = 1' is specified, i.e. this</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>works</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>  int foo(int arg) __attribute__((diagnose_if(arg == 0, "text",</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>"warning")));</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>but this will not:</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>  [[diagnose_if(arg == 0, "text", "warning")]] int foo(int arg);</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>Am I missing something? Any help will be much appreciated.</div></blockquote><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>There is nowhere that a C++11-syntax attribute can be written where it<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>appertains to the function entity and the function parameter names are<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>in scope. The two locations where attributes can be applied to a name<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>introduced by a declarator are:</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>  [[here]] int f [[and_here]] (int x);</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>... and neither of them follows the "x" parameter's declaration. After<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>some discussion with Aaron, we think the best way forward is to recast<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>such attributes as attributes on the function *type* (that perhaps don't<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>change the canonical type, but do affect how the function declarator is<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>interpreted as forming a function in some way). That'd mean you'd put<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>the attributes:</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>  int f(int x) [[here]];</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>... which conveniently is a place where the function parameters are in<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>scope. The downside is that we don't have parsing support for attributes<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>that appertain to function types yet. That would need to be added.</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div></blockquote><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>I've been working on a fix for this; But if you want to hack on this, I'm<span data-hidden-space=""></span><br class="-x-evo-wrap-br"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>happy to yield.</div></blockquote><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span></span>Yes, I will be working on this for the next days. Thanks.</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span></span><br></div><blockquote type="cite"><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span> </div><blockquote type="cite"><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>_______________________________________________</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span>cfe-dev mailing list</div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span><span class="-x-evo-quote-character">> </span></span><br></div></blockquote></blockquote><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span></span><br></div><div data-evo-paragraph="" class="" style="width: 78ch;"><span class="-x-evo-quoted"><span class="-x-evo-quote-character">> </span></span><br></div></blockquote><div class="-x-evo-signature-wrapper"><span class="-x-evo-signature" id="1507199704.9681.1@gorrion"><pre>-- <br></pre><div data-evo-paragraph="" class="">Javier López</div><div data-evo-paragraph="" class="">2.2.B.08 ARCOS lab, Computer Architecture Group</div><div data-evo-paragraph="" class="">University Carlos III of Madrid</div><div data-evo-paragraph="" class="">e-mail: <a href="mailto:jalopezg@inf.uc3m.es">jalopezg@inf.uc3m.es</a></div></span></div></body></html>