Hello community,

here is the log from the commit of package yast2-core for openSUSE:Factory 
checked in at 2016-06-07 23:44:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-core (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-core"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-core/yast2-core.changes    2016-03-04 
19:30:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-core.new/yast2-core.changes       
2016-06-07 23:44:12.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Jun  2 13:46:02 UTC 2016 - mvid...@suse.com
+
+- Optionally build with Clang instead of GCC (via bcond_with clang)
+- Fixed most of Clang warnings (bsc#982942)
+- 3.1.23
+
+-------------------------------------------------------------------

Old:
----
  yast2-core-3.1.22.tar.bz2

New:
----
  yast2-core-3.1.23.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-core.spec ++++++
--- /var/tmp/diff_new_pack.WfJBG7/_old  2016-06-07 23:44:13.000000000 +0200
+++ /var/tmp/diff_new_pack.WfJBG7/_new  2016-06-07 23:44:13.000000000 +0200
@@ -16,6 +16,10 @@
 #
 
 
+# Optionally build with llvm-clang instead of gcc
+# because we are interested in the warnings it gives.
+%bcond_with clang
+
 # Optionally treat C/C++ warnings as errors.
 # It is off by default so that it will not block mass tests of new GCC
 # but we want to enable it in a side repo
@@ -23,7 +27,7 @@
 %bcond_with werror
 
 Name:           yast2-core
-Version:        3.1.22
+Version:        3.1.23
 Release:        0
 Url:            https://github.com/yast/yast-core
 
@@ -32,7 +36,11 @@
 
 # obviously
 BuildRequires:  boost-devel
+%if %{with clang}
+BuildRequires:  llvm-clang
+%else
 BuildRequires:  gcc-c++
+%endif
 BuildRequires:  libtool
 # we have a parser
 BuildRequires:  bison
@@ -103,6 +111,14 @@
 export CXXFLAGS="${RPM_OPT_FLAGS} -Werror"
 %endif
 
+%if %{with clang}
+export CC=clang CXX=clang++
+
+# warning/error: argument unused during compilation
+CFLAGS="${CFLAGS/-grecord-gcc-switches/}"
+CXXFLAGS="${CXXFLAGS/-grecord-gcc-switches/}"
+%endif
+
 %yast_build
 
 %install

++++++ yast2-core-3.1.22.tar.bz2 -> yast2-core-3.1.23.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/agent-ini/src/IniFile.h 
new/yast2-core-3.1.23/agent-ini/src/IniFile.h
--- old/yast2-core-3.1.22/agent-ini/src/IniFile.h       2016-03-03 
13:08:08.000000000 +0100
+++ new/yast2-core-3.1.23/agent-ini/src/IniFile.h       2016-06-03 
09:31:47.000000000 +0200
@@ -200,7 +200,7 @@
 
 
 enum IniType { VALUE, SECTION,};
-struct IniContainerElement;
+class IniContainerElement;
 
 typedef list<IniContainerElement> IniContainer;
 typedef IniContainer::iterator IniIterator;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/agent-ini/src/IniParser.cc 
new/yast2-core-3.1.23/agent-ini/src/IniParser.cc
--- old/yast2-core-3.1.22/agent-ini/src/IniParser.cc    2016-03-03 
13:08:08.000000000 +0100
+++ new/yast2-core-3.1.23/agent-ini/src/IniParser.cc    2016-06-03 
09:31:47.000000000 +0200
@@ -1023,6 +1023,9 @@
     return 0;
 }
 
+std::string format (const char * format, ...)
+    __attribute__ ((format (printf, 1, 2)));
+
 /** sprintf to a std::string, throwing runtime_error on OOM */
 std::string format (const char * format, ...) {
     // copied from y2util/stringutil.h but added the throw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.22/libscr/src/include/scr/Y2AgentComponent.h 
new/yast2-core-3.1.23/libscr/src/include/scr/Y2AgentComponent.h
--- old/yast2-core-3.1.22/libscr/src/include/scr/Y2AgentComponent.h     
2016-03-03 13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libscr/src/include/scr/Y2AgentComponent.h     
2016-06-03 09:31:47.000000000 +0200
@@ -16,6 +16,7 @@
 #include <ycp/YCPCode.h>
 #include <ycp/YCPVoid.h>
 #include <ycp/YCPTerm.h>
+#include <ycp/YCPPath.h>
 
 class SCRAgent;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.22/liby2/src/include/y2/Y2PluginComponent.h 
new/yast2-core-3.1.23/liby2/src/include/y2/Y2PluginComponent.h
--- old/yast2-core-3.1.22/liby2/src/include/y2/Y2PluginComponent.h      
2016-03-03 13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/liby2/src/include/y2/Y2PluginComponent.h      
2016-06-03 09:31:47.000000000 +0200
@@ -62,7 +62,12 @@
     /**
      * The component level the plugin was started in.
      */
+#ifdef __clang__
+    int level __attribute__((__unused__));
+    // 'level' can be removed for SLE13; now keeping it for ABI.
+#else
     int level;
+#endif
 
     /**
      * Handle of the dynamic loaded library.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/liby2util-r/src/MemUsage.cc 
new/yast2-core-3.1.23/liby2util-r/src/MemUsage.cc
--- old/yast2-core-3.1.22/liby2util-r/src/MemUsage.cc   2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/liby2util-r/src/MemUsage.cc   2016-06-03 
09:31:47.000000000 +0200
@@ -51,11 +51,12 @@
        ie = m_mu_instances->end ();
     for (; ii != ie; ++ii)
     {
-       const char * name = typeid (**ii).name ();
+       MemUsage * tracked_ptr = *ii;
+       const char * name = typeid (*tracked_ptr).name ();
        std::string dename = demangle (name);
        if (m_mu_size.find (dename) == m_mu_size.end())
        {
-           m_mu_size[dename] = (**ii).mem_size();
+           m_mu_size[dename] = (*tracked_ptr).mem_size();
        }
        ++ m_mu_count[dename];
     }
@@ -83,7 +84,8 @@
        ie = m_mu_instances->end ();
     for (; ii != ie; ++ii)
     {
-       std::string dname = demangle (typeid (**ii).name ());
+       MemUsage * tracked_ptr = *ii;
+       std::string dname = demangle (typeid (*tracked_ptr).name ());
        if (dname == aname)
        {
            fprintf (stderr, "p *(%s *)%p\n", aname, *ii);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.22/liby2util-r/src/include/y2util/stringutil.h 
new/yast2-core-3.1.23/liby2util-r/src/include/y2util/stringutil.h
--- old/yast2-core-3.1.22/liby2util-r/src/include/y2util/stringutil.h   
2016-03-03 13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/liby2util-r/src/include/y2util/stringutil.h   
2016-06-03 09:31:47.000000000 +0200
@@ -46,6 +46,9 @@
   TRIM    = (L_TRIM|R_TRIM)
 };
 
+inline std::string vform( const char * format, va_list ap )
+    __attribute__ ((format (printf, 1, 0)));
+
 inline std::string vform( const char * format, va_list ap ) {
   char * buf = 0;
   std::string val;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/liby2util-r/src/y2log.cc 
new/yast2-core-3.1.23/liby2util-r/src/y2log.cc
--- old/yast2-core-3.1.22/liby2util-r/src/y2log.cc      2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/liby2util-r/src/y2log.cc      2016-06-03 
09:31:47.000000000 +0200
@@ -173,6 +173,10 @@
  */
 string y2_logfmt_common(bool simple, const string& component, const char *file,
           const int line, const char *function, const char *format, va_list ap)
+    __attribute__ ((format (printf, 6, 0)));
+
+string y2_logfmt_common(bool simple, const string& component, const char *file,
+           const int line, const char *function, const char *format, va_list 
ap)
 {
     /* Prepare the log text */
     string logtext = stringutil::vform(format, ap);
@@ -265,6 +269,10 @@
 
 
 void y2_vlogger_function(loglevel_t level, const string& component, const char 
*file,
+           const int line, const char *function, const char *format, va_list 
ap)
+    __attribute__ ((format (printf, 6, 0)));
+
+void y2_vlogger_function(loglevel_t level, const string& component, const char 
*file,
           const int line, const char *function, const char *format, va_list ap)
 {
     string common = y2_logfmt_common (log_simple,
@@ -287,6 +295,10 @@
 
 void y2_vlogger_blanik(loglevel_t level, const string& component, const char 
*file,
           const int line, const char *function, const char *format, va_list ap)
+    __attribute__ ((format (printf, 6, 0)));
+
+void y2_vlogger_blanik(loglevel_t level, const string& component, const char 
*file,
+          const int line, const char *function, const char *format, va_list ap)
 {
     string common = y2_logfmt_common (log_simple,
                                      component, file, line, function,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/YBlock.cc 
new/yast2-core-3.1.23/libycp/src/YBlock.cc
--- old/yast2-core-3.1.22/libycp/src/YBlock.cc  2016-03-03 13:08:09.000000000 
+0100
+++ new/yast2-core-3.1.23/libycp/src/YBlock.cc  2016-06-03 09:31:47.000000000 
+0200
@@ -481,7 +481,7 @@
 {
     // first, create reverse map of cases
     int statementcount = statementCount ();
-    YCPValue values[statementcount];
+    YCPValue * values = new YCPValue[statementcount];
 
     for (int i = 0; i < statementcount; i++)
        values[i] = YCPNull ();
@@ -514,6 +514,7 @@
        stmt = stmt->next;
        index++;
     }
+    delete[] values;
 
     s += "\n}\n";
     return s;
@@ -525,7 +526,8 @@
 {
     // first, create reverse map of cases
     int statementcount = statementCount ();
-    vector<YCPValue> values[statementcount];
+
+    vector<YCPValue> * values = new vector<YCPValue>[statementcount];
 
     for (map<YCPValue, int, ycp_less>::iterator it = cases.begin ();
        it != cases.end (); it++ )
@@ -566,6 +568,7 @@
        index++;
     }
     str << closing_tag;
+    delete[] values;
 
     return str;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/YCPBuiltinString.cc 
new/yast2-core-3.1.23/libycp/src/YCPBuiltinString.cc
--- old/yast2-core-3.1.22/libycp/src/YCPBuiltinString.cc        2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/src/YCPBuiltinString.cc        2016-06-03 
09:31:47.000000000 +0200
@@ -299,28 +299,28 @@
     if (s->isAscii())
     {
        string ss = s->value ();
-       string::size_type start = i1->value();
+       long long start = i1->value();
 
-       if (start < 0 || start > ss.size())
+       if (start < 0 || start > (long long)ss.size())
        {
            ycp2error("Substring index out of range");
            return YCPString ("");
        }
 
-       return YCPString(ss.substr(start, string::npos));
+       return YCPString(ss.substr((string::size_type) start, string::npos));
     }
     else
     {
        wstring ss = s->wvalue();
-       wstring::size_type start = i1->value();
+       long long start = i1->value();
 
-       if (start < 0 || start > ss.size())
+       if (start < 0 || start > (long long)ss.size())
        {
            ycp2error("Substring index out of range");
            return YCPString("");
        }
 
-       return YCPString(ss.substr(start, wstring::npos));
+       return YCPString(ss.substr((wstring::size_type) start, wstring::npos));
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/YCPMap.cc 
new/yast2-core-3.1.23/libycp/src/YCPMap.cc
--- old/yast2-core-3.1.22/libycp/src/YCPMap.cc  2016-03-03 13:08:09.000000000 
+0100
+++ new/yast2-core-3.1.23/libycp/src/YCPMap.cc  2016-06-03 09:31:47.000000000 
+0200
@@ -178,7 +178,7 @@
        {
            // equal length ==> pairwise comparison
            for( YCPMap::const_iterator pos_this = begin(), pos_m = m->begin();
-                pos_this != end(), pos_m != m->end();
+                pos_this != end();
                 ++pos_this, ++pos_m )
            {
                // compare keys
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/YExpression.cc 
new/yast2-core-3.1.23/libycp/src/YExpression.cc
--- old/yast2-core-3.1.22/libycp/src/YExpression.cc     2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/src/YExpression.cc     2016-06-03 
09:31:47.000000000 +0200
@@ -3126,7 +3126,7 @@
        }
     }
 
-    YCPValue evaluated_params [m_next_param_id];
+    YCPValue* evaluated_params = new YCPValue[m_next_param_id];
 
     for (unsigned int p = 0; p < m_next_param_id ; p++)
     {
@@ -3137,6 +3137,7 @@
        if (value.isNull())
        {
            ycp2error ("Parameter eval failed (%s)", 
m_parameters[p]->toString().c_str());
+            delete[](evaluated_params);
            return value;
        }
 
@@ -3160,6 +3161,7 @@
     if (YaST::ee.endlessRecursion())
     {
        ycp2error ("Returning nil instead of calling the function.");
+        delete[](evaluated_params);
        return YCPVoid ();
     }
 
@@ -3172,6 +3174,8 @@
     YaST::ee.setFilename(filename);
 
     YaST::ee.popframe();
+    // FIXME: did the frame need ep to exist? otherwise we could delete it 
before evaluateCall
+    delete[](evaluated_params);
 
 #if DO_DEBUG
     y2debug("evaluate done (%s) = '%s'", qualifiedName ().c_str(), 
value.isNull() ? "NULL" : value->toString().c_str());
@@ -3266,7 +3270,7 @@
     // FIXME: this could fail
     m_functioncall->reset ();
 
-    YCPValue m_params [m_next_param_id];
+    YCPValue * m_params = new YCPValue[m_next_param_id];
 
     for (unsigned int p = 0; p < m_next_param_id ; p++)
     {
@@ -3277,6 +3281,7 @@
        if (value.isNull())
        {
            ycp2error ("Parameter eval failed (%s)", 
m_parameters[p]->toString().c_str());
+            delete[] m_params;
            return value;
        }
 
@@ -3292,6 +3297,7 @@
     {
        m_functioncall->attachParameter (m_params[p], p);
     }
+    delete[] m_params; // can now already? why no frame push?
 
     // save the context info
     int linenumber = YaST::ee.linenumber();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/include/ycp/Parser.h 
new/yast2-core-3.1.23/libycp/src/include/ycp/Parser.h
--- old/yast2-core-3.1.22/libycp/src/include/ycp/Parser.h       2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/src/include/ycp/Parser.h       2016-06-03 
09:31:47.000000000 +0200
@@ -29,9 +29,9 @@
 #include "ycp/YCode.h"
 
 class Scanner;
-class blockstack_t;
-class scannerstack_t;
-class switchstack_t;
+struct blockstack_t;
+struct scannerstack_t;
+struct switchstack_t;
 class YBlock;
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/include/ycp/YCPMap.h 
new/yast2-core-3.1.23/libycp/src/include/ycp/YCPMap.h
--- old/yast2-core-3.1.22/libycp/src/include/ycp/YCPMap.h       2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/src/include/ycp/YCPMap.h       2016-06-03 
09:31:47.000000000 +0200
@@ -30,7 +30,7 @@
 // Only for backwards compatibility. See mail from aschnell on yast-devel on
 // 2009-01-07. http://lists.opensuse.org/yast-devel/2009-01/msg00016.html
 typedef map<YCPValue, YCPValue, ycp_less> YCPValueYCPValueMap;
-class YCPMapIterator;
+struct YCPMapIterator;
  
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/libycp/src/scanner.ll 
new/yast2-core-3.1.23/libycp/src/scanner.ll
--- old/yast2-core-3.1.22/libycp/src/scanner.ll 2016-03-03 13:08:09.000000000 
+0100
+++ new/yast2-core-3.1.23/libycp/src/scanner.ll 2016-06-03 09:31:47.000000000 
+0200
@@ -19,6 +19,12 @@
 
 %{
 
+#ifdef __clang__
+// There are many "register" variables declared in generated flex code
+// which we cannot affect, but Clang warns about them. Shut that up.
+#pragma clang diagnostic ignored "-Wdeprecated-register"
+#endif
+
 #include <list>
 #include <string>
 #include <sstream>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.22/libycp/testsuite/tests/builtin/Builtin-String.err 
new/yast2-core-3.1.23/libycp/testsuite/tests/builtin/Builtin-String.err
--- old/yast2-core-3.1.22/libycp/testsuite/tests/builtin/Builtin-String.err     
2016-03-03 13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/testsuite/tests/builtin/Builtin-String.err     
2016-06-03 09:31:47.000000000 +0200
@@ -128,36 +128,53 @@
 [Interpreter] tests/builtin/Builtin-String.ycp:59 Substring index out of range
 Parsed:
 ----------------------------------------------------------------------
+substring ("some text", -1)
+----------------------------------------------------------------------
+[Interpreter] tests/builtin/Builtin-String.ycp:61 Substring index out of range
+Parsed:
+----------------------------------------------------------------------
+substring ("some text", 5, 0)
+----------------------------------------------------------------------
+Parsed:
+----------------------------------------------------------------------
+substring ("some text", 5, 42)
+----------------------------------------------------------------------
+Parsed:
+----------------------------------------------------------------------
+substring ("some text", 5, -42)
+----------------------------------------------------------------------
+Parsed:
+----------------------------------------------------------------------
 "** lsubstring **"
 ----------------------------------------------------------------------
-[Parser] tests/builtin/Builtin-String.ycp:64 Warning: lsubstring(...) is 
deprecated, please fix
+[Parser] tests/builtin/Builtin-String.ycp:68 Warning: lsubstring(...) is 
deprecated, please fix
 Parsed:
 ----------------------------------------------------------------------
 lsubstring ("some text", 5)
 ----------------------------------------------------------------------
-[Parser] tests/builtin/Builtin-String.ycp:65 Warning: lsubstring(...) is 
deprecated, please fix
+[Parser] tests/builtin/Builtin-String.ycp:69 Warning: lsubstring(...) is 
deprecated, please fix
 Parsed:
 ----------------------------------------------------------------------
 lsubstring ("some text", 42)
 ----------------------------------------------------------------------
-[Interpreter] tests/builtin/Builtin-String.ycp:65 Substring index out of range
-[Parser] tests/builtin/Builtin-String.ycp:66 Warning: lsubstring(...) is 
deprecated, please fix
+[Interpreter] tests/builtin/Builtin-String.ycp:69 Substring index out of range
+[Parser] tests/builtin/Builtin-String.ycp:70 Warning: lsubstring(...) is 
deprecated, please fix
 Parsed:
 ----------------------------------------------------------------------
 lsubstring ("ěščřžýáí", 5)
 ----------------------------------------------------------------------
-[Parser] tests/builtin/Builtin-String.ycp:68 Warning: lsubstring(...) is 
deprecated, please fix
+[Parser] tests/builtin/Builtin-String.ycp:72 Warning: lsubstring(...) is 
deprecated, please fix
 Parsed:
 ----------------------------------------------------------------------
 lsubstring ("some text", 5, 2)
 ----------------------------------------------------------------------
-[Parser] tests/builtin/Builtin-String.ycp:69 Warning: lsubstring(...) is 
deprecated, please fix
+[Parser] tests/builtin/Builtin-String.ycp:73 Warning: lsubstring(...) is 
deprecated, please fix
 Parsed:
 ----------------------------------------------------------------------
 lsubstring ("some text", 42, 2)
 ----------------------------------------------------------------------
-[Interpreter] tests/builtin/Builtin-String.ycp:69 Substring index out of range
-[Parser] tests/builtin/Builtin-String.ycp:70 Warning: lsubstring(...) is 
deprecated, please fix
+[Interpreter] tests/builtin/Builtin-String.ycp:73 Substring index out of range
+[Parser] tests/builtin/Builtin-String.ycp:74 Warning: lsubstring(...) is 
deprecated, please fix
 Parsed:
 ----------------------------------------------------------------------
 lsubstring ("ěščřžýáí", 5, 2)
@@ -174,9 +191,9 @@
 ----------------------------------------------------------------------
 mergestring (["abc", "dev", "ghi", ""], "/")
 ----------------------------------------------------------------------
-[Parser] tests/builtin/Builtin-String.ycp:77 No match for 'mergestring : 
<unspec> (list, string)'
-[Parser] tests/builtin/Builtin-String.ycp:77 Please fix parameter types to 
match one of:
-[Parser] tests/builtin/Builtin-String.ycp:77 'mergestring : string (const list 
<string>, string)'
-[Parser] tests/builtin/Builtin-String.ycp:77 Wrong parameters in call to 
mergestring(...)
-[Parser] tests/builtin/Builtin-String.ycp:77 Expected '(const list <string>, 
string)', seen '(list, string)'.
+[Parser] tests/builtin/Builtin-String.ycp:81 No match for 'mergestring : 
<unspec> (list, string)'
+[Parser] tests/builtin/Builtin-String.ycp:81 Please fix parameter types to 
match one of:
+[Parser] tests/builtin/Builtin-String.ycp:81 'mergestring : string (const list 
<string>, string)'
+[Parser] tests/builtin/Builtin-String.ycp:81 Wrong parameters in call to 
mergestring(...)
+[Parser] tests/builtin/Builtin-String.ycp:81 Expected '(const list <string>, 
string)', seen '(list, string)'.
 runycp: parser error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.22/libycp/testsuite/tests/builtin/Builtin-String.out 
new/yast2-core-3.1.23/libycp/testsuite/tests/builtin/Builtin-String.out
--- old/yast2-core-3.1.22/libycp/testsuite/tests/builtin/Builtin-String.out     
2016-03-03 13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/testsuite/tests/builtin/Builtin-String.out     
2016-06-03 09:31:47.000000000 +0200
@@ -27,6 +27,10 @@
 ("")
 ("te")
 ("")
+("")
+("")
+("text")
+("text")
 ("** lsubstring **")
 ("text")
 ("")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-core-3.1.22/libycp/testsuite/tests/builtin/Builtin-String.ycp 
new/yast2-core-3.1.23/libycp/testsuite/tests/builtin/Builtin-String.ycp
--- old/yast2-core-3.1.22/libycp/testsuite/tests/builtin/Builtin-String.ycp     
2016-03-03 13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/libycp/testsuite/tests/builtin/Builtin-String.ycp     
2016-06-03 09:31:47.000000000 +0200
@@ -58,6 +58,10 @@
 (substring ("some text", 5, 2))
 (substring ("some text", 42, 2))
 
+(substring ("some text", -1))
+(substring ("some text", 5, 0))
+(substring ("some text", 5, 42))
+(substring ("some text", 5, -42))
 
 ("** lsubstring **")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/package/yast2-core.changes 
new/yast2-core-3.1.23/package/yast2-core.changes
--- old/yast2-core-3.1.22/package/yast2-core.changes    2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/package/yast2-core.changes    2016-06-03 
09:31:47.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Thu Jun  2 13:46:02 UTC 2016 - mvid...@suse.com
+
+- Optionally build with Clang instead of GCC (via bcond_with clang)
+- Fixed most of Clang warnings (bsc#982942)
+- 3.1.23
+
+-------------------------------------------------------------------
 Thu Mar  3 12:36:06 CET 2016 - g...@suse.de
 
 - Add missing newline to error messages (bsc#969236)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-core-3.1.22/package/yast2-core.spec 
new/yast2-core-3.1.23/package/yast2-core.spec
--- old/yast2-core-3.1.22/package/yast2-core.spec       2016-03-03 
13:08:09.000000000 +0100
+++ new/yast2-core-3.1.23/package/yast2-core.spec       2016-06-03 
09:31:47.000000000 +0200
@@ -15,6 +15,9 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+# Optionally build with llvm-clang instead of gcc
+# because we are interested in the warnings it gives.
+%bcond_with clang
 
 # Optionally treat C/C++ warnings as errors.
 # It is off by default so that it will not block mass tests of new GCC
@@ -23,7 +26,7 @@
 %bcond_with werror
 
 Name:           yast2-core
-Version:        3.1.22
+Version:        3.1.23
 Release:        0
 Url:            https://github.com/yast/yast-core
 
@@ -32,7 +35,11 @@
 
 # obviously
 BuildRequires:  boost-devel
+%if %{with clang}
+BuildRequires:  llvm-clang
+%else
 BuildRequires:  gcc-c++
+%endif
 BuildRequires:  libtool
 # we have a parser
 BuildRequires:  bison
@@ -103,6 +110,14 @@
 export CXXFLAGS="${RPM_OPT_FLAGS} -Werror"
 %endif
 
+%if %{with clang}
+export CC=clang CXX=clang++
+
+# warning/error: argument unused during compilation
+CFLAGS="${CFLAGS/-grecord-gcc-switches/}"
+CXXFLAGS="${CXXFLAGS/-grecord-gcc-switches/}"
+%endif
+
 %yast_build
 
 %install


Reply via email to